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 21-01-2019
nicodel nicodel is offline
Registrado
 
Registrado: nov 2012
Posts: 6
Poder: 0
nicodel Va por buen camino
Impresora fiscal epson tmu220af problema con "CONCEPTOS NO GRAVADOS"

Hola Buenas Tardes espero me puedan ayudar. Estoy programando un controlador fiscal epson tmu220af para una estacion de servicios y tengo un problema con los impuestos internos. En el metodo SendInvoiceItem() le paso el valor del impuesto como impuestos internos fijos y el precio se lo paso con el imp. int. restado ya, pero no me lo calcula y no aparece la leyenda CONCEPTOS NO GRAVADOS. Esa el la manera correcta de calcular los impuestos internos o hay otro metodo? Desde ya muchas gracias. Saludos
Responder Con Cita
  #2  
Antiguo 22-01-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
se necesita mas informacion, pon algo del codigo
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 23-01-2019
nicodel nicodel is offline
Registrado
 
Registrado: nov 2012
Posts: 6
Poder: 0
nicodel Va por buen camino
Ahi va parte del codigo para un tique factura A


PrinterFiscal1.PortNumber:= Form1.puerto_fiscal;
PrinterFiscal1.BaudRate:= '9600';



(abre el tique factura)
PrinterFiscal1.OpenInvoice(tipo_doc2, salida, letra , cant_copias, tipo_form, tipo_letra, resp_iva_em, resp_iva_com, nom_comp, nom_comp2, tipo_doc_comp, num_doc, bien_de_uso,domicilio1, domicilio2, domicilio3, num_remito1, num_remito2, tipo_item);



(envio un item, en este metodo se envia como ultimo parametro los impuestos internos fijos por ej. $7 para un litro de nafta)

PrinterFiscal1.SendInvoiceItem(descripcion, precio, cantidad, iva, calificador, cant_bultos, imp_int_por, descripcion2, descripcion3, descripcion4, tasa_acrecentamiento, imp_int_fijos);


(imprime el subtotal)

PrinterFiscal1.GetInvoiceSubtotal('P', '');

//envia un pago
PrinterFiscal1.SendInvoicePayment(texto_pago, importe_pago, descripcion_pago);


cierra tique factura
PrinterFiscal1.CloseInvoice(tipo_doc2, letra, texto);





El código funciona bien pero no discrimina los impuestos internos
el precio que le envio es: (precio - impuestos internos) / 1.21 (cuando iva = 21%)
y los impuestos internos: impuestos internos * cantidad de articulos del item


Esos impuestos deberian aparecer como CONCEPTOS NO GRAVADOS en el tique.

Desde ya muchas gracias.
Responder Con Cita
  #4  
Antiguo 23-01-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
pienso que el problema esta en el calculo, porque al imprimir no generas ningun procedimiento
coloca el codigo del calculo
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 23-01-2019
nicodel nicodel is offline
Registrado
 
Registrado: nov 2012
Posts: 6
Poder: 0
nicodel Va por buen camino
Gracias por responder. Este seria el codigo completo

