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 25-10-2007
Carlos Lesca Carlos Lesca is offline
Miembro
 
Registrado: sep 2005
Posts: 31
Poder: 0
Carlos Lesca Va por buen camino
Impresora Fiscal Epson LX-300F

Hola Gente.

Les cuento un poco. Hace bastante he trabajado con impresoras Hasar y realmente son espectaculares. Muy claros los manuales, claros las funciones del OCX y un par de consultas que hice desde la pagina, me respondieron espectacularmente a mi mail.

El tema es que tengo que hacerlo para una LX-300F de Epson. Utilizo el OCX y no paso del encabezado.

Aclaro que es un engendro, por que?, Es una aplicacion Web, que devuelve un XML en cual levanto en Delphi y mando a imprimir a la impresora fiscal.

Aca les dejo el codigo de delphi y abajo el ejemplo del XML, que por ahi es donde le estoy errando.

Código Delphi [-]
procedure TfmPrincipal.DBImprimirFAC;
var   
Respuesta : Boolean;   
PRECIO : WideString;   
DESCRIPCION : WideString;   
iVA : WideString;   
CANTIDAD : WideString;   
TIPO_ITEM : WideString;    
TipoComprobante,   
TipoSalidaHoja,   
LetraDocumento,   
CantidadCopias,   
TipoFormulario,   
TamCaracter,   
IVAComprador,   
NombreComp1,   
NombreComp2,   
DocumentoCompTipo,   
DocumentoCompNro,   
BienDeUso,   
DomicilioComp1,   
DomicilioComp2,   
DomicilioComp3,   
Remito1,   
Remito2,   
Aux,   
NroComprobanteEmitido,   
AuxVacio       : WideString;   

begin   
FlagImprimir := TRUE;    

if modelo = 'TM' then TipoComprobante   := 'T' // Ticket
  else TipoComprobante := 'F';
  TipoSalidaHoja    := 'C'; // formulario Continuo
  LetraDocumento    := cdsEncabezadoLetra.AsString;
  CantidadCopias    := cdsEncabezadoCopias.AsString;
  TipoFormulario    := 'F'; // La impresora NO imprime las lineas de los marcos (P para que imprima)
  TamCaracter       := '12';
  IVAComprador      := cdsEncabezadoCompradorIva.AsString;
  NombreComp1       := cdsEncabezadoCompradorNombre1.AsString;
  NombreComp2       := #127; //cdsEncabezadoCompradorNombre2.AsString;
  DocumentoCompTipo := cdsEncabezadoCompradorTipoDoc.AsString;
  DocumentoCompNro  := cdsEncabezadoCompradorNroDoc.AsString;
  BienDeUso         := 'N';
  DomicilioComp1    := cdsEncabezadoCompradorDomicilio1.AsString;
  DomicilioComp2    := #127; //cdsEncabezadoCompradorDomicilio2.AsString;
  DomicilioComp3    := #127; //cdsEncabezadoCompradorDomicilio3.AsString;
  Remito1           := #127; //cdsEncabezadoRemito1.AsString;
  Remito2           := #127; //cdsEncabezadoRemito2.AsString;
  Aux               := 'G';  // Estaba C
  AuxVacio          := #127;

  respuesta := PrnFisc.OpenInvoice(  TipoComprobante,  // 1
                        TipoSalidaHoja,   // 2
                        LetraDocumento,   // 3
                        CantidadCopias,   // 4
                        TipoFormulario,   // 5
                        TamCaracter,      // 6
                        AuxVacio,         // 7  ** solo para que ande, despues toma el valor de la memoria de la impresora **
                        IVAComprador,     // 8
                        NombreComp1,      // 9
                        NombreComp2,      // 10
                        DocumentoCompTipo,// 11
                        DocumentoCompNro, // 12
                        BienDeUso,        // 13
                        DomicilioComp1,   // 14
                        DomicilioComp2,   // 15
                        DomicilioComp3,   // 16
                        Remito1,          // 17
                        Remito2,          // 18
                        Aux               // 19
                      );

  Aux := '0';

  if respuesta then   begin     cdsDetalle.First;     while not cdsDetalle.Eof do     begin       DESCRIPCION := cdsDetalleDescripcion.AsString;       PRECIO      := cdsDetallePrecio.AsString;       IVA         := cdsDetalleIva.AsString;       TIPO_ITEM   := cdsDetalleTipoItem.AsString;       CANTIDAD    := cdsDetalleCantidad.AsString;        respuesta := PrnFisc.SendInvoiceItem ( DESCRIPCION,                               CANTIDAD,                               PRECIO,                               IVA,                               TIPO_ITEM,                               AUX,                               AUX,                               AuxVacio,                               AuxVacio,                               AuxVacio,                               Aux,                               Aux                           );       if not respuesta then  raise Exception.Create('ERROR AL IMPRIMIR ITEM');
      cdsDetalle.Next;
    end;

    AUX := 'P';
    DESCRIPCION := 'SUBTOTAL';
    RESPUESTA := PrnFisc.GetInvoiceSubtotal(AUX,DESCRIPCION);
    if not respuesta then  ShowMessage('ERROR DE IMPRESION DE SUBTOTAL');


    DESCRIPCION := 'DESCUENTO';
    PRECIO      := cdsEncabezadoDescuento.AsString;
    TIPO_ITEM   := 'D';
    RESPUESTA := PrnFisc.SendInvoicePayment( DESCRIPCION,
                                PRECIO,
                                TIPO_ITEM);
    if not respuesta then  raise Exception.Create('ERROR AL IMPRIMIR DESCUENTO');

    DESCRIPCION := 'PAGO';
    PRECIO      := cdsEncabezadoPago.AsString;
    TIPO_ITEM   := 'T';
    RESPUESTA := PrnFisc.SendInvoicePayment( DESCRIPCION,
                                PRECIO,
                                TIPO_ITEM);
    if not respuesta then  raise Exception.Create('ERROR AL IMPRIMIR PAGO');


    DESCRIPCION := 'TOTAL:';
    respuesta := PrnFisc.CloseInvoice(TipoComprobante,LetraDocumento,DESCRIPCION);
    if not respuesta then  raise Exception.Create('ERROR AL CERRAR EL COMPROBANTE. EL COMPROBANTE QUEDO ABIERTO Y NO SE GUARDO. (Cancelar Todo)');

    // aca tengo que obtener el nro de la factura que se imprimio para pasarlo
    // despues a la tabla de encabezado
     NroComprobanteEmitido := PrnFisc.AnswerField_3;      GuardarFactura2(StrToInt(NroComprobanteEmitido),'FAC');
  end   else     raise Exception.Create('VERIFIQUE EL ESTADO DE SU IMPRESORA');

  FlagImprimir := FALSE;

