Autor Tema: Epson Fiscal TM-U220  (Leído 31882 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Epson Fiscal TM-U220
« Respuesta #45 en: Octubre 27, 2012, 10:02:18 pm »
Eso mismo iba a decir.
Otra cosa: ¿el artículo tiene impuestos internos y por eso enviás "1050" en el anteúltimo argumento?
Saludos.

pedroesca

  • Megabyte
  • ***
  • Mensajes: 206
  • Reputación: +19/-0
  • "El conocimiento es libre"
    • Ver Perfil
Re:Epson Fiscal TM-U220
« Respuesta #46 en: Octubre 29, 2012, 06:45:39 am »
JERONIMO: No tiene impuestos internos, el parámetro "1050" (Tasa de Acrecentamiento) lo dejé nada mas, ya que es ignorado actualmente por la impresora, pues hacía referencia cuando un Responsable Inscripto vende a un Responsable NO INSCRIPTO, y dicha categoría ya no existe (según RG1697 / ley 25865).
IVAN: GROSERO Y AVERGONZANTE error de mi parte, no se en que estaba pensando, y para colmo de males, no veía el error. Ya lo sé, soy un boludo a cuerdas, y ya me produje el correspondiente "autoflagelo", aunque se lo pedí a mi novia que lo ejecute ;)


La BASE IMPONIBLE se obtiene tal como lo definiste:

B.I.= P.V.P / (1 + (Tasa_IVA)) ' Asumiendo que la tasa ya está dividida sobre 100

Nota: P.V.P.: Precio de Venta al Público.

Cuando vuelva a mi casa, lo primero que haré será conectar la impresora fiscal e imprimir aproximadamente 100 facturas A para cerciorarme. Creo con eso estaría definida esa cuestión.

Gracias a todos por sus respuestas.
"Si yo tengo una idea, tú otra, y la compartimos, ambos tendremos DOS ideas"

Jeronimo

  • Gigabyte
  • ****
  • Mensajes: 402
  • Reputación: +33/-2
    • Ver Perfil
Re:Epson Fiscal TM-U220
« Respuesta #47 en: Octubre 29, 2012, 10:49:43 am »
Cuando vuelva a mi casa, lo primero que haré será conectar la impresora fiscal e imprimir aproximadamente 100 facturas A para cerciorarme. Creo con eso estaría definida esa cuestión...
Este post ya tiene más de un mes. Ojo porque el período de prueba de los controladores fiscales es de 30 días.
Saludos.

pedroesca

  • Megabyte
  • ***
  • Mensajes: 206
  • Reputación: +19/-0
  • "El conocimiento es libre"
    • Ver Perfil
Re:Epson Fiscal TM-U220
« Respuesta #48 en: Octubre 29, 2012, 11:04:23 am »
Si si! Esta ya es otra impresora, ya que la anterior la devolví justamente por ese motivo!
"Si yo tengo una idea, tú otra, y la compartimos, ambos tendremos DOS ideas"

greinoso

  • Bit
  • Mensajes: 2
  • Reputación: +0/-0
    • Ver Perfil
Re:Epson Fiscal TM-U220
« Respuesta #49 en: Abril 01, 2016, 11:10:58 am »
Hola gente! Interesante post... sólo que no consigo que me funcione la emisión de un Tique-Factura. Les comento mi problema:

Soy de Argentina y estoy desarrollando una aplicación en Visual Studio 2012 con C#. La misma consiste en un sistema de ventas de productos de un comercio, el cual debe permitir la emisión de comprobantes fiscales a través de una controladora fiscal EPSON TM-u220 AFII.

El detalle de una venta es registrado en la base de datos y se muestra a través de un DataGridView (grdDetalleVenta) presente en un formulario (frmDetalleVenta).

Al finalizar la carga del detalle de una determinada venta, la aplicación permite seleccionar el tipo de comprobante que se precisa emitir utilizando la controladora fiscal, a saber:

1. El vendedor puede elegir emitir un TIQUE (el cual consiste en una "Factura B" dirigido a algún "Consumidor Final")