Código Delphi [-]
if Edit11.Text = 'A' then   //****** si es factura A
                            begin
                                //tipo_doc2:= 'T';

                              if RzRadioButton3.Checked = true then
                               tipo_doc2:= 'T'
                              else
                                 if RzRadioButton4.Checked = true then
                                  tipo_doc2:= 'M'
                                 else
                                    if RzRadioButton5.Checked = true then
                                     tipo_doc2:= 'D';

                                salida:= 'C';
                                letra:= 'A'; //deacuerdo a la condicion de iva del cliente
                                cant_copias:= '1';
                                tipo_form:= 'P';
                                tipo_letra:= '12';
                                resp_iva_em:= 'I';
                                resp_iva_com:= 'I'; //deacuerdo a la condicion de iva del cliente
                                nom_comp:= RzDBLabel1.Caption;
                                nom_comp2:= '';
                                tipo_doc_comp:= 'CUIT'; //deacuerdo a la condicion de iva del cliente
                                num_doc:= RzButtonEdit1.Text;
                                bien_de_uso:= 'N';
                                domicilio1:= RzDBLabel2.Caption;
                                domicilio2:= '';
                                domicilio3:= '';
                                num_remito1:= 'R1';
                                num_remito2:= 'R2';
                                tipo_item:= 'G';


                                //datos del documento
                                PrinterFiscal1.PortNumber:= Form1.puerto_fiscal;
                                PrinterFiscal1.BaudRate:= '9600';

                                PrinterFiscal1.OpenInvoice(tipo_doc2, salida, letra , cant_copias, tipo_form, tipo_letra, 
 resp_iva_em, resp_iva_com, nom_comp, nom_comp2, tipo_doc_comp,
                                                            num_doc, bien_de_uso,domicilio1, domicilio2, domicilio3, num_remito1, num_remito2, tipo_item);

                                //------------------------------------------------------------------------------------------

                                calificador:= 'M';
                                cant_bultos:= '0';
                                imp_int_por:= '0';
                                descripcion2:= '';
                                descripcion3:= '';
                                descripcion4:= '';
                                tasa_acrecentamiento:= '0';



                                ClientDataSet1.DisableControls;
                                ClientDataSet1.First;
                                while ClientDataSet1.Eof = false do
                                 begin
                                    cant:= RoundTo(ClientDataSet1.FieldByName('cantidad').AsFloat, -2);
                                    descripcion:= Copy(ClientDataSet1.FieldByName('descripcion').AsString, 1, 20);
                                    cantidad:= FloatToStr(cant * 100);
                                    iva:= FloatToStr(ClientDataSet1.FieldByName('iva').AsFloat * 100);

                                    precio_si:= ClientDataSet1.FieldByName('precio').AsFloat -     ClientDataSet1.FieldByName('val_imp_interno').AsFloat;


                                    if ClientDataSet1.FieldByName('iva').AsFloat = 21.00 then
                                     precio_si:= precio_si / 1.21
                                    else
                                       precio_si:= precio_si / 1.105;


                                    precio:= FloatToStr(RoundTo(precio_si * 1000 , 0));

                                    if ClientDataSet1.FieldByName('val_imp_interno').AsFloat <> 0.00 then
                                     begin
                                       imp_int:= ClientDataSet1.FieldByName('val_imp_interno').AsFloat;
                                       imp_int_fijos:= FloatToStr(RoundTo(imp_int * cant, 2) * 100);
                                     end
                                    else
                                       imp_int_fijos:= '0';

                                    //envia un item (aclaracion: paso primero precio y despues cantidad por una cuestion de redondeo, da un poco mas exacto)
                                    PrinterFiscal1.SendInvoiceItem(descripcion, precio, cantidad, iva, calificador, cant_bultos, 
 imp_int_por, descripcion2, descripcion3, descripcion4, tasa_acrecentamiento, imp_int_fijos);

                                    ClientDataSet1.Next;
                                 end;
                                 ClientDataSet1.EnableControls;


                                if RzRadioButton1.Checked = true then
                                 texto_pago:= 'Contado'
                                else
                                   if RzRadioButton2.Checked = true then
                                    texto_pago:= 'Cuenta Corriente';


                                subtotal1:= 'P';
                                subtotal2:= '';
                                PrinterFiscal1.GetInvoiceSubtotal(subtotal1, subtotal2);

                                descripcion_pago:= 'T';
                                importe_pago:= FloatToStr(StrToFloat(RzLabel12.Caption) * 100);

                                //envia un pago
                                PrinterFiscal1.SendInvoicePayment(texto_pago, importe_pago, descripcion_pago);

                                //----------------------------------------------------------------------------------------------

                                texto:= '';
                                //cierra el documento
                                PrinterFiscal1.CloseInvoice(tipo_doc2, letra, texto);
                            end;

Última edición por dec fecha: 23-01-2019 a las 09:35:51. Razón: Poner etiquetas DELPHI
Responder Con Cita
  #6  
Antiguo 04-07-2019
derman derman is offline
Registrado
 
Registrado: jul 2019
Posts: 3
Poder: 0
derman Va por buen camino
Cita:
Empezado por nicodel Ver Mensaje
Gracias por responder.
Estimado,como te va? Vos sabes que tengo exactamente el mismo problema con mi codigo, que por cierto es casi identico al tuyo, solo que en VB6... y en el comando SendInvoiceItem le mando como ultimo parámetro un importe correspondiente a impuestos internos fijo pero no sale en el ticket.