end;

Este es el XML

<?xml version="1.0"?>
<!DOCTYPE COMPROBANTE>

<COMPROBANTE>
<TIPO>FAC</TIPO>
<LETRA>B</LETRA>
<COPIAS>1</COPIAS>
<COMPRADOR>
<IVA>R</IVA>
<NOMBRE1>Lesca Carlos</NOMBRE1>
<NOMBRE2></NOMBRE2>
<TIPODOC>CUIT</TIPODOC>
<NRODOC>23171793149</NRODOC>
<DOMICILIO1>UN DOMICILIO</DOMICILIO1>
<DOMICILIO2>OTRO DOM</DOMICILIO2>
<DOMICILIO3>EXTRA</DOMICILIO3>
</COMPRADOR>
<FACTURAS_AFECTADAS>
<FAC1></FAC1>
<FAC2></FAC2>
</FACTURAS_AFECTADAS>
<REMITOS>
<REM1></REM1>
<REM2></REM2>
</REMITOS>
<ITEMS>
<ITEM CANTIDAD="1" PRECIOUNITARIO="11" IVA="10.5" TIPO="M">DESCRIPCION 01</ITEM>
<ITEM CANTIDAD="2" PRECIOUNITARIO="12" IVA="10.5" TIPO="M">DESCRIPCION 02</ITEM>

</ITEMS>
<PAGOS>
<PAGO IMPORTE="100" TIPO="T">DESCRIPCION</PAGO>
<PAGO IMPORTE="10" TIPO="D">DESCRIPCION</PAGO>
</PAGOS>
</COMPROBANTE>


Mil Gracias a todos.

Última edición por Carlos Lesca fecha: 25-10-2007 a las 20:39:40.
Responder Con Cita
  #2  
Antiguo 25-10-2007
ptt ptt is offline
Miembro
 
Registrado: may 2003
Posts: 60
Poder: 22
ptt Va por buen camino
Cual es el error ?
En que momento acurre ?
Es por un estado de la impresora o es de programacion ?
Hasta donde llega el comprobante ?
Abre la factura ?
Imprime una venta ?
O es que no cierra ?

Mandá mas datos para poder saber que pasa !!