2. El vendedor también podría elegir emitir un TIQUE FACTURA (el cual consiste en una "Factura A" dirigido a algún Responsable Inscripto).

En el proyecto he incorporado la referencia correspondiente del control IFEpson (EPSON_Impresora_Fiscal) y he arrastrado dicho control (de nombre axPrinterFiscal2) al formulario desde el cual deseo emitir los tique (tanto el "B" como el "A").

Ahora bien, para el primer caso, donde debo emitir un tique "B", no tengo inconvenientes en generar el comprobante de pago e imprimirlo desde la controladora Fiscal, para ello, el código utilizado es el siguiente:

                    if (Convert.ToInt16(cboTipoComprobante.SelectedValue) == 2) //TIQUE B
                    {
                        iva = "2100";
                        venta = "M";
                        bultos = "0";
                        ImpuestosInternos = "0";
                        printer = "P";
                        texto = "SUB";
                        pago = "Efectivo";
                        calculoMonto = Convert.ToDouble(txtTotal.Text);             //TextBox que tiene el Total de la Venta
                        calculoMonto = calculoMonto * 100;
                        monto = (calculoMonto).ToString();
                        descripcion = "T";
                        //Incorporo en el formulario un control IFEpson Fiscal, llamado "axPrinterFiscal2" (El cual esta disponible luego de agregar a mi proyecto el OCX Epson Fiscal)
                        axPrinterFiscal2.PortNumber = 3;  //Numero de Puerto al cual se encuentra conectado la controladora fiscal a mi PC
                        axPrinterFiscal2.BaudRate = "9600";
                        axPrinterFiscal2.OpenTicket(); //Abro un Tique, ya que el comprobante, para este caso, será del tipo "B"
                        //Recorro el DataGridView que contiene el detalle de la venta (Cantidad, Descripcion, Precio Unitario y Subtotal) para ir enviando los ítems de la venta al ticket (mediante la función axPrinterFiscal2.SendTicketItem)
                        for (int i = 0; i < grdDetalleVenta.Rows.Count; i++)
                        {
                            string sqlArticulo = "SELECT ISNULL(P.codigo + ' - ' + PE.nombre,'') FROM Producto P, Peso PE, DetalleVenta DV WHERE DV.idProducto=P.idProducto AND P.idPeso=PE.idPeso AND DV.idDetalleVenta=" + Convert.ToInt64(grdDetalleVenta.Rows[ i ].Cells[0].Value);
                            string articulo = producto.conocerCampoRegistro(cadena.cadenaConexion.ToString(), sqlArticulo, "Error al conocer el nombre del Artículo");
                            string sqlCantidad = "SELECT ISNULL(DV.cantidad,'') FROM DetalleVenta DV WHERE DV.idDetalleVenta=" + Convert.ToInt64(grdDetalleVenta.Rows[ i ].Cells[0].Value);
                            string cantidad = (Convert.ToDouble(producto.conocerCampoRegistro(cadena.cadenaConexion.ToString(), sqlCantidad, "Error al conocer el nombre del Artículo")) * 1000).ToString();
                            string sqlPrecioUnitario = "SELECT ISNULL(DV.precioUnitario,'') FROM DetalleVenta DV WHERE DV.idDetalleVenta=" + Convert.ToInt64(grdDetalleVenta.Rows[ i ].Cells[0].Value);
                            string precioUnitario = (Convert.ToDouble(producto.conocerCampoRegistro(cadena.cadenaConexion.ToString(), sqlPrecioUnitario, "Error al conocer el precio unitario del Artículo")) * 100).ToString();
                            string sqlSubtotal = "SELECT ISNULL(DV.subtotal,'') FROM DetalleVenta DV WHERE DV.idDetalleVenta=" + Convert.ToInt64(grdDetalleVenta.Rows[ i ].Cells[0].Value);
                            string subtotal = (Convert.ToDouble(producto.conocerCampoRegistro(cadena.cadenaConexion.ToString(), sqlSubtotal, "Error al conocer el subtotal del Detalle")) * 100).ToString();
                            axPrinterFiscal2.SendTicketItem(ref articulo, ref cantidad, ref precioUnitario, ref iva, ref venta, ref bultos, ref ImpuestosInternos);
                        }
                        //Una vez cargados todos los ítem que conforman la VENTA, agrego los subtotales del Tique y cierro el mismo
                        axPrinterFiscal2.GetTicketSubtotal(ref printer, ref texto);
                        axPrinterFiscal2.SendTicketPayment(ref pago, ref monto, ref descripcion);
                        axPrinterFiscal2.CloseTicket();
                    }