Vos lo resolviste? como?

Gracias por tu tiempo.

Última edición por Casimiro Notevi fecha: 04-07-2019 a las 20:18:53.
Responder Con Cita
  #7  
Antiguo 26-08-2019
nicodel nicodel is offline
Registrado
 
Registrado: nov 2012
Posts: 6
Poder: 0
nicodel Va por buen camino
Epson

Hola Derman lo solucione de esta manera:


if ClientDataSet1.FieldByName('val_imp_interno').AsFloat <> 0.00 then
begin
imp_int:= ClientDataSet1.FieldByName('val_imp_interno').AsFloat;
imp_int_fijos:= FloatToStr(RoundTo(imp_int * 100000000, 0));
end
else
imp_int_fijos:= '00000000';




Se multiplica el valor de impuestos internos por 10 millones ya que el controlador funciona de esa manera.


Cantidad * 1.000
Iva * 100
imp. int * 10.000.000


Perdon por la demora.
Espero te sirva. Saludos
Responder Con Cita
  #8  
Antiguo 27-08-2019
derman derman is offline
Registrado
 
Registrado: jul 2019
Posts: 3
Poder: 0
derman Va por buen camino
Hola Nico, gracias por responder!

Me sirve tu respuesta, para cotejar justamente que probando y probando llegue a descubrir que el importe de Imp. Internos habia que mandarlo con 8 decimales. En ningun manual de la libreria ni de Epson encontrè esa info, y casi que lo descubri por error probando y probando.

Ahora tengo otro problema, y este si que ni idea a que se debe... cuando mando a imprimir 2 items con impuestos internos, la libreria me aborta la operaciòn con Error B640 el metodo CloseInvoice.

Tenès ideas de este error?? Alguna vez te paso?? Tenes algun manual PDF de este tipo de errores?

Gracias nuevamente y espero tu respuesta.

Saludos!
Responder Con Cita
  #9  
Antiguo 29-08-2019
nicodel nicodel is offline
Registrado
 
Registrado: nov 2012
Posts: 6
Poder: 0
nicodel Va por buen camino
Hola derman la verdad nunca me paso eso. Fijate que al comando de cierre le estes pasando los parametros correctos con respecto al comando de apertura, porque no me parece que el error este en el impuesto interno. Subi si queres el codigo asi se puede detectar el problema viendolo. Saludos.
Responder Con Cita
  #10  
Antiguo 29-08-2019
derman derman is offline
Registrado
 
Registrado: jul 2019
Posts: 3
Poder: 0
derman Va por buen camino
Cita:
Empezado por nicodel Ver Mensaje
Hola derman la verdad nunca me paso eso. Fijate que al comando de cierre le estes pasando los parametros correctos con respecto al comando de apertura, porque no me parece que el error este en el impuesto interno. Subi si queres el codigo asi se puede detectar el problema viendolo. Saludos.
nico, gracias por responder.
probando y probando y probando, llegue a la conclusion que el error se emite porque se supera el importe máximo de operaciones que tiene configurado la fiscal, que es de $ 10.000.
Averigue tambien que ese parámetro esta grabado en el equipo junto con el resto de la configuración, y que en el año 2014 AFIP saco una resolución para eliminar dicho monto tope de operacion, así que ahora estoy viendo como eliminar o modificar dicho parámetro.

Tengo el software SATF de Epson, así que estoy viendo como usarlo, y sino caerá el equipo en un técnico fiscal, ya que seria el personal adecuado para realizar este tipo de configuración.

Gracias nuevamente!!
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
Problema con Impresora Fiscal EPSON jpgonzalez Impresión 2 21-11-2013 02:16:49
Impresora Fiscal Epson LX-300F Carlos Lesca Impresión 9 24-04-2013 21:22:08
Manual OCX Impresora Fiscal Epson mantrax Impresión 9 13-08-2008 18:42:27
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


La franja horaria es GMT +2. Ahora son las 18:16:40.


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