Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-07-2013
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Question Importe en letras y observaciones - Hasar P330

Buenas, voy al grano.
¿Alguien sabe como poner el importe final en letras en una Hasar P330?
¿Y poner una observación al final del comprobante?

Gracias.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #2  
Antiguo 25-07-2013
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Hola santiago14,

Sólo tienes que buscar un poco en el FTP y encontraras los que buscas, mira lo que he encontrado en el FTP del ClubDelphi en la sección de Componentes-Funciones: Num2letras, Numero2Letras y NumLetrasCrystal bájate el que más te interese.

Un saludo
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #3  
Antiguo 26-07-2013
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Wink

Cita:
Empezado por olbeup Ver Mensaje
Hola santiago14,

Sólo tienes que buscar un poco en el FTP y encontraras los que buscas, mira lo que he encontrado en el FTP del ClubDelphi en la sección de Componentes-Funciones: Num2letras, Numero2Letras y NumLetrasCrystal bájate el que más te interese.

Un saludo
Muy agradecido, voy a explicar mejor...

Esas funciones están muy buenas, de hecho, a Num2Letras la uso desde hace muchísimo y me ha servido de maravillas.
El tema es que quiero ahora poner eso en la impresora fiscal Hasar 330, ¿Cómo hago? Bueno, en principio hay que usar el comando Encabezado() y pasar los datos; hay varias líneas en el pie del documento para hacer esto, cada una consta de 120 caracteres para trabajar, yo quería que la fiscal me pusiera el importe en letras directamente pero los de Hasar me contestaron que esa función no está disponible. El problema aquí es que uno le pasa a la fiscal una lista de ítems vendidos que da como total, por ejemplo 387,00; por razones de redondeo de la fiscal, algo que todavía no he podido dilucidar, el valor final es: 387,01.
En esta circunstancia, yo le paso el importe "Trescientos ochenta y siete" y resulta que tiene un centavito de mas. Claro, en cuestiones de dinero no es nada, no se hacen problema, pero me quita un poco de calidad a mi trabajo.
No se si se entiende...
Las observaciones pasan por el mismo lado, solamente que las podemos poner en un renglón diferente al del importe en letras.

En cuanto tenga la cosa solucionada lo publico para que haya algo mas de documentación al respecto.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #4  
Antiguo 26-07-2013
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Hola santiago14,

Nunca he utilizado una impresora fiscal ni tampoco la he visto trabajar, he mirado en Google y es una impresora matricial.
¿Se comportar como una impresora normal o necesitas comando especiales para que imprima?, siento no poder ayudarte.

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #5  
Antiguo 26-07-2013
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Cita:
Empezado por olbeup Ver Mensaje
Hola santiago14,

Nunca he utilizado una impresora fiscal ni tampoco la he visto trabajar, he mirado en Google y es una impresora matricial.
¿Se comportar como una impresora normal o necesitas comando especiales para que imprima?, siento no poder ayudarte.

Un saludo.
Una impresora fiscal es una impresora matricial (por lo menos hay modelos de ese tipo) pero adicionalmente ha sido "preparada" para emitir comprobante con valor legal. Para ello tiene, entre otras cosas, una "memoria fiscal", algo así como una linda RAM donde se van haciendo registros que solamente la autoridad de AFIP puede leer cuando quiera.
Para mandar a imprimir tienes que ajustarre a los comandos que vienes para ello, esto difiere según la marca claro. En mi caso, es una Hasar P300 y tiene una familia de comandos y, como ayuda, un OCX que simplifica las cosas.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #6  
Antiguo 03-08-2013
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Wink

Bueno, después de un tiempito he logrado dilucidar la cuestión.
Resulta que sí hay forma de enviar los importes en letras y observaciones a la fiscal (Hasar P330)
Un mail que me mandaron desde Hasar aclara un poco el panorama, a saber:


1. La impresora fiscal no soporta ningún comando que dado un monto, éste se imprima en palabras.
No en facturas u otros documentos fiscales, y tampoco en notas de crédito.
Sí ocurre en recibos "X".

En el caso de facturas o notas de crédito/débito, el texto a imprimir deberá ser generado por el software.
Debe manejarse como si se tratase de una leyenda cualquiera u observación (ver 2.)

2. En el documento existen dos áreas disponibles para la impresión de "observaciones":
- En el encabezado (líneas 3 a 5). Hasta 120 caracteres por línea.
- En el pie (líneas 11 a 14). También de hasta 120 caracteres cada una.

En ambos casos se debe recurrir al uso del comando 'SetHeaderTrailer' (ver "Manual de comandos" de la impresora fiscal).
Si utiliza el OCX, dicho comando se genera invocando a la propiedad 'Encabezado( )' -ver "Manual del OCX"-.

Las líneas de encabezado se deben enviar antes de abrir el comprobante. Las líneas de pie antes de cerrarlo.
Las líneas cargadas se mantienen en la memoria de la impresora fiscal (y se imprimirán automáticamente en cada nuevo comprobante) a menos que luego de cerrar el documento dichas líneas se eliminen (esto permite decidir si los textos serán fijos -el mismo en todos los documentos- o variables -cambia de un documento a otro, o se puede omitir-).