Para el segundo caso, donde debo emitir un tique factura "A", he intentado con el siguiente código, pero no consigo que la controladora imprima el tique factura:

                    //Declaro las variables que luego pasaré por referencia a las funciones de la Controladora Fiscal
                   
                        iva = "2100";
                        venta = "M";
                        bultos = "0";
                        ImpuestosInternos = "0";
                        printer = "P";
                        texto = "SUB";
                        pago = "PAGO";
                        calculoMonto = Convert.ToDouble(txtTotal.Text);
                        calculoMonto = calculoMonto * 100;
                        monto = (calculoMonto).ToString();
                        descripcion = "T";

                        string tipoDocumentoFiscal = "T";
                        string salidaImpresora = "C";
                        string letraFactura = "A";
                        string cantidadCopias = "1";
                        string tipoFormulario = "P";
                        string tipoLetra = "12";
                        string IVA_Emisor = "I";
                        string IVA_Comprador = "F";
                        string nombreCliente1 = nombreCliente; //Variable que contiene el nombre del cliente
                        string nombreCliente2 = razonSocialCliente; //Variable que contiene la razon social del cliente
                        string tipoDocumento = "CUIT";
                        string numeroDocumento = ClienteCUIT; //Variable que contiene el CUIT del cliente
                        string bienDeUso = "N";
                        string domicilioComprador1 = domicilioCliente; //Variable que contiene el Domicilio del cliente
                        string domicilioComprador2 = "";
                        string domicilioComprador3 = "";
                        string remito1 = "REM 1";
                        string remito2 = "REM 2";
                        string tipoTablaItem = "C";
                        axPrinterFiscal2.PortNumber = 2; //Nuevamente, el numero de puerto al cual se encuentra conectada la Controladora Fiscal
                        axPrinterFiscal2.BaudRate = "9600";

                        //Función que debería dar apertura a una factura A, la cual recibe los siguientes parámetros por referencia                       
                        axPrinterFiscal2.OpenInvoice(ref tipoDocumentoFiscal, ref salidaImpresora, ref letraFactura, ref cantidadCopias, ref tipoFormulario, ref tipoLetra, ref IVA_Emisor, ref IVA_Comprador, ref nombreCliente1, ref nombreCliente2, ref tipoDocumento, ref numeroDocumento, ref bienDeUso, ref domicilioComprador1, ref domicilioComprador2, ref domicilioComprador3, ref remito1, ref remito2, ref tipoTablaItem);
                        //LUEGO DE ESTA INSTRUCCIÓN NO HAY ACTIVDAD EN LA CONTROLADORA FISCAL

Alguna observación para hacerme y/o sugerencia acerca de cuál puede ser el error? O bien, alguna mejor forma de hacer lo que necesito? Entiendo que el numero de puerto indicado para la impresión del comprobante "A" es correcto, ya que utilizo el mismo para la impresión de los comprobantes "B", por lo que la comunicación con la Controladora Fiscal se realiza correctamente!
Desde ya, muchísimas gracias por su tiempo!!
« última modificación: Abril 01, 2016, 11:21:23 am por greinoso »

victorjrp

  • Bit
  • Mensajes: 1
  • Reputación: +0/-0
    • Ver Perfil
