Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

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 21:39:40.
Responder Con Cita
  #2  
Antiguo 25-10-2007
ptt ptt is offline
Miembro
 
Registrado: May 2003
Posts: 60
Poder: 16
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 23: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: 16
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: Apr 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: 12
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
  #7  
Antiguo 18-04-2009
mariano_9 mariano_9 is offline
Registrado
 
Registrado: Apr 2007
Posts: 8
Poder: 0
mariano_9 Va por buen camino
Hola Luis

Yo trabajé hace un tiempo con esos controladores. Recuerdo que me fue complicado conseguir la dll pero la encontré en la web.
(Voy a ver si encuentro la info y te la envío)
Lo que si te puedo dejar es un ejemplo de como crear el objeto e instanciarlo para poder hacer una factura A


pruebaControlador := CreateComObject( CLASS_PrinterFiscal ) as _PrinterFiscalDisp;
pruebaControlador.PortNumber := 1;
pruebaControlador.BaudRate := '9600';

///Factura A///

//esto abre la factura
PruebaControlador.OpenInvoice('F', 'C', 'A', '1', 'P', '12',
'I', 'I', 'Nombre1', '-', 'CUIT', '33708116828',
'N', 'DomComprador1', 'DomComprador2', 'DomComprador3', '001', '001', 'C');

//imprime un item
PruebaControlador.SendInvoiceItem('Descripcion', '1000', '1', '21', 'M',
'1', '0', 'DescripExt1', 'DescripExt2', 'DescripExt3', '10.50', '0');

//cierra la factura
PruebaControlador.CloseInvoice('f', 'A', 'se cerro sin problemas');
Responder Con Cita
  #8  
Antiguo 18-04-2009
mariano_9 mariano_9 is offline
Registrado
 
Registrado: Apr 2007
Posts: 8
Poder: 0
mariano_9 Va por buen camino
Mas info y dirección de contacto.. espero ayude..

Hola!

Acá encontré la dirección que yo contactaba y acá te pego un ejemplo de lo que me respondieron para nota de crédito.
De ésta manera ya tienes un ejemplo de factura A y de Nota de Crédito
(No soy de responder muy seguido porque no estoy trabjando mas en desarrollo, pero en cuanto pueda entraré de nuevo para ver como te fue)

usted consultó: Estoy programando sobre un
controlador epson lx-300f+ y no se que funcion usar para hacer una nota de
credito ni que parametros pasarle. les escribo a este lugar q es solo para
impresoras porque no encontré un grupo para controladores ni este modelo.
espero puedan responderme a la brevedad. muchas gracias


es por esta consulta que le envío un ejemplo para realizar notas de credito.

ABRIR NOTA DE CREDITO

abrenotacredito = Me.PrinterFiscal1.OpenInvoice("F", "C", "A", "1", "F", "17", "I", "I", "Nombre comercial 1", "Nombre comercial 2", "CUIT", "30614104712", "N", "Domicilio 1", "Domicilio 2", "Domicilio 3", "Remitos 1", "Remitos 2", "C")

ENVIAR ITEM PARA NOTA DE CREDITO

item = Me.PrinterFiscal1.SendInvoiceItem("Descripcion 1", "00001000", "00000000200", "2100", "M", "00000", "00000000", "Descripcion 1", "Descripcion 2", "Descripcion 3", "0000", "000000000000000")

CERRAR NOTA DE CREDITO

cierraticket = Me.PrinterFiscal1.CloseInvoice("N", "A", "")


Ante cualquier otra consulta no dude en volver a comunicarse con nosotros.
Saludos cordiales,

Atte.

Maximiliano Aringoli
Soporte Técnico
EPSON ARGENTINA S.R.L.
011-5167-0300
soporte_tecnico_argentina@epson.com.ar

Responder Con Cita
  #9  
Antiguo 20-04-2009
luis vazquez luis vazquez is offline
Miembro
 
Registrado: Oct 2007
Posts: 53
Poder: 12
luis vazquez Va por buen camino
Talking Gracias

muchas gracias por sus ayuda, ya epson me envio los ocx y dll, voy a subirlos a mi espacio para ponerlos a la dispocision de los programadores delphis, enm cuanto lo tenga envio la direscion
Responder Con Cita
  #10  
Antiguo 24-04-2013
ingmichel ingmichel is offline
Miembro
 
Registrado: Jun 2007
Posts: 137
Poder: 12
ingmichel Va por buen camino
Ayuda

Hola, me puedes facilitar el ocx y dll para delphi por favor ?, necesito imprimir en una impresora fiscal epson y necesito esos ocx ya que solo aparecen para vb6 y tambien por favor si me puedes enviar un ejemplo de como hacer una impresion, gracias de antemano...

Cita:
Empezado por luis vazquez Ver Mensaje
muchas gracias por sus ayuda, ya epson me envio los ocx y dll, voy a subirlos a mi espacio para ponerlos a la dispocision de los programadores delphis, enm cuanto lo tenga envio la direscion
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 14:41:05
Impresora Fiscal Epson TM-U220A vhr Impresión 2 13-08-2006 07:30:03
Impresora fiscal Epson TMU220A martinc5 Impresión 3 03-06-2006 02:48:18
OCX para impresora fiscal Epson TM2000AF+ macu1975 Impresión 1 19-05-2004 18:50:31


La franja horaria es GMT +2. Ahora son las 16:46:36.


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