fix(account.invoice): Include IEPS in the price when the client is not subject to IEPS
an error occurs when validating an invoice when the client is not subject to IEPS since it returns as a tax not registered in the list of transferred taxes, however the correct thing is to include the IEPS in the cost of the product so as not to include on the invoice.
closes #11 (closed)
Hola poncho @alfonso.moreno buenos dias te pido por favor si puedes revisar este cambio con lo que respecta al issu que mencionaste y verificar su correcto funcionamiento espero su revicion tambien @agb80 @cuauhtemoc.diaz @chavamm.83
Buen dia @jose.maldonado lo que hiciste fue incluir el impuesto IEPS en el producto? osea aunque no este chequeado en el cliente Sujeto a IEPS el sistema hara el desgloze del IEPS en el XML? o cual fue la idea ya que pense que solamente lanzaria un mensaje de error mas amigable al usuario saludos
Edited by Alfonso Morenolo solicitado por el encargado en este caso es un cliente que vende licores que tienen un IEPS al 30% o 55% por lo que indico que existen clientes a los que no se les debe desglosar el IEPS pero que si se debe incluir en el costo del producto por eso se agrego el check: Si esta marcada la casilla y se agrega el impuesto del IEPS en la linea de la factura, se desglosa el IEPS en el XML si esta desmarcada la casilla del IEPS y se agrega este impuesto en la linea de la factura, se agrega el mismo en al precio del producto y no se desglosa en el XML
Edited by José Atonaltzin Maldonado Ortiz@jose.maldonado los cambios realizados en este MR en el archivo
l10n_mx_facturae/models/account_invoice.py
son prácticamente los mismos que los realizdos a ese mismo archivo en el MR !26 (merged) quedaría mejor unificar los MR creo yoBuen dia @jose.maldonado probando este cambio en la BD de SACSA que son los que utilizan IEPS me sigue marcando el mismo error cuando el cliente no tiene chequeado el sujeto a IEPS en su configuracion, ya baje las modificaciones que realizaste por medio de un parche y corri el buildout y me sigue marcan el mismo error
2018-02-07 23:39:52,942 6579 INFO SACSA_33 report_aeroo: Start process report.account.invoice.cfdi.xml.33 (account.invoice) None 2018-02-07 23:39:53,104 6579 ERROR SACSA_33 report_aeroo: 'NoneType' object has no attribute '__getitem__' Traceback (most recent call last): File "/opt/pyerp_master/parts/aeroo_reports/report_aeroo/report_aeroo.py", line 407, in create_genshi_raw_report basic.generate(**oo_parser.localcontext).render().encode( File "/opt/pyerp_master/eggs/Genshi-0.7-py2.7-linux-x86_64.egg/genshi/core.py", line 184, in render return encode(generator, method=method, encoding=encoding, out=out) File "/opt/pyerp_master/eggs/Genshi-0.7-py2.7-linux-x86_64.egg/genshi/output.py", line 57, in encode return _encode(''.join(list(iterator))) File "/opt/pyerp_master/eggs/Genshi-0.7-py2.7-linux-x86_64.egg/genshi/output.py", line 577, in __call__ for event in stream: File "/opt/pyerp_master/eggs/Genshi-0.7-py2.7-linux-x86_64.egg/genshi/core.py", line 289, in _ensure for event in stream: File "/opt/pyerp_master/eggs/Genshi-0.7-py2.7-linux-x86_64.egg/genshi/template/base.py", line 618, in _include for event in stream: File "/opt/pyerp_master/eggs/Genshi-0.7-py2.7-linux-x86_64.egg/genshi/template/base.py", line 578, in _flatten result = _eval_expr(data, ctxt, vars) File "/opt/pyerp_master/eggs/Genshi-0.7-py2.7-linux-x86_64.egg/genshi/template/base.py", line 289, in _eval_expr retval = expr.evaluate(ctxt) File "/opt/pyerp_master/eggs/Genshi-0.7-py2.7-linux-x86_64.egg/genshi/template/eval.py", line 177, in evaluate return eval(self.code, _globals, {'__data__': data}) File "<string>", line 27, in <Expression u"'{0:.2f}'.format(o.subtotal)"> File "/opt/pyerp_master/eggs/Genshi-0.7-py2.7-linux-x86_64.egg/genshi/template/eval.py", line 317, in lookup_attr val = getattr(obj, key) File "/opt/pyerp_master/parts/l10n_mx_facturae/l10n_mx_facturae/models/account_invoice.py", line 96, in subtotal subtotal += line.importe File "/opt/pyerp_master/parts/l10n_mx_facturae/l10n_mx_facturae/models/account_invoice.py", line 337, in importe return self.export_invoice_line_for_xml().importe File "/opt/pyerp_master/parts/l10n_mx_facturae/l10n_mx_facturae/models/account_invoice.py", line 438, in export_invoice_line_for_xml base_with_taxes = tax['base'] TypeError: 'NoneType' object has no attribute '__getitem__' 2018-02-07 23:39:53,104 6579 INFO SACSA_33 report_aeroo: End total process report.account.invoice.cfdi.xml.33 (account.invoice), total elapsed time: 0.16156578064 None 2018-02-07 23:39:53,104 6579 ERROR SACSA_33 openerp.http: Exception during JSON request handling. Traceback (most recent call last): File "/opt/pyerp_master/parts/server/openerp/http.py", line 538, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/opt/pyerp_master/parts/server/openerp/http.py", line 575, in dispatch result = self._call_function(**self.params) File "/opt/pyerp_master/parts/server/openerp/http.py", line 311, in _call_function return checked_call(self.db, *args, **kwargs) File "/opt/pyerp_master/parts/server/openerp/service/model.py", line 113, in wrapper return f(dbname, *args, **kwargs) File "/opt/pyerp_master/parts/server/openerp/http.py", line 308, in checked_call return self.endpoint(*a, **kw) File "/opt/pyerp_master/parts/server/openerp/http.py", line 804, in __call__ return self.method(*args, **kw) File "/opt/pyerp_master/parts/server/openerp/http.py", line 404, in response_wrap response = f(*args, **kw) File "/opt/pyerp_master/parts/server/addons/web/controllers/main.py", line 948, in call_button action = self._call_kw(model, method, args, {}) File "/opt/pyerp_master/parts/server/addons/web/controllers/main.py", line 936, in _call_kw return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) File "/opt/pyerp_master/parts/server/openerp/api.py", line 241, in wrapper return old_api(self, *args, **kwargs) File "/opt/pyerp_master/parts/account/account/models/account_invoice.py", line 509, in invoice_open self, cr=cr, uid=uid, ids=ids, context=context File "/opt/pyerp_master/eggs/blinker-1.4-py2.7.egg/blinker/base.py", line 267, in send for receiver in self.receivers_for(sender)] File "/opt/pyerp_master/parts/account/account/models/account_invoice.py", line 1157, in invoice_validate self, cr=cr, uid=uid, ids=ids, context=context File "/opt/pyerp_master/eggs/blinker-1.4-py2.7.egg/blinker/base.py", line 267, in send for receiver in self.receivers_for(sender)] File "/opt/pyerp_master/parts/l10n_mx_facturae/l10n_mx_facturae/models/account_invoice.py", line 280, in sign_invoice_sat cfdi.action_validate() File "/opt/pyerp_master/parts/server/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/opt/pyerp_master/parts/facturacion/l10n_mx_ir_attachment_facturae/models/ir_attachment_facturae.py", line 438, in action_validate self.sign_cfdi_sat() File "/opt/pyerp_master/parts/server/openerp/api.py", line 239, in wrapper return new_api(self, *args, **kwargs) File "/opt/pyerp_master/parts/server/openerp/api.py", line 407, in new_api result = [method(rec, *args, **kwargs) for rec in self] File "/opt/pyerp_master/parts/facturacion/l10n_mx_ir_attachment_facturae/models/ir_attachment_facturae.py", line 746, in sign_cfdi_sat record.id, config.template_xml_sign, model=record._name, File "/opt/pyerp_master/parts/facturacion/l10n_mx_ir_attachment_facturae/models/ir_attachment_facturae.py", line 710, in create_report_xml xml_data = parse_xml_string(result.strip()) AttributeError: 'bool' object has no attribute 'strip'
@alfonso.moreno puedes compartirnos tu configuración de los impuestos de IVA y de IEPS, en especial la parte de las secuencias o pesos por favor.
Quedo al pendiente de esa información para que podamos dar seguimiento a este cambio.
Buen dia @jose.maldonado y @agb80 tenias razon agustin la configuracion de los impuestos importa tenia que calculara primero el iva y despues el ieps y es al revez primero el ieps y despues el iva ya me valido la factura y el cliente no tenia chequeado el sujeto a IEPS, Saludos
sas mi buen @alfonso.moreno aunque la vedad creo que si sera necesario tener que agregar un mensaje a el cliente diciendo que la configuracion de los impuestos esta incorrecta que valores colocaste en esta configuracion disculpa?
Buenos dias @alfonso.moreno disculpa me puedes pasar algun ejemplo de como tenias configurado tu apartado de impuestos al momento de producirse el error que nos indicabas el dia de ayer ya que ya realize cambios a la configuracion pero no he tenido exito en la reproduccion del error
Buen dia @jose.maldonado, si mira ese error que les puse se reproduce cuando el iva se calculo antes que el cualquier IEPS osea si el IVA y el IEPS tienen la misma secuencia el sistema no se que hace que primero pone el IVA y despues el IEPS, Lo que puedes hacer es ponerle una secuencia mayor a un impuesto de IEPS y la secuencia del IVA dejarla en 1 para que al momento de que agregues algun producto con IEPS e IVA que primero te ponga el IVA y despues el IEPS osea el IVA arriba del IEPS en ese orden y le das validar y te marcara el error que les puse arriba, espero haberme explicado, Saludos
@jose.maldonado podrías entonces agregar ese mensaje que comentas para que no se muestre la traza de error y en su lugar se le indique al usuario que hay una configuración equivocada.
Sería entonces el pendiente que quedaría para validar ya este cambio
Cambios aplicados ing. @agb80 ingenieros @alfonso.moreno @cuauhtemoc.diaz @chavamm.83 pueden probar este cambio disculpen? saludos compañeros espero sus manitas arriba
No subiste nada nuevo @jose.maldonado
Asi es mi buen @jose.maldonado aparece lo mismo que subiste la ultima vez, Saludos
Una disculpa compañeros los cambios se encuentran en la siguiente direccion http://gitlab.openpyme.mx/l10n_mx/l10n_mx_facturae/merge_requests/26
Entonces este ya no aplicara @jose.maldonado ? porque acabo de checar el otro y hace algo parecido solo por lo el mensaje de error que agregaste y por la vista que modificaste, Saludos
Edited by Alfonso Moreno