Re:Epson Fiscal TM-U220
« Respuesta #50 en: Abril 19, 2016, 09:12:46 am »
Hola Atodos !!!
Consulto si alguien me puede ayudar en: EPSON TM U220AFII 
Necesito generar notas de Debito y No puedo hacerlo, alguien me puede
indicar los comandos con las librerisas extendidas, en Epson el codigo ejemplo de Ticket Factura es
el siguiente
      '---------------------------
        ' Ticket-Factura
        '---------------------------
            'Open
            sCmd = Chr$(&HB) + Chr$(&H1)
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField(sCmd)
            ' sCmdExt = Chr$(&H0) + Chr$(&H0)
            ' NOTA DE DEBITO
            sCmdExt = Chr$(&H0) + Chr$(&H0)
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField(sCmdExt)
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField("Nombre Comprador #1")
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField("Nombre Comprador #2")
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField("Domicilio Comprador #1")
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField("Domicilio Comprador #2")
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField("Domicilio Comprador #3")
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField("T")
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField("30614104712")
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField("I")
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField("L¡nea de Remitos #1")
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField("L¡nea de Remitos #2")
            If bAnswer Then bAnswer = Me.EpsonFP.AddDataField("")
            If bAnswer Then bAnswer = Me.EpsonFP.SendCommand
            Call FPDelay
            If Me.EpsonFP.ReturnCode <> 0 Then ShowMsg
   
pero no se como usarlo para Ticket Debito, aun con las Extensiones no me responde nada...
Gracias a todos y Saludos
 

greinoso

  • Bit
  • Mensajes: 2
  • Reputación: +0/-0
    • Ver Perfil
Re:Epson Fiscal TM-U220
« Respuesta #51 en: Abril 29, 2016, 02:47:17 pm »
Hola Gente! Soy de Argentina y los contacto en busca de resolver un problema que se me presentó. Estoy desarrollando una aplicación en Visual Studio con C#. La misma permite la facturación de ventas de un determinado comercio implementando una controladora fiscal EPSON TM-U220 AFII. Dichos comprobantes de pago, pueden ser de dos tipos:
-Tique (o Comprobante B a algún consumidor final), o
-Tique-Factura (o Comprobante A a algún Responsable Inscripto)

La cuestión a tener en cuenta, es que los precios unitarios de cada artículo que comercializa el dueño del comercio YA TIENEN INCLUIDO EL IVA.
Suponiendo el siguiente ejemplo de una Venta Total de $75,00 debería poder obtener ambos comprobantes. Los cuales entiendo que tendrían que tener la siguiente forma:

1) COMPROBANTE B (o Tique)

---------------------------------------------------------------
Encabezado de Tique (Datos del Comercio)

A Consumidor Final
P:V: Nro.: 0001
Nro. T.                                            xxxxxxxx
Fecha xx/xx/xx                      Hora: xx:xx:xx

50,0000 x 1,5000
ARTICULO1                                        75,00

TOTAL                                    75,00
Su pago                                             75,00
Su vuelto                                             0,00
---------------------------------------------------------------






2) COMPROBANTE A (o Tique-Factura)


---------------------------------------------------------------
Encabezado de Tique-Factura (Datos del Comercio)

---------------------------------------------------------------
TIQUE FACTURA A                              Nro. T. xxxx-xxxxxxxx
                                                           Fecha xx/xx/xx
                                                           Hora: xx:xx:xx
---------------------------------------------------------------
Datos del Comprador
IVA Responsable Inscripto
---------------------------------------------------------------
Cant./Precio Unit. /
Descripcion
---------------------------------------------------------------
50.000x1.50
ARTICULO1                               (21.00)              75,00

NETO SIN IVA                                                      61,98                     

SUBTOT. IVA 21.00%                                          61,98                     
IVA  21.00%                                                        13,02                     

TOTAL de Ventas:                                        75,00

Suma de sus pagos                                             75,00
Su vuelto                                                               0,00
---------------------------------------------------------------

La pregunta es: ¿Cómo pasar los valores de la venta para obtener un Tique-Factura A como el mencionado en el ejemplo (recuerden que los articulos ya poseen el IVA incorporado en sus Precios Unitarios)?

Yo lo he intentado con el siguiente código:

