[IMP] l10n_pe: Welcome PLE reports

Complement module to allow generate the PLE reports.

- Missing purchase tax groups and taxes added to complete the vendor
  bills flow
- Demo data completed to has data to allow generate the PLE reports
- Document types for vendor bills completed in the data
- Method to improve the domain in document types for customer invoices
  added
- Extend method to autocomplete the number on vendor bills with the
  standard expected by the document type.

closes odoo/odoo#124595

X-original-commit: 821d313a5de857a4903bb35aaea49c3a35f8781e
Related: odoo/enterprise#42345
Signed-off-by: Josse Colpaert <jco@odoo.com>
This commit is contained in:
Luis Torres
2023-06-12 17:41:22 +02:00
committed by Josse Colpaert
parent 6021b68b17
commit 365017a950
6 changed files with 650 additions and 13 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
'name': 'Peru - Accounting',
'icon': '/account/static/description/l10n.png',
'countries': ['pe'],
'version': '2.0',
'version': '3.0',
'category': 'Accounting/Localizations/Account Charts',
'author': 'Vauxoo, Odoo S.A.',
'website': 'https://www.odoo.com/documentation/master/applications/finance/fiscal_localizations/peru.html',
@@ -9,6 +9,15 @@
<field name='doc_code_prefix'>F</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type03'>
<field name='sequence'>10</field>
<field name='code'>02</field>
<field name='report_name'>Recibo por Honorarios</field>
<field name='name'>Recibo por Honorarios</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>R</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type02'>
<field name='sequence'>20</field>
<field name='code'>03</field>
@@ -18,6 +27,33 @@
<field name='doc_code_prefix'>B</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type04'>
<field name='sequence'>20</field>
<field name='code'>04</field>
<field name='report_name'>Liquidación de compra</field>
<field name='name'>Liquidación de compra</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>L</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type05'>
<field name='sequence'>20</field>
<field name='code'>05</field>
<field name='report_name'>Boletos de Transporte Aéreo que emiten las Compañías de Aviación Comercial por el servicio de transporte aéreo regular de pasajeros, emitido de manera manual, mecanizada o por medios electrónicos (BME)</field>
<field name='name'>Boletos de Transporte Aéreo que emiten las Compañías de Aviación Comercial por el servicio de transporte aéreo regular de pasajeros, emitido de manera manual, mecanizada o por medios electrónicos (BME)</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>B</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type06'>
<field name='sequence'>20</field>
<field name='code'>06</field>
<field name='report_name'>Carta de porte aéreo por el servicio de transporte de carga aérea</field>
<field name='name'>Carta de porte aéreo por el servicio de transporte de carga aérea</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>C</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type07'>
<field name='sequence'>40</field>
<field name='code'>07</field>
@@ -54,6 +90,96 @@
<field name='doc_code_prefix'>B</field>
<field name='internal_type'>debit_note</field>
</record>
<record model='l10n_latam.document.type' id='document_type10'>
<field name='sequence'>50</field>
<field name='code'>10</field>
<field name='report_name'>Recibo por Arrendamiento</field>
<field name='name'>Recibo por Arrendamiento</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>R</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type11'>
<field name='sequence'>50</field>
<field name='code'>11</field>
<field name='report_name'>Póliza emitida por las Bolsas de Valores, Bolsas de Productos o Agentes de Intermediación por operaciones realizadas en las Bolsas de Valores o Productos o fuera de las mismas, autorizadas por SMV</field>
<field name='name'>Póliza emitida por las Bolsas de Valores, Bolsas de Productos o Agentes de Intermediación por operaciones realizadas en las Bolsas de Valores o Productos o fuera de las mismas, autorizadas por SMV</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>P</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type12'>
<field name='sequence'>50</field>
<field name='code'>12</field>
<field name='report_name'>Ticket o cinta emitido por máquina registradora</field>
<field name='name'>Ticket o cinta emitido por máquina registradora</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>T</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type13'>
<field name='sequence'>50</field>
<field name='code'>13</field>
<field name='report_name'>Documentos emitidos por las empresas del sistema financiero y de seguros, y por las cooperativas de ahorro y crédito no autorizadas a captar recursos del público, que se encuentren bajo el control de la Superintendencia de Banca, Seguros y AFP.</field>
<field name='name'>Documentos emitidos por las empresas del sistema financiero y de seguros, y por las cooperativas de ahorro y crédito no autorizadas a captar recursos del público, que se encuentren bajo el control de la Superintendencia de Banca, Seguros y AFP.</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type14'>
<field name='sequence'>50</field>
<field name='code'>14</field>
<field name='report_name'>Recibo por servicios públicos de suministro de energía eléctrica, agua, teléfono, telex y telegráficos y otros servicios complementarios que se incluyan en el</field>
<field name='name'>Recibo por servicios públicos de suministro de energía eléctrica, agua, teléfono, telex y telegráficos y otros servicios complementarios que se incluyan en el</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>R</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type15'>
<field name='sequence'>50</field>
<field name='code'>15</field>
<field name='report_name'>Boletos emitidos por el servicio de transporte terrestre regular urbano de pasajeros y el ferroviario público de pasajeros prestado en vía férrea local.</field>
<field name='name'>Boletos emitidos por el servicio de transporte terrestre regular urbano de pasajeros y el ferroviario público de pasajeros prestado en vía férrea local.</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>B</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type16'>
<field name='sequence'>50</field>
<field name='code'>16</field>
<field name='report_name'>Boletos de viaje emitidos por las empresas de transporte nacional de pasajeros, siempre que cuenten con la autorización de la autoridad competente, en las rutas autorizadas. Vía terrestre o ferroviario público no emitido por medios electrónicos (BVME)</field>
<field name='name'>Boletos de viaje emitidos por las empresas de transporte nacional de pasajeros, siempre que cuenten con la autorización de la autoridad competente, en las rutas autorizadas. Vía terrestre o ferroviario público no emitido por medios electrónicos (BVME)</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>B</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type17'>
<field name='sequence'>50</field>
<field name='code'>17</field>
<field name='report_name'>Documento emitido por la Iglesia Católica por el arrendamiento de bienes inmuebles</field>
<field name='name'>Documento emitido por la Iglesia Católica por el arrendamiento de bienes inmuebles</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type18'>
<field name='sequence'>50</field>
<field name='code'>18</field>
<field name='report_name'>Documento emitido por las Administradoras Privadas de Fondo de Pensiones que se encuentran bajo la supervisión de la Superintendencia de Banca, Seguros y AFP</field>
<field name='name'>Documento emitido por las Administradoras Privadas de Fondo de Pensiones que se encuentran bajo la supervisión de la Superintendencia de Banca, Seguros y AFP</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type19'>
<field name='sequence'>50</field>
<field name='code'>19</field>
<field name='report_name'>Boleto o entrada por atracciones y espectáculos públicos</field>
<field name='name'>Boleto o entrada por atracciones y espectáculos públicos</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>B</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type20'>
<field name='sequence'>60</field>
<field name='code'>20</field>
@@ -63,6 +189,150 @@
<field name='doc_code_prefix'>R</field>
<field name='internal_type'/>
</record>
<record model='l10n_latam.document.type' id='document_type21'>
<field name='sequence'>60</field>
<field name='code'>21</field>
<field name='report_name'>Conocimiento de embarque por el servicio de transporte de carga marítima</field>
<field name='name'>Conocimiento de embarque por el servicio de transporte de carga marítima</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>B</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type22'>
<field name='sequence'>60</field>
<field name='code'>22</field>
<field name='report_name'>Comprobante por Operaciones No Habituales</field>
<field name='name'>Comprobante por Operaciones No Habituales</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>C</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type23'>
<field name='sequence'>60</field>
<field name='code'>23</field>
<field name='report_name'>Pólizas de Adjudicación emitidas con ocasión del remate o adjudicación de bienes por venta forzada, por los martilleros o las entidades que rematen o subasten bienes por cuenta de terceros</field>
<field name='name'>Pólizas de Adjudicación emitidas con ocasión del remate o adjudicación de bienes por venta forzada, por los martilleros o las entidades que rematen o subasten bienes por cuenta de terceros</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>C</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type24'>
<field name='sequence'>60</field>
<field name='code'>24</field>
<field name='report_name'>Certificado de pago de regalías emitidas por PERUPETRO S.A</field>
<field name='name'>Certificado de pago de regalías emitidas por PERUPETRO S.A</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>C</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type25'>
<field name='sequence'>60</field>
<field name='code'>25</field>
<field name='report_name'>Documento de Atribución (Ley del Impuesto General a las Ventas e Impuesto Selectivo al Consumo, Art. 19º, último párrafo, R.S. N° 022-98-SUNAT).</field>
<field name='name'>Documento de Atribución (Ley del Impuesto General a las Ventas e Impuesto Selectivo al Consumo, Art. 19º, último párrafo, R.S. N° 022-98-SUNAT).</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type26'>
<field name='sequence'>60</field>
<field name='code'>26</field>
<field name='report_name'>Recibo por el Pago de la Tarifa por Uso de Agua Superficial con fines agrarios y por el pago de la Cuota para la ejecución de una determinada obra o actividad acordada por la Asamblea General de la Comisión de Regantes o Resolución expedida por el Jefe de la Unidad de Aguas y de Riego (Decreto Supremo N° 003-90-AG, Arts. 28 y 48)</field>
<field name='name'>Recibo por el Pago de la Tarifa por Uso de Agua Superficial con fines agrarios y por el pago de la Cuota para la ejecución de una determinada obra o actividad acordada por la Asamblea General de la Comisión de Regantes o Resolución expedida por el Jefe de la Unidad de Aguas y de Riego (Decreto Supremo N° 003-90-AG, Arts. 28 y 48)</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>R</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type27'>
<field name='sequence'>60</field>
<field name='code'>27</field>
<field name='report_name'>Seguro Complementario de Trabajo de Riesgo</field>
<field name='name'>Seguro Complementario de Trabajo de Riesgo</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>S</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type28'>
<field name='sequence'>60</field>
<field name='code'>28</field>
<field name='report_name'>Documentos emitidos por los servicios aeroportuarios prestados a favor de los pasajeros, mediante mecanismo de etiquetas autoadhesivas.</field>
<field name='name'>Documentos emitidos por los servicios aeroportuarios prestados a favor de los pasajeros, mediante mecanismo de etiquetas autoadhesivas.</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type29'>
<field name='sequence'>60</field>
<field name='code'>29</field>
<field name='report_name'>Documentos emitidos por la COFOPRI en calidad de oferta de venta de terrenos, los correspondientes a las subastas públicas y a la retribución de los servicios que presta</field>
<field name='name'>Documentos emitidos por la COFOPRI en calidad de oferta de venta de terrenos, los correspondientes a las subastas públicas y a la retribución de los servicios que presta</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type30'>
<field name='sequence'>60</field>
<field name='code'>30</field>
<field name='report_name'>Documentos emitidos por las empresas que desempeñan el rol adquirente en los sistemas de pago mediante tarjetas de crédito y débito, emitidas por bancos e instituciones financieras o crediticias, domiciliados o no en el país.</field>
<field name='name'>Documentos emitidos por las empresas que desempeñan el rol adquirente en los sistemas de pago mediante tarjetas de crédito y débito, emitidas por bancos e instituciones financieras o crediticias, domiciliados o no en el país.</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type32'>
<field name='sequence'>60</field>
<field name='code'>32</field>
<field name='report_name'>Documentos emitidos por las empresas recaudadoras de la denominada Garantía de Red Principal a la que hace referencia el numeral 7.6 del artículo 7° de la Ley N° 27133 – Ley de Promoción del Desarrollo de la Industria del Gas Natural</field>
<field name='name'>Documentos emitidos por las empresas recaudadoras de la denominada Garantía de Red Principal a la que hace referencia el numeral 7.6 del artículo 7° de la Ley N° 27133 – Ley de Promoción del Desarrollo de la Industria del Gas Natural</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type33'>
<field name='sequence'>60</field>
<field name='code'>33</field>
<field name='report_name'>Manifiesto de Pasajeros</field>
<field name='name'>Manifiesto de Pasajeros</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>M</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type34'>
<field name='sequence'>60</field>
<field name='code'>34</field>
<field name='report_name'>Documento del Operador</field>
<field name='name'>Documento del Operador</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type35'>
<field name='sequence'>60</field>
<field name='code'>35</field>
<field name='report_name'>Documento del Partícipe</field>
<field name='name'>Documento del Partícipe</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type36'>
<field name='sequence'>60</field>
<field name='code'>36</field>
<field name='report_name'>Recibo de Distribución de Gas Natural</field>
<field name='name'>Recibo de Distribución de Gas Natural</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>R</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type37'>
<field name='sequence'>60</field>
<field name='code'>37</field>
<field name='report_name'>Documentos que emitan los concesionarios del servicio de revisiones técnicas vehiculares, por la prestación de dicho servicio</field>
<field name='name'>Documentos que emitan los concesionarios del servicio de revisiones técnicas vehiculares, por la prestación de dicho servicio</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type40'>
<field name='sequence'>60</field>
<field name='code'>40</field>
@@ -72,4 +342,202 @@
<field name='doc_code_prefix'>P</field>
<field name='internal_type'/>
</record>
<record model='l10n_latam.document.type' id='document_type41'>
<field name='sequence'>70</field>
<field name='code'>41</field>
<field name='report_name'>Comprobante de Percepción - Venta interna</field>
<field name='name'>Comprobante de Percepción - Venta interna</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>C</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type42'>
<field name='sequence'>70</field>
<field name='code'>42</field>
<field name='report_name'>Documentos emitidos por las empresas que desempeñan el rol adquiriente en los sistemas de pago mediante tarjetas de crédito emitidas por ellas mismas</field>
<field name='name'>Documentos emitidos por las empresas que desempeñan el rol adquiriente en los sistemas de pago mediante tarjetas de crédito emitidas por ellas mismas</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type43'>
<field name='sequence'>70</field>
<field name='code'>43</field>
<field name='report_name'>Boletos emitidos por las Compañías de Aviación Comercial que prestan servicios de transporte aéreo no regular de pasajeros y transporte aéreo especial de pasajeros.</field>
<field name='name'>Boletos emitidos por las Compañías de Aviación Comercial que prestan servicios de transporte aéreo no regular de pasajeros y transporte aéreo especial de pasajeros.</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>B</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type44'>
<field name='sequence'>70</field>
<field name='code'>44</field>
<field name='report_name'>Billetes de lotería, rifas y apuestas. </field>
<field name='name'>Billetes de lotería, rifas y apuestas. </field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>B</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type45'>
<field name='sequence'>70</field>
<field name='code'>45</field>
<field name='report_name'>Documentos emitidos por centros educativos y culturales, universidades, asociaciones y fundaciones, en lo referente a actividades no gravadas con tributos administrados por la SUNAT.</field>
<field name='name'>Documentos emitidos por centros educativos y culturales, universidades, asociaciones y fundaciones, en lo referente a actividades no gravadas con tributos administrados por la SUNAT.</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type46'>
<field name='sequence'>70</field>
<field name='code'>46</field>
<field name='report_name'>Formulario de Declaración - pago o Boleta de pago de tributos Internos</field>
<field name='name'>Formulario de Declaración - pago o Boleta de pago de tributos Internos</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>F</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type48'>
<field name='sequence'>70</field>
<field name='code'>48</field>
<field name='report_name'>Comprobante de Operaciones - Ley N° 29972</field>
<field name='name'>Comprobante de Operaciones - Ley N° 29972</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>C</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type49'>
<field name='sequence'>70</field>
<field name='code'>49</field>
<field name='report_name'>Constancia de Depósito - IVAP (Ley 28211)</field>
<field name='name'>Constancia de Depósito - IVAP (Ley 28211)</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>C</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type50'>
<field name='sequence'>70</field>
<field name='code'>50</field>
<field name='report_name'>Declaración Única de Aduanas - Importación definitiva</field>
<field name='name'>Declaración Única de Aduanas - Importación definitiva</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type51'>
<field name='sequence'>70</field>
<field name='code'>51</field>
<field name='report_name'>Póliza o DUI Fraccionada</field>
<field name='name'>Póliza o DUI Fraccionada</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>P</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type52'>
<field name='sequence'>70</field>
<field name='code'>52</field>
<field name='report_name'>Despacho Simplificado - Importación Simplificada</field>
<field name='name'>Despacho Simplificado - Importación Simplificada</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type53'>
<field name='sequence'>70</field>
<field name='code'>53</field>
<field name='report_name'>Declaración de Mensajería o Courier</field>
<field name='name'>Declaración de Mensajería o Courier</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>D</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type54'>
<field name='sequence'>70</field>
<field name='code'>54</field>
<field name='report_name'>Liquidación de Cobranza</field>
<field name='name'>Liquidación de Cobranza</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>L</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type55'>
<field name='sequence'>70</field>
<field name='code'>55</field>
<field name='report_name'>BVME para transporte ferroviario de pasajeros</field>
<field name='name'>BVME para transporte ferroviario de pasajeros</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>B</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type56'>
<field name='sequence'>70</field>
<field name='code'>56</field>
<field name='report_name'>Comprobante de pago SEAE</field>
<field name='name'>Comprobante de pago SEAE</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>C</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type87'>
<field name='sequence'>70</field>
<field name='code'>87</field>
<field name='report_name'>Nota de Crédito Especial</field>
<field name='name'>Nota de Crédito Especial</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>N</field>
<field name='internal_type'>credit_note</field>
</record>
<record model='l10n_latam.document.type' id='document_type88'>
<field name='sequence'>70</field>
<field name='code'>88</field>
<field name='report_name'>Nota de Débito Especial</field>
<field name='name'>Nota de Débito Especial</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>N</field>
<field name='internal_type'>debit_note</field>
</record>
<record model='l10n_latam.document.type' id='document_type89'>
<field name='sequence'>70</field>
<field name='code'>89</field>
<field name='report_name'>Nota de Ajuste de Operaciones - Ley N° 29972</field>
<field name='name'>Nota de Ajuste de Operaciones - Ley N° 29972</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>N</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type91'>
<field name='sequence'>70</field>
<field name='code'>91</field>
<field name='report_name'>Comprobante de No Domiciliado</field>
<field name='name'>Comprobante de No Domiciliado</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>C</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type96'>
<field name='sequence'>70</field>
<field name='code'>96</field>
<field name='report_name'>Exceso de crédito fiscal por retiro de bienes</field>
<field name='name'>Exceso de crédito fiscal por retiro de bienes</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>E</field>
<field name='internal_type'>invoice</field>
</record>
<record model='l10n_latam.document.type' id='document_type97'>
<field name='sequence'>70</field>
<field name='code'>97</field>
<field name='report_name'>Nota de Crédito - No Domiciliado</field>
<field name='name'>Nota de Crédito - No Domiciliado</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>N</field>
<field name='internal_type'>credit_note</field>
</record>
<record model='l10n_latam.document.type' id='document_type98'>
<field name='sequence'>70</field>
<field name='code'>98</field>
<field name='report_name'>Nota de Débito - No Domiciliado</field>
<field name='name'>Nota de Débito - No Domiciliado</field>
<field name='country_id' ref='base.pe' />
<field name='doc_code_prefix'>N</field>
<field name='internal_type'>debit_note</field>
</record>
</odoo>
@@ -31,6 +31,18 @@
"","","","","","","","","","","","","tax","invoice","chart40111","",""
"","","","","","","","","","","","","base","refund","","",""
"","","","","","","","","","","","","tax","refund","chart40111","",""
"purchase_tax_igv_18g_ng","18% Levied and Not Taxed","","IGV","1000","S","18.0","purchase","1","1","tax_group_igv_g_ng","True","base","invoice","","","18% Gravadas y No Gravada"
"","","","","","","","","","","","","tax","invoice","chart40117","",""
"","","","","","","","","","","","","base","refund","","",""
"","","","","","","","","","","","","tax","refund","chart40117","",""
"purchase_tax_igv_18_ng","18% Not Levied","","IGV NG","1000","S","18.0","purchase","1","1","tax_group_igv_ng","True","base","invoice","","","18% No Gravadas"
"","","","","","","","","","","","","tax","invoice","chart40116","",""
"","","","","","","","","","","","","base","refund","","",""
"","","","","","","","","","","","","tax","refund","chart40116","",""
"purchase_tax_exp_0","0% EXP","","EXP","9995","S","18.0","purchase","1","1","tax_group_exp","True","base","invoice","","","0% EXP"
"","","","","","","","","","","","","tax","invoice","chart40115","",""
"","","","","","","","","","","","","base","refund","","",""
"","","","","","","","","","","","","tax","refund","chart40115","",""
"purchase_tax_exo","0% Exo","","EXO","9997","E","0.0","purchase","1","","tax_group_exo","","base","invoice","","","0% Exonerado"
"","","","","","","","","","","","","tax","invoice","chart40111","",""
"","","","","","","","","","","","","base","refund","","",""
Can't render this file because it contains an unexpected character in line 1 and column 344.
@@ -1,5 +1,7 @@
"id","name","sequence","country_id","name@es"
"tax_group_igv","IGV","0","base.pe","IGV"
"tax_group_igv_g_ng","IGV GyNG","0","base.pe","IGV GyNG"
"tax_group_igv_ng","IGV NG","0","base.pe","IGV NG"
"tax_group_ivap","IVAP","0","base.pe","IVAP"
"tax_group_isc","ISC","0","base.pe","ISC"
"tax_group_exp","EXP","0","base.pe","EXP"
@@ -9,3 +11,4 @@
"tax_group_other","OTHERS","0","base.pe","OTROS"
"tax_group_det","DET","100","base.pe","DET"
"tax_group_icbper","ICBPER","0","base.pe",""
"tax_group_ret","RET","100","base.pe","RET"
1 id name sequence country_id name@es
2 tax_group_igv IGV 0 base.pe IGV
3 tax_group_igv_g_ng IGV GyNG 0 base.pe IGV GyNG
4 tax_group_igv_ng IGV NG 0 base.pe IGV NG
5 tax_group_ivap IVAP 0 base.pe IVAP
6 tax_group_isc ISC 0 base.pe ISC
7 tax_group_exp EXP 0 base.pe EXP
11 tax_group_other OTHERS 0 base.pe OTROS
12 tax_group_det DET 100 base.pe DET
13 tax_group_icbper ICBPER 0 base.pe
14 tax_group_ret RET 100 base.pe RET
+136 -11
View File
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
from odoo import api, models
from datetime import datetime, timedelta
from odoo import api, Command, models
class AccountChartTemplate(models.AbstractModel):
@@ -8,16 +9,140 @@ class AccountChartTemplate(models.AbstractModel):
@api.model
def _get_demo_data_move(self, company=False):
def _get_tax_by_code(code, type_tax='sale'):
taxes = self.env['account.tax'].search([
('company_id', '=', company.id), ('type_tax_use', '=', type_tax), ('l10n_pe_edi_tax_code', '=', code)], limit=1)
return [Command.set(taxes.ids)]
move_data = super()._get_demo_data_move(company)
ref = self.env.ref
last_month_date = datetime.strptime(move_data['demo_invoice_1']['invoice_date'], '%Y-%m-%d') - timedelta(days=1)
if company.account_fiscal_country_id.code == "PE":
move_data['demo_invoice_1']['l10n_latam_document_type_id'] = 'l10n_pe.document_type01'
move_data['demo_invoice_1']['l10n_latam_document_number'] = 'FFI-000001'
move_data['demo_invoice_2']['l10n_latam_document_type_id'] = 'l10n_pe.document_type01'
move_data['demo_invoice_2']['l10n_latam_document_number'] = 'FFI-000002'
move_data['demo_invoice_3']['l10n_latam_document_type_id'] = 'l10n_pe.document_type01'
move_data['demo_invoice_3']['l10n_latam_document_number'] = 'FFI-000003'
move_data['demo_invoice_followup']['l10n_latam_document_type_id'] = 'l10n_pe.document_type01'
move_data['demo_invoice_followup']['l10n_latam_document_number'] = 'FFI-000004'
move_data['demo_invoice_5']['l10n_latam_document_number'] = '1'
move_data['demo_invoice_equipment_purchase']['l10n_latam_document_number'] = 'INV-000089'
move_data['demo_invoice_1']['invoice_date'] = last_month_date
move_data['demo_invoice_1']['l10n_latam_document_number'] = 'FFF-0000001'
move_data['demo_invoice_1']['invoice_line_ids'] = [
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 25000.0, 'price_unit': 3.0, 'tax_ids': _get_tax_by_code('9997')}),
]
move_data['demo_invoice_2']['invoice_date'] = last_month_date
move_data['demo_invoice_2']['l10n_latam_document_number'] = 'FFF-0000002'
move_data['demo_invoice_2']['invoice_line_ids'] = [
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 12500.0, 'price_unit': 3.0, 'tax_ids': _get_tax_by_code('1000')}),
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 1000.0, 'tax_ids': _get_tax_by_code('9997')}),
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 1500.0, 'tax_ids': _get_tax_by_code('9998')}),
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 12500.0, 'price_unit': 3.0, 'tax_ids': _get_tax_by_code('1000')}),
]
move_data['demo_invoice_3']['invoice_date'] = last_month_date
move_data['demo_invoice_3']['l10n_latam_document_type_id'] = ref('l10n_pe.document_type08').id,
move_data['demo_invoice_3']['l10n_latam_document_number'] = 'NDI-0000001'
move_data['demo_invoice_3']['invoice_line_ids'] = [
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 12500.0, 'price_unit': 3.0, 'tax_ids': _get_tax_by_code('1000')}),
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 1000.0, 'tax_ids': _get_tax_by_code('9997')}),
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 1500.0, 'tax_ids': _get_tax_by_code('9998')}),
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 12500.0, 'price_unit': 3.0, 'tax_ids': _get_tax_by_code('1000')}),
]
move_data['demo_invoice_followup']['move_type'] = 'in_invoice'
move_data['demo_invoice_followup']['partner_id'] = ref('base.res_partner_2').id
move_data['demo_invoice_followup']['invoice_date'] = last_month_date
move_data['demo_invoice_followup']['l10n_latam_document_number'] = 'FFF-100001'
move_data['demo_invoice_followup']['invoice_line_ids'] = [
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 500.0}),
]
move_data['demo_invoice_5']['partner_id'] = ref('base.res_partner_2').id
move_data['demo_invoice_5']['invoice_date'] = last_month_date
move_data['demo_invoice_5']['l10n_latam_document_number'] = 'FFF-100002'
move_data['demo_invoice_5']['invoice_line_ids'] = [
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 500.0, 'tax_ids': _get_tax_by_code('1000', 'purchase')}),
]
igv_gyng_tax = self.env['account.tax'].search([('company_id', '=', company.id), ('type_tax_use', '=', 'purchase'), ('tax_group_id.name', '=', 'IGV GyNG')], limit=1)
move_data['demo_invoice_equipment_purchase']['partner_id'] = ref('base.res_partner_2').id
move_data['demo_invoice_equipment_purchase']['invoice_date'] = last_month_date
move_data['demo_invoice_equipment_purchase']['l10n_latam_document_number'] = 'FFF-100003'
move_data['demo_invoice_equipment_purchase']['invoice_line_ids'] = [
Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 500.0, 'quantity': 1, 'tax_ids': [Command.set(igv_gyng_tax.ids)]}),
]
move_data['demo_invoice_6'] = {
'move_type': 'in_invoice',
'partner_id': ref('base.res_partner_2').id,
'invoice_user_id': ref('base.user_demo').id,
'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
'invoice_date': last_month_date,
'l10n_latam_document_number': 'FFF-100004',
'invoice_line_ids': [
Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 500.0, 'quantity': 1, 'tax_ids': _get_tax_by_code('9997', 'purchase')}),
Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 1000.0, 'quantity': 1, 'tax_ids': _get_tax_by_code('1000', 'purchase')}),
Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 1500.0, 'quantity': 2, 'tax_ids': _get_tax_by_code('9996', 'purchase')}),
Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 2000.0, 'quantity': 1, 'tax_ids': _get_tax_by_code('9998', 'purchase')}),
Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 2500.0, 'quantity': 1, 'tax_ids': _get_tax_by_code('1000', 'purchase')}),
],
}
move_data['demo_invoice_7'] = {
'move_type': 'in_invoice',
'partner_id': ref('base.res_partner_12').id,
'invoice_user_id': ref('base.user_demo').id,
'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
'invoice_date': last_month_date,
'l10n_latam_document_number': 'FFF-000005',
'l10n_latam_document_type_id': ref('l10n_pe.document_type91').id,
'invoice_line_ids': [
Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 25000.0, 'quantity': 3, 'tax_ids': _get_tax_by_code('9995', 'purchase')}),
],
}
move_data['demo_invoice_8'] = {
'move_type': 'in_invoice',
'partner_id': ref('base.res_partner_12').id,
'invoice_user_id': ref('base.user_demo').id,
'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
'invoice_date': last_month_date,
'l10n_latam_document_number': '118-145266',
'l10n_latam_document_type_id': ref('l10n_pe.document_type50').id,
'invoice_line_ids': [
Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 3, 'quantity': 25000.0, 'tax_ids': _get_tax_by_code('9995', 'purchase')}),
],
}
move_data['demo_invoice_9'] = {
'move_type': 'in_invoice',
'partner_id': ref('base.res_partner_12').id,
'invoice_user_id': ref('base.user_demo').id,
'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
'invoice_date': last_month_date,
'l10n_latam_document_number': 'FFF-100009',
'l10n_latam_document_type_id': ref('l10n_pe.document_type91').id,
'invoice_line_ids': [
Command.create({'product_id': ref('product.product_delivery_01').id, 'price_unit': 3, 'quantity': 25000.0, 'tax_ids': _get_tax_by_code('9995', 'purchase')}),
],
}
move_data['demo_invoice_10'] = {
'move_type': 'out_refund',
'partner_id': ref('base.res_partner_12').id,
'invoice_user_id': ref('base.user_demo').id,
'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
'invoice_date': last_month_date,
'l10n_latam_document_number': 'CNE-0000001',
'invoice_line_ids': [
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 25000.0, 'price_unit': 3.0, 'tax_ids': _get_tax_by_code('9997')}),
],
}
move_data['demo_invoice_11'] = {
'move_type': 'in_refund',
'partner_id': ref('base.res_partner_12').id,
'invoice_user_id': ref('base.user_demo').id,
'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
'invoice_date': last_month_date,
'l10n_latam_document_number': 'FFF-100005',
'invoice_line_ids': [
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 500.0}),
],
}
move_data['demo_invoice_12'] = {
'move_type': 'in_invoice',
'partner_id': ref('base.res_partner_12').id,
'invoice_user_id': ref('base.user_demo').id,
'l10n_latam_document_type_id': ref('l10n_pe.document_type08').id,
'invoice_payment_term_id': ref('account.account_payment_term_end_following_month').id,
'invoice_date': last_month_date,
'l10n_latam_document_number': 'FFF-100006',
'invoice_line_ids': [
Command.create({'product_id': ref('product.consu_delivery_03').id, 'quantity': 1.0, 'price_unit': 500.0}),
],
}
return move_data
+30 -1
View File
@@ -1,8 +1,37 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, fields
from odoo import api, models, fields
from odoo.tools.sql import column_exists, create_column
class AccountMove(models.Model):
_inherit = "account.move"
def _get_l10n_latam_documents_domain(self):
self.ensure_one()
result = super()._get_l10n_latam_documents_domain()
if self.company_id.country_id.code != "PE" or not self.journal_id.l10n_latam_use_documents:
return result
if self.journal_id.type == "sale":
result.append(("code", "in", ("01", "03", "07", "08", "20", "40")))
return result
@api.onchange('l10n_latam_document_type_id', 'l10n_latam_document_number')
def _inverse_l10n_latam_document_number(self):
"""Inherit to complete the l10n_latam_document_number with the expected 8 characters after that a '-'
Example: Change FFF-32 by FFF-00000032, to avoid incorrect values on the reports"""
super()._inverse_l10n_latam_document_number()
to_review = self.filtered(
lambda x: x.journal_id.type == "purchase"
and x.l10n_latam_document_type_id.code in ("01", "03", "07", "08")
and x.l10n_latam_document_number
and "-" in x.l10n_latam_document_number
and x.l10n_latam_document_type_id.country_id.code == "PE"
)
for rec in to_review:
number = rec.l10n_latam_document_number.split("-")
rec.l10n_latam_document_number = "%s-%s" % (number[0], number[1].zfill(8))
class AccountMoveLine(models.Model):
_inherit = "account.move.line"