La eliminación se logra cargando las mismas líneas con un texto que tenga como único caracter al ASCII 127 decimal (DEL).

Ejemplo: String: comando = " ]∟11∟Texto en línea 11"
OCX: HASAR1.Encabezado(11) = "Texto en línea 11"


Todavía no he hecho las pruebas pertinentes pero, la compilación no me ha dado problemas. Cuando lleve el ejecutable y lo ponga donde está la fiscal y pruebe, les cuento.

Gracias.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #7  
Antiguo 03-08-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Gracias por compartirlo
Responder Con Cita
  #8  
Antiguo 10-08-2013
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Poder: 21
santiago14 Va por buen camino
Post

Bueno, después de largo tiempo pude completar el proceso.
Mando el código para poder poner el importe en letras y una observación en la parte de abajo de un comprobante fiscal (Factura A, B, Nota crédito A, B, Nota de débito A, B) La impresora es una Hasar P330.
En este caso es para una Factura B
Código Delphi [-]
{-------------------------------------------------------------------------------
  Procedure: tfrmPpal.poner_items_comprobante
  Author:    santiago
  DateTime:  09.08.2013 11:36:04
  Arguments: cod_egreso:Integer; ibconsulta:tmdoquery
  Result:    double. El subtotal del comprobante.
  Comentario: Ponemos los ítems en la impresora fiscal.
-------------------------------------------------------------------------------}
function tfrmPpal.poner_items_comprobante(cod_egreso:Integer; ibconsulta:TIBQuery):double ;
var
  total: Double;
begin
  total:=0;
//Recordar que la transacción se inicia fuera de este módulo
  Buscar_detalle_factura_A(IBConsulta, cod_egreso);
  with IBConsulta do
  begin
    first;
    while not eof do
    begin                //DESCR CANT MONTO IVA IMPUESTOS INTERNOS
      hasar1.ImprimirItem(FieldByName('nombre_existencia').AsString, FieldByName('cantidad_egreso').AsFloat,
        FieldByName('precio_final').AsFloat, FieldByName('porcentaje_alicuota').AsFloat, 0);
    // Added by santiago 10/06/2013 20:12:31 - Sumamos los ítems de las ventas (aquí están con iva)
      total:=total + (FieldByName('precio_final').AsFloat * FieldByName('cantidad_egreso').AsFloat);
      next;
    end;
    Result:=total;
  end;
end;

procedure TFrmPpal.abrir_fiscal(archivo_ini:string);
var
  ini:TIniFile;
  puerto:string;
begin
  try
  //Recuperamos los datos desde el archivo .ini
    ini:=abrirINI(archivo_ini);
    puerto:=leerINI(INI, 'fiscal', 'puerto');
    //pto_vta:=leerINI(ini, 'punto_vta', 'punto');
    //modelo:=leerINI(ini, 'fiscal', 'modelofiscal');
    cerrarINI(ini);
  //Es la parte de impresión
    Hasar1.Puerto:=StrToInt(puerto);
    Hasar1.Modelo:=MODELO_P330; //¿Será número 19?  // StrToInt(modelo);
    hasar1.Baudios:=9600;
  except
    raise;
  end;
end;

{-------------------------------------------------------------------------------
  Procedure: TFrmPpal.Descuento_general
  Author:    santiago
  DateTime:  02.08.2013 18:21:13
  Arguments: total, porcentaje_dto_recargoouble; texto_descuento:string
  Result:    Double. Devuelve el dto/recargo que hubo
  Comentario: Descuento general de los documentos fiscales
-------------------------------------------------------------------------------}
function TFrmPpal.Descuento_general(total, porcentaje_dto_recargo: Double;
  texto_descuento:string)ouble;
var
  en_negativo:Boolean;
  dto_recargoouble;
begin
  result:=0;
  en_negativo:=True;
  if Abs(porcentaje_dto_recargo) > 0 then
  begin
    en_negativo:=porcentaje_dto_recargo < 0;
    dto_recargo:=(Abs(porcentaje_dto_recargo) * total) / 100;
  /// TERCER PARAMETRO IDENTIFICA SI ES DESCUENTO O RECARGO. TRUE: DESCUENTO; FALSE: RECARGO;
    Hasar1.DescuentoGeneral(texto_descuento, dto_recargo, en_negativo);
    Result:=dto_recargo;
  end;
end;

{-------------------------------------------------------------------------------
  Procedure: TFrmPpal.borrar_cola_impresion
  Author:    santiago
  DateTime:  02.08.2013 18:10:15
  Arguments: nro_linea:Integer
  Result:    None
  Comentario: Borra el texto del pie de impresión del compprobante fiscal
-------------------------------------------------------------------------------}
procedure TFrmPpal.borrar_cola_impresion(nro_linea:Integer);
var
  snro_linea:string;
  fs, comando:WideString;
begin
  fs:=#28;
  snro_linea:=IntToStr(nro_linea);
  comando:=#93 + fs + snro_linea + fs + #127;
  Hasar1.Enviar(comando);
end;

