Ver Mensaje Individual
  #1  
Antiguo 25-10-2007
Carlos Lesca Carlos Lesca is offline
Miembro
 
Registrado: sep 2005
Posts: 31
Reputación: 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