Código: [Seleccionar]
 
            string iva = "2100";
            string venta = "M";
            string bultos = "0";
            string parametroVacio = "";
            string incremetoTasa = "1050";
            string ImpuestosInternos = "0";
            string printer = "P";
            string texto = "SUB";
            string pago = "PAGO";
            string articulo = "ARTICULO1";
            string cantidad = "50000";
            string precioUnitario = "150";
            axPrinterFiscal2.PortNumber = 1; //El numero de puerto al cual se encuentra conectada la Controladora Fiscal
            axPrinterFiscal2.BaudRate = "9600";

            axPrinterFiscal2.SendInvoiceItem(ref articulo, ref cantidad, ref precioUnitario, ref iva, ref venta, ref bultos, ref bultos, ref parametroVacio, ref parametroVacio, ref parametroVacio, ref incremetoTasa, ref ImpuestosInternos);
            axPrinterFiscal2.GetInvoiceSubtotal(ref printer);
            double divisor=1.21;
            calculoMonto = ((Convert.ToDouble(cantidad) / 1000) * (Convert.ToDouble(precioUnitario) / 100));
            double netoIVA = calculoMonto / divisor;

            string monto = netoIVA.ToString();
            axPrinterFiscal2.SendInvoicePayment(ref pago, ref monto, ref tipoDocumentoFiscal);
            axPrinterFiscal2.CloseInvoice(ref tipoDocumentoFiscal, ref letraFactura, ref parametroVacio);

pero observarán que no obtengo los resultados esperados, ya que :
 


ya que no me discrimina el valor del IVA al monto total de la venta, sino que lo suma a dicho monto, por lo que el TOTAL termina siendo otro, y no los $75,00 de la venta que propuse como ejemplo.
Desde ya, se agradece cualquier aporte!! Saludos.-
« última modificación: Abril 29, 2016, 03:22:26 pm por greinoso »

falken0001

  • Bit
  • Mensajes: 2
  • Reputación: +0/-0
    • Ver Perfil
Re:Epson Fiscal TM-U220
« Respuesta #52 en: Diciembre 01, 2016, 02:17:45 pm »
Hola, tengo problemas al enviar un ticket desde vb6, el comando que uso es el siguiente:
printerfiscal1.sendticketitem("text2","text3","text4","2100","M","0","0","0")
el error me dice que no es un valor declarado y me marca sendticketitem, pero cuando uso:
printerfiscal1.sendnofiscaltext("text2","text3","text4","2100","M","0","0","0") imprime sin ningun problema, obviamente que abro el ticket de la forma que corresponde dependiendo del caso, osea, printerfiscal1.openticket("G) para el ticket fiscal y printerfiscal1.opennofiscal para el otro caso. en que le estoy errando?

derman

  • Bit
  • Mensajes: 1
  • Reputación: +0/-0
    • Ver Perfil
Re:Epson Fiscal TM-U220
« Respuesta #53 en: Agosto 12, 2019, 04:41:25 pm »
Buenos dias amigo,
estoy trabajando exactamente esta casuística con la componente OCX de Epson con una tickeadora fiscal Epson TM-U220.

El problema que tengo es que al enviar en un Ticket "A" en el metodo SendInvoiceItem un importe fijo de impuestos internos, la libreria OCX me arroja un error B640, que no puedo encontrar en ningun lado que significa. Si en el campo de impuestos internos fijo envio un cero, entonces se imprime normal el ticket pero no salen los impuestos iternos (sale CONCEPTOS NO GRAVADOS 0,00)

Como deben enviarse los impuestos internos fijos que ya tengo previamente calculado en la operacion que quiero imprimir??

Me podran dar una mano?


PrinterFiscal1.SendInvoiceItem("ARTICULO 1", "1000", "5000", "2100", "M", "2", "", "", "", "", "0", "3400")

Si en lugar de 3400 ($34,00) envio un 0, el ticket sale impreso, aunque sin impuestos internos.
Si lo envio tal como figura el codigo que puse arriba, la librería arroja un error B640 que no se que significa pero que hace abortar la operación (tengo que apagar y encender la impresora porque queda una operación inconclusa)


Desde ya muchas gracias!!

Diego
diego.roque@gmail.com