Régimen Fiscal CFDI 4.0
Para dar seguimiento al Issue #34
Ejecutar las siguientes opciones:
- En el objeto account.invoice crear un campo llamado cfdi_fiscal_regime_id que sea de tipo Many2one que se relacione con la tabla cfdi.fiscal.regime como atributo tendrá lo siguiente
states={"draft": [("readonly", False)]},
- A la función onchange_partner_id agregar en esta en la línea 276 una condición que nos valide que el partner tenga un regimen fiscal, en caso de que si copiar el valor y asignarlo al campo anteriormente creado cfdi_fiscal_regime_id Algo cómo esto:
if partner.cfdi_fiscal_regime_id.id:
invoice.cfdi_fiscal_regime_id = partner.cfdi_fiscal_regime_id.id
-
En la función _validate_account_invoice_fields agregar el campo cfdi_fiscal_regime_id a la línea 403 y eliminar el campo fiscal_position
-
En la función _validate_account_voucher_vat reemplazar el campo property_account_position por cfdi_fiscal_regime_id
-
Agregar el campo cfdi_fiscal_regime_id a la vista account_invoice.xml antes de la siguiente línea 123 algo así
<field name="cfdi_fiscal_regime_id"
attrs="{
'readonly': [('cfdi_state','in', ['signed', 'cancel', 'done'])],
'invisible': [('is_cfdi_candidate', '=', False)]
}"
- En la carpeta report se encuentran dos plantillas .odt los cuales son los reportes pdf para las facturas (account_invoice.odt y account.voucher.odt)
En el archivo account_invoice reemplazar el campo property_account_position por el campo cfdi_fiscal_regime_id en la sección de los datos de la compañia y del cliente
- Lo mismo para el archivo account_voucher
- En la carpeta templates existen de igual manera dos archivos llamados account_invoice.txt y account_voucher.txt
Del archivo account_invoice.txt reemplazar el campo property_account_position por cfdi_fiscal_regime_id en la línea 72 y la línea 88
-
Del archivo account_voucher.txt lo mismo sobre la línea 37 y la línea 57
-
Cambiar también la variable del test unitario ubicado en test/test_cancel_invoice.py línea 13, 17 y 32 reemplazar la variable y la tabla por la que ya se ocupa anteriormente
Dar seguimiento en el siguiente issue l10n_mx_cexterior#6 (closed)