______________
Saludos.
__________________
Saludos.

Última edición por ptt fecha: 25-10-2007 a las 22:35:23.
Responder Con Cita
  #3  
Antiguo 26-10-2007
Carlos Lesca Carlos Lesca is offline
Miembro
 
Registrado: sep 2005
Posts: 31
Poder: 0
Carlos Lesca Va por buen camino
Cita:
Empezado por ptt Ver Mensaje
Cual es el error ?
En que momento acurre ?
Es por un estado de la impresora o es de programacion ?
Hasta donde llega el comprobante ?
Abre la factura ?
Imprime una venta ?
O es que no cierra ?

Mandá mas datos para poder saber que pasa !!

______________
Saludos.
Momento: Cuando intento abrir un comprobante, en el openinvoice. Directamente devuelve falso la respuesta del controlador y no abre el comprobante, despues imprime la anulacion del mismo.

creo que el resto esta respondido porque no abre el comprobante directamente.

Aprobecho y pregunto otra cosa. El tema de los descuentos cuando se hace el pago. Va el importe y el tipo es "D". Eso va antes de un tipo "T" que es el pago?, o es indistinto, porque estuve haciendo algunas pruebitas por otro lado (batch directo) y logre que imprima pero me da error en ese punto. El error es que no puede realizar la impresion del pago/descuento.

Muchas gracias nuevamente.
Responder Con Cita
  #4  
Antiguo 29-10-2007
ptt ptt is offline
Miembro
 
Registrado: may 2003
Posts: 60
Poder: 22
ptt Va por buen camino
Proba poniendo I en el campo 7 si es Responsable Inscripto, si estas en modo entrenamiento es obligatorio este campo.
Si es factura B poné a un consumidor final F en el campo 8.
Estos son los errores que veo, yo no utilizo el OCX pero debe haber alguna forma de que te devuelva una respuesta mas amplia que verdadero o falso, el protocolo informa el campo que está mal en la respuesta.
Además no te olvides que se debe hacer un cierre Z después de 24 hs de abierta la jornada fiscal, si no se hace la impresora da error a todos los comandos.
Una vez ingresado un pago 'T' no se aceptan mas descuentos 'D' ni recargos 'R'

Espero haberte sido de utilidad.

______________
Saludos.
__________________
Saludos.
Responder Con Cita
  #5  
Antiguo 05-03-2008
mariano_9 mariano_9 is offline
Registrado
 
Registrado: abr 2007
Posts: 8
Poder: 0
mariano_9 Va por buen camino
Probá cambiando de parametro xq no soporta ticket

Te comento que yo estoy usando ese controlador y pude facturar pero no poniendo T sino F

if modelo = 'TM' then TipoComprobante := 'T' // Ticket

en esta linea yo pondria 'F' de factura.

Fijate si asi te funciona. sino busca otro hilo que hice yo donde hay un ejemplo completo de una impresion de factura A.

Si queres imprimir Ticket este controlador no lo soporta. fijate en el pruf y vas a ver que lo tenes deshabilitado para ese modelo.

Un abrazo y suerte!!
Responder Con Cita
  #6  
Antiguo 18-04-2009
luis vazquez luis vazquez is offline
Miembro
 
Registrado: oct 2007
Posts: 53
Poder: 17
luis vazquez Va por buen camino
Thumbs up urgente por favor ocx

buenas estoy realizando un programa de facturacion hasta ahora he trabajando con impresoras BMC FISCALES y me ha funcionado todo bien, pero tengo un cliente con una epson Lx300F nesecito los controladores ocx y los dll para cargarlos a mi programa en delphis 6, pero no los consigo, me conecte a la epson y me inscribi pero no me envian los drivers solo dice que enviaran un link para que los baje pero nunca llega, podrias facilitarme los ocx y dll POR FAVOR Y SI FUERA POSIBLE UN EJEMPLO EN CODIGO DE UNA FACTURA FISCAL, GRACIAS POR ADELANTADO.
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
Error ocx impresora fiscal epson (argentina) !!! fabito Varios 3 27-01-2009 13:41:05
Impresora Fiscal Epson TM-U220A vhr Impresión 2 13-08-2006 06:30:03
Impresora fiscal Epson TMU220A martinc5 Impresión 3 03-06-2006 01:48:18
OCX para impresora fiscal Epson TM2000AF+ macu1975 Impresión 1 19-05-2004 17:50:31


La franja horaria es GMT +2. Ahora son las 11:50:00.


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