{-------------------------------------------------------------------------------
  Procedure: TFrmPpal.observaciones
  Author:    santiago
  DateTime:  02.08.2013 18:02:01
  Arguments: texto_observaciones:string; nro_linea:Integer
  Result:    None
  Comentario: Mandamos las observaciones al comprobante fiscal
-------------------------------------------------------------------------------}
procedure TFrmPpal.observaciones_comprobante(texto_observaciones:string; nro_linea:Integer);
var
  snro_linea:string;
  fs, comando:WideString;
begin
  fs:=#28;
  snro_linea:=IntToStr(nro_linea);
  comando:=#93 + fs + snro_linea + fs + texto_observaciones;
  Hasar1.Enviar(comando);
end;

{-------------------------------------------------------------------------------
  Procedure: TFrmPpal.importe_letras
  Author:    santiago
  DateTime:  02.08.2013 17:46:59
  Arguments: total, dto_recargoouble; descuento:Boolean; nro_linea:integer
  Result:    None
  Comentario: Ponemos el importe en letras para los documentos
-------------------------------------------------------------------------------}
procedure TFrmPpal.importe_letras(total, dto_recargoouble; descuento:Boolean;
  nro_linea:integer);
var
  snro_linea:string;
  fs, comando:WideString;
begin
  fs:=#28;
  snro_linea:=IntToStr(nro_linea);
  total:=total_general(total, dto_recargo, descuento);
  comando:=#93 + fs + snro_linea + fs + 'SON PESOS: ' + NumeroToLetras_EstiloMoneda(total);
  //comando:=#93 + fs + '11' + fs + 'Cien pesos';
  Hasar1.Enviar(comando);
end;

{-------------------------------------------------------------------------------
  Procedure: TFrmPpal.formas_pago
  Author:    santiago
  DateTime:  02.08.2013 17:34:37
  Arguments: 
  Result:    None
  Comentario: Ponemos las formas de pago en la fiscal
-------------------------------------------------------------------------------}
procedure TFrmPpal.formas_pago(IBConsulta:TIBQuery; cod_egreso:Integer);
begin
//Imprimimos las formas de pago del cliente
  Buscar_formas_pago_cliente(IBConsulta, cod_egreso);
  with IBConsulta do
  begin
    First;
    while not Eof do
    begin
      hasar1.ImprimirPago(FieldByName('tipo_forma_cobro').AsString,
        FieldByName('monto_forma_cobro').AsFloat);
      Next;
    end;
  end;
end;

Código Delphi [-]
   //...
    abrir_fiscal(archivoINI);
    Hasar1.PrecioBase:=False; //TRUE: CON BASE IMPONIBLE; FALSE: CON PRECIO FINAL, IMPUESTOS INCLUIDOS
    Hasar1.Comenzar;
    Hasar1.TratarDeCancelarTodo;
   //.... 
    
    Hasar1.AbrirComprobanteFiscal(FACTURA_B);
  // Modified by santiago 09/08/2013 11:38:46 - Ponemos los ítems en la fiscal, nos
  // devuelve el subtotal
    total:=poner_items_comprobante(factura.cod_egreso, ibconsulta);
  // Added by santiago 10/06/2013 20:12:58 - Mandamos el descuento
    dto_recargo:=Descuento_general(total, porcentaje_dto_recargo, texto_descuento);
    hasar1.Subtotal(true);
  //Imprimimos las formas de pago del cliente
    formas_pago(IBConsulta, cod_egreso);
  // Added by santiago 01/08/2013 19:11:39 - Importe en letras
    importe_letras(total, dto_recargo, en_negativo, 11);
  // Added by santiago 01/08/2013 19:11:45 - Las observaciones
    observaciones_comprobante(observaciones, 12);
    Hasar1.CerrarComprobanteFiscal;
  //Me devuelve el nro de comprobante
    nro_egreso:=StrToInt(Hasar1.Respuesta[3]);
    registrar_numero_comprobante_egreso(nro_egreso, cod_egreso, IBConsulta);
  // Added by santiago 01/08/2013 19:11:53 - Borramos el importe en letras de la memoria fiscal
    borrar_cola_impresion(11);
  // Added by santiago 01/08/2013 19:11:57 - Borramos las observaciones de la memoria fiscal
    borrar_cola_impresion(12);
    Hasar1.Finalizar;
__________________
Uno es responsable de lo que hace y de lo que omite hacer.

Última edición por santiago14 fecha: 10-08-2013 a las 01:50:01.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cierres X y Z en fiscal Hasar SMH/P330 santiago14 Impresión 2 14-04-2019 23:10:11
Notas de crédito A y B Hasar SMH/P330 santiago14 Impresión 6 09-05-2018 16:18:24
Notas de débito A y B fiscal Hasar SMH/P330 santiago14 Impresión 0 30-04-2013 18:10:22
Facturas A y B en impresora fiscal Hasar SMH/P330 santiago14 Varios 1 30-04-2013 14:14:02
Cambiar color de las observaciones Parsec OOP 2 13-09-2006 16:52:01


La franja horaria es GMT +2. Ahora son las 04:58:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi