From a2a1167b42fc1c51f88880b67b8e5f3e94653732 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20E=2E=20G=C3=B3mez?= Date: Sat, 8 Oct 2022 17:10:18 -0500 Subject: [PATCH] Removes l10n_co_account_e_invoicing, l10n_co_account_move_discrepancy_response, l10n_co_account_move_payment_mean, l10n_co_account_tax_group_type --- l10n_co_account_e_invoicing/README.rst | 40 - l10n_co_account_e_invoicing/__init__.py | 6 - l10n_co_account_e_invoicing/__manifest__.py | 58 - .../controllers/__init__.py | 5 - .../controllers/main.py | 44 - ..._fiscal_position_party_tax_scheme_data.xml | 19 - ...nt_fiscal_position_tax_level_code_data.xml | 23 - .../data/ir_cron_data.xml | 15 - .../data/ir_module_category_data.xml | 6 - .../data/mail_template_data.xml | 48 - .../data/product_scheme_data.xml | 22 - .../data/res_groups_data.xml | 58 - l10n_co_account_e_invoicing/i18n/es.po | 1660 ----------------- l10n_co_account_e_invoicing/i18n/es_CO.po | 1660 ----------------- .../i18n/l10n_co_account_e_invoicing.pot | 1590 ---------------- .../models/__init__.py | 21 - .../models/account_fiscal_position.py | 25 - ...ccount_fiscal_position_party_tax_scheme.py | 13 - .../account_fiscal_position_tax_level_code.py | 13 - .../models/account_fiscal_year.py | 14 - .../models/account_move.py | 809 -------- .../models/account_move_dian_document.py | 1108 ----------- .../models/account_move_dian_document_line.py | 17 - .../models/account_move_line.py | 44 - .../models/account_move_line_summary.py | 55 - .../models/account_move_summary_line.py | 71 - .../models/account_tax_group.py | 13 - .../models/einvoice_notification_group.py | 39 - .../models/global_functions.py | 244 --- .../models/ir_sequence.py | 17 - .../models/ir_sequence_date_range.py | 15 - .../models/product_scheme.py | 14 - .../models/product_template.py | 27 - .../models/res_company.py | 208 --- .../models/res_partner.py | 248 --- l10n_co_account_e_invoicing/report/report.xml | 12 - .../report/template_report.xml | 459 ----- .../security/ir.model.access.csv | 10 - .../static/description/icon.png | Bin 229 -> 0 bytes .../static/images/account_invoice.png | Bin 68294 -> 0 bytes .../static/images/dian_document.png | Bin 85655 -> 0 bytes .../static/images/ir_sequence.png | Bin 54473 -> 0 bytes .../static/images/res_company.png | Bin 54946 -> 0 bytes .../templates/AttachedDocument.xml | 70 - .../templates/CreditNote.xml | 636 ------- .../templates/DebitNote.xml | 635 ------- .../templates/DocumentoSoporte.xml | 574 ------ .../templates/GetNumberingRange.xml | 23 - .../templates/GetStatus.xml | 21 - .../templates/GetStatusZip.xml | 21 - .../templates/Invoice.xml | 689 ------- .../templates/SendBillAsync.xml | 22 - .../templates/SendBillAttachmentAsync.xml | 22 - .../templates/SendBillSync.xml | 22 - .../templates/SendTestSetAsync.xml | 23 - ...fiscal_position_party_tax_scheme_views.xml | 49 - ...t_fiscal_position_tax_level_code_views.xml | 49 - .../views/account_fiscal_position_views.xml | 14 - .../views/account_fiscal_year_views.xml | 28 - .../account_move_dian_document_views.xml | 124 -- .../views/account_move_views.xml | 173 -- .../views/account_tax_group_views.xml | 17 - .../views/ir_sequence_views.xml | 15 - .../views/product_template_views.xml | 22 - .../views/res_company_views.xml | 115 -- .../views/res_partner_views.xml | 24 - .../README.rst | 33 - .../__init__.py | 6 - .../__manifest__.py | 29 - ...nt_move_discrepancy_response_code_data.xml | 48 - .../i18n/es.po | 193 -- .../i18n/es_CO.po | 193 -- ...n_co_account_move_discrepancy_response.pot | 190 -- .../models/__init__.py | 7 - .../models/account_journal.py | 48 - .../models/account_move.py | 51 - .../account_move_discrepancy_response_code.py | 16 - .../security/ir.model.access.csv | 3 - .../static/description/icon.png | Bin 229 -> 0 bytes .../static/src/img/icon.png | Bin 7837 -> 0 bytes .../views/account_journal_views.xml | 17 - ...t_move_discrepancy_response_code_views.xml | 54 - .../views/account_move_views.xml | 16 - .../wizards/__init__.py | 6 - .../wizards/account_debit_note.py | 20 - .../wizards/account_debit_note_views.xml | 15 - .../wizards/account_move_reversal.py | 20 - .../wizards/account_move_reversal_views.xml | 15 - l10n_co_account_move_payment_mean/README.rst | 34 - l10n_co_account_move_payment_mean/__init__.py | 5 - .../__manifest__.py | 24 - .../data/account.payment.mean.code.csv | 79 - .../data/account_payment_mean_data.xml | 11 - l10n_co_account_move_payment_mean/i18n/es.po | 149 -- .../i18n/es_CO.po | 149 -- .../l10n_co_account_move_payment_mean.pot | 149 -- .../models/__init__.py | 7 - .../models/account_move.py | 68 - .../models/account_payment_mean.py | 17 - .../models/account_payment_mean_code.py | 17 - .../security/ir.model.access.csv | 5 - .../static/description/icon.png | Bin 229 -> 0 bytes .../views/account_move_views.xml | 14 - .../views/account_payment_mean_code_views.xml | 49 - .../views/account_payment_mean_views.xml | 54 - l10n_co_account_tax_group_type/README.rst | 24 - l10n_co_account_tax_group_type/__init__.py | 3 - .../__manifest__.py | 16 - .../data/account_tax_group_type_data.xml | 105 -- l10n_co_account_tax_group_type/i18n/es.po | 15 - l10n_co_account_tax_group_type/i18n/es_CO.po | 15 - .../i18n/l10n_co_account_tax_group_type.pot | 15 - .../static/description/icon.png | Bin 229 -> 0 bytes 113 files changed, 14142 deletions(-) delete mode 100644 l10n_co_account_e_invoicing/README.rst delete mode 100644 l10n_co_account_e_invoicing/__init__.py delete mode 100644 l10n_co_account_e_invoicing/__manifest__.py delete mode 100644 l10n_co_account_e_invoicing/controllers/__init__.py delete mode 100644 l10n_co_account_e_invoicing/controllers/main.py delete mode 100644 l10n_co_account_e_invoicing/data/account_fiscal_position_party_tax_scheme_data.xml delete mode 100644 l10n_co_account_e_invoicing/data/account_fiscal_position_tax_level_code_data.xml delete mode 100644 l10n_co_account_e_invoicing/data/ir_cron_data.xml delete mode 100644 l10n_co_account_e_invoicing/data/ir_module_category_data.xml delete mode 100644 l10n_co_account_e_invoicing/data/mail_template_data.xml delete mode 100644 l10n_co_account_e_invoicing/data/product_scheme_data.xml delete mode 100644 l10n_co_account_e_invoicing/data/res_groups_data.xml delete mode 100644 l10n_co_account_e_invoicing/i18n/es.po delete mode 100644 l10n_co_account_e_invoicing/i18n/es_CO.po delete mode 100644 l10n_co_account_e_invoicing/i18n/l10n_co_account_e_invoicing.pot delete mode 100644 l10n_co_account_e_invoicing/models/__init__.py delete mode 100644 l10n_co_account_e_invoicing/models/account_fiscal_position.py delete mode 100644 l10n_co_account_e_invoicing/models/account_fiscal_position_party_tax_scheme.py delete mode 100644 l10n_co_account_e_invoicing/models/account_fiscal_position_tax_level_code.py delete mode 100644 l10n_co_account_e_invoicing/models/account_fiscal_year.py delete mode 100644 l10n_co_account_e_invoicing/models/account_move.py delete mode 100644 l10n_co_account_e_invoicing/models/account_move_dian_document.py delete mode 100644 l10n_co_account_e_invoicing/models/account_move_dian_document_line.py delete mode 100644 l10n_co_account_e_invoicing/models/account_move_line.py delete mode 100644 l10n_co_account_e_invoicing/models/account_move_line_summary.py delete mode 100644 l10n_co_account_e_invoicing/models/account_move_summary_line.py delete mode 100644 l10n_co_account_e_invoicing/models/account_tax_group.py delete mode 100644 l10n_co_account_e_invoicing/models/einvoice_notification_group.py delete mode 100644 l10n_co_account_e_invoicing/models/global_functions.py delete mode 100644 l10n_co_account_e_invoicing/models/ir_sequence.py delete mode 100644 l10n_co_account_e_invoicing/models/ir_sequence_date_range.py delete mode 100644 l10n_co_account_e_invoicing/models/product_scheme.py delete mode 100644 l10n_co_account_e_invoicing/models/product_template.py delete mode 100644 l10n_co_account_e_invoicing/models/res_company.py delete mode 100644 l10n_co_account_e_invoicing/models/res_partner.py delete mode 100644 l10n_co_account_e_invoicing/report/report.xml delete mode 100644 l10n_co_account_e_invoicing/report/template_report.xml delete mode 100644 l10n_co_account_e_invoicing/security/ir.model.access.csv delete mode 100644 l10n_co_account_e_invoicing/static/description/icon.png delete mode 100644 l10n_co_account_e_invoicing/static/images/account_invoice.png delete mode 100644 l10n_co_account_e_invoicing/static/images/dian_document.png delete mode 100644 l10n_co_account_e_invoicing/static/images/ir_sequence.png delete mode 100644 l10n_co_account_e_invoicing/static/images/res_company.png delete mode 100644 l10n_co_account_e_invoicing/templates/AttachedDocument.xml delete mode 100644 l10n_co_account_e_invoicing/templates/CreditNote.xml delete mode 100644 l10n_co_account_e_invoicing/templates/DebitNote.xml delete mode 100644 l10n_co_account_e_invoicing/templates/DocumentoSoporte.xml delete mode 100644 l10n_co_account_e_invoicing/templates/GetNumberingRange.xml delete mode 100644 l10n_co_account_e_invoicing/templates/GetStatus.xml delete mode 100644 l10n_co_account_e_invoicing/templates/GetStatusZip.xml delete mode 100644 l10n_co_account_e_invoicing/templates/Invoice.xml delete mode 100644 l10n_co_account_e_invoicing/templates/SendBillAsync.xml delete mode 100644 l10n_co_account_e_invoicing/templates/SendBillAttachmentAsync.xml delete mode 100644 l10n_co_account_e_invoicing/templates/SendBillSync.xml delete mode 100644 l10n_co_account_e_invoicing/templates/SendTestSetAsync.xml delete mode 100644 l10n_co_account_e_invoicing/views/account_fiscal_position_party_tax_scheme_views.xml delete mode 100644 l10n_co_account_e_invoicing/views/account_fiscal_position_tax_level_code_views.xml delete mode 100644 l10n_co_account_e_invoicing/views/account_fiscal_position_views.xml delete mode 100644 l10n_co_account_e_invoicing/views/account_fiscal_year_views.xml delete mode 100644 l10n_co_account_e_invoicing/views/account_move_dian_document_views.xml delete mode 100644 l10n_co_account_e_invoicing/views/account_move_views.xml delete mode 100644 l10n_co_account_e_invoicing/views/account_tax_group_views.xml delete mode 100644 l10n_co_account_e_invoicing/views/ir_sequence_views.xml delete mode 100644 l10n_co_account_e_invoicing/views/product_template_views.xml delete mode 100644 l10n_co_account_e_invoicing/views/res_company_views.xml delete mode 100644 l10n_co_account_e_invoicing/views/res_partner_views.xml delete mode 100644 l10n_co_account_move_discrepancy_response/README.rst delete mode 100644 l10n_co_account_move_discrepancy_response/__init__.py delete mode 100644 l10n_co_account_move_discrepancy_response/__manifest__.py delete mode 100644 l10n_co_account_move_discrepancy_response/data/account_move_discrepancy_response_code_data.xml delete mode 100644 l10n_co_account_move_discrepancy_response/i18n/es.po delete mode 100644 l10n_co_account_move_discrepancy_response/i18n/es_CO.po delete mode 100644 l10n_co_account_move_discrepancy_response/i18n/l10n_co_account_move_discrepancy_response.pot delete mode 100644 l10n_co_account_move_discrepancy_response/models/__init__.py delete mode 100644 l10n_co_account_move_discrepancy_response/models/account_journal.py delete mode 100644 l10n_co_account_move_discrepancy_response/models/account_move.py delete mode 100644 l10n_co_account_move_discrepancy_response/models/account_move_discrepancy_response_code.py delete mode 100644 l10n_co_account_move_discrepancy_response/security/ir.model.access.csv delete mode 100644 l10n_co_account_move_discrepancy_response/static/description/icon.png delete mode 100644 l10n_co_account_move_discrepancy_response/static/src/img/icon.png delete mode 100644 l10n_co_account_move_discrepancy_response/views/account_journal_views.xml delete mode 100644 l10n_co_account_move_discrepancy_response/views/account_move_discrepancy_response_code_views.xml delete mode 100644 l10n_co_account_move_discrepancy_response/views/account_move_views.xml delete mode 100644 l10n_co_account_move_discrepancy_response/wizards/__init__.py delete mode 100644 l10n_co_account_move_discrepancy_response/wizards/account_debit_note.py delete mode 100644 l10n_co_account_move_discrepancy_response/wizards/account_debit_note_views.xml delete mode 100644 l10n_co_account_move_discrepancy_response/wizards/account_move_reversal.py delete mode 100644 l10n_co_account_move_discrepancy_response/wizards/account_move_reversal_views.xml delete mode 100644 l10n_co_account_move_payment_mean/README.rst delete mode 100644 l10n_co_account_move_payment_mean/__init__.py delete mode 100644 l10n_co_account_move_payment_mean/__manifest__.py delete mode 100644 l10n_co_account_move_payment_mean/data/account.payment.mean.code.csv delete mode 100644 l10n_co_account_move_payment_mean/data/account_payment_mean_data.xml delete mode 100644 l10n_co_account_move_payment_mean/i18n/es.po delete mode 100644 l10n_co_account_move_payment_mean/i18n/es_CO.po delete mode 100644 l10n_co_account_move_payment_mean/i18n/l10n_co_account_move_payment_mean.pot delete mode 100644 l10n_co_account_move_payment_mean/models/__init__.py delete mode 100644 l10n_co_account_move_payment_mean/models/account_move.py delete mode 100644 l10n_co_account_move_payment_mean/models/account_payment_mean.py delete mode 100644 l10n_co_account_move_payment_mean/models/account_payment_mean_code.py delete mode 100644 l10n_co_account_move_payment_mean/security/ir.model.access.csv delete mode 100644 l10n_co_account_move_payment_mean/static/description/icon.png delete mode 100644 l10n_co_account_move_payment_mean/views/account_move_views.xml delete mode 100644 l10n_co_account_move_payment_mean/views/account_payment_mean_code_views.xml delete mode 100644 l10n_co_account_move_payment_mean/views/account_payment_mean_views.xml delete mode 100644 l10n_co_account_tax_group_type/README.rst delete mode 100644 l10n_co_account_tax_group_type/__init__.py delete mode 100644 l10n_co_account_tax_group_type/__manifest__.py delete mode 100644 l10n_co_account_tax_group_type/data/account_tax_group_type_data.xml delete mode 100644 l10n_co_account_tax_group_type/i18n/es.po delete mode 100644 l10n_co_account_tax_group_type/i18n/es_CO.po delete mode 100644 l10n_co_account_tax_group_type/i18n/l10n_co_account_tax_group_type.pot delete mode 100644 l10n_co_account_tax_group_type/static/description/icon.png diff --git a/l10n_co_account_e_invoicing/README.rst b/l10n_co_account_e_invoicing/README.rst deleted file mode 100644 index 9554324..0000000 --- a/l10n_co_account_e_invoicing/README.rst +++ /dev/null @@ -1,40 +0,0 @@ -.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png - :target: https://www.gnu.org/licenses/agpl - :alt: License: AGPL-3 - -============================= -Colombian Account E-Invoicing -============================= - -Configuacion del Server: - -Configurar "server_wide_modules" en el archivo de configuracion para que el modulo funcione correctamente. -Ejemplo: -server_wide_modules = web,web_kanban,l10n_co_account_e_invoicing - -Configuacion: - -1) Configurar Secuencias DIAN, principalmente la clave técnica: - -.. image:: https://raw.githubusercontent.com/odooloco/l10n-colombia/10.0/l10n_co_account_e_invoicing/static/images/ir_sequence.png - -2) Configurar datos de la compañía: - -.. image:: https://raw.githubusercontent.com/odooloco/l10n-colombia/10.0/l10n_co_account_e_invoicing/static/images/res_company.png - -3) Hacer pruebas con las facturas: - -.. image:: https://raw.githubusercontent.com/odooloco/l10n-colombia/10.0/l10n_co_account_e_invoicing/static/images/account_invoice.png - -4) Resultados: - -.. image:: https://raw.githubusercontent.com/odooloco/l10n-colombia/10.0/l10n_co_account_e_invoicing/static/images/dian_document.png - - -Credits -======= - -Contributors ------------- - -* Joan Marín diff --git a/l10n_co_account_e_invoicing/__init__.py b/l10n_co_account_e_invoicing/__init__.py deleted file mode 100644 index 53d863c..0000000 --- a/l10n_co_account_e_invoicing/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from . import models -from . import controllers diff --git a/l10n_co_account_e_invoicing/__manifest__.py b/l10n_co_account_e_invoicing/__manifest__.py deleted file mode 100644 index daae0aa..0000000 --- a/l10n_co_account_e_invoicing/__manifest__.py +++ /dev/null @@ -1,58 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -{ - "name": "Colombian Account E-Invoicing", - "category": "E-Invoicing", - "version": "14.0.1.0.0", - "author": "Avancys SAS", - "website": "https://www.avancys.com/", - "license": "AGPL-3", - "summary": "Colombian Account E-Invoicing", - "depends": [ - "l10n_co_account_move_discrepancy_response", - "l10n_co_account_move_payment_mean", - "l10n_co_account_tax_group_type", - "l10n_co_base_location", - "l10n_co_partner_person_type", - "l10n_co_partner_vat", - "l10n_co_uom", - "l10n_co_sequence_resolution", - "account_fiscal_year", - "partner_coc", - "partner_commercial_name", - "partner_fax", - "product_brand", - "product_manufacturer" - ], - "external_dependencies": { - "python": [ - "pyopenssl", - "xades", - ], - }, - "data": [ - "security/ir.model.access.csv", - "data/account_fiscal_position_party_tax_scheme_data.xml", - "data/account_fiscal_position_tax_level_code_data.xml", - "data/ir_cron_data.xml", - "data/ir_module_category_data.xml", - "data/mail_template_data.xml", - "data/product_scheme_data.xml", - "data/res_groups_data.xml", - "views/account_fiscal_position_party_tax_scheme_views.xml", - "views/account_fiscal_position_tax_level_code_views.xml", - "views/account_fiscal_position_views.xml", - "views/account_fiscal_year_views.xml", - "views/account_move_views.xml", - "views/account_move_dian_document_views.xml", - "views/account_tax_group_views.xml", - "views/ir_sequence_views.xml", - "views/product_template_views.xml", - "views/res_company_views.xml", - "views/res_partner_views.xml", - "report/template_report.xml", - "report/report.xml", - ], - "installable": True, -} diff --git a/l10n_co_account_e_invoicing/controllers/__init__.py b/l10n_co_account_e_invoicing/controllers/__init__.py deleted file mode 100644 index 3b36987..0000000 --- a/l10n_co_account_e_invoicing/controllers/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import main diff --git a/l10n_co_account_e_invoicing/controllers/main.py b/l10n_co_account_e_invoicing/controllers/main.py deleted file mode 100644 index c093957..0000000 --- a/l10n_co_account_e_invoicing/controllers/main.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from datetime import datetime -from pytz import timezone -from odoo import http -from odoo.http import request - - -class DianDocumentController(http.Controller): - @http.route('/dian/document/accept', type='http', auth="none") - def accept(self, db, token, id, **kwargs): - request.session.db = db - move_id = request.env['account.move'].sudo().search([ - ('access_token', '=', token), ('id', '=', id)]) - - if move_id and not move_id.accepted_rejected_datetime: - move_id.write({ - 'is_accepted_rejected': True, - 'accepted_rejected_datetime': datetime.now().replace( - tzinfo=None), #timezone('UTC')), - 'dian_document_state': 'customer_accept'}) - - return request.render('l10n_co_account_e_invoicing.customer_accept_invoice', {}) - - return - - @http.route('/dian/document/reject', type='http', auth="none") - def reject(self, db, token, id, **kwargs): - request.session.db = db - move_id = request.env['account.move'].sudo().search([ - ('access_token', '=', token), ('id', '=', id)]) - - if move_id and not move_id.accepted_rejected_datetime: - move_id.write({ - 'is_accepted_rejected': False, - 'accepted_rejected_datetime': datetime.now().replace( - tzinfo=None), #timezone('UTC')), - 'dian_document_state': 'customer_reject'}) - - return request.render('l10n_co_account_e_invoicing.customer_reject_invoice', {}) - - return diff --git a/l10n_co_account_e_invoicing/data/account_fiscal_position_party_tax_scheme_data.xml b/l10n_co_account_e_invoicing/data/account_fiscal_position_party_tax_scheme_data.xml deleted file mode 100644 index 50b378a..0000000 --- a/l10n_co_account_e_invoicing/data/account_fiscal_position_party_tax_scheme_data.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - IVA - 01 - - - INC - 04 - - - IVA e INC - ZA - - - No aplica - ZZ - - diff --git a/l10n_co_account_e_invoicing/data/account_fiscal_position_tax_level_code_data.xml b/l10n_co_account_e_invoicing/data/account_fiscal_position_tax_level_code_data.xml deleted file mode 100644 index 5815375..0000000 --- a/l10n_co_account_e_invoicing/data/account_fiscal_position_tax_level_code_data.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - Gran contribuyente - O-13 - - - Autorretenedor - O-15 - - - Agente de retención IVA - O-23 - - - Régimen simple de tributación - O-47 - - - No aplica - Otros - R-99-PN - - diff --git a/l10n_co_account_e_invoicing/data/ir_cron_data.xml b/l10n_co_account_e_invoicing/data/ir_cron_data.xml deleted file mode 100644 index d055698..0000000 --- a/l10n_co_account_e_invoicing/data/ir_cron_data.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - Process DIAN Documents - - - 1 - - days - -1 - - code - model.cron_process_dian_documents() - - diff --git a/l10n_co_account_e_invoicing/data/ir_module_category_data.xml b/l10n_co_account_e_invoicing/data/ir_module_category_data.xml deleted file mode 100644 index e6e455a..0000000 --- a/l10n_co_account_e_invoicing/data/ir_module_category_data.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - E-Invoicing - - diff --git a/l10n_co_account_e_invoicing/data/mail_template_data.xml b/l10n_co_account_e_invoicing/data/mail_template_data.xml deleted file mode 100644 index 5219dee..0000000 --- a/l10n_co_account_e_invoicing/data/mail_template_data.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - E-Invoice: Send by Email - ${object.company_id.einvoicing_email} - ${object.company_id.einvoicing_email} - ${object.company_id.partner_id.ref_num};${object.company_id.name};${object.name};${object.invoice_type_code if not object.refund_type else ('91' if object.refund_type == 'credit' else '92')};${object.company_id.name}; - ${(object.partner_id.einvoicing_email or object.partner_id.email) or object.company_id.einvoicing_partner_no_email}${',' + object.company_id.einvoicing_receives_all_emails if object.company_id.einvoicing_receives_all_emails else ''} - - - ${object.partner_id.lang} - -
-

Señor(es), ${object.partner_id.name}

- -
- -

Le informamos que ha recibido una factura/nota electrónica de ${object.company_id.name}:

- -
- -

Número de factura: ${object.number}

-

Valor Total: ${object.amount_total} ${object.currency_id.name}

- -
- -

Si tiene inquietud respecto a la información contenida en la factura/nota electrónica, responda este correo electrónico.

- -
- -

Si pasados tres (3) días hábiles siguientes a la recepción de la factura/nota electrónica, no se ha recibido rechazo de la factura/nota electrónica, el sistema la dará por aceptada.

- -


- - - -
- -

Cordialmente, ${object.company_id.name}

-
-
-
-
diff --git a/l10n_co_account_e_invoicing/data/product_scheme_data.xml b/l10n_co_account_e_invoicing/data/product_scheme_data.xml deleted file mode 100644 index 38cfae3..0000000 --- a/l10n_co_account_e_invoicing/data/product_scheme_data.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - UNSPSC - 001 - 10 - - - GTIN - 010 - 9 - - - Partida Arancelarias - 020 - 195 - - - Estándar de adopción del contribuyente - 999 - - diff --git a/l10n_co_account_e_invoicing/data/res_groups_data.xml b/l10n_co_account_e_invoicing/data/res_groups_data.xml deleted file mode 100644 index 2521a15..0000000 --- a/l10n_co_account_e_invoicing/data/res_groups_data.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - - View 'E-Invoicing Email' Fields - - - - - Edit 'Is an E-Invoicing Agent?' Field - - - - - View E-Invoicing Setting of the Product - - - - - View DIAN Documents - - - - - View Invoice Refund Buttons - - - - - View 'Send Invoice to DIAN?' Field - - - - - View 'Operation Type' Field - - - - - View 'Invoice Type' Field - - - - - View 'Accepted/Rejected' Fields - - - - - View 'Summary of Invoice Lines' Fields - - - - - Allow to Cancel Invoice With DIAN Document in Done - - - - diff --git a/l10n_co_account_e_invoicing/i18n/es.po b/l10n_co_account_e_invoicing/i18n/es.po deleted file mode 100644 index 0e6eb32..0000000 --- a/l10n_co_account_e_invoicing/i18n/es.po +++ /dev/null @@ -1,1660 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * l10n_co_account_e_invoicing -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-07 19:12+0000\n" -"PO-Revision-Date: 2022-02-07 19:12+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a DIAN document type established." -msgstr "'%s' no tiene establecido un tipo de documento DIAN." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a city established." -msgstr "%s' no tiene una ciudad/municipio establecido." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a country established." -msgstr "'%s' no tiene un país establecido." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a document type established." -msgstr "'%s' no tiene establecido un tipo de documento." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a fiscal position correctly configured." -msgstr "'%s' no tiene una posición fiscal configurada correctamente." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a fiscal position established." -msgstr "'%s' no tiene una posición fiscal establecida." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a identification document established." -msgstr "'%s' no tiene un documento de identificación establecido." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "'%s' does not have a isic code established." -msgstr "'%s' no tiene un código ciiu establecido." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a person type established." -msgstr "'%s' no tiene establecido un tipo de persona." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a state established." -msgstr "'%s' no tiene un estado/departamento establecido." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "'%s' does not have a valid isic code" -msgstr "'%s' no tiene un código ciiu válido" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a verification digit established." -msgstr "'%s' no tiene establecido un dígito de verificación." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__09 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__operation_type__09 -msgid "AIU" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "ALERT! Invoice %s was not sent to DIAN." -msgstr "¡ALERTA! La factura %s no fue enviada a la DIAN." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__access_token -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__access_token -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__access_token -msgid "Access Token" -msgstr "Token de Acceso" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__additional_hours_delivery_datetime -msgid "Additional Hours" -msgstr "Horas Adicionales" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_res_company__additional_hours_delivery_datetime -msgid "Additional hours to invoice date for delivery date" -msgstr "Horas adicionales a la fecha de factura para la fecha de entrega" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__send_invoice_to_dian__1 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__send_invoice_to_dian__1 -msgid "After 1 Day" -msgstr "Después de 1 Día" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__send_invoice_to_dian__2 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__send_invoice_to_dian__2 -msgid "After 2 Days" -msgstr "Después de 2 Días" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_allow_cancel_invoice_dian_document_done -msgid "Allow to Cancel Invoice With DIAN Document in Done" -msgstr "Permitir Cancelar la Factura con el Documento DIAN en Hecho" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__ar_xml_file -msgid "ApplicationResponse XML File" -msgstr "Archivo XML del ApplicationResponse" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__ar_xml_filename -msgid "ApplicationResponse XML Filename" -msgstr "Nombre de archivo XML del ApplicationResponse" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__assignment_code -msgid "Assignment Code" -msgstr "Código de Asignación" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__ad_zipped_file -msgid "AttachedDocument Zipped File" -msgstr "Archivo Comprimido del AttachedDocument" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__ad_zipped_filename -msgid "AttachedDocument Zipped Filename" -msgstr "Nombre de Archivo Comprimido del AttachedDocument" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__automatic_delivery_datetime -msgid "Automatic Delivery Datetime?" -msgstr "¿Fecha de Entrega Automática?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__cufe_cude -msgid "CUFE/CUDE" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__cufe_cude_uncoded -msgid "CUFE/CUDE Uncoded" -msgstr "CUFE/CUDE Sin Codificar" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__state__cancel -msgid "Cancelled" -msgstr "Cancelado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__product_uom_category_id -msgid "Category" -msgstr "Categoría" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_date -msgid "Certificate Date Validity" -msgstr "Fecha de Validez del Certificado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_file -msgid "Certificate File" -msgstr "Archivo del Certificado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_filename -msgid "Certificate Filename" -msgstr "Nombre de Archivo del Certificado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_password -msgid "Certificate Password" -msgstr "Contraseña del Certificado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_remaining_days -msgid "Certificate Remaining Days" -msgstr "Días Restantes del Certificado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__code -msgid "Code" -msgstr "Código" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Codes" -msgstr "Códigos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_res_company -msgid "Companies" -msgstr "Compañías" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__company_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__company_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__company_id -msgid "Company" -msgstr "Compañía" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_res_partner -msgid "Contact" -msgstr "Contacto" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__contingency_checkbook_e-invoicing -#, python-format -msgid "Contingency Checkbook E-Invoicing" -msgstr "Talonario de Contingencia para Facturación Electrónica" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_account_move_summary_line__product_uom_category_id -msgid "" -"Conversion between Units of Measure can only occur if they belong to the " -"same category. The conversion will be made based on the ratios." -msgstr "" -"La conversión entre unidades de medida sólo puede ocurrir si pertenecen a la " -"misma categoría. La conversión se hará en base a los ratios definidos." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Cordial Saludo,

La factura del cliente no pudo ser enviada a la " -"Dian según el protocolo establecido previamente. Por favor revise el estado " -"de la misma en el menú Documentos Dian e intente reprocesarla según el " -"procedimiento definido.
." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line__cost_price -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__cost_price -msgid "Cost Price" -msgstr "Precio de Coste" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__create_date -msgid "Created on" -msgstr "Creado el" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__out_refund_credit_sent -msgid "Credit Notes Sent" -msgstr "Notas de Crédito Enviadas" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__20 -msgid "Credit note that references an e-invoice" -msgstr "Nota Crédito que referencia una factura electrónica" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__22 -msgid "Credit note without reference to invoices *" -msgstr "Nota Crédito sin referencia a facturas *" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__dbname -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__dbname -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__dbname -msgid "DB Name" -msgstr "Nombre de la BD" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__dian_document_id -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "DIAN Document" -msgstr "Documento DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move_dian_document_line -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__dian_document_line_ids -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "DIAN Document Lines" -msgstr "Líneas de Documentos DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__dian_document_state -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__dian_document_state -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__dian_document_state -msgid "DIAN Document State" -msgstr "Estado del Documento DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.actions.act_window,name:l10n_co_account_e_invoicing.account_move_dian_document_action -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move_dian_document -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__dian_document_ids -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__dian_document_ids -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__dian_document_ids -#: model:ir.ui.menu,name:l10n_co_account_e_invoicing.account_move_dian_document_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_tree -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "DIAN Documents" -msgstr "Documentos DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence__dian_type -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range__dian_type -msgid "DIAN Type" -msgstr "Tipo DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__accepted_rejected_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__accepted_rejected_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__accepted_rejected_datetime -msgid "Datetime of Accepted/Rejected" -msgstr "Fecha y Hora de Aceptado/Rechazado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__out_refund_debit_sent -msgid "Debit Notes Sent" -msgstr "Notas de Débito Enviadas" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__30 -msgid "Debit note that references an e-invoice" -msgstr "Nota Débito que referencia una factura electrónica." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__32 -msgid "Debit note without reference to invoices *" -msgstr "Nota Débito sin referencia a facturas *" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__delivery_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__delivery_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__delivery_datetime -msgid "Delivery Datetime" -msgstr "Fecha y Hora de Entrega" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__profile_execution_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__profile_execution_id -msgid "Destination Environment of Document" -msgstr "Ambiente de Destino del Documento" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Disc.%" -msgstr "Desc.%" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__discount -msgid "Discount (%)" -msgstr "Descuento (%)" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_tax_group__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__display_name -msgid "Display Name" -msgstr "Mostrar nombre" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__have_technological_provider -msgid "Do you have a technological provider?" -msgstr "¿Tienes un proveedor tecnológico?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_tax_group__is_einvoicing -msgid "Does it Apply for E-Invoicing?" -msgstr "¿Aplica para la Facturación Electrónica?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__state__done -msgid "Done" -msgstr "Hecho" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__state__draft -msgid "Draft" -msgstr "Borrador" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__e-credit_note -#, python-format -msgid "E-Credit Note" -msgstr "Nota Crédito Electrónica" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__e-debit_note -#, python-format -msgid "E-Debit Note" -msgstr "Nota Débito Electrónica" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__einvoicing_email -msgid "E-Invoice Email, From:" -msgstr "Correo Electrónico de Factura Electrónica, De:" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__e-invoicing -#: model:ir.module.category,name:l10n_co_account_e_invoicing.category_einvoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.product_template_form_view -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_company_form -#, python-format -msgid "E-Invoicing" -msgstr "Facturación Electrónica" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "E-Invoicing Agent: '%s' does not have a E-Invoicing Email." -msgstr "" -"Agente de Facturación Electrónica: '%s' no tiene un Correo Electrónico de " -"Facturación Electrónica." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__einvoicing_email -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__einvoicing_email -msgid "E-Invoicing Email" -msgstr "Correo Electrónico de Facturación Electrónica" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__einvoicing_enabled -msgid "E-Invoicing Enabled" -msgstr "Facturación electrónica Habilitada" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__invoice_type_code__05 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__e-support_document -#, python-format -msgid "E-Support Document" -msgstr "Documento Soporte Electrónico" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__invoice_type_code__03 -msgid "E-document of transmission - type 03" -msgstr "Documento electrónico de transmisión - tipo 03" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__invoice_type_code__01 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__invoice_type_code__01 -msgid "E-invoice of sale" -msgstr "Factura electrónica de venta" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__invoice_type_code__04 -msgid "E-invoice of sale - type 04" -msgstr "Factura electrónica de venta - tipo 04" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__edit_is_einvoicing_agent_field -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__edit_is_einvoicing_agent_field -#: model:res.groups,name:l10n_co_account_e_invoicing.group_edit_is_einvoicing_agent_field -msgid "Edit 'Is an E-Invoicing Agent?' Field" -msgstr "Editar Campo '¿Es Agente de Facturación Electrónica?'" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__email -msgid "Email" -msgstr "Correo electrónico" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__einvoicing_receives_all_emails -msgid "Email that receives all emails" -msgstr "Correo electrónico que recibe todos los correos electrónicos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_res_company__einvoicing_email -msgid "Enter the e-invoice sender's email." -msgstr "Correo electrónico que recibe todos los correos electrónicos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_res_company__einvoicing_partner_no_email -msgid "" -"Enter the email where the invoice will be sent when the customer does not " -"have an email." -msgstr "" -"Ingrese el correo electrónico donde se enviará la factura cuando el cliente " -"no tenga un correo electrónico." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__einvoicing_partner_no_email -msgid "Failed Emails, To:" -msgstr "Correos Electrónicos Fallidos, A:" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Files" -msgstr "Archivos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "Posición fiscal" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__listname -msgid "Fiscal Regime" -msgstr "Régimen fiscal" - -#. module: l10n_co_account_e_invoicing -#: model:ir.actions.act_window,name:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_action -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_fiscal_position_party_tax_scheme -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__party_tax_scheme_id -#: model:ir.ui.menu,name:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_action_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_view_tree -msgid "Fiscal Responsibilities (PartyTaxScheme)" -msgstr "Responsabilidades Fiscales (PartyTaxScheme)" - -#. module: l10n_co_account_e_invoicing -#: model:ir.actions.act_window,name:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_action -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_fiscal_position_tax_level_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__tax_level_code_ids -#: model:ir.ui.menu,name:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_action_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_view_tree -msgid "Fiscal Responsibilities (TaxLevelCode)" -msgstr "Responsabilidades Fiscales (TaxLevelCode)" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_fiscal_year -msgid "Fiscal Year" -msgstr "Año Fiscal" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__force_send_mail -msgid "Force Send Mail?" -msgstr "¿Forzar envío de correo?" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_company_form -msgid "GetNumberingRange" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__get_numbering_range_response -msgid "GetNumberingRange Response" -msgstr "Respuesta de GetNumberingRange" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "GetStatus" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "GetStatusZip" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_tax_group__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__id -msgid "ID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__send_invoice_to_dian__0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__send_invoice_to_dian__0 -msgid "Immediately" -msgstr "Inmediatamente" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_company.py:0 -#, python-format -msgid "Invalid URL." -msgstr "URL Invalida." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__invoice_id -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Invoice" -msgstr "Factura" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__invoice_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__invoice_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__invoice_datetime -msgid "Invoice Datetime" -msgstr "Fecha y Hora de la Factura" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__invoice_type_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__invoice_type_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__invoice_type_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__invoice_type_code -msgid "Invoice Type" -msgstr "Tipo de Factura" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__invoice_url -msgid "Invoice Url" -msgstr "URL de Factura" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__xml_file -msgid "Invoice XML File" -msgstr "Archivo XML de Factura" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__xml_filename -msgid "Invoice XML Filename" -msgstr "Nombre de Archivo XML de la Factura" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "Invoice totals do not match summary totals." -msgstr "Los totales de la factura no coinciden con los totales del resumen." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__out_invoice_sent -msgid "Invoices Sent" -msgstr "Facturas Enviadas" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__is_accepted_rejected -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__is_accepted_rejected -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__is_accepted_rejected -msgid "Is Accepted/Rejected?" -msgstr "¿Esta Aceptada/Rechazada?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__is_einvoicing_agent -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__is_einvoicing_agent -msgid "Is an E-Invoicing Agent?" -msgstr "¿Es un Agente de Facturación Electrónica?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__move_id -msgid "Journal Entry" -msgstr "Asiento contable" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move_line -msgid "Journal Item" -msgstr "Apunte contable" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__name -msgid "Label" -msgstr "Etiqueta" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_tax_group____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner____last_update -msgid "Last Modified on" -msgstr "Última modificación el" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__write_uid -msgid "Last Updated by" -msgstr "Última Actualización por" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__write_date -msgid "Last Updated on" -msgstr "Última Actualización el" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__mail_sent -msgid "Mail Sent?" -msgstr "¿Correo Enviado?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_product__margin_percentage -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__margin_percentage -msgid "Margin Percentage" -msgstr "Porcentaje de Margen" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__receipt_document_reference -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__receipt_document_reference -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__receipt_document_reference -msgid "Merchandise / Service Receipt Document" -msgstr "Documento de recibo de mercancía / servicio" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Merge With Sale Order" -msgstr "Combinar con Pedido de Venta" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__merge_with_sale_order -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__merge_with_sale_order -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__merge_with_sale_order -msgid "Merge With Sale Order?" -msgstr "¿Combinar con Pedido de Venta?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__66 -msgid "NSU not found" -msgstr "NSU no encontrado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__name -msgid "Name" -msgstr "Nombre" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_partner__is_einvoicing_agent__no -msgid "No" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_fiscal_position__listname__49 -msgid "No responsable de IVA" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_partner__is_einvoicing_agent__no_but -msgid "No, but has email" -msgstr "No, pero tiene correo electrónico." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__notification_group_ids -msgid "Notification Group" -msgstr "Grupo de Notificaciones" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_einvoice_notification_group -msgid "Notification Groups" -msgstr "Grupos de Notificación" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__operation_type -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__operation_type -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__operation_type -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__operation_type -msgid "Operation Type" -msgstr "Tipo de Operación" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__other -msgid "Other" -msgstr "Otro" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Price" -msgstr "Precio" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Process" -msgstr "Procesar" - -#. module: l10n_co_account_e_invoicing -#: model:ir.actions.server,name:l10n_co_account_e_invoicing.ir_cron_process_dian_documents_ir_actions_server -#: model:ir.cron,cron_name:l10n_co_account_e_invoicing.ir_cron_process_dian_documents -#: model:ir.cron,name:l10n_co_account_e_invoicing.ir_cron_process_dian_documents -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_company_form -msgid "Process DIAN Documents" -msgstr "Procesar Documentos DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__00 -msgid "Processed Correctly" -msgstr "Procesado Correctamente" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__product_id -msgid "Product" -msgstr "Producto" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_product__product_scheme_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__product_scheme_id -msgid "Product Scheme" -msgstr "Esquema del Producto" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_product_scheme -msgid "Product Schemes" -msgstr "Esquemas de Productos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_product_template -msgid "Product Template" -msgstr "Plantilla de producto" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__profile_execution_id__1 -msgid "Production" -msgstr "Producción" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__qr_image -msgid "QR Code" -msgstr "Código QR" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "QR Image" -msgstr "Imagen QR" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__send_async_reason -msgid "Reason" -msgstr "Motivo" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line__reference_price -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__reference_price -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_product__reference_price -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__reference_price -msgid "Reference Price" -msgstr "Precio de Referencia" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__report_template_id -msgid "Report Template" -msgstr "Plantilla de Informe" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_fiscal_position__listname__48 -msgid "Responsable del impuesto sobre las ventas - IVA" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__get_status_zip_response -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__send_async_response -msgid "Response" -msgstr "Respuesta" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__sale_order_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__sale_order_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__sale_order_id -msgid "Sale Order" -msgstr "Pedido de venta" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_view_search -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_view_search -msgid "Search" -msgstr "Buscar" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Send DIAN Document" -msgstr "Enviar Documento DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__send_failure_mail -msgid "Send Failure Mail?" -msgstr "¿Enviar Correo de Error?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__send_invoice_to_dian -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__send_invoice_to_dian -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__send_invoice_to_dian -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__send_invoice_to_dian -msgid "Send Invoice to DIAN?" -msgstr "¿Enviar Factura a DIAN?" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Send Mail" -msgstr "Enviar Correo" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Send Zipped File" -msgstr "Enviar Archivo Comprimido" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__state__sent -msgid "Sent" -msgstr "Enviado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_ir_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_ir_sequence_date_range -msgid "Sequence Date Range" -msgstr "Rango de fechas de la secuencia" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__sequence_resolution_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__sequence_resolution_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__sequence_resolution_id -msgid "Sequence Resolution" -msgstr "Resolución de la Secuencia" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Set AttachedDocument Zipped File" -msgstr "Establecer Archivo Comprimido del AttachedDocument" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Set DIAN Document" -msgstr "Establecer Documento DIAN" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Set Files" -msgstr "Establecer Archivos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__signature_policy_description -msgid "Signature Policy Description" -msgstr "Descripción de la Política de Firma" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__signature_policy_url -msgid "Signature Policy URL" -msgstr "URL de Política de Firma" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__software_id -msgid "Software ID" -msgstr "ID del software" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__software_pin -msgid "Software PIN" -msgstr "PIN del Software" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__software_security_code -msgid "SoftwareSecurityCode" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__software_security_code_uncoded -msgid "SoftwareSecurityCode Uncoded" -msgstr "SoftwareSecurityCode Sin Codificar" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__10 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__operation_type__10 -msgid "Standard" -msgstr "Estándar" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__state -msgid "State" -msgstr "Estado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__get_status_zip_status_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__send_async_status_code -msgid "Status Code" -msgstr "Código de Estado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__price_subtotal -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Subtotal" -msgstr "Subtotal" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move_summary_line -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__summary_line_ids -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__summary_line_ids -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__summary_line_ids -msgid "Summary of Invoice Lines" -msgstr "Resumen de Líneas de Factura" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__in_invoice_sent -msgid "Support Documents Sent" -msgstr "Documentos Soporte Enviados" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__summary_amount_tax -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__summary_amount_tax -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__summary_amount_tax -msgid "Tax" -msgstr "Impuesto" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_tax_group -msgid "Tax Group" -msgstr "Grupo de impuestos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__tax_ids -msgid "Taxes" -msgstr "Impuestos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_account_move_summary_line__tax_ids -msgid "Taxes that apply on the base amount" -msgstr "Impuestos que aplican sobre el importe base" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range__technical_key -msgid "Technical Key" -msgstr "Clave Técnica" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__technological_provider_id -msgid "Technological Provider" -msgstr "Proveedor Tecnológico" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__profile_execution_id__2 -msgid "Test" -msgstr "Prueba" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__test_set_id -msgid "Test Set ID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__2 -msgid "Test set it is found Accepted" -msgstr "El test set se encuentra Aceptado" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"The 'delivery date' must be equal or greater per maximum 10 days to the " -"'invoice date'." -msgstr "" -"La 'fecha de entrega' debe ser igual o mayor por un máximo de 10 días a la " -"'fecha de la factura'." - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "" -"The certificate for this company is nearby to expire.
\n" -" Please, you must to inform the administration." -msgstr "" -"El certificado de esta empresa está por vencer.
\n" -" Por favor, debe informar a la administración." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/global_functions.py:0 -#, python-format -msgid "" -"The certificate password or certificate file is not valid.\n" -"\n" -"Exception: %s" -msgstr "" -"La contraseña del certificado o el archivo del certificado no es válido.\n" -"\n" -"Excepción: %s" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_product_product__margin_percentage -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_product_template__margin_percentage -msgid "The cost price + this percentage will be the reference price" -msgstr "El precio de costo + este porcentaje será el precio de referencia" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "" -"The document type of '%s' does not seem to correspond with the person type." -msgstr "" -"El tipo de documento de '%s' no parece corresponder con el tipo de persona." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "The document type of '%s' is not NIT" -msgstr "El tipo de documento de '%s' no es NIT" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "" -"The field 'E-Invoicing Email' is not correctly filled.\n" -"\n" -"Please add @ and dot (.)" -msgstr "" -"El campo 'Correo Electrónico de Facturación Electrónica' no se completa correctamente.\n" -"\n" -"Por favor agregue @ y punto (.)" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "The invoice line %s has no reference" -msgstr "La línea de factura %s no tiene referencia" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "The invoice type selected is not valid to this invoice." -msgstr "El tipo de factura seleccionado no es válido para esta factura." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_account_move_summary_line__move_id -msgid "The move of this entry line." -msgstr "El apunte de este asiento." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"The notification group for e-invoice failures is not set.\n" -"You won't be notified if something goes wrong.\n" -"Please go to Settings > Company > Notification Group." -msgstr "" -"El grupo de notificación para fallas de factura electrónica no está establecido.\n" -"No se le notificará si algo sale mal.\n" -"Vaya a Configuración > Compañia > Grupo de Notificaciones." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "There is no an active certificate." -msgstr "No hay un certificado activo." - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "" -"There is no an active certificate.
\n" -" Please, you must to inform the administration." -msgstr "" -"No hay un certificado activo.
\n" -" Por favor, debe informar a la administración." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "There is no fiscal year corresponding to the date of your invoice." -msgstr "No hay intervalo de fechas correspondiente a la fecha de su factura." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__summary_amount_total -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__summary_amount_total -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__price_total -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__summary_amount_total -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Total" -msgstr "Total" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__90 -msgid "TrackId not found" -msgstr "TrackId no encontrado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__price_unit -msgid "Unit Price" -msgstr "Precio Unitario" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__product_uom_id -msgid "Unit of Measure" -msgstr "Unidad de Medida" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_partner__is_einvoicing_agent__unknown -msgid "Unknown" -msgstr "Desconocido" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Unknown Error,\n" -"Status Code: %s,\n" -"Reason: %s\n" -"\n" -"Contact with your administrator." -msgstr "" -"Error Desconocido,\n" -"Código de Estado: %s,\n" -"Razón: %s\n" -"\n" -"Contacta con tu administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Unknown Error,\n" -"Status Code: %s,\n" -"Reason: %s,\n" -"\n" -"Contact with your administrator or you can choose a journal with a Contingency Checkbook E-Invoicing sequence and change the Invoice Type to 'E-document of transmission - type 03'." -msgstr "" -"Error Desconocido,\n" -"Código de Estado: %s,\n" -"Razón: %s,\n" -"\n" -"Contacta con tu administrador o puede elegir un diario con una secuencia de Talonario de Contingencia para Facturación Electrónica y cambiar el Tipo de Factura a 'Documento electrónico de transmisión - tipo 03'." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_company.py:0 -#, python-format -msgid "" -"Unknown Error,\n" -"Status Code: %s,\n" -"Reason: %s." -msgstr "" -"Error Desconocido,\n" -"Código de Estado: %s,\n" -"Razón: %s." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Unknown Error: %s\n" -"\n" -"Contact with your administrator or you can choose a journal with a Contingency Checkbook E-Invoicing sequence and change the Invoice Type to 'E-document of transmission - type 03'." -msgstr "" -"Error Desconocido: %s\n" -"\n" -"Contacta con tu administrador o puede elegir un diario con una secuencia de Talonario de Contingencia para Facturación Electrónica y cambiar el Tipo de Factura a 'Documento electrónico de transmisión - tipo 03'." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Unknown Error: %s\n" -"\n" -"Contact with your administrator." -msgstr "" -"Error Desconocido: %s\n" -"\n" -"Contacta con tu administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_company.py:0 -#, python-format -msgid "" -"Unknown Error: %s\n" -"." -msgstr "" -"Error Desconocido: %s\n" -"." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__summary_amount_untaxed -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__summary_amount_untaxed -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__summary_amount_untaxed -msgid "Untaxed Amount" -msgstr "Importe libre de impuestos" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "UoM" -msgstr "UdM" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_product_product__reference_price -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_product_template__reference_price -msgid "" -"Use this field if the reference price does not depend on the cost price" -msgstr "" -"Use este campo si el precio de referencia no depende del precio de costo" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__validate_einvoicing_email -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__validate_einvoicing_email -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__validate_einvoicing_email -msgid "Validate E-Invoicing Email?" -msgstr "¿Validar el Correo Electrónico de Facturación Electrónica?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__validation_datetime -msgid "Validation Datetime" -msgstr "Fecha y Hora de Validación" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__99 -msgid "Validations contain errors in mandatory fields" -msgstr "Validaciones contienen errores en campos mandatorios" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_accepted_rejected_fields -msgid "View 'Accepted/Rejected' Fields" -msgstr "Ver Campos 'Aceptado/Rechazado'" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__view_einvoicing_email_field -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__view_einvoicing_email_field -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_einvoicing_email_fields -msgid "View 'E-Invoicing Email' Fields" -msgstr "Ver Campos de 'Correo Electrónico de Facturación Electrónica'" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_invoice_type_field -msgid "View 'Invoice Type' Field" -msgstr "Ver Campo 'Tipo de Factura'" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_operation_type_field -msgid "View 'Operation Type' Field" -msgstr "Ver Campo 'Tipo de Operación'" - -#. module: l10n_co_account_e_invoicingVer campo -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_send_invoice_dian_field -msgid "View 'Send Invoice to DIAN?' Field" -msgstr "Ver Campo 'Enviar Factura a DIAN?'" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_summary_fields -msgid "View 'Summary of Invoice Lines' Fields" -msgstr "Ver Campos 'Resumen de Líneas de Factura'" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_dian_documents -msgid "View DIAN Documents" -msgstr "Ver Documentos DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_einvoicing_setting_product -msgid "View E-Invoicing Setting of the Product" -msgstr "Ver Configuración de Facturación Electrónica del Producto" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_invoice_refund_buttons -msgid "View Invoice Refund Buttons" -msgstr "Ver Botones de Reembolso de Factura" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "WITHOUT VALIDATE" -msgstr "SIN VALIDAR" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__warn_inactive_certificate -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__warn_inactive_certificate -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__warn_inactive_certificate -msgid "Warn About Inactive Certificate?" -msgstr "¿Advertir Sobre el Certificado Inactivo?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__warn_remaining_certificate -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__warn_remaining_certificate -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__warn_remaining_certificate -msgid "Warn About Remainings?" -msgstr "¿Advertir Sobre los Restantes?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_partner__is_einvoicing_agent__yes -msgid "Yes" -msgstr "Sí" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"You can not make a refund invoice of an invoice with DIAN documents with " -"state 'Draft', 'Sent' or 'Cancelled'." -msgstr "" -"No puede hacer una factura de reembolso de una factura con documentos DIAN " -"con el estado 'Borrador', 'Enviado' o 'Cancelado'." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"You can not make a refund invoice of an invoice with state different to " -"'Posted'." -msgstr "" -"No puede hacer una factura de reembolso de una factura con un estado " -"diferente a 'Publicado'." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "You cannot cancel a invoice sent to the DIAN and that was approved." -msgstr "No puede cancelar una factura enviada a la DIAN y que fue aprobada." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"You do not have an active dian resolution, contact with your administrator." -msgstr "" -"No tiene una resolución activa de dian, póngase en contacto con su " -"administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your Unit of Measure: '%s', has no Unit of Measure Code, contact with your " -"administrator." -msgstr "" -"Su Unidad de Medida: '%s', no tiene Código de Unidad de Medida, contacte con" -" su administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Your active dian resolution has no technical key, contact with your " -"administrator." -msgstr "" -"Su resolución dian activa no tiene clave técnica, póngase en contacto con su" -" administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "Your invoice has not been validated" -msgstr "Su factura no ha sido validada" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "Your journal: %s, has no a credit note sequence" -msgstr "Su diario: %s, no tiene una secuencia de notas de crédito" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "Your journal: %s, has no a debit note sequence" -msgstr "Su diario: %s, no tiene una secuencia de notas de débito" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "Your journal: %s, has no a invoice sequence" -msgstr "Su diario: %s, no tiene una secuencia de factura" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Your journal: %s, has no a invoice sequence with type equal to Contingency " -"Checkbook E-Invoicing" -msgstr "" -"Su diario: %s, no tiene una secuencia de factura con un tipo igual a " -"Talonario de Contingencia para Facturación Electrónica" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Your journal: %s, has no a invoice sequence with type equal to E-Invoicing" -msgstr "" -"Su diario: %s, no tiene una secuencia de factura con un tipo igual a Factura" -" electrónica" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Your journal: %s, has no a invoice sequence with type equal to E-Support " -"Document" -msgstr "" -"Su diario: %s, no tiene una secuencia de factura con un tipo igual a " -"Documento Soporte Electrónica" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "Your product: '%s', cannot have two VAT type taxes." -msgstr "Su producto: '%s', no puede tener dos impuestos de tipo IVA." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your product: '%s', has no reference price, contact with your administrator." -msgstr "" -"Su producto: '%s', no tiene precio de referencia, contacte con su " -"administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your tax: '%s', has negative amount or an amount equal to zero (0), the " -"taxes must have an amount greater than zero (0), contact with your " -"administrator." -msgstr "" -"Su impuesto: '%s', tiene una cantidad negativa o una cantidad igual a cero " -"(0), los impuestos deben tener una cantidad mayor que cero (0), póngase en " -"contacto con su administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your tax: '%s', has no e-invoicing tax group type, contact with your " -"administrator." -msgstr "" -"Su impuesto: '%s', no tiene ningún tipo de grupo de impuestos de facturación" -" electrónica, póngase en contacto con su administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your withholding tax: '%s', has amount equal to zero (0), the withholding " -"taxes must have amount different to zero (0), contact with your " -"administrator." -msgstr "" -"Su retención de impuestos: '%s', tiene un monto igual a cero (0), los " -"impuestos de retención deben tener un monto diferente a cero (0), póngase en" -" contacto con su administrador." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__zip_key -msgid "ZipKey" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__zipped_file -msgid "Zipped File" -msgstr "Archivo Comprimido" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__zipped_filename -msgid "Zipped Filename" -msgstr "Nombre de Archivo Comprimido" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__scheme_agency_id -msgid "schemeAgencyID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__code -msgid "schemeID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__name -msgid "schemeName" -msgstr "" diff --git a/l10n_co_account_e_invoicing/i18n/es_CO.po b/l10n_co_account_e_invoicing/i18n/es_CO.po deleted file mode 100644 index 0e6eb32..0000000 --- a/l10n_co_account_e_invoicing/i18n/es_CO.po +++ /dev/null @@ -1,1660 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * l10n_co_account_e_invoicing -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-07 19:12+0000\n" -"PO-Revision-Date: 2022-02-07 19:12+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a DIAN document type established." -msgstr "'%s' no tiene establecido un tipo de documento DIAN." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a city established." -msgstr "%s' no tiene una ciudad/municipio establecido." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a country established." -msgstr "'%s' no tiene un país establecido." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a document type established." -msgstr "'%s' no tiene establecido un tipo de documento." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a fiscal position correctly configured." -msgstr "'%s' no tiene una posición fiscal configurada correctamente." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a fiscal position established." -msgstr "'%s' no tiene una posición fiscal establecida." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a identification document established." -msgstr "'%s' no tiene un documento de identificación establecido." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "'%s' does not have a isic code established." -msgstr "'%s' no tiene un código ciiu establecido." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a person type established." -msgstr "'%s' no tiene establecido un tipo de persona." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a state established." -msgstr "'%s' no tiene un estado/departamento establecido." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "'%s' does not have a valid isic code" -msgstr "'%s' no tiene un código ciiu válido" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a verification digit established." -msgstr "'%s' no tiene establecido un dígito de verificación." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__09 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__operation_type__09 -msgid "AIU" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "ALERT! Invoice %s was not sent to DIAN." -msgstr "¡ALERTA! La factura %s no fue enviada a la DIAN." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__access_token -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__access_token -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__access_token -msgid "Access Token" -msgstr "Token de Acceso" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__additional_hours_delivery_datetime -msgid "Additional Hours" -msgstr "Horas Adicionales" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_res_company__additional_hours_delivery_datetime -msgid "Additional hours to invoice date for delivery date" -msgstr "Horas adicionales a la fecha de factura para la fecha de entrega" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__send_invoice_to_dian__1 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__send_invoice_to_dian__1 -msgid "After 1 Day" -msgstr "Después de 1 Día" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__send_invoice_to_dian__2 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__send_invoice_to_dian__2 -msgid "After 2 Days" -msgstr "Después de 2 Días" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_allow_cancel_invoice_dian_document_done -msgid "Allow to Cancel Invoice With DIAN Document in Done" -msgstr "Permitir Cancelar la Factura con el Documento DIAN en Hecho" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__ar_xml_file -msgid "ApplicationResponse XML File" -msgstr "Archivo XML del ApplicationResponse" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__ar_xml_filename -msgid "ApplicationResponse XML Filename" -msgstr "Nombre de archivo XML del ApplicationResponse" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__assignment_code -msgid "Assignment Code" -msgstr "Código de Asignación" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__ad_zipped_file -msgid "AttachedDocument Zipped File" -msgstr "Archivo Comprimido del AttachedDocument" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__ad_zipped_filename -msgid "AttachedDocument Zipped Filename" -msgstr "Nombre de Archivo Comprimido del AttachedDocument" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__automatic_delivery_datetime -msgid "Automatic Delivery Datetime?" -msgstr "¿Fecha de Entrega Automática?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__cufe_cude -msgid "CUFE/CUDE" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__cufe_cude_uncoded -msgid "CUFE/CUDE Uncoded" -msgstr "CUFE/CUDE Sin Codificar" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__state__cancel -msgid "Cancelled" -msgstr "Cancelado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__product_uom_category_id -msgid "Category" -msgstr "Categoría" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_date -msgid "Certificate Date Validity" -msgstr "Fecha de Validez del Certificado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_file -msgid "Certificate File" -msgstr "Archivo del Certificado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_filename -msgid "Certificate Filename" -msgstr "Nombre de Archivo del Certificado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_password -msgid "Certificate Password" -msgstr "Contraseña del Certificado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_remaining_days -msgid "Certificate Remaining Days" -msgstr "Días Restantes del Certificado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__code -msgid "Code" -msgstr "Código" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Codes" -msgstr "Códigos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_res_company -msgid "Companies" -msgstr "Compañías" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__company_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__company_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__company_id -msgid "Company" -msgstr "Compañía" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_res_partner -msgid "Contact" -msgstr "Contacto" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__contingency_checkbook_e-invoicing -#, python-format -msgid "Contingency Checkbook E-Invoicing" -msgstr "Talonario de Contingencia para Facturación Electrónica" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_account_move_summary_line__product_uom_category_id -msgid "" -"Conversion between Units of Measure can only occur if they belong to the " -"same category. The conversion will be made based on the ratios." -msgstr "" -"La conversión entre unidades de medida sólo puede ocurrir si pertenecen a la " -"misma categoría. La conversión se hará en base a los ratios definidos." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Cordial Saludo,

La factura del cliente no pudo ser enviada a la " -"Dian según el protocolo establecido previamente. Por favor revise el estado " -"de la misma en el menú Documentos Dian e intente reprocesarla según el " -"procedimiento definido.
." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line__cost_price -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__cost_price -msgid "Cost Price" -msgstr "Precio de Coste" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__create_date -msgid "Created on" -msgstr "Creado el" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__out_refund_credit_sent -msgid "Credit Notes Sent" -msgstr "Notas de Crédito Enviadas" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__20 -msgid "Credit note that references an e-invoice" -msgstr "Nota Crédito que referencia una factura electrónica" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__22 -msgid "Credit note without reference to invoices *" -msgstr "Nota Crédito sin referencia a facturas *" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__currency_id -msgid "Currency" -msgstr "Moneda" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__dbname -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__dbname -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__dbname -msgid "DB Name" -msgstr "Nombre de la BD" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__dian_document_id -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "DIAN Document" -msgstr "Documento DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move_dian_document_line -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__dian_document_line_ids -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "DIAN Document Lines" -msgstr "Líneas de Documentos DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__dian_document_state -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__dian_document_state -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__dian_document_state -msgid "DIAN Document State" -msgstr "Estado del Documento DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.actions.act_window,name:l10n_co_account_e_invoicing.account_move_dian_document_action -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move_dian_document -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__dian_document_ids -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__dian_document_ids -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__dian_document_ids -#: model:ir.ui.menu,name:l10n_co_account_e_invoicing.account_move_dian_document_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_tree -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "DIAN Documents" -msgstr "Documentos DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence__dian_type -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range__dian_type -msgid "DIAN Type" -msgstr "Tipo DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__accepted_rejected_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__accepted_rejected_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__accepted_rejected_datetime -msgid "Datetime of Accepted/Rejected" -msgstr "Fecha y Hora de Aceptado/Rechazado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__out_refund_debit_sent -msgid "Debit Notes Sent" -msgstr "Notas de Débito Enviadas" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__30 -msgid "Debit note that references an e-invoice" -msgstr "Nota Débito que referencia una factura electrónica." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__32 -msgid "Debit note without reference to invoices *" -msgstr "Nota Débito sin referencia a facturas *" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__delivery_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__delivery_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__delivery_datetime -msgid "Delivery Datetime" -msgstr "Fecha y Hora de Entrega" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__profile_execution_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__profile_execution_id -msgid "Destination Environment of Document" -msgstr "Ambiente de Destino del Documento" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Disc.%" -msgstr "Desc.%" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__discount -msgid "Discount (%)" -msgstr "Descuento (%)" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_tax_group__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__display_name -msgid "Display Name" -msgstr "Mostrar nombre" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__have_technological_provider -msgid "Do you have a technological provider?" -msgstr "¿Tienes un proveedor tecnológico?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_tax_group__is_einvoicing -msgid "Does it Apply for E-Invoicing?" -msgstr "¿Aplica para la Facturación Electrónica?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__state__done -msgid "Done" -msgstr "Hecho" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__state__draft -msgid "Draft" -msgstr "Borrador" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__e-credit_note -#, python-format -msgid "E-Credit Note" -msgstr "Nota Crédito Electrónica" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__e-debit_note -#, python-format -msgid "E-Debit Note" -msgstr "Nota Débito Electrónica" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__einvoicing_email -msgid "E-Invoice Email, From:" -msgstr "Correo Electrónico de Factura Electrónica, De:" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__e-invoicing -#: model:ir.module.category,name:l10n_co_account_e_invoicing.category_einvoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.product_template_form_view -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_company_form -#, python-format -msgid "E-Invoicing" -msgstr "Facturación Electrónica" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "E-Invoicing Agent: '%s' does not have a E-Invoicing Email." -msgstr "" -"Agente de Facturación Electrónica: '%s' no tiene un Correo Electrónico de " -"Facturación Electrónica." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__einvoicing_email -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__einvoicing_email -msgid "E-Invoicing Email" -msgstr "Correo Electrónico de Facturación Electrónica" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__einvoicing_enabled -msgid "E-Invoicing Enabled" -msgstr "Facturación electrónica Habilitada" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__invoice_type_code__05 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__e-support_document -#, python-format -msgid "E-Support Document" -msgstr "Documento Soporte Electrónico" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__invoice_type_code__03 -msgid "E-document of transmission - type 03" -msgstr "Documento electrónico de transmisión - tipo 03" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__invoice_type_code__01 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__invoice_type_code__01 -msgid "E-invoice of sale" -msgstr "Factura electrónica de venta" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__invoice_type_code__04 -msgid "E-invoice of sale - type 04" -msgstr "Factura electrónica de venta - tipo 04" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__edit_is_einvoicing_agent_field -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__edit_is_einvoicing_agent_field -#: model:res.groups,name:l10n_co_account_e_invoicing.group_edit_is_einvoicing_agent_field -msgid "Edit 'Is an E-Invoicing Agent?' Field" -msgstr "Editar Campo '¿Es Agente de Facturación Electrónica?'" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__email -msgid "Email" -msgstr "Correo electrónico" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__einvoicing_receives_all_emails -msgid "Email that receives all emails" -msgstr "Correo electrónico que recibe todos los correos electrónicos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_res_company__einvoicing_email -msgid "Enter the e-invoice sender's email." -msgstr "Correo electrónico que recibe todos los correos electrónicos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_res_company__einvoicing_partner_no_email -msgid "" -"Enter the email where the invoice will be sent when the customer does not " -"have an email." -msgstr "" -"Ingrese el correo electrónico donde se enviará la factura cuando el cliente " -"no tenga un correo electrónico." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__einvoicing_partner_no_email -msgid "Failed Emails, To:" -msgstr "Correos Electrónicos Fallidos, A:" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Files" -msgstr "Archivos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "Posición fiscal" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__listname -msgid "Fiscal Regime" -msgstr "Régimen fiscal" - -#. module: l10n_co_account_e_invoicing -#: model:ir.actions.act_window,name:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_action -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_fiscal_position_party_tax_scheme -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__party_tax_scheme_id -#: model:ir.ui.menu,name:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_action_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_view_tree -msgid "Fiscal Responsibilities (PartyTaxScheme)" -msgstr "Responsabilidades Fiscales (PartyTaxScheme)" - -#. module: l10n_co_account_e_invoicing -#: model:ir.actions.act_window,name:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_action -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_fiscal_position_tax_level_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__tax_level_code_ids -#: model:ir.ui.menu,name:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_action_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_view_tree -msgid "Fiscal Responsibilities (TaxLevelCode)" -msgstr "Responsabilidades Fiscales (TaxLevelCode)" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_fiscal_year -msgid "Fiscal Year" -msgstr "Año Fiscal" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__force_send_mail -msgid "Force Send Mail?" -msgstr "¿Forzar envío de correo?" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_company_form -msgid "GetNumberingRange" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__get_numbering_range_response -msgid "GetNumberingRange Response" -msgstr "Respuesta de GetNumberingRange" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "GetStatus" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "GetStatusZip" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_tax_group__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__id -msgid "ID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__send_invoice_to_dian__0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__send_invoice_to_dian__0 -msgid "Immediately" -msgstr "Inmediatamente" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_company.py:0 -#, python-format -msgid "Invalid URL." -msgstr "URL Invalida." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__invoice_id -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Invoice" -msgstr "Factura" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__invoice_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__invoice_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__invoice_datetime -msgid "Invoice Datetime" -msgstr "Fecha y Hora de la Factura" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__invoice_type_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__invoice_type_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__invoice_type_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__invoice_type_code -msgid "Invoice Type" -msgstr "Tipo de Factura" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__invoice_url -msgid "Invoice Url" -msgstr "URL de Factura" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__xml_file -msgid "Invoice XML File" -msgstr "Archivo XML de Factura" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__xml_filename -msgid "Invoice XML Filename" -msgstr "Nombre de Archivo XML de la Factura" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "Invoice totals do not match summary totals." -msgstr "Los totales de la factura no coinciden con los totales del resumen." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__out_invoice_sent -msgid "Invoices Sent" -msgstr "Facturas Enviadas" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__is_accepted_rejected -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__is_accepted_rejected -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__is_accepted_rejected -msgid "Is Accepted/Rejected?" -msgstr "¿Esta Aceptada/Rechazada?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__is_einvoicing_agent -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__is_einvoicing_agent -msgid "Is an E-Invoicing Agent?" -msgstr "¿Es un Agente de Facturación Electrónica?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__move_id -msgid "Journal Entry" -msgstr "Asiento contable" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move_line -msgid "Journal Item" -msgstr "Apunte contable" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__name -msgid "Label" -msgstr "Etiqueta" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_tax_group____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner____last_update -msgid "Last Modified on" -msgstr "Última modificación el" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__write_uid -msgid "Last Updated by" -msgstr "Última Actualización por" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__write_date -msgid "Last Updated on" -msgstr "Última Actualización el" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__mail_sent -msgid "Mail Sent?" -msgstr "¿Correo Enviado?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_product__margin_percentage -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__margin_percentage -msgid "Margin Percentage" -msgstr "Porcentaje de Margen" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__receipt_document_reference -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__receipt_document_reference -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__receipt_document_reference -msgid "Merchandise / Service Receipt Document" -msgstr "Documento de recibo de mercancía / servicio" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Merge With Sale Order" -msgstr "Combinar con Pedido de Venta" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__merge_with_sale_order -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__merge_with_sale_order -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__merge_with_sale_order -msgid "Merge With Sale Order?" -msgstr "¿Combinar con Pedido de Venta?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__66 -msgid "NSU not found" -msgstr "NSU no encontrado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__name -msgid "Name" -msgstr "Nombre" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_partner__is_einvoicing_agent__no -msgid "No" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_fiscal_position__listname__49 -msgid "No responsable de IVA" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_partner__is_einvoicing_agent__no_but -msgid "No, but has email" -msgstr "No, pero tiene correo electrónico." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__notification_group_ids -msgid "Notification Group" -msgstr "Grupo de Notificaciones" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_einvoice_notification_group -msgid "Notification Groups" -msgstr "Grupos de Notificación" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__operation_type -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__operation_type -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__operation_type -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__operation_type -msgid "Operation Type" -msgstr "Tipo de Operación" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__other -msgid "Other" -msgstr "Otro" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Price" -msgstr "Precio" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Process" -msgstr "Procesar" - -#. module: l10n_co_account_e_invoicing -#: model:ir.actions.server,name:l10n_co_account_e_invoicing.ir_cron_process_dian_documents_ir_actions_server -#: model:ir.cron,cron_name:l10n_co_account_e_invoicing.ir_cron_process_dian_documents -#: model:ir.cron,name:l10n_co_account_e_invoicing.ir_cron_process_dian_documents -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_company_form -msgid "Process DIAN Documents" -msgstr "Procesar Documentos DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__00 -msgid "Processed Correctly" -msgstr "Procesado Correctamente" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__product_id -msgid "Product" -msgstr "Producto" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_product__product_scheme_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__product_scheme_id -msgid "Product Scheme" -msgstr "Esquema del Producto" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_product_scheme -msgid "Product Schemes" -msgstr "Esquemas de Productos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_product_template -msgid "Product Template" -msgstr "Plantilla de producto" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__profile_execution_id__1 -msgid "Production" -msgstr "Producción" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__qr_image -msgid "QR Code" -msgstr "Código QR" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "QR Image" -msgstr "Imagen QR" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__quantity -msgid "Quantity" -msgstr "Cantidad" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__send_async_reason -msgid "Reason" -msgstr "Motivo" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line__reference_price -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__reference_price -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_product__reference_price -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__reference_price -msgid "Reference Price" -msgstr "Precio de Referencia" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__report_template_id -msgid "Report Template" -msgstr "Plantilla de Informe" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_fiscal_position__listname__48 -msgid "Responsable del impuesto sobre las ventas - IVA" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__get_status_zip_response -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__send_async_response -msgid "Response" -msgstr "Respuesta" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__sale_order_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__sale_order_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__sale_order_id -msgid "Sale Order" -msgstr "Pedido de venta" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_view_search -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_view_search -msgid "Search" -msgstr "Buscar" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Send DIAN Document" -msgstr "Enviar Documento DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__send_failure_mail -msgid "Send Failure Mail?" -msgstr "¿Enviar Correo de Error?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__send_invoice_to_dian -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__send_invoice_to_dian -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__send_invoice_to_dian -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__send_invoice_to_dian -msgid "Send Invoice to DIAN?" -msgstr "¿Enviar Factura a DIAN?" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Send Mail" -msgstr "Enviar Correo" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Send Zipped File" -msgstr "Enviar Archivo Comprimido" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__state__sent -msgid "Sent" -msgstr "Enviado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_ir_sequence -msgid "Sequence" -msgstr "Secuencia" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_ir_sequence_date_range -msgid "Sequence Date Range" -msgstr "Rango de fechas de la secuencia" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__sequence_resolution_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__sequence_resolution_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__sequence_resolution_id -msgid "Sequence Resolution" -msgstr "Resolución de la Secuencia" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Set AttachedDocument Zipped File" -msgstr "Establecer Archivo Comprimido del AttachedDocument" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Set DIAN Document" -msgstr "Establecer Documento DIAN" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Set Files" -msgstr "Establecer Archivos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__signature_policy_description -msgid "Signature Policy Description" -msgstr "Descripción de la Política de Firma" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__signature_policy_url -msgid "Signature Policy URL" -msgstr "URL de Política de Firma" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__software_id -msgid "Software ID" -msgstr "ID del software" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__software_pin -msgid "Software PIN" -msgstr "PIN del Software" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__software_security_code -msgid "SoftwareSecurityCode" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__software_security_code_uncoded -msgid "SoftwareSecurityCode Uncoded" -msgstr "SoftwareSecurityCode Sin Codificar" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__10 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__operation_type__10 -msgid "Standard" -msgstr "Estándar" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__state -msgid "State" -msgstr "Estado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__get_status_zip_status_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__send_async_status_code -msgid "Status Code" -msgstr "Código de Estado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__price_subtotal -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Subtotal" -msgstr "Subtotal" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move_summary_line -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__summary_line_ids -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__summary_line_ids -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__summary_line_ids -msgid "Summary of Invoice Lines" -msgstr "Resumen de Líneas de Factura" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__in_invoice_sent -msgid "Support Documents Sent" -msgstr "Documentos Soporte Enviados" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__summary_amount_tax -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__summary_amount_tax -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__summary_amount_tax -msgid "Tax" -msgstr "Impuesto" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_tax_group -msgid "Tax Group" -msgstr "Grupo de impuestos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__tax_ids -msgid "Taxes" -msgstr "Impuestos" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_account_move_summary_line__tax_ids -msgid "Taxes that apply on the base amount" -msgstr "Impuestos que aplican sobre el importe base" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range__technical_key -msgid "Technical Key" -msgstr "Clave Técnica" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__technological_provider_id -msgid "Technological Provider" -msgstr "Proveedor Tecnológico" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__profile_execution_id__2 -msgid "Test" -msgstr "Prueba" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__test_set_id -msgid "Test Set ID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__2 -msgid "Test set it is found Accepted" -msgstr "El test set se encuentra Aceptado" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"The 'delivery date' must be equal or greater per maximum 10 days to the " -"'invoice date'." -msgstr "" -"La 'fecha de entrega' debe ser igual o mayor por un máximo de 10 días a la " -"'fecha de la factura'." - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "" -"The certificate for this company is nearby to expire.
\n" -" Please, you must to inform the administration." -msgstr "" -"El certificado de esta empresa está por vencer.
\n" -" Por favor, debe informar a la administración." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/global_functions.py:0 -#, python-format -msgid "" -"The certificate password or certificate file is not valid.\n" -"\n" -"Exception: %s" -msgstr "" -"La contraseña del certificado o el archivo del certificado no es válido.\n" -"\n" -"Excepción: %s" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_product_product__margin_percentage -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_product_template__margin_percentage -msgid "The cost price + this percentage will be the reference price" -msgstr "El precio de costo + este porcentaje será el precio de referencia" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "" -"The document type of '%s' does not seem to correspond with the person type." -msgstr "" -"El tipo de documento de '%s' no parece corresponder con el tipo de persona." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "The document type of '%s' is not NIT" -msgstr "El tipo de documento de '%s' no es NIT" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "" -"The field 'E-Invoicing Email' is not correctly filled.\n" -"\n" -"Please add @ and dot (.)" -msgstr "" -"El campo 'Correo Electrónico de Facturación Electrónica' no se completa correctamente.\n" -"\n" -"Por favor agregue @ y punto (.)" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "The invoice line %s has no reference" -msgstr "La línea de factura %s no tiene referencia" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "The invoice type selected is not valid to this invoice." -msgstr "El tipo de factura seleccionado no es válido para esta factura." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_account_move_summary_line__move_id -msgid "The move of this entry line." -msgstr "El apunte de este asiento." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"The notification group for e-invoice failures is not set.\n" -"You won't be notified if something goes wrong.\n" -"Please go to Settings > Company > Notification Group." -msgstr "" -"El grupo de notificación para fallas de factura electrónica no está establecido.\n" -"No se le notificará si algo sale mal.\n" -"Vaya a Configuración > Compañia > Grupo de Notificaciones." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "There is no an active certificate." -msgstr "No hay un certificado activo." - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "" -"There is no an active certificate.
\n" -" Please, you must to inform the administration." -msgstr "" -"No hay un certificado activo.
\n" -" Por favor, debe informar a la administración." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "There is no fiscal year corresponding to the date of your invoice." -msgstr "No hay intervalo de fechas correspondiente a la fecha de su factura." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__summary_amount_total -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__summary_amount_total -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__price_total -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__summary_amount_total -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Total" -msgstr "Total" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__90 -msgid "TrackId not found" -msgstr "TrackId no encontrado" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__price_unit -msgid "Unit Price" -msgstr "Precio Unitario" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__product_uom_id -msgid "Unit of Measure" -msgstr "Unidad de Medida" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_partner__is_einvoicing_agent__unknown -msgid "Unknown" -msgstr "Desconocido" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Unknown Error,\n" -"Status Code: %s,\n" -"Reason: %s\n" -"\n" -"Contact with your administrator." -msgstr "" -"Error Desconocido,\n" -"Código de Estado: %s,\n" -"Razón: %s\n" -"\n" -"Contacta con tu administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Unknown Error,\n" -"Status Code: %s,\n" -"Reason: %s,\n" -"\n" -"Contact with your administrator or you can choose a journal with a Contingency Checkbook E-Invoicing sequence and change the Invoice Type to 'E-document of transmission - type 03'." -msgstr "" -"Error Desconocido,\n" -"Código de Estado: %s,\n" -"Razón: %s,\n" -"\n" -"Contacta con tu administrador o puede elegir un diario con una secuencia de Talonario de Contingencia para Facturación Electrónica y cambiar el Tipo de Factura a 'Documento electrónico de transmisión - tipo 03'." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_company.py:0 -#, python-format -msgid "" -"Unknown Error,\n" -"Status Code: %s,\n" -"Reason: %s." -msgstr "" -"Error Desconocido,\n" -"Código de Estado: %s,\n" -"Razón: %s." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Unknown Error: %s\n" -"\n" -"Contact with your administrator or you can choose a journal with a Contingency Checkbook E-Invoicing sequence and change the Invoice Type to 'E-document of transmission - type 03'." -msgstr "" -"Error Desconocido: %s\n" -"\n" -"Contacta con tu administrador o puede elegir un diario con una secuencia de Talonario de Contingencia para Facturación Electrónica y cambiar el Tipo de Factura a 'Documento electrónico de transmisión - tipo 03'." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Unknown Error: %s\n" -"\n" -"Contact with your administrator." -msgstr "" -"Error Desconocido: %s\n" -"\n" -"Contacta con tu administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_company.py:0 -#, python-format -msgid "" -"Unknown Error: %s\n" -"." -msgstr "" -"Error Desconocido: %s\n" -"." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__summary_amount_untaxed -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__summary_amount_untaxed -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__summary_amount_untaxed -msgid "Untaxed Amount" -msgstr "Importe libre de impuestos" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "UoM" -msgstr "UdM" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_product_product__reference_price -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_product_template__reference_price -msgid "" -"Use this field if the reference price does not depend on the cost price" -msgstr "" -"Use este campo si el precio de referencia no depende del precio de costo" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__validate_einvoicing_email -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__validate_einvoicing_email -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__validate_einvoicing_email -msgid "Validate E-Invoicing Email?" -msgstr "¿Validar el Correo Electrónico de Facturación Electrónica?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__validation_datetime -msgid "Validation Datetime" -msgstr "Fecha y Hora de Validación" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__99 -msgid "Validations contain errors in mandatory fields" -msgstr "Validaciones contienen errores en campos mandatorios" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_accepted_rejected_fields -msgid "View 'Accepted/Rejected' Fields" -msgstr "Ver Campos 'Aceptado/Rechazado'" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__view_einvoicing_email_field -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__view_einvoicing_email_field -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_einvoicing_email_fields -msgid "View 'E-Invoicing Email' Fields" -msgstr "Ver Campos de 'Correo Electrónico de Facturación Electrónica'" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_invoice_type_field -msgid "View 'Invoice Type' Field" -msgstr "Ver Campo 'Tipo de Factura'" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_operation_type_field -msgid "View 'Operation Type' Field" -msgstr "Ver Campo 'Tipo de Operación'" - -#. module: l10n_co_account_e_invoicingVer campo -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_send_invoice_dian_field -msgid "View 'Send Invoice to DIAN?' Field" -msgstr "Ver Campo 'Enviar Factura a DIAN?'" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_summary_fields -msgid "View 'Summary of Invoice Lines' Fields" -msgstr "Ver Campos 'Resumen de Líneas de Factura'" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_dian_documents -msgid "View DIAN Documents" -msgstr "Ver Documentos DIAN" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_einvoicing_setting_product -msgid "View E-Invoicing Setting of the Product" -msgstr "Ver Configuración de Facturación Electrónica del Producto" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_invoice_refund_buttons -msgid "View Invoice Refund Buttons" -msgstr "Ver Botones de Reembolso de Factura" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "WITHOUT VALIDATE" -msgstr "SIN VALIDAR" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__warn_inactive_certificate -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__warn_inactive_certificate -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__warn_inactive_certificate -msgid "Warn About Inactive Certificate?" -msgstr "¿Advertir Sobre el Certificado Inactivo?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__warn_remaining_certificate -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__warn_remaining_certificate -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__warn_remaining_certificate -msgid "Warn About Remainings?" -msgstr "¿Advertir Sobre los Restantes?" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_partner__is_einvoicing_agent__yes -msgid "Yes" -msgstr "Sí" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"You can not make a refund invoice of an invoice with DIAN documents with " -"state 'Draft', 'Sent' or 'Cancelled'." -msgstr "" -"No puede hacer una factura de reembolso de una factura con documentos DIAN " -"con el estado 'Borrador', 'Enviado' o 'Cancelado'." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"You can not make a refund invoice of an invoice with state different to " -"'Posted'." -msgstr "" -"No puede hacer una factura de reembolso de una factura con un estado " -"diferente a 'Publicado'." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "You cannot cancel a invoice sent to the DIAN and that was approved." -msgstr "No puede cancelar una factura enviada a la DIAN y que fue aprobada." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"You do not have an active dian resolution, contact with your administrator." -msgstr "" -"No tiene una resolución activa de dian, póngase en contacto con su " -"administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your Unit of Measure: '%s', has no Unit of Measure Code, contact with your " -"administrator." -msgstr "" -"Su Unidad de Medida: '%s', no tiene Código de Unidad de Medida, contacte con" -" su administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Your active dian resolution has no technical key, contact with your " -"administrator." -msgstr "" -"Su resolución dian activa no tiene clave técnica, póngase en contacto con su" -" administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "Your invoice has not been validated" -msgstr "Su factura no ha sido validada" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "Your journal: %s, has no a credit note sequence" -msgstr "Su diario: %s, no tiene una secuencia de notas de crédito" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "Your journal: %s, has no a debit note sequence" -msgstr "Su diario: %s, no tiene una secuencia de notas de débito" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "Your journal: %s, has no a invoice sequence" -msgstr "Su diario: %s, no tiene una secuencia de factura" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Your journal: %s, has no a invoice sequence with type equal to Contingency " -"Checkbook E-Invoicing" -msgstr "" -"Su diario: %s, no tiene una secuencia de factura con un tipo igual a " -"Talonario de Contingencia para Facturación Electrónica" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Your journal: %s, has no a invoice sequence with type equal to E-Invoicing" -msgstr "" -"Su diario: %s, no tiene una secuencia de factura con un tipo igual a Factura" -" electrónica" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Your journal: %s, has no a invoice sequence with type equal to E-Support " -"Document" -msgstr "" -"Su diario: %s, no tiene una secuencia de factura con un tipo igual a " -"Documento Soporte Electrónica" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "Your product: '%s', cannot have two VAT type taxes." -msgstr "Su producto: '%s', no puede tener dos impuestos de tipo IVA." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your product: '%s', has no reference price, contact with your administrator." -msgstr "" -"Su producto: '%s', no tiene precio de referencia, contacte con su " -"administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your tax: '%s', has negative amount or an amount equal to zero (0), the " -"taxes must have an amount greater than zero (0), contact with your " -"administrator." -msgstr "" -"Su impuesto: '%s', tiene una cantidad negativa o una cantidad igual a cero " -"(0), los impuestos deben tener una cantidad mayor que cero (0), póngase en " -"contacto con su administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your tax: '%s', has no e-invoicing tax group type, contact with your " -"administrator." -msgstr "" -"Su impuesto: '%s', no tiene ningún tipo de grupo de impuestos de facturación" -" electrónica, póngase en contacto con su administrador." - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your withholding tax: '%s', has amount equal to zero (0), the withholding " -"taxes must have amount different to zero (0), contact with your " -"administrator." -msgstr "" -"Su retención de impuestos: '%s', tiene un monto igual a cero (0), los " -"impuestos de retención deben tener un monto diferente a cero (0), póngase en" -" contacto con su administrador." - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__zip_key -msgid "ZipKey" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__zipped_file -msgid "Zipped File" -msgstr "Archivo Comprimido" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__zipped_filename -msgid "Zipped Filename" -msgstr "Nombre de Archivo Comprimido" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__scheme_agency_id -msgid "schemeAgencyID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__code -msgid "schemeID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__name -msgid "schemeName" -msgstr "" diff --git a/l10n_co_account_e_invoicing/i18n/l10n_co_account_e_invoicing.pot b/l10n_co_account_e_invoicing/i18n/l10n_co_account_e_invoicing.pot deleted file mode 100644 index cc8fb8c..0000000 --- a/l10n_co_account_e_invoicing/i18n/l10n_co_account_e_invoicing.pot +++ /dev/null @@ -1,1590 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * l10n_co_account_e_invoicing -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-02-07 19:11+0000\n" -"PO-Revision-Date: 2022-02-07 19:11+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a DIAN document type established." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a city established." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a country established." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a document type established." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a fiscal position correctly configured." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a fiscal position established." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a identification document established." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "'%s' does not have a isic code established." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a person type established." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a state established." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "'%s' does not have a valid isic code" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "'%s' does not have a verification digit established." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__09 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__operation_type__09 -msgid "AIU" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "ALERT! Invoice %s was not sent to DIAN." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__access_token -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__access_token -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__access_token -msgid "Access Token" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__additional_hours_delivery_datetime -msgid "Additional Hours" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_res_company__additional_hours_delivery_datetime -msgid "Additional hours to invoice date for delivery date" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__send_invoice_to_dian__1 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__send_invoice_to_dian__1 -msgid "After 1 Day" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__send_invoice_to_dian__2 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__send_invoice_to_dian__2 -msgid "After 2 Days" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_allow_cancel_invoice_dian_document_done -msgid "Allow to Cancel Invoice With DIAN Document in Done" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__ar_xml_file -msgid "ApplicationResponse XML File" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__ar_xml_filename -msgid "ApplicationResponse XML Filename" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__assignment_code -msgid "Assignment Code" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__ad_zipped_file -msgid "AttachedDocument Zipped File" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__ad_zipped_filename -msgid "AttachedDocument Zipped Filename" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__automatic_delivery_datetime -msgid "Automatic Delivery Datetime?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__cufe_cude -msgid "CUFE/CUDE" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__cufe_cude_uncoded -msgid "CUFE/CUDE Uncoded" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__state__cancel -msgid "Cancelled" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__product_uom_category_id -msgid "Category" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_date -msgid "Certificate Date Validity" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_file -msgid "Certificate File" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_filename -msgid "Certificate Filename" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_password -msgid "Certificate Password" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__certificate_remaining_days -msgid "Certificate Remaining Days" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__code -msgid "Code" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Codes" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_res_company -msgid "Companies" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__company_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__company_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__company_id -msgid "Company" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_res_partner -msgid "Contact" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__contingency_checkbook_e-invoicing -#, python-format -msgid "Contingency Checkbook E-Invoicing" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_account_move_summary_line__product_uom_category_id -msgid "" -"Conversion between Units of Measure can only occur if they belong to the " -"same category. The conversion will be made based on the ratios." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Cordial Saludo,

La factura del cliente no pudo ser enviada a la " -"Dian según el protocolo establecido previamente. Por favor revise el estado " -"de la misma en el menú Documentos Dian e intente reprocesarla según el " -"procedimiento definido.
." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line__cost_price -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__cost_price -msgid "Cost Price" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__create_uid -msgid "Created by" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__create_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__create_date -msgid "Created on" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__out_refund_credit_sent -msgid "Credit Notes Sent" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__20 -msgid "Credit note that references an e-invoice" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__22 -msgid "Credit note without reference to invoices *" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__currency_id -msgid "Currency" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__dbname -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__dbname -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__dbname -msgid "DB Name" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__dian_document_id -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "DIAN Document" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move_dian_document_line -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__dian_document_line_ids -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "DIAN Document Lines" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__dian_document_state -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__dian_document_state -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__dian_document_state -msgid "DIAN Document State" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.actions.act_window,name:l10n_co_account_e_invoicing.account_move_dian_document_action -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move_dian_document -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__dian_document_ids -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__dian_document_ids -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__dian_document_ids -#: model:ir.ui.menu,name:l10n_co_account_e_invoicing.account_move_dian_document_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_tree -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "DIAN Documents" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence__dian_type -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range__dian_type -msgid "DIAN Type" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__accepted_rejected_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__accepted_rejected_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__accepted_rejected_datetime -msgid "Datetime of Accepted/Rejected" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__out_refund_debit_sent -msgid "Debit Notes Sent" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__30 -msgid "Debit note that references an e-invoice" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__32 -msgid "Debit note without reference to invoices *" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__delivery_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__delivery_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__delivery_datetime -msgid "Delivery Datetime" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__profile_execution_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__profile_execution_id -msgid "Destination Environment of Document" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Disc.%" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__discount -msgid "Discount (%)" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_tax_group__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__display_name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__display_name -msgid "Display Name" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__have_technological_provider -msgid "Do you have a technological provider?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_tax_group__is_einvoicing -msgid "Does it Apply for E-Invoicing?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__state__done -msgid "Done" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__state__draft -msgid "Draft" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__e-credit_note -#, python-format -msgid "E-Credit Note" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__e-debit_note -#, python-format -msgid "E-Debit Note" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__einvoicing_email -msgid "E-Invoice Email, From:" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__e-invoicing -#: model:ir.module.category,name:l10n_co_account_e_invoicing.category_einvoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.product_template_form_view -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_company_form -#, python-format -msgid "E-Invoicing" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "E-Invoicing Agent: '%s' does not have a E-Invoicing Email." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__einvoicing_email -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__einvoicing_email -msgid "E-Invoicing Email" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__einvoicing_enabled -msgid "E-Invoicing Enabled" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/ir_sequence.py:0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__invoice_type_code__05 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__ir_sequence__dian_type__e-support_document -#, python-format -msgid "E-Support Document" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__invoice_type_code__03 -msgid "E-document of transmission - type 03" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__invoice_type_code__01 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__invoice_type_code__01 -msgid "E-invoice of sale" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__invoice_type_code__04 -msgid "E-invoice of sale - type 04" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__edit_is_einvoicing_agent_field -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__edit_is_einvoicing_agent_field -#: model:res.groups,name:l10n_co_account_e_invoicing.group_edit_is_einvoicing_agent_field -msgid "Edit 'Is an E-Invoicing Agent?' Field" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__email -msgid "Email" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__einvoicing_receives_all_emails -msgid "Email that receives all emails" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_res_company__einvoicing_email -msgid "Enter the e-invoice sender's email." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_res_company__einvoicing_partner_no_email -msgid "" -"Enter the email where the invoice will be sent when the customer does not " -"have an email." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__einvoicing_partner_no_email -msgid "Failed Emails, To:" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Files" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__listname -msgid "Fiscal Regime" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.actions.act_window,name:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_action -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_fiscal_position_party_tax_scheme -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__party_tax_scheme_id -#: model:ir.ui.menu,name:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_action_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_view_tree -msgid "Fiscal Responsibilities (PartyTaxScheme)" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.actions.act_window,name:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_action -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_fiscal_position_tax_level_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__tax_level_code_ids -#: model:ir.ui.menu,name:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_action_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_view_tree -msgid "Fiscal Responsibilities (TaxLevelCode)" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_fiscal_year -msgid "Fiscal Year" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__force_send_mail -msgid "Force Send Mail?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_company_form -msgid "GetNumberingRange" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__get_numbering_range_response -msgid "GetNumberingRange Response" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "GetStatus" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "GetStatusZip" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_tax_group__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__id -msgid "ID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__send_invoice_to_dian__0 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__send_invoice_to_dian__0 -msgid "Immediately" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_company.py:0 -#, python-format -msgid "Invalid URL." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__invoice_id -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Invoice" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__invoice_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__invoice_datetime -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__invoice_datetime -msgid "Invoice Datetime" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__invoice_type_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__invoice_type_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__invoice_type_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__invoice_type_code -msgid "Invoice Type" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__invoice_url -msgid "Invoice Url" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__xml_file -msgid "Invoice XML File" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__xml_filename -msgid "Invoice XML Filename" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "Invoice totals do not match summary totals." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__out_invoice_sent -msgid "Invoices Sent" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__is_accepted_rejected -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__is_accepted_rejected -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__is_accepted_rejected -msgid "Is Accepted/Rejected?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__is_einvoicing_agent -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__is_einvoicing_agent -msgid "Is an E-Invoicing Agent?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__move_id -msgid "Journal Entry" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move_line -msgid "Journal Item" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__name -msgid "Label" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_tax_group____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company____last_update -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner____last_update -msgid "Last Modified on" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__write_date -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__write_date -msgid "Last Updated on" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__mail_sent -msgid "Mail Sent?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_product__margin_percentage -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__margin_percentage -msgid "Margin Percentage" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__receipt_document_reference -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__receipt_document_reference -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__receipt_document_reference -msgid "Merchandise / Service Receipt Document" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Merge With Sale Order" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__merge_with_sale_order -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__merge_with_sale_order -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__merge_with_sale_order -msgid "Merge With Sale Order?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__66 -msgid "NSU not found" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_party_tax_scheme__name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_position_tax_level_code__name -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_einvoice_notification_group__name -msgid "Name" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_partner__is_einvoicing_agent__no -msgid "No" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_fiscal_position__listname__49 -msgid "No responsable de IVA" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_partner__is_einvoicing_agent__no_but -msgid "No, but has email" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__notification_group_ids -msgid "Notification Group" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_einvoice_notification_group -msgid "Notification Groups" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__operation_type -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__operation_type -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__operation_type -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__operation_type -msgid "Operation Type" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__other -msgid "Other" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Price" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Process" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.actions.server,name:l10n_co_account_e_invoicing.ir_cron_process_dian_documents_ir_actions_server -#: model:ir.cron,cron_name:l10n_co_account_e_invoicing.ir_cron_process_dian_documents -#: model:ir.cron,name:l10n_co_account_e_invoicing.ir_cron_process_dian_documents -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_company_form -msgid "Process DIAN Documents" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__00 -msgid "Processed Correctly" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__product_id -msgid "Product" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_product__product_scheme_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__product_scheme_id -msgid "Product Scheme" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_product_scheme -msgid "Product Schemes" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_product_template -msgid "Product Template" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__profile_execution_id__1 -msgid "Production" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__qr_image -msgid "QR Code" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "QR Image" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__quantity -msgid "Quantity" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__send_async_reason -msgid "Reason" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_line__reference_price -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__reference_price -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_product__reference_price -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_template__reference_price -msgid "Reference Price" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__report_template_id -msgid "Report Template" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_fiscal_position__listname__48 -msgid "Responsable del impuesto sobre las ventas - IVA" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__get_status_zip_response -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__send_async_response -msgid "Response" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__sale_order_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__sale_order_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__sale_order_id -msgid "Sale Order" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_party_tax_scheme_view_search -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_fiscal_position_tax_level_code_view_search -msgid "Search" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Send DIAN Document" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__send_failure_mail -msgid "Send Failure Mail?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__send_invoice_to_dian -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__send_invoice_to_dian -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__send_invoice_to_dian -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__send_invoice_to_dian -msgid "Send Invoice to DIAN?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Send Mail" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Send Zipped File" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__state__sent -msgid "Sent" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_ir_sequence -msgid "Sequence" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_ir_sequence_date_range -msgid "Sequence Date Range" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__sequence_resolution_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__sequence_resolution_id -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__sequence_resolution_id -msgid "Sequence Resolution" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Set AttachedDocument Zipped File" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Set DIAN Document" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.account_move_dian_document_view_form -msgid "Set Files" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__signature_policy_description -msgid "Signature Policy Description" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__signature_policy_url -msgid "Signature Policy URL" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__software_id -msgid "Software ID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__software_pin -msgid "Software PIN" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__software_security_code -msgid "SoftwareSecurityCode" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__software_security_code_uncoded -msgid "SoftwareSecurityCode Uncoded" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move__operation_type__10 -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__operation_type__10 -msgid "Standard" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__state -msgid "State" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__get_status_zip_status_code -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document_line__send_async_status_code -msgid "Status Code" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__price_subtotal -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Subtotal" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_move_summary_line -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__summary_line_ids -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__summary_line_ids -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__summary_line_ids -msgid "Summary of Invoice Lines" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_fiscal_year__in_invoice_sent -msgid "Support Documents Sent" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__summary_amount_tax -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__summary_amount_tax -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__summary_amount_tax -msgid "Tax" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model,name:l10n_co_account_e_invoicing.model_account_tax_group -msgid "Tax Group" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__tax_ids -msgid "Taxes" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_account_move_summary_line__tax_ids -msgid "Taxes that apply on the base amount" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_ir_sequence_date_range__technical_key -msgid "Technical Key" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__technological_provider_id -msgid "Technological Provider" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_company__profile_execution_id__2 -msgid "Test" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__test_set_id -msgid "Test Set ID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__2 -msgid "Test set it is found Accepted" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"The 'delivery date' must be equal or greater per maximum 10 days to the " -"'invoice date'." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "" -"The certificate for this company is nearby to expire.
\n" -" Please, you must to inform the administration." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/global_functions.py:0 -#, python-format -msgid "" -"The certificate password or certificate file is not valid.\n" -"\n" -"Exception: %s" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_product_product__margin_percentage -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_product_template__margin_percentage -msgid "The cost price + this percentage will be the reference price" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "" -"The document type of '%s' does not seem to correspond with the person type." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "The document type of '%s' is not NIT" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_partner.py:0 -#, python-format -msgid "" -"The field 'E-Invoicing Email' is not correctly filled.\n" -"\n" -"Please add @ and dot (.)" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "The invoice line %s has no reference" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "The invoice type selected is not valid to this invoice." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_account_move_summary_line__move_id -msgid "The move of this entry line." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"The notification group for e-invoice failures is not set.\n" -"You won't be notified if something goes wrong.\n" -"Please go to Settings > Company > Notification Group." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "There is no an active certificate." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "" -"There is no an active certificate.
\n" -" Please, you must to inform the administration." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "There is no fiscal year corresponding to the date of your invoice." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__summary_amount_total -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__summary_amount_total -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__price_total -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__summary_amount_total -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "Total" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__90 -msgid "TrackId not found" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__price_unit -msgid "Unit Price" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_summary_line__product_uom_id -msgid "Unit of Measure" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_partner__is_einvoicing_agent__unknown -msgid "Unknown" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Unknown Error,\n" -"Status Code: %s,\n" -"Reason: %s\n" -"\n" -"Contact with your administrator." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Unknown Error,\n" -"Status Code: %s,\n" -"Reason: %s,\n" -"\n" -"Contact with your administrator or you can choose a journal with a Contingency Checkbook E-Invoicing sequence and change the Invoice Type to 'E-document of transmission - type 03'." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_company.py:0 -#, python-format -msgid "" -"Unknown Error,\n" -"Status Code: %s,\n" -"Reason: %s." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Unknown Error: %s\n" -"\n" -"Contact with your administrator or you can choose a journal with a Contingency Checkbook E-Invoicing sequence and change the Invoice Type to 'E-document of transmission - type 03'." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Unknown Error: %s\n" -"\n" -"Contact with your administrator." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/res_company.py:0 -#, python-format -msgid "" -"Unknown Error: %s\n" -"." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__summary_amount_untaxed -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__summary_amount_untaxed -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__summary_amount_untaxed -msgid "Untaxed Amount" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model_terms:ir.ui.view,arch_db:l10n_co_account_e_invoicing.view_move_form -msgid "UoM" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_product_product__reference_price -#: model:ir.model.fields,help:l10n_co_account_e_invoicing.field_product_template__reference_price -msgid "" -"Use this field if the reference price does not depend on the cost price" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_company__validate_einvoicing_email -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__validate_einvoicing_email -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__validate_einvoicing_email -msgid "Validate E-Invoicing Email?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__validation_datetime -msgid "Validation Datetime" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__account_move_dian_document__get_status_zip_status_code__99 -msgid "Validations contain errors in mandatory fields" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_accepted_rejected_fields -msgid "View 'Accepted/Rejected' Fields" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_partner__view_einvoicing_email_field -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_res_users__view_einvoicing_email_field -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_einvoicing_email_fields -msgid "View 'E-Invoicing Email' Fields" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_invoice_type_field -msgid "View 'Invoice Type' Field" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_operation_type_field -msgid "View 'Operation Type' Field" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_send_invoice_dian_field -msgid "View 'Send Invoice to DIAN?' Field" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_summary_fields -msgid "View 'Summary of Invoice Lines' Fields" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_dian_documents -msgid "View DIAN Documents" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_einvoicing_setting_product -msgid "View E-Invoicing Setting of the Product" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:res.groups,name:l10n_co_account_e_invoicing.group_view_invoice_refund_buttons -msgid "View Invoice Refund Buttons" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "WITHOUT VALIDATE" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__warn_inactive_certificate -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__warn_inactive_certificate -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__warn_inactive_certificate -msgid "Warn About Inactive Certificate?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_bank_statement_line__warn_remaining_certificate -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move__warn_remaining_certificate -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_payment__warn_remaining_certificate -msgid "Warn About Remainings?" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields.selection,name:l10n_co_account_e_invoicing.selection__res_partner__is_einvoicing_agent__yes -msgid "Yes" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"You can not make a refund invoice of an invoice with DIAN documents with " -"state 'Draft', 'Sent' or 'Cancelled'." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"You can not make a refund invoice of an invoice with state different to " -"'Posted'." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "You cannot cancel a invoice sent to the DIAN and that was approved." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"You do not have an active dian resolution, contact with your administrator." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your Unit of Measure: '%s', has no Unit of Measure Code, contact with your " -"administrator." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Your active dian resolution has no technical key, contact with your " -"administrator." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "Your invoice has not been validated" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "Your journal: %s, has no a credit note sequence" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "Your journal: %s, has no a debit note sequence" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "Your journal: %s, has no a invoice sequence" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Your journal: %s, has no a invoice sequence with type equal to Contingency " -"Checkbook E-Invoicing" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Your journal: %s, has no a invoice sequence with type equal to E-Invoicing" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move_dian_document.py:0 -#, python-format -msgid "" -"Your journal: %s, has no a invoice sequence with type equal to E-Support " -"Document" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "Your product: '%s', cannot have two VAT type taxes." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your product: '%s', has no reference price, contact with your administrator." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your tax: '%s', has negative amount or an amount equal to zero (0), the " -"taxes must have an amount greater than zero (0), contact with your " -"administrator." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your tax: '%s', has no e-invoicing tax group type, contact with your " -"administrator." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#: code:addons/l10n_co_account_e_invoicing/models/account_move.py:0 -#, python-format -msgid "" -"Your withholding tax: '%s', has amount equal to zero (0), the withholding " -"taxes must have amount different to zero (0), contact with your " -"administrator." -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__zip_key -msgid "ZipKey" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__zipped_file -msgid "Zipped File" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_account_move_dian_document__zipped_filename -msgid "Zipped Filename" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__scheme_agency_id -msgid "schemeAgencyID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__code -msgid "schemeID" -msgstr "" - -#. module: l10n_co_account_e_invoicing -#: model:ir.model.fields,field_description:l10n_co_account_e_invoicing.field_product_scheme__name -msgid "schemeName" -msgstr "" diff --git a/l10n_co_account_e_invoicing/models/__init__.py b/l10n_co_account_e_invoicing/models/__init__.py deleted file mode 100644 index cd4f650..0000000 --- a/l10n_co_account_e_invoicing/models/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from . import res_company -from . import res_partner -from . import product_scheme -from . import product_template -from . import ir_sequence -from . import ir_sequence_date_range -from . import account_fiscal_position_party_tax_scheme -from . import account_fiscal_position_tax_level_code -from . import account_fiscal_position -from . import account_fiscal_year -from . import account_tax_group -from . import account_move_summary_line -from . import account_move_line -from . import account_move -from . import account_move_dian_document_line -from . import account_move_dian_document -from . import einvoice_notification_group diff --git a/l10n_co_account_e_invoicing/models/account_fiscal_position.py b/l10n_co_account_e_invoicing/models/account_fiscal_position.py deleted file mode 100644 index 1868d48..0000000 --- a/l10n_co_account_e_invoicing/models/account_fiscal_position.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models, _ - - -class AccountFiscalPosition(models.Model): - _inherit = 'account.fiscal.position' - - listname = fields.Selection( - selection=[ - ('48', 'Responsable del impuesto sobre las ventas - IVA'), - ('49', 'No responsable de IVA')], - string='Fiscal Regime', - default=False) - tax_level_code_ids = fields.Many2many( - comodel_name='account.fiscal.position.tax.level.code', - relation='account_fiscal_position_tax_level_code_rel', - column1='account_fiscal_position_id', - column2='tax_level_code_id', - string='Fiscal Responsibilities (TaxLevelCode)') - party_tax_scheme_id = fields.Many2one( - comodel_name='account.fiscal.position.party.tax.scheme', - string="Fiscal Responsibilities (PartyTaxScheme)") diff --git a/l10n_co_account_e_invoicing/models/account_fiscal_position_party_tax_scheme.py b/l10n_co_account_e_invoicing/models/account_fiscal_position_party_tax_scheme.py deleted file mode 100644 index e1795b4..0000000 --- a/l10n_co_account_e_invoicing/models/account_fiscal_position_party_tax_scheme.py +++ /dev/null @@ -1,13 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models - - -class AccountFiscalPositionPartyTaxScheme(models.Model): - _name = 'account.fiscal.position.party.tax.scheme' - _description = 'Fiscal Responsibilities (PartyTaxScheme)' - - name = fields.Char(string='Name') - code = fields.Char(string='Code') diff --git a/l10n_co_account_e_invoicing/models/account_fiscal_position_tax_level_code.py b/l10n_co_account_e_invoicing/models/account_fiscal_position_tax_level_code.py deleted file mode 100644 index 062e92f..0000000 --- a/l10n_co_account_e_invoicing/models/account_fiscal_position_tax_level_code.py +++ /dev/null @@ -1,13 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models - - -class AccountFiscalPositionTaxLevelCode(models.Model): - _name = 'account.fiscal.position.tax.level.code' - _description = 'Fiscal Responsibilities (TaxLevelCode)' - - name = fields.Char(string='Name') - code = fields.Char(string='Code') diff --git a/l10n_co_account_e_invoicing/models/account_fiscal_year.py b/l10n_co_account_e_invoicing/models/account_fiscal_year.py deleted file mode 100644 index b6b8717..0000000 --- a/l10n_co_account_e_invoicing/models/account_fiscal_year.py +++ /dev/null @@ -1,14 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import models, fields - - -class AccountFiscalYear(models.Model): - _inherit = 'account.fiscal.year' - - out_invoice_sent = fields.Integer(string='Invoices Sent', default=0) - out_refund_credit_sent = fields.Integer(string='Credit Notes Sent', default=0) - out_refund_debit_sent = fields.Integer(string='Debit Notes Sent', default=0) - in_invoice_sent = fields.Integer(string='Support Documents Sent', default=0) diff --git a/l10n_co_account_e_invoicing/models/account_move.py b/l10n_co_account_e_invoicing/models/account_move.py deleted file mode 100644 index 63a8923..0000000 --- a/l10n_co_account_e_invoicing/models/account_move.py +++ /dev/null @@ -1,809 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -import pytz -from dateutil import tz -from datetime import datetime, timedelta -from uuid import uuid4 -from odoo import api, models, fields, SUPERUSER_ID, _ -from odoo.exceptions import UserError - -DIAN_TYPES = ('e-support_document', 'e-invoicing', 'e-credit_note', 'e-debit_note') - - -class AccountMove(models.Model): - _inherit = "account.move" - - @api.model - def _default_operation_type(self): - user = self.env['res.users'].search([('id', '=', self.env.user.id)]) - view_operation_type_field = False - - if (user.has_group('l10n_co_account_e_invoicing.group_view_operation_type_field') - and self.env.user.id != SUPERUSER_ID): - view_operation_type_field = True - - if 'move_type' in self._context.keys(): - if self._context['move_type'] == 'out_invoice' and not view_operation_type_field: - return '10' - elif self._context['move_type'] == 'in_invoice': - return '10' - else: - return False - elif not view_operation_type_field: - return '10' - else: - return False - - @api.model - def _default_invoice_type_code(self): - user = self.env['res.users'].search([('id', '=', self.env.user.id)]) - view_invoice_type_field = False - - if (user.has_group('l10n_co_account_e_invoicing.group_view_invoice_type_field') - and self.env.user.id != SUPERUSER_ID): - view_invoice_type_field = True - - if 'move_type' in self._context.keys(): - if self._context['move_type'] == 'out_invoice' and not view_invoice_type_field: - return '01' - elif self._context['move_type'] == 'in_invoice': - return '05' - else: - return False - elif not view_invoice_type_field: - return '01' - else: - return False - - @api.model - def _default_send_invoice_to_dian(self): - return self.env.user.company_id.send_invoice_to_dian or '0' - - def _compute_warn_certificate(self): - warn_remaining_certificate = False - warn_inactive_certificate = False - - if self.company_id.einvoicing_enabled: - warn_inactive_certificate = True - - if (self.company_id.certificate_file - and self.company_id.certificate_password - and self.company_id.certificate_date): - remaining_days = self.company_id.certificate_remaining_days or 0 - today = fields.Date.context_today(self) - date_to = self.company_id.certificate_date - days = (date_to - today).days - warn_inactive_certificate = False - - if days < remaining_days: - if days < 0: - warn_inactive_certificate = True - else: - warn_remaining_certificate = True - - self.warn_inactive_certificate = warn_inactive_certificate - self.warn_remaining_certificate = warn_remaining_certificate - - def _compute_sequence_resolution_id(self): - for invoice_id in self: - sequence_resolution = False - - if (invoice_id.move_type == "out_invoice" - or (invoice_id.journal_id.sequence_id.dian_type == "e-support_document" - and invoice_id.move_type == "in_invoice")): - sequence_resolution_ids = self.env['ir.sequence.date_range'].search([ - ('sequence_id', '=', invoice_id.journal_id.sequence_id.id)]) - - for sequence_resolution_id in sequence_resolution_ids: - move_name = invoice_id.move_name or '' - number = move_name.replace(sequence_resolution_id.prefix or '', '') - - if sequence_resolution_id.active_resolution: - sequence_resolution = sequence_resolution_id - - if (number.isnumeric() - and sequence_resolution_id.number_from <= int(number) - and int(number) <= sequence_resolution_id.number_to): - sequence_resolution = sequence_resolution_id - - invoice_id.sequence_resolution_id = sequence_resolution - - def _compute_dbname(self): - self.dbname = self._cr.dbname - - warn_remaining_certificate = fields.Boolean( - string="Warn About Remainings?", - compute="_compute_warn_certificate", - store=False) - warn_inactive_certificate = fields.Boolean( - string="Warn About Inactive Certificate?", - compute="_compute_warn_certificate", - store=False) - sequence_resolution_id = fields.Many2one( - comodel_name='ir.sequence.date_range', - string='Sequence Resolution', - compute='_compute_sequence_resolution_id', - store=False) - dbname = fields.Char(string="DB Name", compute="_compute_dbname", store=False) - invoice_datetime = fields.Datetime(string='Invoice Datetime', copy=False) - delivery_datetime = fields.Datetime(string='Delivery Datetime', copy=False) - operation_type = fields.Selection( - selection=[ - ('09', 'AIU'), - ('10', 'Standard'), - ('20', 'Credit note that references an e-invoice'), - ('22', 'Credit note without reference to invoices *'), - ('30', 'Debit note that references an e-invoice'), - ('32', 'Debit note without reference to invoices *')], - string='Operation Type', - default=_default_operation_type, - copy=False) - invoice_type_code = fields.Selection( - selection=[ - ('01', 'E-invoice of sale'), - ('03', 'E-document of transmission - type 03'), - ('04', 'E-invoice of sale - type 04'), - ('05', 'E-Support Document')], - string='Invoice Type', - default=_default_invoice_type_code, - copy=False) - send_invoice_to_dian = fields.Selection( - selection=[('0', 'Immediately'), ('1', 'After 1 Day'), ('2', 'After 2 Days')], - string='Send Invoice to DIAN?', - default=_default_send_invoice_to_dian, - copy=False) - access_token = fields.Char(string='Access Token', copy=False) - is_accepted_rejected = fields.Boolean(string='Is Accepted/Rejected?', copy=False) - accepted_rejected_datetime = fields.Datetime( - string='Datetime of Accepted/Rejected', copy=False) - receipt_document_reference = fields.Char( - string='Merchandise / Service Receipt Document', - copy=False) - dian_document_state = fields.Selection( - selection=[ - ('pending', 'No Transferido'), - ('done', 'Emitido'), - ('exception', 'Excepción de Envio'), - ('dian_reject', 'Rechazado DIAN'), - ('dian_accept', 'Aceptado DIAN'), - ('customer_reject', 'Rechazado Cliente'), - ('customer_accept', 'Aceptado Cliente')], - string='DIAN Document State', - default='pending', - copy=False, - readonly=True) - sale_order_id = fields.Many2one( - comodel_name='sale.order', - string='Sale Order', - copy=False, - readonly=True, - states={'draft': [('readonly', False)]}) - merge_with_sale_order = fields.Boolean( - string='Merge With Sale Order?', - copy=False, - readonly=True, - states={'draft': [('readonly', False)]}) - summary_line_ids = fields.One2many( - comodel_name='account.move.summary.line', - inverse_name='move_id', - string='Summary of Invoice Lines', - copy=False, - readonly=True, - states={'draft': [('readonly', False)]}) - summary_amount_untaxed = fields.Monetary( - string='Untaxed Amount', - readonly=True, - copy=False) - summary_amount_tax = fields.Monetary(string='Tax', readonly=True, copy=False) - summary_amount_total = fields.Monetary(string='Total', readonly=True, copy=False) - dian_document_ids = fields.One2many( - comodel_name='account.move.dian.document', - inverse_name='invoice_id', - string='DIAN Documents', - copy=False, - readonly=True, - states={'draft': [('readonly', False)]}) - - def _create_token(self): - self.access_token = self.access_token or uuid4().hex - - def _get_active_dian_resolution(self): - msg = _("You do not have an active dian resolution, contact with your administrator.") - resolution_number = False - - if self.sequence_resolution_id: - resolution_number = self.sequence_resolution_id.resolution_number - date_from = self.sequence_resolution_id.date_from - date_to = self.sequence_resolution_id.date_to_resolution - prefix = self.sequence_resolution_id.prefix - number_from = self.sequence_resolution_id.number_from - number_to = self.sequence_resolution_id.number_to - technical_key = self.sequence_resolution_id.technical_key - - if not resolution_number: - raise UserError(msg) - - return { - 'InvoiceAuthorization': resolution_number, - 'StartDate': date_from, - 'EndDate': date_to, - 'Prefix': prefix, - 'From': number_from, - 'To': number_to, - 'technical_key': technical_key - } - - def _get_billing_reference(self): - msg1 = _("You can not make a refund invoice of an invoice with state different " - "to 'Posted'.") - msg2 = _("You can not make a refund invoice of an invoice with DIAN documents " - "with state 'Draft', 'Sent' or 'Cancelled'.") - billing_reference = {} - refund_invoice_id = self.reversed_entry_id or self.debit_origin_id - - if refund_invoice_id: - if refund_invoice_id.state != 'posted': - raise UserError(msg1) - - if refund_invoice_id.state == 'posted': - dian_document_state_done = False - dian_document_state_cancel = False - dian_document_state_sent = False - dian_document_state_draft = False - - for dian_document_id in refund_invoice_id.dian_document_ids: - if dian_document_id.state == 'done': - dian_document_state_done = True - billing_reference['ID'] = refund_invoice_id.name - billing_reference['UUID'] = dian_document_id.cufe_cude - billing_reference[ - 'IssueDate'] = refund_invoice_id.invoice_date - billing_reference[ - 'CustomizationID'] = refund_invoice_id.operation_type - - if dian_document_id.state == 'cancel': - dian_document_state_cancel = True - - if dian_document_id.state == 'draft': - dian_document_state_draft = True - - if dian_document_id.state == 'sent': - dian_document_state_sent = True - - if ((not dian_document_state_done - and dian_document_state_cancel) - or dian_document_state_draft - or dian_document_state_sent): - raise UserError(msg2) - - return billing_reference - - def _get_payment_exchange_rate(self): - rate = 1 - - if self.currency_id != self.company_id.currency_id: - rate = self.currency_id._convert( - rate, - self.company_id.currency_id, - self.company_id, - self.date) - - return { - 'SourceCurrencyCode': self.currency_id.name, - 'TargetCurrencyCode': self.company_id.currency_id.name, - 'CalculationRate': rate, - 'Date': self.date - } - - def _get_einvoicing_taxes(self): - msg1 = _("Your tax: '%s', has no e-invoicing tax group type, contact with your " - "administrator.") - msg2 = _("Your withholding tax: '%s', has amount equal to zero (0), the " - "withholding taxes must have amount different to zero (0), contact with " - "your administrator.") - msg3 = _("Your tax: '%s', has negative amount or an amount equal to zero (0), " - "the taxes must have an amount greater than zero (0), contact with your " - "administrator.") - taxes = {} - tax_total_base = 0 - withholding_taxes = {} - currency_rate = self._get_payment_exchange_rate() - - for move_line in self.line_ids.filtered(lambda l: l.tax_line_id): - if move_line.tax_line_id.tax_group_id.is_einvoicing: - if not move_line.tax_line_id.tax_group_id.tax_group_type_id: - raise UserError(msg1 % move_line.name) - - tax_code = move_line.tax_line_id.tax_group_id.tax_group_type_id.code - tax_name = move_line.tax_line_id.tax_group_id.tax_group_type_id.name - tax_type = move_line.tax_line_id.tax_group_id.tax_group_type_id.type - tax_percent = '{:.2f}'.format(move_line.tax_line_id.amount) - tax_amount = move_line.price_total - tax_base = move_line.tax_base_amount / currency_rate['CalculationRate'] - - if tax_type == 'withholding_tax' and move_line.tax_line_id.amount == 0: - raise UserError(msg2 % move_line.name) - - if tax_type == 'tax' and move_line.tax_line_id.amount <= 0: - raise UserError(msg3 % move_line.name) - - if tax_amount != (tax_base * move_line.tax_line_id.amount / 100): - tax_amount = tax_base * move_line.tax_line_id.amount / 100 - - if tax_type == 'withholding_tax' and move_line.tax_line_id.amount > 0: - if tax_code not in withholding_taxes: - withholding_taxes[tax_code] = {} - withholding_taxes[tax_code]['total'] = 0 - withholding_taxes[tax_code]['name'] = tax_name - withholding_taxes[tax_code]['taxes'] = {} - - if tax_percent not in withholding_taxes[tax_code]['taxes']: - withholding_taxes[tax_code]['taxes'][tax_percent] = {} - withholding_taxes[tax_code]['taxes'][tax_percent][ - 'base'] = 0 - withholding_taxes[tax_code]['taxes'][tax_percent][ - 'amount'] = 0 - - withholding_taxes[tax_code]['total'] += tax_amount * (-1) - withholding_taxes[tax_code]['taxes'][tax_percent]['base'] += tax_base - tax_total_base += tax_base - withholding_taxes[tax_code]['taxes'][tax_percent][ - 'amount'] += tax_amount * (-1) - elif tax_type == 'withholding_tax' and move_line.tax_line_id.amount < 0: - # TODO 3.0 Las retenciones se recomienda no enviarlas a la DIAN - # Solo las positivas que indicarian una autorretencion, Si la DIAN - # pide que se envien las retenciones, seria quitar o comentar este if - pass - else: - if tax_code not in taxes: - taxes[tax_code] = {} - taxes[tax_code]['total'] = 0 - taxes[tax_code]['name'] = tax_name - taxes[tax_code]['taxes'] = {} - - if tax_percent not in taxes[tax_code]['taxes']: - taxes[tax_code]['taxes'][tax_percent] = {} - taxes[tax_code]['taxes'][tax_percent]['base'] = 0 - taxes[tax_code]['taxes'][tax_percent]['amount'] = 0 - - taxes[tax_code]['total'] += tax_amount - taxes[tax_code]['taxes'][tax_percent]['base'] += tax_base - tax_total_base += tax_base - taxes[tax_code]['taxes'][tax_percent]['amount'] += tax_amount - - if '01' not in taxes: - taxes['01'] = {} - taxes['01']['total'] = 0 - taxes['01']['name'] = 'IVA' - taxes['01']['taxes'] = {} - taxes['01']['taxes']['0.00'] = {} - taxes['01']['taxes']['0.00']['base'] = 0 - taxes['01']['taxes']['0.00']['amount'] = 0 - - if '04' not in taxes: - taxes['04'] = {} - taxes['04']['total'] = 0 - taxes['04']['name'] = 'ICA' - taxes['04']['taxes'] = {} - taxes['04']['taxes']['0.00'] = {} - taxes['04']['taxes']['0.00']['base'] = 0 - taxes['04']['taxes']['0.00']['amount'] = 0 - - if '03' not in taxes: - taxes['03'] = {} - taxes['03']['total'] = 0 - taxes['03']['name'] = 'INC' - taxes['03']['taxes'] = {} - taxes['03']['taxes']['0.00'] = {} - taxes['03']['taxes']['0.00']['base'] = 0 - taxes['03']['taxes']['0.00']['amount'] = 0 - - return { - 'TaxesTotal': taxes, - 'TaxesTotalBase': tax_total_base, - 'WithholdingTaxesTotal': withholding_taxes} - - def _get_invoice_lines(self): - msg1 = _("Your Unit of Measure: '%s', has no Unit of Measure Code, contact " + - "with your administrator.") - msg2 = _("The invoice line %s has no reference") - msg3 = _("Your product: '%s', has no reference price, contact with your " + - "administrator.") - msg4 = _("Your tax: '%s', has no e-invoicing tax group type, contact with " + - "your administrator.") - msg5 = _("Your product: '%s', cannot have two VAT type taxes.") - msg6 = _("Your withholding tax: '%s', has amount equal to zero (0), the " + - "withholding taxes must have amount different to zero (0), contact " + - "with your administrator.") - msg7 = _("Your tax: '%s', has negative amount or an amount equal to zero " + - "(0), the taxes must have an amount greater than zero (0), contact " + - "with your administrator.") - invoice_lines = {} - count = 1 - exception = False - - for invoice_line in self.invoice_line_ids.filtered( - lambda line: not line.display_type): - if not invoice_line.product_uom_id.product_uom_code_id: - raise UserError(msg1 % invoice_line.product_uom_id.name) - - disc_amount = 0 - total_wo_disc = 0 - brand_name = False - model_name = invoice_line.product_id.default_code - - if invoice_line.price_unit != 0 and invoice_line.quantity != 0: - total_wo_disc = invoice_line.price_unit * invoice_line.quantity - - if total_wo_disc != 0 and invoice_line.discount != 0: - disc_amount = (total_wo_disc * invoice_line.discount) / 100 - - if not invoice_line.product_id or not invoice_line.product_id.default_code: - raise UserError(msg2 % invoice_line.name) - - if invoice_line.price_subtotal <= 0 and invoice_line.reference_price <= 0: - raise UserError(msg3 % invoice_line.product_id.default_code) - - if self.invoice_type_code == '02': - if invoice_line.product_id.product_brand_id: - brand_name = invoice_line.product_id.product_brand_id.name - - if invoice_line.product_id.manufacturer_pref: - model_name = invoice_line.product_id.manufacturer_pref - - invoice_lines[count] = {} - invoice_lines[count][ - 'unitCode'] = invoice_line.product_uom_id.product_uom_code_id.code - invoice_lines[count]['Quantity'] = '{:.2f}'.format( - invoice_line.quantity) - invoice_lines[count][ - 'PricingReferencePriceAmount'] = '{:.2f}'.format( - invoice_line.reference_price) - invoice_lines[count]['LineExtensionAmount'] = '{:.2f}'.format( - invoice_line.price_subtotal) - invoice_lines[count]['MultiplierFactorNumeric'] = '{:.2f}'.format( - invoice_line.discount) - invoice_lines[count]['AllowanceChargeAmount'] = '{:.2f}'.format( - disc_amount) - invoice_lines[count][ - 'AllowanceChargeBaseAmount'] = '{:.2f}'.format(total_wo_disc) - invoice_lines[count]['TaxesTotal'] = {} - invoice_lines[count]['WithholdingTaxesTotal'] = {} - invoice_lines[count][ - 'StandardItemIdentification'] = invoice_line.product_id.default_code - iva_count = 0 - - for tax in invoice_line.tax_ids: - if tax.amount_type == 'group': - tax_ids = tax.children_tax_ids - else: - tax_ids = tax - - for tax_id in tax_ids: - if tax_id.tax_group_id.is_einvoicing: - if not tax_id.tax_group_id.tax_group_type_id: - raise UserError(msg4 % tax.name) - - tax_type = tax_id.tax_group_id.tax_group_type_id.type - - if tax_id.tax_group_id.tax_group_type_id.name == 'IVA': - iva_count += 1 - - if iva_count > 1: - dian_document_id = self.dian_document_ids.filtered( - lambda d: d.state != 'cancel') - exception = True - msg = msg5 % invoice_line.product_id.default_code - dian_document_id.write({'get_status_zip_response': msg}) - - if tax_type == 'withholding_tax' and tax_id.amount == 0: - raise UserError(msg6 % tax_id.name) - - if tax_type == 'tax' and tax_id.amount <= 0: - raise UserError(msg7 % tax_id.name) - - if tax_type == 'withholding_tax' and tax_id.amount > 0: - invoice_lines[count]['WithholdingTaxesTotal'] = ( - invoice_line._get_invoice_lines_taxes( - tax_id, - tax_id.amount, - invoice_lines[count]['WithholdingTaxesTotal'])) - elif tax_type == 'withholding_tax' and tax_id.amount < 0: - # TODO 3.0 Las retenciones se recomienda no enviarlas a la DIAN. - # Solo la parte positiva que indicaria una autoretencion, Si la DIAN - # pide que se envie la parte negativa, seria quitar o comentar este if - pass - else: - invoice_lines[count]['TaxesTotal'] = ( - invoice_line._get_invoice_lines_taxes( - tax_id, - tax_id.amount, - invoice_lines[count]['TaxesTotal'])) - - if '01' not in invoice_lines[count]['TaxesTotal']: - invoice_lines[count]['TaxesTotal']['01'] = {} - invoice_lines[count]['TaxesTotal']['01']['total'] = 0 - invoice_lines[count]['TaxesTotal']['01']['name'] = 'IVA' - invoice_lines[count]['TaxesTotal']['01']['taxes'] = {} - invoice_lines[count]['TaxesTotal']['01']['taxes']['0.00'] = {} - invoice_lines[count]['TaxesTotal']['01']['taxes']['0.00'][ - 'base'] = invoice_line.price_subtotal - invoice_lines[count]['TaxesTotal']['01']['taxes']['0.00'][ - 'amount'] = 0 - - if '04' not in invoice_lines[count]['TaxesTotal']: - invoice_lines[count]['TaxesTotal']['04'] = {} - invoice_lines[count]['TaxesTotal']['04']['total'] = 0 - invoice_lines[count]['TaxesTotal']['04']['name'] = 'ICA' - invoice_lines[count]['TaxesTotal']['04']['taxes'] = {} - invoice_lines[count]['TaxesTotal']['04']['taxes']['0.00'] = {} - invoice_lines[count]['TaxesTotal']['04']['taxes']['0.00'][ - 'base'] = invoice_line.price_subtotal - invoice_lines[count]['TaxesTotal']['04']['taxes']['0.00'][ - 'amount'] = 0 - - if '03' not in invoice_lines[count]['TaxesTotal']: - invoice_lines[count]['TaxesTotal']['03'] = {} - invoice_lines[count]['TaxesTotal']['03']['total'] = 0 - invoice_lines[count]['TaxesTotal']['03']['name'] = 'INC' - invoice_lines[count]['TaxesTotal']['03']['taxes'] = {} - invoice_lines[count]['TaxesTotal']['03']['taxes']['0.00'] = {} - invoice_lines[count]['TaxesTotal']['03']['taxes']['0.00'][ - 'base'] = invoice_line.price_subtotal - invoice_lines[count]['TaxesTotal']['03']['taxes']['0.00'][ - 'amount'] = 0 - - invoice_lines[count]['BrandName'] = brand_name - invoice_lines[count]['ModelName'] = model_name - invoice_lines[count]['ItemDescription'] = invoice_line.name - invoice_lines[count]['InformationContentProviderParty'] = ( - invoice_line._get_information_content_provider_party_values()) - invoice_lines[count]['PriceAmount'] = '{:.2f}'.format( - invoice_line.price_unit) - - count += 1 - - if exception: - self.write({'dian_document_state': 'exception'}) - else: - self.write({'dian_document_state': 'pending'}) - - return invoice_lines - - def _set_invoice_lines_price_reference(self): - for invoice_line in self.invoice_line_ids.filtered( - lambda line: not line.display_type): - percentage = 100 - margin_percentage = invoice_line.product_id.margin_percentage - - if invoice_line.product_id.reference_price > 0: - reference_price = invoice_line.product_id.reference_price - elif 0 < margin_percentage < 100: - percentage = (percentage - margin_percentage) / 100 - reference_price = invoice_line.product_id.standard_price / percentage - else: - reference_price = 0 - - invoice_line.write({ - 'cost_price': invoice_line.product_id.standard_price, - 'reference_price': reference_price - }) - - return True - - def update(self, values): - res = super(AccountMove, self).update(values) - - for invoice_id in self: - if values.get('refund_type') == "credit": - invoice_id.operation_type = '20' - elif values.get('refund_type') == "debit": - invoice_id.operation_type = '30' - - return res - - def action_set_dian_document(self): - msg = _("The 'delivery date' must be equal or greater per maximum 10 days to " - "the 'invoice date'.") - timezone = pytz.timezone(self.env.user.tz or 'America/Bogota') - from_zone = tz.gettz('UTC') - to_zone = tz.gettz(timezone.zone) - - for invoice_id in self: - if not invoice_id.company_id.einvoicing_enabled: - return True - - if invoice_id.journal_id.sequence_id.dian_type not in DIAN_TYPES: - return True - - if invoice_id.dian_document_ids.filtered(lambda d: d.state != 'cancel'): - return True - - if not invoice_id.invoice_datetime: - invoice_datetime = datetime.strptime( - str(invoice_id.invoice_date) + ' 13:00:00', - '%Y-%m-%d %H:%M:%S').replace(tzinfo=from_zone) - invoice_datetime = invoice_datetime.astimezone( - to_zone).strftime('%Y-%m-%d %H:%M:%S') - invoice_id.invoice_datetime = invoice_datetime - - if (invoice_id.company_id.automatic_delivery_datetime - and not invoice_id.delivery_datetime): - invoice_datetime = invoice_id.invoice_datetime - hours_added = timedelta( - hours=invoice_id.company_id.additional_hours_delivery_datetime) - invoice_id.delivery_datetime = invoice_datetime + hours_added - - if not invoice_id.delivery_datetime: - raise UserError(msg) - - invoice_date = invoice_id.invoice_date - delivery_date = datetime.strftime(invoice_id.delivery_datetime, '%Y-%m-%d') - delivery_date = datetime.strptime(delivery_date, '%Y-%m-%d').date() - days = (delivery_date - invoice_date).days - - if days < 0 or days > 10: - raise UserError(msg) - - invoice_id._set_invoice_lines_price_reference() - xml_filename = False - zipped_filename = False - ar_xml_filename = False - ad_zipped_filename = False - - for dian_document_id in invoice_id.dian_document_ids: - xml_filename = dian_document_id.xml_filename - zipped_filename = dian_document_id.zipped_filename - ar_xml_filename = dian_document_id.ar_xml_filename - ad_zipped_filename = dian_document_id.ad_zipped_filename - break - - dian_document_id = self.env['account.move.dian.document'].create({ - 'invoice_id': invoice_id.id, - 'company_id': invoice_id.company_id.id, - 'xml_filename': xml_filename, - 'zipped_filename': zipped_filename, - 'ar_xml_filename': ar_xml_filename, - 'ad_zipped_filename': ad_zipped_filename}) - set_files = dian_document_id.action_set_files() - - if (not invoice_id.send_invoice_to_dian - and invoice_id.company_id.send_invoice_to_dian): - invoice_id.send_invoice_to_dian = invoice_id.company_id.send_invoice_to_dian - - if (not invoice_id.invoice_type_code - and invoice_id.company_id.invoice_type_code): - invoice_id.invoice_type_code = invoice_id.company_id.invoice_type_code - - if invoice_id.send_invoice_to_dian == '0': - if set_files: - if invoice_id.invoice_type_code in ('01', '02', '05'): - if dian_document_id.zip_key: - to_return = dian_document_id.action_GetStatusZip() - else: - to_return = dian_document_id._get_GetStatus(True) - - if not to_return: - dian_document_id.action_send_zipped_file() - elif invoice_id.invoice_type_code == '04': - dian_document_id.action_send_mail() - else: - dian_document_id.send_failure_mail() - - return True - - def action_process_dian_document(self): - for invoice_id in self: - dian_document_id = invoice_id.dian_document_ids.filtered( - lambda d: d.state not in ('cancel', 'done')) - - if dian_document_id: - dian_document_id.action_process() - - return True - - def action_merge_with_sale_order(self): - for invoice_id in self: - sale_order_id = invoice_id.sale_order_id - - if sale_order_id: - move_id = sale_order_id._create_invoices() - move_line_data = [] - - for invoice_line_id in invoice_id.invoice_line_ids: - move_line_data.append({ - 'move_id': move_id.id, - 'currency_id': invoice_line_id.currency_id.id, - 'product_id': invoice_line_id.product_id.id, - 'name': invoice_line_id.name, - 'quantity': invoice_line_id.quantity, - 'product_uom_id': invoice_line_id.product_uom_id.id, - 'price_unit': invoice_line_id.price_unit, - 'discount': invoice_line_id.discount, - 'tax_ids': invoice_line_id.tax_ids, - 'price_subtotal': invoice_line_id.price_subtotal, - 'price_total': invoice_line_id.price_total, - 'cost_price': invoice_line_id.cost_price, - 'reference_price': invoice_line_id.reference_price}) - - self.env['account.move.summary.line'].create(move_line_data) - move_id.write({ - 'name': invoice_id.name, - 'move_name': invoice_id.move_name, - 'invoice_date': invoice_id.invoice_date, - 'summary_amount_untaxed': invoice_id.amount_untaxed, - 'summary_amount_tax': invoice_id.amount_tax, - 'summary_amount_total': invoice_id.amount_total}) - mail_message_ids = self.env['mail.message'].search( - [('model', '=', 'account.move'), ('res_id', '=', invoice_id.id)]) - - if mail_message_ids: - mail_message_ids.write({'res_id': move_id.id}) - - if invoice_id.dian_document_ids: - invoice_id.dian_document_ids.write({'invoice_id': move_id.id}) - move_id.write({ - 'invoice_datetime': invoice_id.invoice_datetime, - 'delivery_datetime': invoice_id.delivery_datetime, - 'operation_type': invoice_id.operation_type, - 'invoice_type_code': invoice_id.invoice_type_code, - 'send_invoice_to_dian': invoice_id.send_invoice_to_dian, - 'access_token': invoice_id.access_token, - 'is_accepted_rejected': invoice_id.is_accepted_rejected, - 'accepted_rejected_datetime': invoice_id.accepted_rejected_datetime, - 'receipt_document_reference': invoice_id.receipt_document_reference, - 'dian_document_state': invoice_id.dian_document_state, - 'send_invoice_to_dian': invoice_id.send_invoice_to_dian}) - - if not invoice_id.dian_document_ids.filtered(lambda d: d.state == 'done'): - move_id.write({'merge_with_sale_order': True}) - - invoice_id.write({'move_name': False}) - invoice_id.with_context(force_delete=True).unlink() - - return sale_order_id.action_view_invoice() - - return True - - def action_post(self): - msg = _('Invoice totals do not match summary totals.') - res = super(AccountMove, self).action_post() - - for invoice_id in self: - invoice_id.action_set_dian_document() - - if invoice_id.merge_with_sale_order: - if not invoice_id.summary_line_ids: - invoice_id.button_draft() - else: - if (invoice_id.summary_amount_untaxed != invoice_id.amount_untaxed - or invoice_id.summary_amount_tax != invoice_id.amount_tax - or invoice_id.summary_amount_total != invoice_id.amount_total): - raise UserError(msg) - - return res - - def button_draft(self): - msg = _('You cannot cancel a invoice sent to the DIAN and that was approved.') - user = self.env['res.users'].search([('id', '=', self.env.user.id)]) - allow_cancel_invoice_dian_document_done = False - - if user.has_group( - 'l10n_co_account_e_invoicing.group_allow_cancel_invoice_dian_document_done'): - allow_cancel_invoice_dian_document_done = True - - for invoice_id in self: - if invoice_id.merge_with_sale_order and not invoice_id.summary_line_ids: - continue - - for dian_document_id in invoice_id.dian_document_ids: - if dian_document_id.state == 'done': - if not allow_cancel_invoice_dian_document_done: - raise UserError(msg) - else: - dian_document_id.state = 'cancel' - self.write({'dian_document_state': 'pending'}) - - return super(AccountMove, self).button_draft() diff --git a/l10n_co_account_e_invoicing/models/account_move_dian_document.py b/l10n_co_account_e_invoicing/models/account_move_dian_document.py deleted file mode 100644 index 1839aa0..0000000 --- a/l10n_co_account_e_invoicing/models/account_move_dian_document.py +++ /dev/null @@ -1,1108 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -import pytz -from dateutil import tz -from io import BytesIO -from datetime import datetime -from base64 import b64encode, b64decode -from zipfile import ZipFile -import ssl -from requests import post, exceptions -from lxml import etree -from . import global_functions -from odoo import models, fields, _ -from odoo.exceptions import ValidationError, UserError - -ssl._create_default_https_context = ssl._create_unverified_context - -DIAN = { - 'wsdl-hab': 'https://vpfe-hab.dian.gov.co/WcfDianCustomerServices.svc?wsdl', - 'wsdl': 'https://vpfe.dian.gov.co/WcfDianCustomerServices.svc?wsdl', - 'catalogo-hab': 'https://catalogo-vpfe-hab.dian.gov.co/document/searchqr?documentkey={}', - 'catalogo': 'https://catalogo-vpfe.dian.gov.co/document/searchqr?documentkey={}'} - - -class AccountInvoiceDianDocument(models.Model): - _name = "account.move.dian.document" - _description = 'DIAN Documents' - - def go_to_dian_document(self): - return { - 'type': 'ir.actions.act_window', - 'name': 'Dian Document', - 'view_mode': 'form', - 'res_model': self._name, - 'res_id': self.id, - 'target': 'current' - } - - def _get_qr_code_data(self): - einvoicing_taxes = self.invoice_id._get_einvoicing_taxes() - ValImp1 = einvoicing_taxes['TaxesTotal']['01']['total'] - ValImp2 = einvoicing_taxes['TaxesTotal']['04']['total'] - ValImp3 = einvoicing_taxes['TaxesTotal']['03']['total'] - ValFac = self.invoice_id.amount_untaxed - ValOtroIm = ValImp2 - ValImp3 - ValTolFac = ValFac + ValImp1 + ValOtroIm - invoice_datetime = self.invoice_id.invoice_datetime - qr_data = "NumFac: " + (self.invoice_id.name or _('WITHOUT VALIDATE')) - qr_data += "FecFac: " + datetime.strftime(invoice_datetime, - '%Y-%m-%d') + '\n' - qr_data += "HorFac: " + datetime.strftime(invoice_datetime, - '%H:%M:%S-05:00') + '\n' - qr_data += "NitFac: " + (self.company_id.partner_id.ref_num - or '') + '\n' - qr_data += "DocAdq: " + (self.invoice_id.partner_id.ref_num - or '') + '\n' - qr_data += "ValFac: " + '{:.2f}'.format(ValFac) + '\n' - qr_data += "ValIva: " + '{:.2f}'.format(ValImp1) + '\n' - qr_data += "ValOtroIm: " + '{:.2f}'.format(ValOtroIm) + '\n' - qr_data += "ValTolFac: " + '{:.2f}'.format(ValTolFac) + '\n' - - if (self.invoice_id.move_type == "out_invoice" - and self.invoice_id.invoice_type_code != '03' - and self.cufe_cude): - qr_data += "CUFE: " + self.cufe_cude + '\n' - elif self.cufe_cude: - qr_data += "CUDE: " + self.cufe_cude + '\n' - - qr_data += "\n\n" + (self.invoice_url or '') - - return qr_data - - def _get_qr_code(self): - for dian_document_id in self: - dian_document_id.qr_image = global_functions.get_qr_image( - dian_document_id._get_qr_code_data()) - - state = fields.Selection(selection=[('draft', 'Draft'), ('sent', 'Sent'), - ('done', 'Done'), - ('cancel', 'Cancelled')], - string='State', - readonly=True, - default='draft') - invoice_id = fields.Many2one('account.move', string='Invoice') - company_id = fields.Many2one('res.company', string='Company') - invoice_url = fields.Char(string='Invoice Url') - cufe_cude_uncoded = fields.Char(string='CUFE/CUDE Uncoded') - cufe_cude = fields.Char(string='CUFE/CUDE') - software_security_code_uncoded = fields.Char( - string='SoftwareSecurityCode Uncoded') - software_security_code = fields.Char(string='SoftwareSecurityCode') - profile_execution_id = fields.Selection( - string='Destination Environment of Document', - related='company_id.profile_execution_id', - store=False) - xml_filename = fields.Char(string='Invoice XML Filename') - xml_file = fields.Binary(string='Invoice XML File') - zipped_filename = fields.Char(string='Zipped Filename') - zipped_file = fields.Binary(string='Zipped File') - ar_xml_filename = fields.Char(string='ApplicationResponse XML Filename') - ar_xml_file = fields.Binary(string='ApplicationResponse XML File') - validation_datetime = fields.Datetime(string='Validation Datetime', - default=False) - ad_zipped_filename = fields.Char(string='AttachedDocument Zipped Filename') - ad_zipped_file = fields.Binary(string='AttachedDocument Zipped File') - mail_sent = fields.Boolean(string='Mail Sent?') - zip_key = fields.Char(string='ZipKey') - get_status_zip_status_code = fields.Selection( - selection=[ - ('2', 'Test set it is found Accepted'), - ('00', 'Processed Correctly'), - ('66', 'NSU not found'), - ('90', 'TrackId not found'), - ('99', 'Validations contain errors in mandatory fields'), - ('other', 'Other')], - string='Status Code', - default=False) - get_status_zip_response = fields.Text(string='Response') - qr_image = fields.Binary("QR Code", compute='_get_qr_code') - dian_document_line_ids = fields.One2many( - comodel_name='account.move.dian.document.line', - inverse_name='dian_document_id', - string='DIAN Document Lines') - - def _set_filenames(self): - msg1 = _("The document type of '%s' is not NIT") - msg2 = _("'%s' does not have a document type established.") - msg3 = _("'%s' does not have a identification document established.") - msg4 = _( - 'There is no fiscal year corresponding to the date of your invoice.' - ) - - invoice_date = datetime.strftime(self.invoice_id.invoice_date, - '%Y-%m-%d %H:%M:%S') - - if self.company_id.partner_id.ref_type_id: - if self.company_id.partner_id.ref_type_id.code_dian != '31': - raise UserError(msg1 % self.company_id.partner_id.name) - else: - raise UserError(msg2 % self.company_id.partner_id.name) - - if not self.company_id.partner_id.ref_num: - raise UserError(msg3) - - if not invoice_date: - invoice_date = fields.Date.today() - - fiscal_year_id = self.env['account.fiscal.year'].search([ - ('date_from', '<=', invoice_date), ('date_to', '>=', invoice_date) - ]) - - if not fiscal_year_id or fiscal_year_id.company_id != self.company_id: - raise UserError(msg4) - else: - # Regla: el consecutivo se iniciará en “00000001” cada primero de enero. - out_invoice_sent = fiscal_year_id.out_invoice_sent - out_refund_credit_sent = fiscal_year_id.out_refund_credit_sent - out_refund_debit_sent = fiscal_year_id.out_refund_debit_sent - in_invoice_sent = fiscal_year_id.in_invoice_sent - zip_sent = out_invoice_sent + out_refund_credit_sent + out_refund_debit_sent + in_invoice_sent - - # nnnnnnnnnn: NIT del Facturador Electrónico sin DV, de diez (10) dígitos - # alineados a la derecha y relleno con ceros a la izquierda. - nnnnnnnnnn = self.company_id.partner_id.ref_num.zfill(10) - # El Código “ppp” es 000 para Software Propio - ppp = '000' - - if self.company_id.have_technological_provider: - ppp = self.company_id.assignment_code - # aa: Dos (2) últimos dígitos año calendario - aa = invoice_date[2:4] - # dddddddd: consecutivo de archivos enviados, de ocho (8) dígitos hexadecimales - # alineados a la derecha y ajustado a la izquierda con ceros, en el rango: - # 00000001 <= FFFFFFFF - - if self.invoice_id.move_type == 'out_invoice' and not self.invoice_id.refund_type: - xml_filename_prefix = 'fv' - fiscal_year_id.out_invoice_sent += 1 - dddddddd = hex(fiscal_year_id.out_invoice_sent).replace('0x', '') - elif self.invoice_id.move_type == 'out_refund' and self.invoice_id.refund_type == 'credit': - xml_filename_prefix = 'nc' - fiscal_year_id.out_refund_credit_sent += 1 - dddddddd = hex(fiscal_year_id.out_refund_credit_sent).replace( - '0x', '') - elif self.invoice_id.move_type == 'out_invoice' and self.invoice_id.refund_type == 'debit': - xml_filename_prefix = 'nd' - fiscal_year_id.out_refund_debit_sent += 1 - dddddddd = hex(fiscal_year_id.out_refund_debit_sent).replace( - '0x', '') - elif self.invoice_id.move_type == 'in_invoice': - xml_filename_prefix = 'dse' - fiscal_year_id.in_invoice_sent += 1 - dddddddd = hex(fiscal_year_id.in_invoice_sent).replace('0x', '') - else: - raise ValidationError("ERROR: TODO 2.0") - - dddddddd = dddddddd.zfill(8) - zdddddddd = hex(zip_sent + 1).replace('0x', '').zfill(8) - nnnnnnnnnnpppaadddddddd = nnnnnnnnnn + ppp + aa + dddddddd - zaradnnnnnnnnnnpppaadddddddd = nnnnnnnnnn + ppp + aa + zdddddddd - self.write({ - 'xml_filename': - xml_filename_prefix + nnnnnnnnnnpppaadddddddd + '.xml', - 'zipped_filename': - 'z' + zaradnnnnnnnnnnpppaadddddddd + '.zip', - 'ar_xml_filename': - 'ar' + zaradnnnnnnnnnnpppaadddddddd + '.xml', - 'ad_zipped_filename': - 'ad' + zaradnnnnnnnnnnpppaadddddddd + '.zip' - }) - - return True - - def _get_xml_values(self, ClTec): - msg1 = _("'%s' does not have a valid isic code") - msg2 = _("'%s' does not have a isic code established.") - msg3 = _("'%s' does not have a identification document established.") - provider = self.company_id.partner_id - supplier = self.company_id.partner_id - customer = self.invoice_id.partner_id - - if self.company_id.have_technological_provider: - provider = self.company_id.technological_provider_id - - if (not self.invoice_id.invoice_type_code - and self.invoice_id.company_id.invoice_type_code): - self.invoice_id.invoice_type_code = ( - self.invoice_id.company_id.invoice_type_code) - - if self.invoice_id.invoice_type_code == '05': - supplier = self.invoice_id.partner_id - customer = self.company_id.partner_id - IndustryClassificationCode = customer - else: - IndustryClassificationCode = supplier - - if IndustryClassificationCode.ciiu_id: - if IndustryClassificationCode.ciiu_id.name == '0000': - raise UserError(msg1 % IndustryClassificationCode.name) - - IndustryClassificationCode = IndustryClassificationCode.ciiu_id.name - else: - raise UserError(msg2 % IndustryClassificationCode.name) - - NitOFE = supplier.ref_num - IdSoftware = self.company_id.software_id - SoftwarePIN = self.company_id.software_pin - ID = self.invoice_id.name - software_security_code = global_functions.get_software_security_code( - IdSoftware, SoftwarePIN, ID) - TipoAmbie = self.company_id.profile_execution_id - delivery = self.invoice_id.partner_shipping_id - DocAdq = customer.ref_num - document_type_code = False - - if customer.ref_type_id: - document_type_code = customer.ref_type_id.code_dian - - if document_type_code not in ('11', '12', '13', '21', '22', '31', '41', - '42', '47', '50', '91'): - if customer.person_type == '2': - DocAdq = '222222222222' - else: - raise UserError(msg3 % customer.name) - - if TipoAmbie == '1': - QRCodeURL = DIAN['catalogo'] - else: - QRCodeURL = DIAN['catalogo-hab'] - - invoice_datetime = self.invoice_id.invoice_datetime - IssueDate = datetime.strftime(invoice_datetime, '%Y-%m-%d') - IssueTime = datetime.strftime(invoice_datetime, '%H:%M:%S-05:00') - delivery_datetime = self.invoice_id.delivery_datetime - ActualDeliveryDate = datetime.strftime(delivery_datetime, '%Y-%m-%d') - ActualDeliveryTime = datetime.strftime(delivery_datetime, - '%H:%M:%S-05:00') - ValFac = self.invoice_id.amount_untaxed - einvoicing_taxes = self.invoice_id._get_einvoicing_taxes() - ValImp1 = einvoicing_taxes['TaxesTotal']['01']['total'] - ValImp2 = einvoicing_taxes['TaxesTotal']['04']['total'] - ValImp3 = einvoicing_taxes['TaxesTotal']['03']['total'] - ValOtroIm = ValImp2 - ValImp3 - TaxInclusiveAmount = ValFac + ValImp1 + ValImp2 + ValImp3 - # El valor a pagar puede verse afectado, por anticipos, y descuentos y - # cargos a nivel de factura - PayableAmount = TaxInclusiveAmount - cufe_cude = global_functions.get_cufe_cude( - ID, IssueDate, IssueTime, str('{:.2f}'.format(ValFac)), '01', - str('{:.2f}'.format(ValImp1)), '04', str('{:.2f}'.format(ValImp2)), - '03', str('{:.2f}'.format(ValImp3)), - str('{:.2f}'.format(TaxInclusiveAmount)), NitOFE, DocAdq, ClTec, - SoftwarePIN, TipoAmbie) - QRCodeURL = QRCodeURL.format(cufe_cude['CUFE/CUDE']) - self.write({ - 'invoice_url': - QRCodeURL, - 'cufe_cude_uncoded': - cufe_cude['CUFE/CUDEUncoded'], - 'cufe_cude': - cufe_cude['CUFE/CUDE'], - 'software_security_code_uncoded': - software_security_code['SoftwareSecurityCodeUncoded'], - 'software_security_code': - software_security_code['SoftwareSecurityCode'] - }) - - if not self.invoice_id.payment_mean_code_id: - self.invoice_id.payment_mean_code_id = self.\ - env['account.payment.mean.code'].search([('code', '=', '1')]).id - - return { - 'ProviderIDschemeID': - provider.verification_code, - 'ProviderIDschemeName': - provider.ref_type_id.code_dian, - 'ProviderID': - provider.ref_num, - 'SoftwareID': - IdSoftware, - 'SoftwareSecurityCode': - software_security_code['SoftwareSecurityCode'], - 'NitFac': - NitOFE, - 'DocAdq': - DocAdq, - 'QRCodeURL': - QRCodeURL, - 'ProfileExecutionID': - TipoAmbie, - 'ID': - ID, - 'UUID': - cufe_cude['CUFE/CUDE'], - 'IssueDate': - IssueDate, - 'IssueTime': - IssueTime, - 'ValIva': - '{:.2f}'.format(ValImp1), - 'ValOtroIm': - '{:.2f}'.format(ValOtroIm), - 'DueDate': - self.invoice_id.invoice_date_due, - 'Note': - self.invoice_id.narration or '', - 'DocumentCurrencyCode': - self.invoice_id.currency_id.name, - 'LineCountNumeric': - len( - self.invoice_id.invoice_line_ids.filtered( - lambda line: not line.display_type)), - 'OrderReferenceID': - self.invoice_id.ref, - 'ReceiptDocumentReferenceID': - self.invoice_id.receipt_document_reference, - 'IndustryClassificationCode': - IndustryClassificationCode, - 'AccountingSupplierParty': - supplier._get_accounting_partner_party_values(), - 'AccountingCustomerParty': - customer._get_accounting_partner_party_values(), - 'ActualDeliveryDate': - ActualDeliveryDate, - 'ActualDeliveryTime': - ActualDeliveryTime, - 'Delivery': - delivery._get_delivery_values(), - 'DeliveryTerms': { - 'LossRiskResponsibilityCode': False, - 'LossRisk': False - }, - 'PaymentMeansID': - self.invoice_id.payment_mean_id.code, - 'PaymentMeansCode': - self.invoice_id.payment_mean_code_id.code, - 'PaymentDueDate': - self.invoice_id.invoice_date_due, - 'PaymentExchangeRate': - self.invoice_id._get_payment_exchange_rate(), - 'TaxesTotal': - einvoicing_taxes['TaxesTotal'], - 'WithholdingTaxesTotal': - einvoicing_taxes['WithholdingTaxesTotal'], - 'LineExtensionAmount': - '{:.2f}'.format(self.invoice_id.amount_untaxed), - 'TaxExclusiveAmount': - '{:.2f}'.format(einvoicing_taxes['TaxesTotalBase']), - 'TaxInclusiveAmount': - '{:.2f}'.format(TaxInclusiveAmount), - 'PayableAmount': - '{:.2f}'.format(PayableAmount) - } - - def _get_invoice_values(self): - msg1 = _("Your journal: %s, has no a invoice sequence") - msg2 = _( - "Your active dian resolution has no technical key, contact with your " - "administrator.") - msg3 = _( - "Your journal: %s, has no a invoice sequence with type equal to " - "E-Invoicing") - msg4 = _( - "Your journal: %s, has no a invoice sequence with type equal to " - "Contingency Checkbook E-Invoicing") - msg5 = _("The invoice type selected is not valid to this invoice.") - sequence = self.invoice_id.journal_id.sequence_id - ClTec = False - - if not sequence: - raise UserError(msg1 % self.invoice_id.journal_id.name) - - active_dian_resolution = self.invoice_id._get_active_dian_resolution() - - if self.invoice_id.invoice_type_code in ('01', '02'): - ClTec = active_dian_resolution['technical_key'] - - if not ClTec: - raise UserError(msg2) - - if self.invoice_id.invoice_type_code != '03': - if sequence.dian_type != 'e-invoicing': - raise UserError(msg3 % self.invoice_id.journal_id.name) - else: - if sequence.dian_type != 'contingency_checkbook_e-invoicing': - raise UserError(msg4 % self.invoice_id.journal_id.name) - - if (not self.invoice_id.operation_type - and self.invoice_id.company_id.operation_type): - self.invoice_id.operation_type = self.invoice_id.company_id.operation_type - - if self.invoice_id.operation_type not in ('09', '10', '11'): - raise UserError(msg5) - - xml_values = self._get_xml_values(ClTec) - xml_values['InvoiceControl'] = active_dian_resolution - # Punto 13.1.5.1. Documento Invoice – Factura electrónica - # Factura electrónica del anexo tecnico version 1.8 - # 10 Estándar - # 09 AIU - # 11 Mandatos - # 12 Transporte - # 13 Cambiario - xml_values['CustomizationID'] = self.invoice_id.operation_type - # Punto 13.1.3. Tipo de Documento: cbc:InvoiceTypeCode y cbc:CreditnoteTypeCode - # Factura electrónica del anexo tecnico version 1.8 - # 01 Factura electrónica de Venta - # 02 Factura electrónica de venta - exportación - # 04 Factura electrónica de Venta - tipo 04 - # Transcripción de la factura de talonario o papel - # 03 Instrumento electrónico de transmisión – tipo 03 - # TODO 2.0: (ApplicationResponse) - # 96 Eventos - xml_values['InvoiceTypeCode'] = self.invoice_id.invoice_type_code - xml_values['InvoiceLines'] = self.invoice_id._get_invoice_lines() - - return xml_values - - def _get_credit_note_values(self): - msg = _("Your journal: %s, has no a credit note sequence") - - if not self.invoice_id.journal_id.refund_sequence_id: - raise UserError(msg % self.invoice_id.journal_id.name) - - xml_values = self._get_xml_values(False) - billing_reference = self.invoice_id._get_billing_reference() - # Punto 13.1.5.2. Documento CreditNote – Nota Crédito - # Factura electrónica del anexo tecnico version 1.8 - # 20 Nota Crédito que referencia una factura electrónica. - # 22 Nota Crédito sin referencia a facturas. - if billing_reference: - xml_values['CustomizationID'] = '20' - self.invoice_id.operation_type = '20' - else: - xml_values['CustomizationID'] = '22' - self.invoice_id.operation_type = '22' - billing_reference = { - 'ID': False, - 'UUID': False, - 'IssueDate': False, - 'CustomizationID': False - } - # TODO 2.0: Exclusivo en referencias a documentos (elementos DocumentReference) - # Punto 13.1.3. Tipo de Documento: cbc:InvoiceTypeCode y cbc:CreditnoteTypeCode - # Factura electrónica del anexo tecnico version 1.8 - # 91 Nota Crédito - xml_values['CreditNoteTypeCode'] = '91' - xml_values['BillingReference'] = billing_reference - xml_values['DiscrepancyReferenceID'] = billing_reference['ID'] - xml_values[ - 'DiscrepancyResponseCode'] = self.invoice_id.discrepancy_response_code_id.code - xml_values[ - 'DiscrepancyDescription'] = self.invoice_id.discrepancy_response_code_id.name - xml_values['CreditNoteLines'] = self.invoice_id._get_invoice_lines() - - return xml_values - - def _get_debit_note_values(self): - msg = _("Your journal: %s, has no a debit note sequence") - - if not self.invoice_id.journal_id.debit_note_sequence_id: - raise UserError(msg % self.invoice_id.journal_id.name) - - xml_values = self._get_xml_values(False) - billing_reference = self.invoice_id._get_billing_reference() - # Punto 13.1.5.3. Documento DebitNote – Nota Débito - # Factura electrónica del anexo tecnico version 1.8 - # 30 Nota Débito que referencia una factura electrónica. - # 32 Nota Débito sin referencia a facturas. - if billing_reference: - xml_values['CustomizationID'] = '30' - self.invoice_id.operation_type = '30' - else: - xml_values['CustomizationID'] = '32' - self.invoice_id.operation_type = '32' - billing_reference = { - 'ID': False, - 'UUID': False, - 'IssueDate': False, - 'CustomizationID': False - } - # TODO 2.0: Exclusivo en referencias a documentos (elementos DocumentReference) - # Punto 13.1.3. Tipo de Documento: cbc:InvoiceTypeCode y cbc:CreditnoteTypeCode - # Factura electrónica del anexo tecnico version 1.8 - # 92 Nota Débito - # TODO 2.0: DebitNoteTypeCode no existe en DebitNote - # xml_values['DebitNoteTypeCode'] = '92' - xml_values['BillingReference'] = billing_reference - xml_values['DiscrepancyReferenceID'] = billing_reference['ID'] - xml_values[ - 'DiscrepancyResponseCode'] = self.invoice_id.discrepancy_response_code_id.code - xml_values[ - 'DiscrepancyDescription'] = self.invoice_id.discrepancy_response_code_id.name - xml_values['DebitNoteLines'] = self.invoice_id._get_invoice_lines() - - return xml_values - - def _get_support_document_values(self): - msg1 = _("Your journal: %s, has no a invoice sequence") - msg2 = _( - "Your journal: %s, has no a invoice sequence with type equal to " - "E-Support Document") - - if not self.invoice_id.journal_id.sequence_id: - raise UserError(msg1 % self.invoice_id.journal_id.name) - - if self.invoice_id.journal_id.sequence_id.dian_type != 'e-support_document': - raise UserError(msg2 % self.invoice_id.journal_id.name) - - if (not self.invoice_id.operation_type - and self.invoice_id.company_id.operation_type): - self.invoice_id.operation_type = self.invoice_id.company_id.operation_type - - active_dian_resolution = self.invoice_id._get_active_dian_resolution() - xml_values = self._get_xml_values(False) - xml_values['InvoiceControl'] = active_dian_resolution - xml_values['CustomizationID'] = self.invoice_id.operation_type - xml_values['InvoiceTypeCode'] = self.invoice_id.invoice_type_code - xml_values['InvoiceLines'] = self.invoice_id._get_invoice_lines() - - return xml_values - - def _get_xml_file(self): - if self.invoice_id.move_type == "out_invoice" and not self.invoice_id.refund_type: - xml_without_signature = global_functions.get_template_xml( - self._get_invoice_values(), 'Invoice') - elif self.invoice_id.move_type == "out_refund" and self.invoice_id.refund_type == "credit": - xml_without_signature = global_functions.get_template_xml( - self._get_credit_note_values(), 'CreditNote') - elif self.invoice_id.move_type == "out_invoice" and self.invoice_id.refund_type == "debit": - xml_without_signature = global_functions.get_template_xml( - self._get_debit_note_values(), 'DebitNote') - elif self.invoice_id.move_type == 'in_invoice': - xml_without_signature = global_functions.get_template_xml( - self._get_support_document_values(), 'DocumentoSoporte') - else: - raise ValidationError("ERROR: TODO 2.0") - - xml_with_signature = global_functions.get_xml_with_signature( - xml_without_signature, - self.company_id.signature_policy_url, - self.company_id.signature_policy_file, - self.company_id.signature_policy_description, - self.company_id.certificate_file, - self.company_id.certificate_password) - - return xml_with_signature - - def _get_zipped_file(self): - output = BytesIO() - zipfile = ZipFile(output, mode='w') - zipfile_content = BytesIO() - xml_file = self._get_xml_file() - zipfile_content.write(b64decode(xml_file)) - zipfile.writestr(self.xml_filename, zipfile_content.getvalue()) - zipfile.close() - #zipfile_content.close() - #zipped_file = b64encode(output.getvalue()).decode('utf-8') - zipped_file = output.getvalue() - #output.close() - - return zipped_file - - def action_set_files(self): - if self.invoice_id.warn_inactive_certificate: - raise ValidationError(_("There is no an active certificate.")) - - if not self.xml_filename or not self.zipped_filename: - self._set_filenames() - - self.invoice_id._create_token() - xml_file = self._get_xml_file() - - if xml_file: - zipped_file = self._get_zipped_file() - self.write({'xml_file': xml_file}) - self.write({'zipped_file': zipped_file}) - - if self.invoice_id.dian_document_state == 'exception': - return False - - self.invoice_id.write({'dian_document_state': 'done'}) - else: - return False - - return True - - def _get_ad_xml_values(self): - ProfileExecutionID = self.company_id.profile_execution_id - ad_zipped_filename = self.ad_zipped_filename - ID = ad_zipped_filename.replace('.zip', '') - timezone = pytz.timezone(self.env.user.tz or 'America/Bogota') - from_zone = tz.gettz('UTC') - to_zone = tz.gettz(timezone.zone) - issue_datetime = datetime.now().replace(tzinfo=from_zone) - IssueDate = issue_datetime.astimezone(to_zone).strftime('%Y-%m-%d') - IssueTime = issue_datetime.astimezone(to_zone).strftime('%H:%M:%S-05:00') - ParentDocumentID = self.invoice_id.name - UUID = self.cufe_cude - supplier = self.company_id.partner_id - customer = self.invoice_id.partner_id - InvoiceCNDN = b64decode(self.xml_file).decode('utf-8') - - if self.ar_xml_file: - ApplicationResponse = b64decode(self.ar_xml_file).decode('utf-8') - else: - ApplicationResponse = 'NO ApplicationResponse' - - validation_datetime = self.validation_datetime - ValidationDate = datetime.strftime(validation_datetime, '%Y-%m-%d') - ValidationTime = datetime.strftime(validation_datetime, '%H:%M:%S-05:00') - - return { - 'ProfileExecutionID': ProfileExecutionID, - 'ID': ID, - 'IssueDate': IssueDate, - 'IssueTime': IssueTime, - 'ParentDocumentID': ParentDocumentID, - 'SenderParty': supplier._get_accounting_partner_party_values(), - 'ReceiverParty': customer._get_accounting_partner_party_values(), - 'InvoiceCNDN': InvoiceCNDN, - 'UUID': UUID, - 'ApplicationResponse': ApplicationResponse, - 'ValidationDate': ValidationDate, - 'ValidationTime': ValidationTime} - - def _get_ad_xml_file(self): - return global_functions.get_template_xml( - self._get_ad_xml_values(), 'AttachedDocument') - - def _get_ad_zipped_file(self): - ad_zipped_filename = self.ad_zipped_filename - ad_xml_filename = ad_zipped_filename.replace('.zip', '.xml') - output = BytesIO() - zipfile = ZipFile(output, mode='w') - zipfile_content = BytesIO() - zipfile_content.write(self._get_ad_xml_file()) - zipfile.writestr(ad_xml_filename, zipfile_content.getvalue()) - zipfile_content = BytesIO() - zipfile_content.write(b64decode(self._get_pdf_file())) - zipfile.writestr(self.invoice_id.name + '.pdf', zipfile_content.getvalue()) - zipfile_content.close() - zipfile.close() - ad_zipped_file = b64encode(output.getvalue()).decode('utf-8') - output.close() - - return ad_zipped_file - - def action_set_ad_zipped_file(self): - ad_zipped_file = self._get_ad_zipped_file() - - if ad_zipped_file: - self.write({'ad_zipped_file': ad_zipped_file}) - else: - return ad_zipped_file - - return True - - def _get_SendTestSetAsync_values(self): - xml_soap_values = global_functions.get_xml_soap_values( - self.company_id.certificate_file, - self.company_id.certificate_password) - xml_soap_values['fileName'] = self.zipped_filename.replace('.zip', '') - xml_soap_values['contentFile'] = b64encode(self.zipped_file).decode('utf-8') - xml_soap_values['testSetId'] = self.company_id.test_set_id - - return xml_soap_values - - def _get_SendBillAsync_values(self): - xml_soap_values = global_functions.get_xml_soap_values( - self.company_id.certificate_file, - self.company_id.certificate_password) - xml_soap_values['fileName'] = self.zipped_filename.replace('.zip', '') - xml_soap_values['contentFile'] = b64encode(self.zipped_file).decode('utf-8') - - return xml_soap_values - - def _get_pdf_file(self): - template_id = self.env['ir.actions.report'].browse( - self.company_id.report_template_id.id) - pdf = template_id._render_qweb_pdf([self.invoice_id.id])[0] - b64_pdf = b64encode(pdf).decode('utf-8') - - return b64_pdf - - def action_send_mail(self): - msg = _("Your invoice has not been validated") - template_id = self.env.ref( - 'l10n_co_account_e_invoicing.email_template_einvoice').id - template = self.env['mail.template'].browse(template_id) - - if not self.invoice_id.name: - raise UserError(msg) - - attachment = self.env['ir.attachment'].create({ - 'name': - self.ad_zipped_filename, - 'datas': - self.ad_zipped_file, - 'res_model': - 'account.move', - 'res_id': - self.invoice_id.id - }) - template.attachment_ids = [(6, 0, [(attachment.id)])] - template.send_mail(self.invoice_id.id, - force_send=self.company_id.force_send_mail) - self.write({'mail_sent': True}) - - return True - - def send_failure_mail(self): - if not self.company_id.send_failure_mail: - return True - - msg1 = _("The notification group for e-invoice failures is not set.\n" - "You won't be notified if something goes wrong.\n" - "Please go to Settings > Company > Notification Group.") - subject = _( - 'ALERT! Invoice %s was not sent to DIAN.') % self.invoice_id.name - msg_body = _( - '''Cordial Saludo,

La factura ''' + self.invoice_id.name + - ''' del cliente ''' + self.invoice_id.partner_id.name + - ''' no pudo ser ''' - '''enviada a la Dian según el protocolo establecido previamente. Por ''' - '''favor revise el estado de la misma en el menú Documentos Dian e ''' - '''intente reprocesarla según el procedimiento definido.''' - '''
''' + self.company_id.name + '''.''') - email_ids = self.company_id.notification_group_ids - - if email_ids: - email_to = '' - - for mail_id in email_ids: - email_to += mail_id.email.strip() + ',' - else: - raise UserError(msg1) - - mail_obj = self.env['mail.mail'] - msg_vals = { - 'subject': subject, - 'email_to': email_to, - 'body_html': msg_body - } - msg_id = mail_obj.create(msg_vals) - msg_id.send() - - return True - - def _get_status_response(self, response, send_mail, repeat=1): - msg = _("Problema de conexión con la DIAN, intente de nuevo más tarde.") - b = "http://schemas.datacontract.org/2004/07/DianResponse" - c = "http://schemas.microsoft.com/2003/10/Serialization/Arrays" - s = "http://www.w3.org/2003/05/soap-envelope" - to_return = True - strings = '' - status_code = 'other' - root = etree.fromstring(response.content) - - for element in root.iter("{%s}StatusCode" % b): - if element.text in ('0', '2', '00', '66', '90', '99'): - if element.text == '00': - self.write({'state': 'done'}) - self.invoice_id.write( - {'dian_document_state': 'dian_accept'}) - elif element.text == '99': - self.invoice_id.write( - {'dian_document_state': 'dian_reject'}) - - status_code = element.text - elif element.text is None: - status_code = element.text - - if status_code in (None , '0'): - if self.company_id.profile_execution_id == '1' and repeat < 3: - repeat += 1 - - return self._get_GetStatus(send_mail, repeat) - elif self.zip_key and status_code is not None: - return self.action_GetStatusZip() - else: - raise ValidationError(msg) - - for element in root.iter("{%s}StatusMessage" % b): - strings = element.text or strings - - for element in root.iter("{%s}StatusDescription" % b): - if strings == '' and element.text: - strings = '- ' + element.text - elif element.text: - strings += '\n\n- ' + element.text - - for element in root.iter("{%s}XmlBase64Bytes" % b): - self.write({'ar_xml_file': element.text}) - - if status_code == '00': - if not self.ar_xml_file: - if self.company_id.profile_execution_id == '1': - return self._get_GetStatus(send_mail) - - return self.action_GetStatusZip() - - self.write({'validation_datetime': datetime.now()}) - self.action_set_ad_zipped_file() - - if not self.mail_sent and send_mail: - self.action_send_mail() - - to_return = True - else: - if send_mail: - self.send_failure_mail() - - to_return = False - - for element in root.iter("{%s}string" % c): - if strings == '': - strings = '- ' + element.text - else: - strings += '\n\n- ' + element.text - - if strings == '': - for element in root.iter("{%s}Body" % s): - strings = etree.tostring( - element, xml_declaration=False, encoding='utf-8').decode('utf-8') - - if strings == '': - strings = etree.tostring( - root, xml_declaration=False, encoding='utf-8').decode('utf-8') - - self.write({ - 'get_status_zip_status_code': status_code, - 'get_status_zip_response': strings - }) - - return to_return - - def _get_GetStatusZip_values(self): - xml_soap_values = global_functions.get_xml_soap_values( - self.company_id.certificate_file, - self.company_id.certificate_password) - - xml_soap_values['trackId'] = self.zip_key - - return xml_soap_values - - def action_GetStatusZip(self): - wsdl = DIAN['wsdl-hab'] - - if self.company_id.profile_execution_id == '1': - wsdl = DIAN['wsdl'] - - GetStatusZip_values = self._get_GetStatusZip_values() - GetStatusZip_values['To'] = wsdl.replace('?wsdl', '') - xml_soap_with_signature = global_functions.get_xml_soap_with_signature( - global_functions.get_template_xml(GetStatusZip_values, 'GetStatusZip'), - GetStatusZip_values['Id'], - self.company_id.certificate_file, - self.company_id.certificate_password) - - response = post( - wsdl, - headers={'content-type': 'application/soap+xml;charset=utf-8'}, - data=etree.tostring(xml_soap_with_signature)) - - if response.status_code == 200: - return self._get_status_response(response, True) - elif response.status_code in (403, 500, 503, 507, 508): - self.env['account.move.dian.document.line'].create({ - 'dian_document_id': self.id, - 'send_async_status_code': response.status_code, - 'send_async_reason': response.reason, - 'send_async_response': response.text}) - else: - raise ValidationError(response.status_code) - - return False - - def action_send_zipped_file(self): - msg1 = _( - "Unknown Error,\nStatus Code: %s,\nReason: %s,\n\nContact with your " - "administrator or you can choose a journal with a Contingency Checkbook " - "E-Invoicing sequence and change the Invoice Type to 'E-document of " - "transmission - type 03'.") - msg2 = _( - "Unknown Error: %s\n\nContact with your administrator or you can choose a " - "journal with a Contingency Checkbook E-Invoicing sequence and change the " - "Invoice Type to 'E-document of transmission - type 03'.") - b = "http://schemas.datacontract.org/2004/07/UploadDocumentResponse" - wsdl = DIAN['wsdl-hab'] - - if self.company_id.profile_execution_id == '1': - wsdl = DIAN['wsdl'] - SendBillAsync_values = self._get_SendBillAsync_values() - SendBillAsync_values['To'] = wsdl.replace('?wsdl', '') - xml_soap_with_signature = global_functions.get_xml_soap_with_signature( - global_functions.get_template_xml( - SendBillAsync_values, 'SendBillSync'), - SendBillAsync_values['Id'], self.company_id.certificate_file, - self.company_id.certificate_password) - else: - SendTestSetAsync_values = self._get_SendTestSetAsync_values() - SendTestSetAsync_values['To'] = wsdl.replace('?wsdl', '') - xml_soap_with_signature = global_functions.get_xml_soap_with_signature( - global_functions.get_template_xml( - SendTestSetAsync_values, 'SendTestSetAsync'), - SendTestSetAsync_values['Id'], - self.company_id.certificate_file, - self.company_id.certificate_password) - - try: - response = post( - wsdl, - headers={'content-type': 'application/soap+xml;charset=utf-8'}, - data=etree.tostring(xml_soap_with_signature)) - - if response.status_code == 200: - self.write({'state': 'sent'}) - self.invoice_id.write({'dian_document_state': 'done'}) - - if self.company_id.profile_execution_id == '1': - self._get_status_response(response, True) - else: - root = etree.fromstring(response.text.encode('utf-8')) - - for element in root.iter("{%s}ZipKey" % b): - self.write({'zip_key': element.text}) - self.action_GetStatusZip() - elif response.status_code in (403, 500, 503, 507, 508): - self.env['account.move.dian.document.line'].create({ - 'dian_document_id': self.id, - 'send_async_status_code': response.status_code, - 'send_async_reason': response.reason, - 'send_async_response': response.text}) - else: - raise ValidationError(msg1 % (response.status_code, response.reason)) - except exceptions.RequestException as e: - raise ValidationError(msg2 % (e)) - - return True - - def _get_GetStatus_values(self): - xml_soap_values = global_functions.get_xml_soap_values( - self.company_id.certificate_file, - self.company_id.certificate_password) - - xml_soap_values['trackId'] = self.cufe_cude - - return xml_soap_values - - def _get_GetStatus(self, send_mail, repeat=1): - msg1 = _("Unknown Error,\nStatus Code: %s,\nReason: %s" - "\n\nContact with your administrator.") - msg2 = _("Unknown Error: %s\n\nContact with your administrator.") - wsdl = DIAN['wsdl-hab'] - - if self.company_id.profile_execution_id == '1': - wsdl = DIAN['wsdl'] - - GetStatus_values = self._get_GetStatus_values() - GetStatus_values['To'] = wsdl.replace('?wsdl', '') - xml_soap_with_signature = global_functions.get_xml_soap_with_signature( - global_functions.get_template_xml(GetStatus_values, 'GetStatus'), - GetStatus_values['Id'], - self.company_id.certificate_file, - self.company_id.certificate_password) - - try: - response = post( - wsdl, - headers={'content-type': 'application/soap+xml;charset=utf-8'}, - data=etree.tostring(xml_soap_with_signature)) - print(response.text) - print(response.status_code) - - if response.status_code == 200: - return self._get_status_response(response, send_mail, repeat) - elif response.status_code in (403, 500, 503, 507, 508): - self.env['account.move.dian.document.line'].create({ - 'dian_document_id': self.id, - 'send_async_status_code': response.status_code, - 'send_async_reason': response.reason, - 'send_async_response': response.text}) - else: - raise ValidationError(msg1 % (response.status_code, response.reason)) - except exceptions.RequestException as e: - raise ValidationError(msg2 % (e)) - - return False - - def action_GetStatus_without_send_mail(self): - return self._get_GetStatus(False) - - def action_process(self): - to_return = False - - if self.xml_file: - if self.company_id.profile_execution_id == '1' and self.cufe_cude: - to_return = self._get_GetStatus(True) - elif self.zip_key: - to_return = self.action_GetStatusZip() - - if to_return: - return to_return - - if self.action_set_files(): - self.action_send_zipped_file() - else: - self.send_failure_mail() - - return True - - # TODO: 2.0 - def _get_SendBillAttachmentAsync_values(self): - xml_soap_values = global_functions.get_xml_soap_values( - self.company_id.certificate_file, - self.company_id.certificate_password) - output = BytesIO() - zipfile = ZipFile(output, mode='w') - zipfile_content = BytesIO() - zipfile_content.write(b64decode(self.xml_file)) - zipfile.writestr(self.xml_filename, zipfile_content.getvalue()) - zipfile_content = BytesIO() - zipfile_content.write(b64decode(self.ar_xml_file)) - zipfile.writestr(self.ar_xml_filename, zipfile_content.getvalue()) - zipfile_content.close() - zipfile.close() - xml_soap_values['fileName'] = self.zipped_filename.replace('.zip', '') - xml_soap_values['contentFile'] = b64encode( - output.getvalue()).decode('uft-8') - output.close() - - return xml_soap_values - - def action_SendBillAttachmentAsync(self): - b = "http://schemas.datacontract.org/2004/07/UploadDocumentResponse" - wsdl = DIAN['wsdl-hab'] - - if self.company_id.profile_execution_id == '1': - wsdl = DIAN['wsdl'] - - SendBillAttachmentAsync_values = self._get_SendBillAttachmentAsync_values( - ) - SendBillAttachmentAsync_values['To'] = wsdl.replace('?wsdl', '') - xml_soap_with_signature = global_functions.get_xml_soap_with_signature( - global_functions.get_template_xml(SendBillAttachmentAsync_values, - 'SendBillAttachmentAsync'), - SendBillAttachmentAsync_values['Id'], - self.company_id.certificate_file, - self.company_id.certificate_password) - - response = post( - wsdl, - headers={'content-type': 'application/soap+xml;charset=utf-8'}, - data=etree.tostring(xml_soap_with_signature)) - - if response.status_code == 200: - etree.fromstring(response.text) - elif response.status_code in (403, 500, 503, 507, 508): - self.env['account.move.dian.document.line'].create({ - 'dian_document_id': self.id, - 'send_async_status_code': response.status_code, - 'send_async_reason': response.reason, - 'send_async_response': response.text}) - - return True diff --git a/l10n_co_account_e_invoicing/models/account_move_dian_document_line.py b/l10n_co_account_e_invoicing/models/account_move_dian_document_line.py deleted file mode 100644 index 9dceeee..0000000 --- a/l10n_co_account_e_invoicing/models/account_move_dian_document_line.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import models, fields - - -class AccountInvoiceDianDocumentLine(models.Model): - _name = "account.move.dian.document.line" - _description = 'DIAN Document Lines' - - dian_document_id = fields.Many2one( - comodel_name='account.move.dian.document', - string='DIAN Document') - send_async_status_code = fields.Char(string='Status Code') - send_async_reason = fields.Char(string='Reason') - send_async_response = fields.Text(string='Response') diff --git a/l10n_co_account_e_invoicing/models/account_move_line.py b/l10n_co_account_e_invoicing/models/account_move_line.py deleted file mode 100644 index 8949b28..0000000 --- a/l10n_co_account_e_invoicing/models/account_move_line.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import models, fields - - -class AccountMoveLine(models.Model): - _inherit = "account.move.line" - - cost_price = fields.Float( - string='Cost Price', - digits='Product Price') - reference_price = fields.Float( - string='Reference Price', - digits='Product Price') - - def _get_invoice_lines_taxes(self, tax, tax_amount, invoice_line_taxes_total): - tax_code = tax.tax_group_id.tax_group_type_id.code - tax_name = tax.tax_group_id.tax_group_type_id.name - tax_percent = '{:.2f}'.format(tax_amount) - - if tax_code not in invoice_line_taxes_total: - invoice_line_taxes_total[tax_code] = {} - invoice_line_taxes_total[tax_code]['total'] = 0 - invoice_line_taxes_total[tax_code]['name'] = tax_name - invoice_line_taxes_total[tax_code]['taxes'] = {} - - if tax_percent not in invoice_line_taxes_total[tax_code]['taxes']: - invoice_line_taxes_total[tax_code]['taxes'][tax_percent] = {} - invoice_line_taxes_total[tax_code]['taxes'][tax_percent]['base'] = 0 - invoice_line_taxes_total[tax_code]['taxes'][tax_percent]['amount'] = 0 - - invoice_line_taxes_total[tax_code]['total'] += ( - self.price_subtotal * tax_amount / 100) - invoice_line_taxes_total[tax_code]['taxes'][tax_percent]['base'] += ( - self.price_subtotal) - invoice_line_taxes_total[tax_code]['taxes'][tax_percent]['amount'] += ( - self.price_subtotal * tax_amount / 100) - - return invoice_line_taxes_total - - def _get_information_content_provider_party_values(self): - return {'IDschemeID': False, 'IDschemeName': False, 'ID': False} diff --git a/l10n_co_account_e_invoicing/models/account_move_line_summary.py b/l10n_co_account_e_invoicing/models/account_move_line_summary.py deleted file mode 100644 index 1bfbad8..0000000 --- a/l10n_co_account_e_invoicing/models/account_move_line_summary.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import models, fields, api - - -class AccountMoveLineSummary(models.Model): - _name = "account.move.line.summary" - _description = "Journal Item Summary" - - move_id = fields.Many2one( - 'account.move', - string='Journal Entry', - index=True, - required=True, - readonly=True, - auto_join=True, - ondelete="cascade", - check_company=True, - help="The move of this entry line.") - company_id = fields.Many2one( - related='move_id.company_id', - store=True, - readonly=True, - default=lambda self: self.env.company) - product_id = fields.Many2one( - 'product.product', - string='Product', - ondelete='restrict') - product_uom_category_id = fields.Many2one( - 'uom.category', - related='product_id.uom_id.category_id') - name = fields.Char(string='Label', tracking=True) - quantity = fields.Float( - string='Quantity', - default=1.0, - digits='Product Unit of Measure') - product_uom_id = fields.Many2one( - 'uom.uom', - string='Unit of Measure', - domain="[('category_id', '=', product_uom_category_id)]") - price_unit = fields.Float( - string='Unit Price', - digits='Product Price') - discount = fields.Float( - string='Discount (%)', - digits='Discount', - default=0.0) - cost_price = fields.Float( - string='Cost Price', - digits='Product Price') - reference_price = fields.Float( - string='Reference Price', - digits='Product Price') diff --git a/l10n_co_account_e_invoicing/models/account_move_summary_line.py b/l10n_co_account_e_invoicing/models/account_move_summary_line.py deleted file mode 100644 index 37a7971..0000000 --- a/l10n_co_account_e_invoicing/models/account_move_summary_line.py +++ /dev/null @@ -1,71 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import models, fields, api - - -class AccountMoveSummaryLine(models.Model): - _name = "account.move.summary.line" - _description = "Summary of Invoice Lines" - - move_id = fields.Many2one( - comodel_name='account.move', - string='Journal Entry', - index=True, - required=True, - readonly=True, - auto_join=True, - ondelete="cascade", - check_company=True, - help="The move of this entry line.") - currency_id = fields.Many2one( - comodel_name='res.currency', - string='Currency', - required=True) - company_id = fields.Many2one( - related='move_id.company_id', - store=True, - readonly=True, - default=lambda self: self.env.company) - product_id = fields.Many2one( - comodel_name='product.product', - string='Product', - ondelete='restrict') - name = fields.Char(string='Label', tracking=True) - quantity = fields.Float( - string='Quantity', - default=1.0, - digits='Product Unit of Measure') - product_uom_category_id = fields.Many2one( - comodel_name='uom.category', - related='product_id.uom_id.category_id') - product_uom_id = fields.Many2one( - comodel_name='uom.uom', - string='Unit of Measure', - domain="[('category_id', '=', product_uom_category_id)]") - price_unit = fields.Float( - string='Unit Price', - digits='Product Price') - discount = fields.Float( - string='Discount (%)', - digits='Discount', - default=0.0) - tax_ids = fields.Many2many( - comodel_name='account.tax', - string="Taxes", - context={'active_test': False}, - check_company=True, - help="Taxes that apply on the base amount") - price_subtotal = fields.Monetary( - string='Subtotal', - store=True, - readonly=True, - currency_field='currency_id') - price_total = fields.Monetary( - string='Total', - store=True, - readonly=True, - currency_field='currency_id') - cost_price = fields.Float(string='Cost Price', digits='Product Price') - reference_price = fields.Float(string='Reference Price', digits='Product Price') diff --git a/l10n_co_account_e_invoicing/models/account_tax_group.py b/l10n_co_account_e_invoicing/models/account_tax_group.py deleted file mode 100644 index c3f3abb..0000000 --- a/l10n_co_account_e_invoicing/models/account_tax_group.py +++ /dev/null @@ -1,13 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import fields, models - - -class AccountTaxGroup(models.Model): - _inherit = "account.tax.group" - - is_einvoicing = fields.Boolean( - string="Does it Apply for E-Invoicing?", - default=True) diff --git a/l10n_co_account_e_invoicing/models/einvoice_notification_group.py b/l10n_co_account_e_invoicing/models/einvoice_notification_group.py deleted file mode 100644 index 80a14f3..0000000 --- a/l10n_co_account_e_invoicing/models/einvoice_notification_group.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -import re -from odoo import api, fields, models -from odoo.exceptions import ValidationError - - -class EInvoiceNotificationGroup(models.Model): - _name = 'einvoice.notification.group' - _description = 'Notification Groups' - - name = fields.Char(string='Name') - email = fields.Char(string='Email') - company_id = fields.Many2one(comodel_name='res.company', string='Company') - - @api.model - def create(self, vals): - rec = super(EInvoiceNotificationGroup, self).create(vals) - # Check email address is valid or not - if rec.email: - if re.match( - "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$", - rec.email) is None: - raise ValidationError("Please enter a valid email address") - - return rec - - def write(self, values): - result = super(EInvoiceNotificationGroup, self).write(values) - # Check email address is valid or not - if values.get('email'): - if re.match( - "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$", - values.get('email')) is None: - raise ValidationError("Please enter a valid email address") - - return result diff --git a/l10n_co_account_e_invoicing/models/global_functions.py b/l10n_co_account_e_invoicing/models/global_functions.py deleted file mode 100644 index 2cc81e0..0000000 --- a/l10n_co_account_e_invoicing/models/global_functions.py +++ /dev/null @@ -1,244 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -import hashlib -from os import path -from uuid import uuid4 -from base64 import b64encode, b64decode -from io import BytesIO -from datetime import datetime, timedelta -import OpenSSL.crypto as crypto -from lxml import etree -from jinja2 import Environment, FileSystemLoader -from pgxades import XAdESContext, PolicyId, template -import xmlsig -from qrcode import QRCode, constants -from odoo import _ -from odoo.exceptions import ValidationError - - -def get_software_security_code(IdSoftware, Pin, NroDocumentos): - uncoded_value = (IdSoftware + ' + ' + Pin + ' + ' + NroDocumentos) - software_security_code = IdSoftware + Pin + NroDocumentos - software_security_code = hashlib.sha384(software_security_code.encode('utf-8')) - - return { - 'SoftwareSecurityCodeUncoded': uncoded_value, - 'SoftwareSecurityCode': software_security_code.hexdigest()} - - -def get_cufe_cude( - NumFac, - FecFac, - HorFac, - ValFac, - CodImp1, - ValImp1, - CodImp2, - ValImp2, - CodImp3, - ValImp3, - ValTot, - NitOFE, - DocAdq, - ClTec, - SoftwarePIN, - TipoAmbie): - # CUFE = SHA-384(NumFac + FecFac + HorFac + ValFac + CodImp1 + ValImp1 + - # CodImp2 + ValImp2 + CodImp3 + ValImp3 + ValTot + NitOFE + DocAdq + - # ClTec + TipoAmbie) - # CUDE = SHA-384(NumFac + FecFac + HorFac + ValFac + CodImp1 + ValImp1 + - # CodImp2 + ValImp2 + CodImp3 + ValImp3 + ValTot + NitOFE + DocAdq + - # Software-PIN + TipoAmbie) - uncoded_value = (NumFac + ' + ' + FecFac + ' + ' + HorFac + ' + ' + - ValFac + ' + ' + CodImp1 + ' + ' + ValImp1 + ' + ' + - CodImp2 + ' + ' + ValImp2 + ' + ' + CodImp3 + ' + ' + - ValImp3 + ' + ' + ValTot + ' + ' + NitOFE + ' + ' + - DocAdq + ' + ' + (ClTec if ClTec else SoftwarePIN) + - ' + ' + TipoAmbie) - CUFE_CUDE = ( - NumFac + FecFac + HorFac + ValFac + CodImp1 + ValImp1 + CodImp2 + - ValImp2 + CodImp3 + ValImp3 + ValTot + NitOFE + DocAdq + - (ClTec if ClTec else SoftwarePIN) + TipoAmbie) - CUFE_CUDE = hashlib.sha384(CUFE_CUDE.encode('utf-8')) - - return { - 'CUFE/CUDEUncoded': uncoded_value, - 'CUFE/CUDE': CUFE_CUDE.hexdigest()} - - -# https://stackoverflow.com/questions/38432809/dynamic-xml-template-generation-using-get-template-jinja2 -def get_template_xml(values, template_name): - base_path = path.dirname(path.dirname(__file__)) - env = Environment(loader=FileSystemLoader(path.join(base_path, 'templates'))) - template_xml = env.get_template('{}.xml'.format(template_name)) - xml = template_xml.render(values) - - return xml.replace('&', '&').encode('utf-8') - - -def get_pkcs12(certificate_file, certificate_password): - msg = _("The certificate password or certificate file is not valid.\n\n" - "Exception: %s") - - try: - return crypto.load_pkcs12(b64decode(certificate_file), certificate_password) - except Exception as e: - raise ValidationError(msg % e) - - -# https://www.decalage.info/en/python/lxml-c14n -def get_xml_with_c14n(xml): - if not isinstance(xml, etree._Element): - xml = etree.fromstring(xml.encode('utf-8')) - - out = BytesIO() - xml.getroottree().write_c14n(out) - value = b64encode(out.getvalue()).decode("utf-8") - out.close() - - return value - - -# https://github.com/etobella/python-xades -def get_xml_with_signature( - xml_without_signature, - signature_policy_url, - signature_policy_file, - signature_policy_description, - certificate_file, - certificate_password): - # https://lxml.de/tutorial.html - # root = etree.fromstring(response.content) - # root = etree.tostring(root, encoding='utf-8') - # parser = etree.XMLParser(encoding='utf-8', remove_blank_text=True) - ds = "http://www.w3.org/2000/09/xmldsig#" - ext = "urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" - parser = etree.XMLParser(remove_comments=True, remove_blank_text=True) - root = etree.fromstring(xml_without_signature, parser=parser) - signature_id = "xmldsig-{}".format(uuid4()) - signature = xmlsig.template.create( - xmlsig.constants.TransformInclC14N, - xmlsig.constants.TransformRsaSha512, - signature_id) - - # Complememto para añadir atributo faltante - for element in root.iter("{%s}SignatureValue" % ds): - element.attrib['Id'] = signature_id + "-sigvalue" - - ref = xmlsig.template.add_reference( - signature, - xmlsig.constants.TransformSha512, - uri="", - name=signature_id + "-ref0") - xmlsig.template.add_transform(ref, xmlsig.constants.TransformEnveloped) - sp = xmlsig.template.add_reference( - signature, - xmlsig.constants.TransformSha512, - uri="#" + signature_id + "-signedprops", - uri_type="http://uri.etsi.org/01903#SignedProperties") - xmlsig.template.add_transform(sp, xmlsig.constants.TransformInclC14N) - xmlsig.template.add_reference( - signature, - xmlsig.constants.TransformSha512, - uri="#" + signature_id + "-keyinfo") - ki = xmlsig.template.ensure_key_info(signature, name=signature_id + "-keyinfo") - data = xmlsig.template.add_x509_data(ki) - xmlsig.template.x509_data_add_certificate(data) - xmlsig.template.x509_data_add_subject_name(data) - serial = xmlsig.template.x509_data_add_issuer_serial(data) - xmlsig.template.x509_issuer_serial_add_issuer_name(serial) - xmlsig.template.x509_issuer_serial_add_serial_number(serial) - xmlsig.template.add_key_value(ki) - qualifying = template.create_qualifying_properties(signature) - props = template.create_signed_properties( - qualifying, name=signature_id + "-signedprops") - template.add_claimed_role(props, "supplier") - policy = PolicyId() - policy.id = signature_policy_url - policy.name = signature_policy_description - policy.remote = b64decode(signature_policy_file) - policy.hash_method = xmlsig.constants.TransformSha512 - ctx = XAdESContext(policy) - ctx.load_pkcs12(get_pkcs12(certificate_file, certificate_password)) - root.append(signature) - ctx.sign(signature) - ctx.verify(signature) - root.remove(signature) - position = 0 - - for element in root.iter("{%s}ExtensionContent" % ext): - if position == 1: - element.append(signature) - - position += 1 - - return get_xml_with_c14n(root) - - -def get_xml_soap_values(certificate_file, certificate_password): - Created = datetime.utcnow() - Expires = Created + timedelta(seconds=60000) - Created = Created.strftime("%Y-%m-%dT%H:%M:%S.001Z") - Expires = Expires.strftime("%Y-%m-%dT%H:%M:%S.001Z") - # https://github.com/mit-dig/idm/blob/master/idm_query_functions.py#L151 - pkcs12 = get_pkcs12(certificate_file, certificate_password) - cert = pkcs12.get_certificate() - der = b64encode(crypto.dump_certificate(crypto.FILETYPE_ASN1, cert)).decode('utf-8') - - return { - 'Created': Created, - 'Expires': Expires, - 'Id': uuid4(), - 'BinarySecurityToken': der} - - -def get_xml_soap_with_signature( - xml_soap_without_signature, Id, certificate_file, certificate_password): - wsse = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" - wsu = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" - X509v3 = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" - parser = etree.XMLParser(remove_comments=True, remove_blank_text=True) - root = etree.fromstring(xml_soap_without_signature, parser=parser) - signature_id = "{}".format(Id) - signature = xmlsig.template.create( - xmlsig.constants.TransformExclC14N, - xmlsig.constants.TransformRsaSha256, # solo me ha funcionado con esta - "SIG-" + signature_id) - ref = xmlsig.template.add_reference( - signature, xmlsig.constants.TransformSha256, uri="#id-" + signature_id) - xmlsig.template.add_transform(ref, xmlsig.constants.TransformExclC14N) - ki = xmlsig.template.ensure_key_info(signature, name="KI-" + signature_id) - ctx = xmlsig.SignatureContext() - ctx.load_pkcs12(get_pkcs12(certificate_file, certificate_password)) - - for element in root.iter("{%s}Security" % wsse): - element.append(signature) - - ki_str = etree.SubElement(ki, "{%s}SecurityTokenReference" % wsse) - ki_str.attrib["{%s}Id" % wsu] = "STR-" + signature_id - ki_str_reference = etree.SubElement(ki_str, "{%s}Reference" % wsse) - ki_str_reference.attrib['URI'] = "#X509-" + signature_id - ki_str_reference.attrib['ValueType'] = X509v3 - ctx.sign(signature) - ctx.verify(signature) - - return root - - -def get_qr_image(data): - qr_code = QRCode( - version=1, - error_correction=constants.ERROR_CORRECT_L, - box_size=20, - border=4) - qr_code.add_data(data) - qr_code.make(fit=True) - image = qr_code.make_image() - temp = BytesIO() - image.save(temp, format="PNG") - qr_image = b64encode(temp.getvalue()).decode('utf-8') - temp.close() - - return qr_image diff --git a/l10n_co_account_e_invoicing/models/ir_sequence.py b/l10n_co_account_e_invoicing/models/ir_sequence.py deleted file mode 100644 index e8aae1b..0000000 --- a/l10n_co_account_e_invoicing/models/ir_sequence.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import fields, models, _ - - -class IrSequence(models.Model): - _inherit = 'ir.sequence' - - dian_type = fields.Selection( - selection_add=[ - ('e-invoicing', _('E-Invoicing')), - ('e-credit_note', _('E-Credit Note')), - ('e-debit_note', _('E-Debit Note')), - ('e-support_document', _('E-Support Document')), - ('contingency_checkbook_e-invoicing', _('Contingency Checkbook E-Invoicing'))]) diff --git a/l10n_co_account_e_invoicing/models/ir_sequence_date_range.py b/l10n_co_account_e_invoicing/models/ir_sequence_date_range.py deleted file mode 100644 index ad4b32f..0000000 --- a/l10n_co_account_e_invoicing/models/ir_sequence_date_range.py +++ /dev/null @@ -1,15 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import fields, models - - -class IrSequenceDateRange(models.Model): - _inherit = 'ir.sequence.date_range' - - dian_type = fields.Selection( - string='DIAN Type', - related='sequence_id.dian_type', - store=False) - technical_key = fields.Char(string="Technical Key") diff --git a/l10n_co_account_e_invoicing/models/product_scheme.py b/l10n_co_account_e_invoicing/models/product_scheme.py deleted file mode 100644 index b8cefb7..0000000 --- a/l10n_co_account_e_invoicing/models/product_scheme.py +++ /dev/null @@ -1,14 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import models, fields - - -class ProductScheme(models.Model): - _name = 'product.scheme' - _description = 'Product Schemes' - - code = fields.Char(string='schemeID') - name = fields.Char(string='schemeName') - scheme_agency_id = fields.Char(string='schemeAgencyID') diff --git a/l10n_co_account_e_invoicing/models/product_template.py b/l10n_co_account_e_invoicing/models/product_template.py deleted file mode 100644 index 7821d08..0000000 --- a/l10n_co_account_e_invoicing/models/product_template.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import models, fields, api - - -class ProductTemplate(models.Model): - _inherit = 'product.template' - - @api.model - def _default_product_scheme(self): - return self.env['product.scheme'].search([('code', '=', '999')]).id - - margin_percentage = fields.Float( - string='Margin Percentage', - help='The cost price + this percentage will be the reference price', - digits='Discount', - default=10) - reference_price = fields.Float( - string='Reference Price', - help='Use this field if the reference price does not depend on the cost price', - digits='Product Price') - product_scheme_id = fields.Many2one( - comodel_name='product.scheme', - string='Product Scheme', - default=_default_product_scheme) diff --git a/l10n_co_account_e_invoicing/models/res_company.py b/l10n_co_account_e_invoicing/models/res_company.py deleted file mode 100644 index fd1940a..0000000 --- a/l10n_co_account_e_invoicing/models/res_company.py +++ /dev/null @@ -1,208 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from datetime import datetime -from urllib import request -from requests import post, exceptions -from lxml import etree -import ssl -from . import global_functions -from odoo import api, models, fields, _ -from odoo.exceptions import ValidationError - -ssl._create_default_https_context = ssl._create_unverified_context - - -class ResCompany(models.Model): - _inherit = "res.company" - - einvoicing_enabled = fields.Boolean(string='E-Invoicing Enabled') - automatic_delivery_datetime = fields.Boolean( - string='Automatic Delivery Datetime?') - additional_hours_delivery_datetime = fields.Float( - string='Additional Hours', - help='Additional hours to invoice date for delivery date', - digits=(12, 4), - default=False) - send_invoice_to_dian = fields.Selection( - selection=[ - ('0', 'Immediately'), - ('1', 'After 1 Day'), - ('2', 'After 2 Days')], - string='Send Invoice to DIAN?', - default='0') - operation_type = fields.Selection( - selection=[('09', 'AIU'), ('10', 'Standard')], - string='Operation Type', - default=False, - copy=False) - invoice_type_code = fields.Selection( - selection=[('01', 'E-invoice of sale')], - string='Invoice Type', - default=False, - copy=False) - force_send_mail = fields.Boolean(string='Force Send Mail?') - #send_pdf_of_invoice = fields.Boolean(string='Send PDF of the Invoice?') - #send_attachments_of_invoice = fields.Boolean(string='Send Attachments of the Invoice?') - profile_execution_id = fields.Selection( - selection=[('1', 'Production'), ('2', 'Test')], - string='Destination Environment of Document', - default='2', - required=True) - have_technological_provider = fields.Boolean( - string='Do you have a technological provider?') - technological_provider_id = fields.Many2one( - string='Technological Provider', - comodel_name='res.partner') - assignment_code = fields.Char(string='Assignment Code', size=3) - test_set_id = fields.Char(string='Test Set ID') - software_id = fields.Char(string='Software ID') - software_pin = fields.Char(string='Software PIN') - certificate_filename = fields.Char(string='Certificate Filename') - certificate_file = fields.Binary(string='Certificate File') - certificate_password = fields.Char(string='Certificate Password') - certificate_date = fields.Date(string='Certificate Date Validity') - certificate_remaining_days = fields.Integer( - string='Certificate Remaining Days', - default=False) - signature_policy_url = fields.Char( - string='Signature Policy URL', - default='https://facturaelectronica.dian.gov.co/politicadefirma/v2/politicadefirmav2.pdf') - signature_policy_filename = fields.Char(string='Signature Policy Filename') - signature_policy_file = fields.Binary(string='Signature Policy File') - signature_policy_description = fields.Char( - string='Signature Policy Description', - default='Política de firma para facturas electrónicas de la República de Colombia.') - einvoicing_email = fields.Char( - string='E-Invoice Email, From:', - help="Enter the e-invoice sender's email.") - validate_einvoicing_email = fields.Boolean( - string='Validate E-Invoicing Email?', - default=True) - einvoicing_partner_no_email = fields.Char( - string='Failed Emails, To:', - help='Enter the email where the invoice will be sent when the customer does not have an email.') - einvoicing_receives_all_emails = fields.Char( - string='Email that receives all emails') - report_template_id = fields.Many2one( - string='Report Template', - comodel_name='ir.actions.report') - send_failure_mail = fields.Boolean( - string='Send Failure Mail?', - default=False) - notification_group_ids = fields.One2many( - comodel_name='einvoice.notification.group', - inverse_name='company_id', - string='Notification Group') - get_numbering_range_response = fields.Text(string='GetNumberingRange Response') - - def write(self, vals): - msg = _('Invalid URL.') - - if vals.get('signature_policy_url'): - try: - for company in self: - response = request.urlopen( - vals.get('signature_policy_url'), timeout=2) - - if response.getcode() != 200: - raise ValidationError(msg) - except Exception as e: - raise ValidationError(msg % e) - - rec = super(ResCompany, self).write(vals) - - if vals.get('certificate_file') or vals.get('certificate_password'): - for company in self: - pkcs12 = global_functions.get_pkcs12( - company.certificate_file, company.certificate_password) - x509 = pkcs12.get_certificate() - date = x509.get_notAfter() - company.certificate_date = datetime.strptime( - date.decode("utf-8"), '%Y%m%d%H%M%SZ').date() - - return rec - - def _get_GetNumberingRange_values(self): - xml_soap_values = global_functions.get_xml_soap_values( - self.certificate_file, self.certificate_password) - xml_soap_values['accountCode'] = self.partner_id.ref_num - xml_soap_values['accountCodeT'] = self.partner_id.ref_num - xml_soap_values['softwareCode'] = self.software_id - - if self.have_technological_provider: - xml_soap_values['accountCodeT'] = self.technological_provider_id.ref_num - - return xml_soap_values - - def action_GetNumberingRange(self): - msg1 = _("Unknown Error,\nStatus Code: %s,\nReason: %s.") - msg2 = _("Unknown Error: %s\n.") - wsdl = 'https://vpfe.dian.gov.co/WcfDianCustomerServices.svc?wsdl' - s = "http://www.w3.org/2003/05/soap-envelope" - GetNumberingRange_values = self._get_GetNumberingRange_values() - GetNumberingRange_values['To'] = wsdl.replace('?wsdl', '') - xml_soap_with_signature = global_functions.get_xml_soap_with_signature( - global_functions.get_template_xml( - GetNumberingRange_values, 'GetNumberingRange'), - GetNumberingRange_values['Id'], - self.certificate_file, - self.certificate_password) - - try: - response = post( - wsdl, - headers={'content-type': 'application/soap+xml;charset=utf-8'}, - data=etree.tostring(xml_soap_with_signature)) - - if response.status_code == 200: - root = etree.fromstring(response.text) - response = '' - - for element in root.iter("{%s}Body" % s): - response = etree.tostring(element, pretty_print=True) - - if response == '': - response = etree.tostring(root, pretty_print=True) - - self.write({'get_numbering_range_response': response}) - else: - raise ValidationError(msg1 % (response.status_code, response.reason)) - - except exceptions.RequestException as e: - raise ValidationError(msg2 % (e)) - - return True - - def action_process_dian_documents(self): - for company in self: - count = 0 - dian_documents = self.env['account.move.dian.document'].search( - [('state', 'in', ('draft', 'sent')), ('company_id', '=', company.id)], - order='zipped_filename asc') - - for dian_document in dian_documents: - today = fields.Date.context_today(self) - date_from = dian_document.invoice_id.invoice_date - days = (today - date_from).days - - if int(dian_document.invoice_id.send_invoice_to_dian) - 1 <= days: - try: - dian_document.action_process() - except: - count -= 1 - - if dian_document.state == 'done': - count += 1 - - # 10 -> 50 -JEG - if count == 50: - return True - - return True - - @api.model - def cron_process_dian_documents(self): - for company_id in self.search([]): - company_id.action_process_dian_documents() diff --git a/l10n_co_account_e_invoicing/models/res_partner.py b/l10n_co_account_e_invoicing/models/res_partner.py deleted file mode 100644 index 171d932..0000000 --- a/l10n_co_account_e_invoicing/models/res_partner.py +++ /dev/null @@ -1,248 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -import re -from odoo import api, models, fields, _ -from odoo.exceptions import UserError, ValidationError - - -class ResPartner(models.Model): - _inherit = "res.partner" - - is_einvoicing_agent = fields.Selection( - selection=[ - ('yes', 'Yes'), - ('no_but', 'No, but has email'), - ('no', 'No'), - ('unknown', 'Unknown')], - string='Is an E-Invoicing Agent?', - default=False) - einvoicing_email = fields.Char(string='E-Invoicing Email') - validate_einvoicing_email = fields.Boolean( - string='Validate E-Invoicing Email?', - related='company_id.validate_einvoicing_email') - view_einvoicing_email_field = fields.Boolean( - string="View 'E-Invoicing Email' Fields", - compute='_get_view_einvoicing_email_field', - store=False) - edit_is_einvoicing_agent_field = fields.Boolean( - string="Edit 'Is an E-Invoicing Agent?' Field", - compute='_get_edit_is_einvoicing_agent_field', - store=False) - - @api.onchange('person_type') - def onchange_person_type(self): - if self.person_type == '1': - self.is_einvoicing_agent = 'yes' - - self.property_account_position_id = False - - def _get_view_einvoicing_email_field(self): - user = self.env['res.users'].search([('id', '=', self.env.user.id)]) - view_einvoicing_email_field = False - - if user.has_group( - 'l10n_co_account_e_invoicing.group_view_einvoicing_email_fields'): - view_einvoicing_email_field = True - - for partner in self: - partner.view_einvoicing_email_field = view_einvoicing_email_field - - def _get_edit_is_einvoicing_agent_field(self): - user = self.env['res.users'].search([('id', '=', self.env.user.id)]) - edit_is_einvoicing_agent_field = False - - if user.has_group( - 'l10n_co_account_e_invoicing.group_edit_is_einvoicing_agent_field'): - edit_is_einvoicing_agent_field = True - - for partner in self: - partner.edit_is_einvoicing_agent_field = edit_is_einvoicing_agent_field - - @api.constrains('einvoicing_email') - @api.onchange('einvoicing_email') - def validate_mail(self): - if self.einvoicing_email: - for email in self.einvoicing_email.replace(' ', '').split(","): - match = re.match( - r"(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)", email) - - if match is None: - raise ValidationError(_("The field 'E-Invoicing Email' is not " - "correctly filled.\n\n" - "Please add @ and dot (.)")) - - def _get_accounting_partner_party_values(self): - msg1 = _("'%s' does not have a person type established.") - msg2 = _("'%s' does not have a city established.") - msg3 = _("'%s' does not have a state established.") - msg4 = _("'%s' does not have a country established.") - msg5 = _("'%s' does not have a verification digit established.") - msg6 = _("'%s' does not have a DIAN document type established.") - msg7 = _("The document type of '%s' does not seem to correspond with the " - "person type.") - msg8 = _("'%s' does not have a identification document established.") - msg9 = _("'%s' does not have a fiscal position correctly configured.") - msg10 = _("'%s' does not have a fiscal position established.") - msg11 = _("E-Invoicing Agent: '%s' does not have a E-Invoicing Email.") - name = self.name - zip_code = False - identification_document = self.ref_num - telephone = False - - if not self.person_type: - raise UserError(msg1 % self.name) - - if self.country_id: - if self.country_id.code == 'CO': - if not self.city_id: - raise UserError(msg2 % self.name) - elif not self.state_id: - raise UserError(msg3 % self.name) - else: - raise UserError(msg4 % self.name) - - if self.ref_type_id: - document_type_code = self.ref_type_id.code_dian - - if (document_type_code == '31' - and not self.verification_code - and str(self.verification_code) != '0'): - raise UserError(msg5 % self.name) - - # Punto 13.2.1. Documento de identificación (Tipo de Identificador Fiscal): - # cbc:CompanyID.@schemeName; sts:ProviderID.@schemeName - # Factura electrónica del anexo tecnico version 1.8 - if document_type_code not in ( - '11', '12', '13', '21', '22', '31', '41', '42', '47', '50', '91'): - if self.person_type == '1': - raise UserError(msg6 % self.name) - else: - name = 'consumidor final' - document_type_code = '13' - identification_document = '222222222222' - else: - raise UserError(msg6 % self.name) - - if self.person_type == '1' and document_type_code not in ('31', '50'): - raise UserError(msg7 % self.name) - - if not identification_document: - raise UserError(msg8 % self.name) - - if self.property_account_position_id: - if (not self.property_account_position_id.tax_level_code_ids - or not self.property_account_position_id.party_tax_scheme_id - or not self.property_account_position_id.listname): - raise UserError(msg9 % self.name) - - tax_level_codes = '' - tax_scheme_code = self.property_account_position_id.party_tax_scheme_id.code - tax_scheme_name = self.property_account_position_id.party_tax_scheme_id.name - else: - raise UserError(msg10 % self.name) - - if (self.validate_einvoicing_email - and (not self.is_einvoicing_agent - or self.is_einvoicing_agent in ('yes', 'not_but')) - and not self.einvoicing_email): - raise UserError(msg11 % self.name) - - if self.zip_id: - zip_code = self.zip_id.name - - for tax_level_code_id in self.property_account_position_id.tax_level_code_ids: - if tax_level_codes == '': - tax_level_codes = tax_level_code_id.code - else: - tax_level_codes += ';' + tax_level_code_id.code - - if self.phone and self.mobile: - telephone = self.phone + " / " + self.mobile - elif self.phone: - telephone = self.phone - elif self.mobile: - telephone = self.mobile - - if identification_document == '222222222222': - tax_level_codes = 'R-99-PN' - tax_scheme_code = 'ZZ' - tax_scheme_name = 'No causa' - - if self.property_account_position_id.listname != '49': - raise UserError(msg8 % self.name) - - return { - 'AdditionalAccountID': self.person_type, - 'PartyName': self.commercial_name, - 'Name': name, - 'AddressID': (self.state_id.numeric_code or '') + (self.city_id.code or ''), - 'AddressCityName': self.city_id.name or '', - 'AddressPostalZone': zip_code, - 'AddressCountrySubentity': self.state_id.name or '', - 'AddressCountrySubentityCode': self.state_id.numeric_code or '', - 'AddressLine': self.street or '', - 'CompanyIDschemeID': self.verification_code, - 'CompanyIDschemeName': document_type_code, - 'CompanyID': identification_document, - 'listName': self.property_account_position_id.listname, - 'TaxLevelCode': tax_level_codes, - 'TaxSchemeID': tax_scheme_code, - 'TaxSchemeName': tax_scheme_name, - 'CorporateRegistrationSchemeName': self.coc_registration_number, - 'CountryIdentificationCode': self.country_id.code, - 'CountryName': self.country_id.name, - 'Telephone': telephone, - 'Telefax': self.fax, - 'ElectronicMail': self.einvoicing_email or self.email - } - - def _get_delivery_values(self): - msg1 = _("'%s' does not have a city established.") - msg2 = _("'%s' does not have a state established.") - msg3 = _("'%s' does not have a country established.") - zip_code = False - - if self.country_id: - if self.country_id.code == 'CO': - if not self.city_id: - raise UserError(msg1 % self.name) - elif not self.state_id: - raise UserError(msg2 % self.name) - else: - raise UserError(msg3 % self.name) - - if self.zip_id: - zip_code = self.zip_id.name - - return { - 'AddressID': (self.state_id.numeric_code or '') + (self.city_id.code or ''), - 'AddressCityName': self.city_id.name or '', - 'AddressPostalZone': zip_code, - 'AddressCountrySubentity': self.state_id.name or '', - 'AddressCountrySubentityCode': self.state_id.numeric_code or '', - 'AddressLine': self.street or '', - 'CountryIdentificationCode': self.country_id.code, - 'CountryName': self.country_id.name - } - - def _get_tax_representative_party_values(self): - msg1 = _("'%s' does not have a verification digit established.") - msg2 = _("'%s' does not have a document type established.") - msg3 = _("'%s' does not have a identification document established.") - - if self.ref_type_id: - if self.ref_type_id.code_dian == '31' and not self.verification_code: - raise UserError(msg1 % self.name) - else: - raise UserError(msg2 % self.name) - - if not self.ref_num: - raise UserError(msg3 % self.name) - - return { - 'IDschemeID': self.verification_code, - 'IDschemeName': self.ref_type_id.code_dian, - 'ID': self.ref_num - } diff --git a/l10n_co_account_e_invoicing/report/report.xml b/l10n_co_account_e_invoicing/report/report.xml deleted file mode 100644 index 7b95064..0000000 --- a/l10n_co_account_e_invoicing/report/report.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/l10n_co_account_e_invoicing/report/template_report.xml b/l10n_co_account_e_invoicing/report/template_report.xml deleted file mode 100644 index 6c41699..0000000 --- a/l10n_co_account_e_invoicing/report/template_report.xml +++ /dev/null @@ -1,459 +0,0 @@ - - - - - - - - - - diff --git a/l10n_co_account_e_invoicing/security/ir.model.access.csv b/l10n_co_account_e_invoicing/security/ir.model.access.csv deleted file mode 100644 index 91e49ec..0000000 --- a/l10n_co_account_e_invoicing/security/ir.model.access.csv +++ /dev/null @@ -1,10 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_account_fiscal_position_party_tax_scheme_manager,account_fiscal_position_party_tax_scheme_manager,model_account_fiscal_position_party_tax_scheme,account.group_account_manager,1,1,1,1 -access_account_fiscal_position_party_tax_scheme_users,account_fiscal_position_party_tax_scheme_users,model_account_fiscal_position_party_tax_scheme,,1,0,0,0 -access_account_fiscal_position_tax_level_code_manager,account_fiscal_position_tax_level_code_manager,model_account_fiscal_position_tax_level_code,account.group_account_manager,1,1,1,1 -access_account_fiscal_position_tax_level_code_users,account_fiscal_position_tax_level_code_users,model_account_fiscal_position_tax_level_code,,1,0,0,0 -access_account_move_dian_document_line_user,account_move_dian_document_line_user,model_account_move_dian_document_line,,1,1,1,0 -access_account_move_dian_document_user,account_move_dian_document_user,model_account_move_dian_document,,1,1,1,0 -access_account_move_summary_line_user,account_move_summary_line_user,model_account_move_summary_line,,1,1,1,0 -access_einvoice_notification_group_user,einvoice_notification_group_user,model_einvoice_notification_group,,1,1,1,1 -access_product_scheme_user,product_scheme_user,model_product_scheme,,1,0,0,0 diff --git a/l10n_co_account_e_invoicing/static/description/icon.png b/l10n_co_account_e_invoicing/static/description/icon.png deleted file mode 100644 index 622927838651dc92e35b74bbd4f8013aa17b9fed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 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ðzdf&AIA9+E3)Z@`+ExB% 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 diff --git a/l10n_co_account_e_invoicing/static/images/ir_sequence.png b/l10n_co_account_e_invoicing/static/images/ir_sequence.png deleted file mode 100644 index 485c8ca55f6bff2f3405dc72e5a4f3fb189706d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54473 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 diff --git a/l10n_co_account_e_invoicing/templates/AttachedDocument.xml b/l10n_co_account_e_invoicing/templates/AttachedDocument.xml deleted file mode 100644 index b1a9330..0000000 --- a/l10n_co_account_e_invoicing/templates/AttachedDocument.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - UBL 2.1 - Documentos adjuntos - DIAN 2.1 - {{ProfileExecutionID}} - {{ID}} - {{IssueDate}} - {{IssueTime}} - Contenedor de Factura Electrónica - {{ParentDocumentID}} - - - {{SenderParty.Name}} - {{SenderParty.CompanyID}} - {{SenderParty.TaxLevelCode}} - - {{SenderParty.TaxSchemeID}} - {{SenderParty.TaxSchemeName}} - - - - - - {{ReceiverParty.Name}} - {{ReceiverParty.CompanyID}} - {{ReceiverParty.TaxLevelCode}} - - {{ReceiverParty.TaxSchemeID}} - {{ReceiverParty.TaxSchemeName}} - - - - - - text/xml - UTF-8 - - - - - 1 - - {{ParentDocumentID}} - {{UUID}} - {{ValidationDate}} - ApplicationResponse - - - text/xml - UTF-8 - - - - - Unidad Especial Dirección de Impuestos y Aduanas Nacionales - 02 - {{ValidationDate}} - {{ValidationTime}} - - - - \ No newline at end of file diff --git a/l10n_co_account_e_invoicing/templates/CreditNote.xml b/l10n_co_account_e_invoicing/templates/CreditNote.xml deleted file mode 100644 index 661c0ff..0000000 --- a/l10n_co_account_e_invoicing/templates/CreditNote.xml +++ /dev/null @@ -1,636 +0,0 @@ - - - - - - - - CO - - - {{ProviderID}} - {{SoftwareID}} - - {{SoftwareSecurityCode}} - - 800197268 - - NumFac: {{ID}} - FecFac: {{IssueDate}} - HorFac: {{IssueTime}} - NitFac: {{NitFac}} - DocAdq: {{DocAdq}} - ValFac: {{LineExtensionAmount}} - ValIva: {{ValIva}} - ValOtroIm: {{ValOtroIm}} - ValTolFac: {{PayableAmount}} - CUDE: {{UUID}} - {{QRCodeURL}} - - - - - - - - UBL 2.1 - {{CustomizationID}} - DIAN 2.1: Nota Crédito de Factura Electrónica de Venta - {{ProfileExecutionID}} - {{ID}} - {{UUID}} - {{IssueDate}} - {{IssueTime}} - {{CreditNoteTypeCode}} - - {{Note}} - {{DocumentCurrencyCode}} - {{LineCountNumeric}} - - - {{DiscrepancyReferenceID}} - {{DiscrepancyResponseCode}} - {{DiscrepancyDescription}} - - - - {% if BillingReference.ID %} - - - {{BillingReference.ID}} - {{BillingReference.UUID}} - {{BillingReference.IssueDate}} - - - {% endif %} - - - - - - {{AccountingSupplierParty.AdditionalAccountID}} - - {% if IndustryClassificationCode %} - {{IndustryClassificationCode}} - {% endif %} - {% if AccountingSupplierParty.PartyName %} - - {{AccountingSupplierParty.PartyName}} - - {% endif %} - - - {{AccountingSupplierParty.AddressID}} - {{AccountingSupplierParty.AddressCityName}} - {% if AccountingSupplierParty.AddressPostalZone %} - {{AccountingSupplierParty.AddressPostalZone}} - {% endif %} - {{AccountingSupplierParty.AddressCountrySubentity}} - {{AccountingSupplierParty.AddressCountrySubentityCode}} - - {{AccountingSupplierParty.AddressLine}} - - - {{AccountingSupplierParty.CountryIdentificationCode}} - - {{AccountingSupplierParty.CountryName}} - - - - - {{AccountingSupplierParty.Name}} - {{AccountingSupplierParty.CompanyID}} - - {{AccountingSupplierParty.TaxLevelCode}} - - {{AccountingSupplierParty.AddressID}} - {{AccountingSupplierParty.AddressCityName}} - {% if AccountingSupplierParty.AddressPostalZone %} - {{AccountingSupplierParty.AddressPostalZone}} - {% endif %} - {{AccountingSupplierParty.AddressCountrySubentity}} - {{AccountingSupplierParty.AddressCountrySubentityCode}} - - {{AccountingSupplierParty.AddressLine}} - - - {{AccountingSupplierParty.CountryIdentificationCode}} - - {{AccountingCustomerParty.CountryName}} - - - - {{AccountingSupplierParty.TaxSchemeID}} - {{AccountingSupplierParty.TaxSchemeName}} - - - - {{AccountingSupplierParty.Name}} - {{AccountingSupplierParty.CompanyID}} - {% if AccountingSupplierParty.CorporateRegistrationSchemeName %} - - {{AccountingSupplierParty.CorporateRegistrationSchemeName}} - - {% endif %} - - - {% if AccountingSupplierParty.Telephone or AccountingSupplierParty.Telefax or AccountingSupplierParty.ElectronicMail %} - - - {% if AccountingSupplierParty.Telephone %} - {{AccountingSupplierParty.Telephone}} - {% endif %} - {% if AccountingSupplierParty.Telefax %} - {{AccountingSupplierParty.Telefax}} - {% endif %} - {% if AccountingSupplierParty.ElectronicMail %} - {{AccountingSupplierParty.ElectronicMail}} - {% endif %} - - - {% endif %} - - - - {{AccountingCustomerParty.AdditionalAccountID}} - - - {{AccountingCustomerParty.CompanyID}} - - {% if AccountingCustomerParty.PartyName %} - - {{AccountingCustomerParty.PartyName}} - - {% endif %} - {% if AccountingCustomerParty.CompanyID != '222222222222' %} - - - {{AccountingCustomerParty.AddressID}} - {{AccountingCustomerParty.AddressCityName}} - {% if AccountingCustomerParty.AddressPostalZone %} - {{AccountingCustomerParty.AddressPostalZone}} - {% endif %} - {{AccountingCustomerParty.AddressCountrySubentity}} - {{AccountingCustomerParty.AddressCountrySubentityCode}} - - {{AccountingCustomerParty.AddressLine}} - - - {{AccountingCustomerParty.CountryIdentificationCode}} - - {{AccountingCustomerParty.CountryName}} - - - - {% endif %} - - {{AccountingCustomerParty.Name}} - {{AccountingCustomerParty.CompanyID}} - - {{AccountingCustomerParty.TaxLevelCode}} - {% if AccountingCustomerParty.CompanyID != '222222222222' %} - - {{AccountingCustomerParty.AddressID}} - {{AccountingCustomerParty.AddressCityName}} - {% if AccountingCustomerParty.AddressPostalZone %} - {{AccountingCustomerParty.AddressPostalZone}} - {% endif %} - {{AccountingCustomerParty.AddressCountrySubentity}} - {{AccountingCustomerParty.AddressCountrySubentityCode}} - - {{AccountingCustomerParty.AddressLine}} - - - {{AccountingCustomerParty.CountryIdentificationCode}} - - {{AccountingCustomerParty.CountryName}} - - - {% endif %} - - {{AccountingCustomerParty.TaxSchemeID}} - {{AccountingCustomerParty.TaxSchemeName}} - - - - {{AccountingCustomerParty.Name}} - {{AccountingCustomerParty.CompanyID}} - {% if AccountingCustomerParty.CorporateRegistrationSchemeName %} - - {{AccountingCustomerParty.CorporateRegistrationSchemeName}} - - {% endif %} - - {% if AccountingCustomerParty.CompanyID != '222222222222' and (AccountingCustomerParty.Telephone or AccountingCustomerParty.Telefax or AccountingCustomerParty.ElectronicMail) %} - - - {% if AccountingCustomerParty.Telephone %} - {{AccountingCustomerParty.Telephone}} - {% endif %} - {% if AccountingCustomerParty.Telefax %} - {{AccountingCustomerParty.Telefax}} - {% endif %} - {% if AccountingCustomerParty.ElectronicMail %} - {{AccountingCustomerParty.ElectronicMail}} - {% endif %} - - - {% endif %} - - - - - - {{ActualDeliveryDate}} - {{ActualDeliveryTime}} - {% if AccountingCustomerParty.CompanyID != '222222222222' %} - - {{Delivery.AddressID}} - {{Delivery.AddressCityName}} - {% if Delivery.AddressPostalZone %} - {{Delivery.AddressPostalZone}} - {% endif %} - {{Delivery.AddressCountrySubentity}} - {{Delivery.AddressCountrySubentityCode}} - - {{Delivery.AddressLine}} - - - {{Delivery.CountryIdentificationCode}} - - {{Delivery.CountryName}} - - - {% endif %} - - - {% if DeliveryTerms.LossRiskResponsibilityCode %} - - 1 - - - {{DeliveryTerms.LossRiskResponsibilityCode}} - {{DeliveryTerms.LossRisk}} - - {% endif %} - - {{PaymentMeansID}} - {{PaymentMeansCode}} - {{PaymentDueDate}} - - - - {% if DocumentCurrencyCode != 'COP' %} - - {{PaymentExchangeRate.SourceCurrencyCode}} - 1.00 - {{PaymentExchangeRate.TargetCurrencyCode}} - 1.00 - {{'{:.2f}'.format(PaymentExchangeRate.CalculationRate)}} - {{PaymentExchangeRate.Date}} - - {% endif %} - - {% for TaxTotalID, TaxTotal in TaxesTotal.items() %} - {% if TaxTotal.total != 0 %} - - {{'{:.2f}'.format(TaxTotal.total)}} - - 0.00 - {% for Percent, TaxSubtotal in TaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - - {{Percent}} - - {{TaxTotalID}} - {{TaxTotal.name}} - - - - {% endfor %} - - {% endif %} - {% endfor %} - {% for WithholdingTaxTotalID, WithholdingTaxTotal in WithholdingTaxesTotal.items() %} - - {{'{:.2f}'.format(WithholdingTaxTotal.total)}} - {% for Percent, TaxSubtotal in WithholdingTaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - {{Percent}} - - {{WithholdingTaxTotalID}} - {{WithholdingTaxTotal.name}} - - - - {% endfor %} - - {% endfor %} - - {{LineExtensionAmount}} - {{TaxExclusiveAmount}} - {{TaxInclusiveAmount}} - - 0.00 - 0.00 - 0.00 - {{PayableAmount}} - - {% for CreditNoteLineID, CreditNoteLine in CreditNoteLines.items() %} - - {{CreditNoteLineID}} - {% if BillingReference.CustomizationID == '09' %} - Contrato de servicios AIU por concepto de: {{CreditNoteLine.ItemDescription}} - {% endif %} - {{CreditNoteLine.Quantity}} - {{CreditNoteLine.LineExtensionAmount}} - {% if CreditNoteLine.LineExtensionAmount == '0.00' %} - - - {{CreditNoteLine.PricingReferencePriceAmount}} - 01 - - - {% endif %} - {% for TaxTotalID, TaxTotal in CreditNoteLine.TaxesTotal.items() %} - {% if TaxTotal.total != 0 %} - - {{'{:.2f}'.format(TaxTotal.total)}} - - 0.00 - {% for Percent, TaxSubtotal in TaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - - {{Percent}} - - {{TaxTotalID}} - {{TaxTotal.name}} - - - - {% endfor %} - - {% endif %} - {% endfor %} - {% for WithholdingTaxTotalID, WithholdingTaxTotal in CreditNoteLine.WithholdingTaxesTotal.items() %} - - {{'{:.2f}'.format(WithholdingTaxTotal.total)}} - {% for Percent, TaxSubtotal in WithholdingTaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - {{Percent}} - - {{WithholdingTaxTotalID}} - {{WithholdingTaxTotal.name}} - - - - {% endfor %} - - {% endfor %} - - - 1 - false - Descuento - {{CreditNoteLine.MultiplierFactorNumeric}} - {{CreditNoteLine.AllowanceChargeAmount}} - {{CreditNoteLine.AllowanceChargeBaseAmount}} - - - {{CreditNoteLine.ItemDescription}} - - {% if CreditNoteLine.BrandName %} - {{CreditNoteLine.BrandName}} - {% endif %} - - {% if CreditNoteLine.ModelName %} - {{CreditNoteLine.ModelName}} - {% endif %} - - - - - {{CreditNoteLine.StandardItemIdentification}} - - - {% if BillingReference.CustomizationID == '11' %} - - - - - {{CreditNoteLine.InformationContentProviderParty.ID}} - - - - - {% endif %} - - - {{CreditNoteLine.PriceAmount}} - {{CreditNoteLine.Quantity}} - - - {% endfor %} - diff --git a/l10n_co_account_e_invoicing/templates/DebitNote.xml b/l10n_co_account_e_invoicing/templates/DebitNote.xml deleted file mode 100644 index dde52cd..0000000 --- a/l10n_co_account_e_invoicing/templates/DebitNote.xml +++ /dev/null @@ -1,635 +0,0 @@ - - - - - - - - CO - - - {{ProviderID}} - {{SoftwareID}} - - {{SoftwareSecurityCode}} - - 800197268 - - NumFac: {{ID}} - FecFac: {{IssueDate}} - HorFac: {{IssueTime}} - NitFac: {{NitFac}} - DocAdq: {{DocAdq}} - ValFac: {{LineExtensionAmount}} - ValIva: {{ValIva}} - ValOtroIm: {{ValOtroIm}} - ValTolFac: {{PayableAmount}} - CUDE: {{UUID}} - {{QRCodeURL}} - - - - - - - - UBL 2.1 - {{CustomizationID}} - DIAN 2.1: Nota Débito de Factura Electrónica de Venta - {{ProfileExecutionID}} - {{ID}} - {{UUID}} - {{IssueDate}} - {{IssueTime}} - - {{Note}} - {{DocumentCurrencyCode}} - {{LineCountNumeric}} - - - {{DiscrepancyReferenceID}} - {{DiscrepancyResponseCode}} - {{DiscrepancyDescription}} - - - - {% if BillingReference.ID %} - - - {{BillingReference.ID}} - {{BillingReference.UUID}} - {{BillingReference.IssueDate}} - - - {% endif %} - - - - - - {{AccountingSupplierParty.AdditionalAccountID}} - - {% if IndustryClassificationCode %} - {{IndustryClassificationCode}} - {% endif %} - {% if AccountingSupplierParty.PartyName %} - - {{AccountingSupplierParty.PartyName}} - - {% endif %} - - - {{AccountingSupplierParty.AddressID}} - {{AccountingSupplierParty.AddressCityName}} - {% if AccountingSupplierParty.AddressPostalZone %} - {{AccountingSupplierParty.AddressPostalZone}} - {% endif %} - {{AccountingSupplierParty.AddressCountrySubentity}} - {{AccountingSupplierParty.AddressCountrySubentityCode}} - - {{AccountingSupplierParty.AddressLine}} - - - {{AccountingSupplierParty.CountryIdentificationCode}} - - {{AccountingSupplierParty.CountryName}} - - - - - {{AccountingSupplierParty.Name}} - {{AccountingSupplierParty.CompanyID}} - - {{AccountingSupplierParty.TaxLevelCode}} - - {{AccountingSupplierParty.AddressID}} - {{AccountingSupplierParty.AddressCityName}} - {% if AccountingSupplierParty.AddressPostalZone %} - {{AccountingSupplierParty.AddressPostalZone}} - {% endif %} - {{AccountingSupplierParty.AddressCountrySubentity}} - {{AccountingSupplierParty.AddressCountrySubentityCode}} - - {{AccountingSupplierParty.AddressLine}} - - - {{AccountingSupplierParty.CountryIdentificationCode}} - - {{AccountingCustomerParty.CountryName}} - - - - {{AccountingSupplierParty.TaxSchemeID}} - {{AccountingSupplierParty.TaxSchemeName}} - - - - {{AccountingSupplierParty.Name}} - {{AccountingSupplierParty.CompanyID}} - {% if AccountingSupplierParty.CorporateRegistrationSchemeName %} - - {{AccountingSupplierParty.CorporateRegistrationSchemeName}} - - {% endif %} - - - {% if AccountingSupplierParty.Telephone or AccountingSupplierParty.Telefax or AccountingSupplierParty.ElectronicMail %} - - - {% if AccountingSupplierParty.Telephone %} - {{AccountingSupplierParty.Telephone}} - {% endif %} - {% if AccountingSupplierParty.Telefax %} - {{AccountingSupplierParty.Telefax}} - {% endif %} - {% if AccountingSupplierParty.ElectronicMail %} - {{AccountingSupplierParty.ElectronicMail}} - {% endif %} - - - {% endif %} - - - - {{AccountingCustomerParty.AdditionalAccountID}} - - - {{AccountingCustomerParty.CompanyID}} - - {% if AccountingCustomerParty.PartyName%} - - {{AccountingCustomerParty.PartyName}} - - {% endif %} - {% if AccountingCustomerParty.CompanyID != '222222222222' %} - - - {{AccountingCustomerParty.AddressID}} - {{AccountingCustomerParty.AddressCityName}} - {% if AccountingCustomerParty.AddressPostalZone %} - {{AccountingCustomerParty.AddressPostalZone}} - {% endif %} - {{AccountingCustomerParty.AddressCountrySubentity}} - {{AccountingCustomerParty.AddressCountrySubentityCode}} - - {{AccountingCustomerParty.AddressLine}} - - - {{AccountingCustomerParty.CountryIdentificationCode}} - - {{AccountingCustomerParty.CountryName}} - - - - {% endif %} - - {{AccountingCustomerParty.Name}} - {{AccountingCustomerParty.CompanyID}} - - {{AccountingCustomerParty.TaxLevelCode}} - {% if AccountingCustomerParty.CompanyID != '222222222222' %} - - {{AccountingCustomerParty.AddressID}} - {{AccountingCustomerParty.AddressCityName}} - {% if AccountingCustomerParty.AddressPostalZone %} - {{AccountingCustomerParty.AddressPostalZone}} - {% endif %} - {{AccountingCustomerParty.AddressCountrySubentity}} - {{AccountingCustomerParty.AddressCountrySubentityCode}} - - {{AccountingCustomerParty.AddressLine}} - - - {{AccountingCustomerParty.CountryIdentificationCode}} - - {{AccountingCustomerParty.CountryName}} - - - {% endif %} - - {{AccountingCustomerParty.TaxSchemeID}} - {{AccountingCustomerParty.TaxSchemeName}} - - - - {{AccountingCustomerParty.Name}} - {{AccountingCustomerParty.CompanyID}} - {% if AccountingCustomerParty.CorporateRegistrationSchemeName %} - - {{AccountingCustomerParty.CorporateRegistrationSchemeName}} - - {% endif %} - - {% if AccountingCustomerParty.CompanyID != '222222222222' and (AccountingCustomerParty.Telephone or AccountingCustomerParty.Telefax or AccountingCustomerParty.ElectronicMail) %} - - - {% if AccountingCustomerParty.Telephone %} - {{AccountingCustomerParty.Telephone}} - {% endif %} - {% if AccountingCustomerParty.Telefax %} - {{AccountingCustomerParty.Telefax}} - {% endif %} - {% if AccountingCustomerParty.ElectronicMail %} - {{AccountingCustomerParty.ElectronicMail}} - {% endif %} - - - {% endif %} - - - - - - - {{ActualDeliveryDate}} - {{ActualDeliveryTime}} - {% if AccountingCustomerParty.CompanyID != '222222222222' %} - - {{Delivery.AddressID}} - {{Delivery.AddressCityName}} - {% if Delivery.AddressPostalZone %} - {{Delivery.AddressPostalZone}} - {% endif %} - {{Delivery.AddressCountrySubentity}} - {{Delivery.AddressCountrySubentityCode}} - - {{Delivery.AddressLine}} - - - {{Delivery.CountryIdentificationCode}} - - {{Delivery.CountryName}} - - - {% endif %} - - - {% if DeliveryTerms.LossRiskResponsibilityCode %} - - 1 - - - {{DeliveryTerms.LossRiskResponsibilityCode}} - {{DeliveryTerms.LossRisk}} - - {% endif %} - - {{PaymentMeansID}} - {{PaymentMeansCode}} - {{PaymentDueDate}} - - - - {% if DocumentCurrencyCode != 'COP' %} - - {{PaymentExchangeRate.SourceCurrencyCode}} - 1.00 - {{PaymentExchangeRate.TargetCurrencyCode}} - 1.00 - {{'{:.2f}'.format(PaymentExchangeRate.CalculationRate)}} - {{PaymentExchangeRate.Date}} - - {% endif %} - {% for TaxTotalID, TaxTotal in TaxesTotal.items() %} - {% if TaxTotal.total != 0 %} - - {{'{:.2f}'.format(TaxTotal.total)}} - - 0.00 - {% for Percent, TaxSubtotal in TaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - - {{Percent}} - - {{TaxTotalID}} - {{TaxTotal.name}} - - - - {% endfor %} - - {% endif %} - {% endfor %} - {% for WithholdingTaxTotalID, WithholdingTaxTotal in WithholdingTaxesTotal.items() %} - - {{'{:.2f}'.format(WithholdingTaxTotal.total)}} - {% for Percent, TaxSubtotal in WithholdingTaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - {{Percent}} - - {{WithholdingTaxTotalID}} - {{WithholdingTaxTotal.name}} - - - - {% endfor %} - - {% endfor %} - - {{LineExtensionAmount}} - {{TaxExclusiveAmount}} - {{TaxInclusiveAmount}} - - 0.00 - 0.00 - 0.00 - {{PayableAmount}} - - {% for DebitNoteLineID, DebitNoteLine in DebitNoteLines.items() %} - - {{DebitNoteLineID}} - {% if BillingReference.CustomizationID == '09' %} - Contrato de servicios AIU por concepto de: {{DebitNoteLine.ItemDescription}} - {% endif %} - {{DebitNoteLine.Quantity}} - {{DebitNoteLine.LineExtensionAmount}} - {% if DebitNoteLine.LineExtensionAmount == '0.00' %} - - - {{DebitNoteLine.PricingReferencePriceAmount}} - 01 - - - {% endif %} - {% for TaxTotalID, TaxTotal in DebitNoteLine.TaxesTotal.items() %} - {% if TaxTotal.total != 0 %} - - {{'{:.2f}'.format(TaxTotal.total)}} - - 0.00 - {% for Percent, TaxSubtotal in TaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - - {{Percent}} - - {{TaxTotalID}} - {{TaxTotal.name}} - - - - {% endfor %} - - {% endif %} - {% endfor %} - {% for WithholdingTaxTotalID, WithholdingTaxTotal in DebitNoteLine.WithholdingTaxesTotal.items() %} - - {{'{:.2f}'.format(WithholdingTaxTotal.total)}} - {% for Percent, TaxSubtotal in WithholdingTaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - {{Percent}} - - {{WithholdingTaxTotalID}} - {{WithholdingTaxTotal.name}} - - - - {% endfor %} - - {% endfor %} - - - 1 - false - Descuento - {{DebitNoteLine.MultiplierFactorNumeric}} - {{DebitNoteLine.AllowanceChargeAmount}} - {{DebitNoteLine.AllowanceChargeBaseAmount}} - - - {{DebitNoteLine.ItemDescription}} - - {% if DebitNoteLine.BrandName %} - {{DebitNoteLine.BrandName}} - {% endif %} - - {% if DebitNoteLine.ModelName %} - {{DebitNoteLine.ModelName}} - {% endif %} - - - - - {{DebitNoteLine.StandardItemIdentification}} - - - {% if BillingReference.CustomizationID == '11' %} - - - - - {{DebitNoteLine.InformationContentProviderParty.ID}} - - - - - {% endif %} - - - {{DebitNoteLine.PriceAmount}} - {{DebitNoteLine.Quantity}} - - - {% endfor %} - diff --git a/l10n_co_account_e_invoicing/templates/DocumentoSoporte.xml b/l10n_co_account_e_invoicing/templates/DocumentoSoporte.xml deleted file mode 100644 index ac13419..0000000 --- a/l10n_co_account_e_invoicing/templates/DocumentoSoporte.xml +++ /dev/null @@ -1,574 +0,0 @@ - - - - - - - - {{InvoiceControl.InvoiceAuthorization}} - - {{InvoiceControl.StartDate}} - {{InvoiceControl.EndDate}} - - - {% if InvoiceControl.Prefix %} - {{InvoiceControl.Prefix}} - {% endif %} - {{InvoiceControl.From}} - {{InvoiceControl.To}} - - - - CO - - - {{ProviderID}} - {{SoftwareID}} - - {{SoftwareSecurityCode}} - - 800197268 - - NumFac: {{ID}} - FecFac: {{IssueDate}} - HorFac: {{IssueTime}} - NitFac: {{NitFac}} - DocAdq: {{DocAdq}} - ValFac: {{LineExtensionAmount}} - ValIva: {{ValIva}} - ValOtroIm: {{ValOtroIm}} - ValTolFac: {{PayableAmount}} - CUDE: {{UUID}} - {{QRCodeURL}} - - - - - - - - UBL 2.1 - {{CustomizationID}} - DIAN 2.1: documento soporte en adquisiciones efectuadas a no obligados a facturar. - {{ProfileExecutionID}} - {{ID}} - {{UUID}} - {{IssueDate}} - {{IssueTime}} - {{DueDate}} - {{InvoiceTypeCode}} - - {{Note}} - {{DocumentCurrencyCode}} - {{LineCountNumeric}} - - {% if OrderReferenceID %} - - {{OrderReferenceID}} - - - {% endif %} - - - - - {% if ReceiptDocumentReferenceID %} - - {{ReceiptDocumentReferenceID}} - - - {% endif %} - {% if InvoiceTypeCode == '03' %} - - {{ID}} - {{IssueDate}} - - - {% endif %} - - {{AccountingSupplierParty.AdditionalAccountID}} - - - - {{AccountingSupplierParty.AddressID}} - {{AccountingSupplierParty.AddressCityName}} - {% if AccountingSupplierParty.AddressPostalZone %} - {{AccountingSupplierParty.AddressPostalZone}} - {% endif %} - {{AccountingSupplierParty.AddressCountrySubentity}} - {{AccountingSupplierParty.AddressCountrySubentityCode}} - - {{AccountingSupplierParty.AddressLine}} - - - {{AccountingSupplierParty.CountryIdentificationCode}} - - {{AccountingSupplierParty.CountryName}} - - - - - {{AccountingSupplierParty.Name}} - {{AccountingSupplierParty.CompanyID}} - - {{AccountingSupplierParty.TaxLevelCode}} - - {{AccountingSupplierParty.TaxSchemeID}} - {{AccountingSupplierParty.TaxSchemeName}} - - - - {% if AccountingSupplierParty.Telephone or AccountingSupplierParty.Telefax or AccountingSupplierParty.ElectronicMail %} - - - {% if AccountingSupplierParty.Telephone %} - {{AccountingSupplierParty.Telephone}} - {% endif %} - {% if AccountingSupplierParty.Telefax %} - {{AccountingSupplierParty.Telefax}} - {% endif %} - {% if AccountingSupplierParty.ElectronicMail %} - {{AccountingSupplierParty.ElectronicMail}} - {% endif %} - - - {% endif %} - - - - {{AccountingCustomerParty.AdditionalAccountID}} - - {% if IndustryClassificationCode %} - {{IndustryClassificationCode}} - {% endif %} - {% if AccountingCustomerParty.CompanyID != '222222222222' %} - - - {{AccountingCustomerParty.AddressID}} - {{AccountingCustomerParty.AddressCityName}} - {% if AccountingCustomerParty.AddressPostalZone %} - {{AccountingCustomerParty.AddressPostalZone}} - {% endif %} - {{AccountingCustomerParty.AddressCountrySubentity}} - {{AccountingCustomerParty.AddressCountrySubentityCode}} - - {{AccountingCustomerParty.AddressLine}} - - - {{AccountingCustomerParty.CountryIdentificationCode}} - - {{AccountingCustomerParty.CountryName}} - - - - {% endif %} - - {{AccountingCustomerParty.Name}} - {{AccountingCustomerParty.CompanyID}} - - {{AccountingCustomerParty.TaxLevelCode}} - {% if AccountingCustomerParty.CompanyID != '222222222222' %} - {% endif %} - - {{AccountingCustomerParty.TaxSchemeID}} - {{AccountingCustomerParty.TaxSchemeName}} - - - {% if AccountingCustomerParty.CompanyID != '222222222222' and (AccountingCustomerParty.Telephone or AccountingCustomerParty.Telefax or AccountingCustomerParty.ElectronicMail) %} - - - {% if AccountingCustomerParty.Telephone %} - {{AccountingCustomerParty.Telephone}} - {% endif %} - {% if AccountingCustomerParty.Telefax %} - {{AccountingCustomerParty.Telefax}} - {% endif %} - {% if AccountingCustomerParty.ElectronicMail %} - {{AccountingCustomerParty.ElectronicMail}} - {% endif %} - - - {% endif %} - - - - {{ActualDeliveryDate}} - {{ActualDeliveryTime}} - {% if AccountingCustomerParty.CompanyID != '222222222222' %} - - {{Delivery.AddressID}} - {{Delivery.AddressCityName}} - {% if Delivery.AddressPostalZone %} - {{Delivery.AddressPostalZone}} - {% endif %} - {{Delivery.AddressCountrySubentity}} - {{Delivery.AddressCountrySubentityCode}} - - {{Delivery.AddressLine}} - - - {{Delivery.CountryIdentificationCode}} - - {{Delivery.CountryName}} - - - {% endif %} - - - {% if DeliveryTerms.LossRiskResponsibilityCode %} - - 1 - - - {{DeliveryTerms.LossRiskResponsibilityCode}} - {{DeliveryTerms.LossRisk}} - - {% endif %} - - {{PaymentMeansID}} - {{PaymentMeansCode}} - {{PaymentDueDate}} - - - - - - - - - {% if DocumentCurrencyCode != 'COP' %} - - {{PaymentExchangeRate.SourceCurrencyCode}} - 1.00 - {{PaymentExchangeRate.TargetCurrencyCode}} - 1.00 - {{'{:.2f}'.format(PaymentExchangeRate.CalculationRate)}} - {{PaymentExchangeRate.Date}} - - {% endif %} - - {% for TaxTotalID, TaxTotal in TaxesTotal.items() %} - - {{'{:.2f}'.format(TaxTotal.total)}} - - 0.00 - {% for Percent, TaxSubtotal in TaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - - {{Percent}} - - {{TaxTotalID}} - {{TaxTotal.name}} - - - - {% endfor %} - - {% endfor %} - {% for WithholdingTaxTotalID, WithholdingTaxTotal in WithholdingTaxesTotal.items() %} - - {{'{:.2f}'.format(WithholdingTaxTotal.total)}} - {% for Percent, TaxSubtotal in WithholdingTaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - {{Percent}} - - {{WithholdingTaxTotalID}} - {{WithholdingTaxTotal.name}} - - - - {% endfor %} - - {% endfor %} - - {{LineExtensionAmount}} - {{TaxExclusiveAmount}} - {{TaxInclusiveAmount}} - - 0.00 - 0.00 - 0.00 - {{PayableAmount}} - - {% for InvoiceLineID, InvoiceLine in InvoiceLines.items() %} - - {{InvoiceLineID}} - {{InvoiceLine.Quantity}} - {{InvoiceLine.LineExtensionAmount}} - {% if InvoiceLine.LineExtensionAmount == '0.00' %} - - - {{InvoiceLine.PricingReferencePriceAmount}} - 01 - - - {% endif %} - - - 1 - false - Descuento - {{InvoiceLine.MultiplierFactorNumeric}} - {{InvoiceLine.AllowanceChargeAmount}} - {{InvoiceLine.AllowanceChargeBaseAmount}} - - - {% for TaxTotalID, TaxTotal in InvoiceLine.TaxesTotal.items() %} - - {{'{:.2f}'.format(TaxTotal.total)}} - - 0.00 - {% for Percent, TaxSubtotal in TaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - - {{Percent}} - - {{TaxTotalID}} - {{TaxTotal.name}} - - - - {% endfor %} - - {% endfor %} - {% for WithholdingTaxTotalID, WithholdingTaxTotal in InvoiceLine.WithholdingTaxesTotal.items() %} - - {{'{:.2f}'.format(WithholdingTaxTotal.total)}} - {% for Percent, TaxSubtotal in WithholdingTaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - {{Percent}} - - {{WithholdingTaxTotalID}} - {{WithholdingTaxTotal.name}} - - - - {% endfor %} - - {% endfor %} - - {{InvoiceLine.ItemDescription}} - - {% if InvoiceLine.BrandName %} - {{InvoiceLine.BrandName}} - {% endif %} - - {% if InvoiceLine.ModelName %} - {{InvoiceLine.ModelName}} - {% endif %} - - - - - {{InvoiceLine.StandardItemIdentification}} - - - - {{InvoiceLine.PriceAmount}} - {{InvoiceLine.Quantity}} - - - {% endfor %} - \ No newline at end of file diff --git a/l10n_co_account_e_invoicing/templates/GetNumberingRange.xml b/l10n_co_account_e_invoicing/templates/GetNumberingRange.xml deleted file mode 100644 index ca9d5b5..0000000 --- a/l10n_co_account_e_invoicing/templates/GetNumberingRange.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - {{Created}} - {{Expires}} - - {{BinarySecurityToken}} - - http://wcf.dian.colombia/IWcfDianCustomerServices/GetNumberingRange - {{To}} - - - - {{accountCode}} - {{accountCodeT}} - {{softwareCode}} - - - \ No newline at end of file diff --git a/l10n_co_account_e_invoicing/templates/GetStatus.xml b/l10n_co_account_e_invoicing/templates/GetStatus.xml deleted file mode 100644 index dde7540..0000000 --- a/l10n_co_account_e_invoicing/templates/GetStatus.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {{Created}} - {{Expires}} - - {{BinarySecurityToken}} - - http://wcf.dian.colombia/IWcfDianCustomerServices/GetStatus - {{To}} - - - - {{trackId}} - - - \ No newline at end of file diff --git a/l10n_co_account_e_invoicing/templates/GetStatusZip.xml b/l10n_co_account_e_invoicing/templates/GetStatusZip.xml deleted file mode 100644 index 8e89142..0000000 --- a/l10n_co_account_e_invoicing/templates/GetStatusZip.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {{Created}} - {{Expires}} - - {{BinarySecurityToken}} - - http://wcf.dian.colombia/IWcfDianCustomerServices/GetStatusZip - {{To}} - - - - {{trackId}} - - - \ No newline at end of file diff --git a/l10n_co_account_e_invoicing/templates/Invoice.xml b/l10n_co_account_e_invoicing/templates/Invoice.xml deleted file mode 100644 index 6e16ca6..0000000 --- a/l10n_co_account_e_invoicing/templates/Invoice.xml +++ /dev/null @@ -1,689 +0,0 @@ - - - - - - - - {{InvoiceControl.InvoiceAuthorization}} - - {{InvoiceControl.StartDate}} - {{InvoiceControl.EndDate}} - - - {% if InvoiceControl.Prefix %} - {{InvoiceControl.Prefix}} - {% endif %} - {{InvoiceControl.From}} - {{InvoiceControl.To}} - - - - CO - - - {{ProviderID}} - {{SoftwareID}} - - {{SoftwareSecurityCode}} - - 800197268 - - NumFac: {{ID}} - FecFac: {{IssueDate}} - HorFac: {{IssueTime}} - NitFac: {{NitFac}} - DocAdq: {{DocAdq}} - ValFac: {{LineExtensionAmount}} - ValIva: {{ValIva}} - ValOtroIm: {{ValOtroIm}} - ValTolFac: {{PayableAmount}} - CU{% if InvoiceTypeCode != '03' %}F{% else %}D{% endif %}E: {{UUID}} - {{QRCodeURL}} - - - - - - - - UBL 2.1 - {{CustomizationID}} - DIAN 2.1: Factura Electrónica de Venta - {{ProfileExecutionID}} - {{ID}} - {{UUID}} - {{IssueDate}} - {{IssueTime}} - {{DueDate}} - {{InvoiceTypeCode}} - - {{Note}} - {{DocumentCurrencyCode}} - {{LineCountNumeric}} - - {% if OrderReferenceID %} - - {{OrderReferenceID}} - - - {% endif %} - - - - - {% if ReceiptDocumentReferenceID %} - - {{ReceiptDocumentReferenceID}} - - - {% endif %} - {% if InvoiceTypeCode == '03' %} - - {{ID}} - {{IssueDate}} - - - {% endif %} - - {{AccountingSupplierParty.AdditionalAccountID}} - - {% if IndustryClassificationCode %} - {{IndustryClassificationCode}} - {% endif %} - {% if AccountingSupplierParty.PartyName %} - - {{AccountingSupplierParty.PartyName}} - - {% endif %} - - - {{AccountingSupplierParty.AddressID}} - {{AccountingSupplierParty.AddressCityName}} - {% if AccountingSupplierParty.AddressPostalZone %} - {{AccountingSupplierParty.AddressPostalZone}} - {% endif %} - {{AccountingSupplierParty.AddressCountrySubentity}} - {{AccountingSupplierParty.AddressCountrySubentityCode}} - - {{AccountingSupplierParty.AddressLine}} - - - {{AccountingSupplierParty.CountryIdentificationCode}} - - {{AccountingSupplierParty.CountryName}} - - - - - {{AccountingSupplierParty.Name}} - {{AccountingSupplierParty.CompanyID}} - - {{AccountingSupplierParty.TaxLevelCode}} - - {{AccountingSupplierParty.AddressID}} - {{AccountingSupplierParty.AddressCityName}} - {% if AccountingSupplierParty.AddressPostalZone %} - {{AccountingSupplierParty.AddressPostalZone}} - {% endif %} - {{AccountingSupplierParty.AddressCountrySubentity}} - {{AccountingSupplierParty.AddressCountrySubentityCode}} - - {{AccountingSupplierParty.AddressLine}} - - - {{AccountingSupplierParty.CountryIdentificationCode}} - - {{AccountingSupplierParty.CountryName}} - - - - {{AccountingSupplierParty.TaxSchemeID}} - {{AccountingSupplierParty.TaxSchemeName}} - - - - {{AccountingSupplierParty.Name}} - {{AccountingSupplierParty.CompanyID}} - {% if InvoiceControl.Prefix or AccountingSupplierParty.CorporateRegistrationSchemeName %} - - {% if InvoiceControl.Prefix %} - {{InvoiceControl.Prefix}} - {% endif %} - {% if AccountingSupplierParty.CorporateRegistrationSchemeName %} - {{AccountingSupplierParty.CorporateRegistrationSchemeName}} - {% endif %} - - {% endif %} - - - {% if AccountingSupplierParty.Telephone or AccountingSupplierParty.Telefax or AccountingSupplierParty.ElectronicMail %} - - - {% if AccountingSupplierParty.Telephone %} - {{AccountingSupplierParty.Telephone}} - {% endif %} - {% if AccountingSupplierParty.Telefax %} - {{AccountingSupplierParty.Telefax}} - {% endif %} - {% if AccountingSupplierParty.ElectronicMail %} - {{AccountingSupplierParty.ElectronicMail}} - {% endif %} - - - {% endif %} - - - - {{AccountingCustomerParty.AdditionalAccountID}} - - - {{AccountingCustomerParty.CompanyID}} - - {% if AccountingCustomerParty.PartyName %} - - {{AccountingCustomerParty.PartyName}} - - {% endif %} - {% if AccountingCustomerParty.CompanyID != '222222222222' %} - - - {{AccountingCustomerParty.AddressID}} - {{AccountingCustomerParty.AddressCityName}} - {% if AccountingCustomerParty.AddressPostalZone %} - {{AccountingCustomerParty.AddressPostalZone}} - {% endif %} - {{AccountingCustomerParty.AddressCountrySubentity}} - {{AccountingCustomerParty.AddressCountrySubentityCode}} - - {{AccountingCustomerParty.AddressLine}} - - - {{AccountingCustomerParty.CountryIdentificationCode}} - - {{AccountingCustomerParty.CountryName}} - - - - {% endif %} - - {{AccountingCustomerParty.Name}} - {{AccountingCustomerParty.CompanyID}} - - {{AccountingCustomerParty.TaxLevelCode}} - {% if AccountingCustomerParty.CompanyID != '222222222222' %} - - {{AccountingCustomerParty.AddressID}} - {{AccountingCustomerParty.AddressCityName}} - {% if AccountingCustomerParty.AddressPostalZone %} - {{AccountingCustomerParty.AddressPostalZone}} - {% endif %} - {{AccountingCustomerParty.AddressCountrySubentity}} - {{AccountingCustomerParty.AddressCountrySubentityCode}} - - {{AccountingCustomerParty.AddressLine}} - - - {{AccountingCustomerParty.CountryIdentificationCode}} - - {{AccountingCustomerParty.CountryName}} - - - {% endif %} - - {{AccountingCustomerParty.TaxSchemeID}} - {{AccountingCustomerParty.TaxSchemeName}} - - - - {{AccountingCustomerParty.Name}} - {{AccountingCustomerParty.CompanyID}} - {% if AccountingCustomerParty.CorporateRegistrationSchemeName %} - - {{AccountingCustomerParty.CorporateRegistrationSchemeName}} - - {% endif %} - - {% if AccountingCustomerParty.CompanyID != '222222222222' and (AccountingCustomerParty.Telephone or AccountingCustomerParty.Telefax or AccountingCustomerParty.ElectronicMail) %} - - - {% if AccountingCustomerParty.Telephone %} - {{AccountingCustomerParty.Telephone}} - {% endif %} - {% if AccountingCustomerParty.Telefax %} - {{AccountingCustomerParty.Telefax}} - {% endif %} - {% if AccountingCustomerParty.ElectronicMail %} - {{AccountingCustomerParty.ElectronicMail}} - {% endif %} - - - {% endif %} - - - - - - {{ActualDeliveryDate}} - {{ActualDeliveryTime}} - {% if AccountingCustomerParty.CompanyID != '222222222222' %} - - {{Delivery.AddressID}} - {{Delivery.AddressCityName}} - {% if Delivery.AddressPostalZone %} - {{Delivery.AddressPostalZone}} - {% endif %} - {{Delivery.AddressCountrySubentity}} - {{Delivery.AddressCountrySubentityCode}} - - {{Delivery.AddressLine}} - - - {{Delivery.CountryIdentificationCode}} - - {{Delivery.CountryName}} - - - {% endif %} - - - {% if DeliveryTerms.LossRiskResponsibilityCode %} - - 1 - - - {{DeliveryTerms.LossRiskResponsibilityCode}} - {{DeliveryTerms.LossRisk}} - - {% endif %} - - {{PaymentMeansID}} - {{PaymentMeansCode}} - {{PaymentDueDate}} - - - - - - - - - {% if DocumentCurrencyCode != 'COP' %} - - {{PaymentExchangeRate.SourceCurrencyCode}} - 1.00 - {{PaymentExchangeRate.TargetCurrencyCode}} - 1.00 - {{'{:.2f}'.format(PaymentExchangeRate.CalculationRate)}} - {{PaymentExchangeRate.Date}} - - {% endif %} - - {% for TaxTotalID, TaxTotal in TaxesTotal.items() %} - - - {{'{:.2f}'.format(TaxTotal.total)}} - - 0.00 - {% for Percent, TaxSubtotal in TaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - - {{Percent}} - - {{TaxTotalID}} - {{TaxTotal.name}} - - - - {% endfor %} - - - {% endfor %} - {% for WithholdingTaxTotalID, WithholdingTaxTotal in WithholdingTaxesTotal.items() %} - - {{'{:.2f}'.format(WithholdingTaxTotal.total)}} - {% for Percent, TaxSubtotal in WithholdingTaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - {{Percent}} - - {{WithholdingTaxTotalID}} - {{WithholdingTaxTotal.name}} - - - - {% endfor %} - - {% endfor %} - - {{LineExtensionAmount}} - {{TaxExclusiveAmount}} - {{TaxInclusiveAmount}} - - 0.00 - 0.00 - 0.00 - {{PayableAmount}} - - {% for InvoiceLineID, InvoiceLine in InvoiceLines.items() %} - - {{InvoiceLineID}} - {% if CustomizationID == '09' %} - Contrato de servicios AIU por concepto de: {{InvoiceLine.ItemDescription}} - {% endif %} - {{InvoiceLine.Quantity}} - {{InvoiceLine.LineExtensionAmount}} - {% if InvoiceLine.LineExtensionAmount == '0.00' %} - - - {{InvoiceLine.PricingReferencePriceAmount}} - 01 - - - {% endif %} - - - 1 - false - Descuento - {{InvoiceLine.MultiplierFactorNumeric}} - {{InvoiceLine.AllowanceChargeAmount}} - {{InvoiceLine.AllowanceChargeBaseAmount}} - - - {% for TaxTotalID, TaxTotal in InvoiceLine.TaxesTotal.items() %} - - - {{'{:.2f}'.format(TaxTotal.total)}} - - 0.00 - {% for Percent, TaxSubtotal in TaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - - {{Percent}} - - {{TaxTotalID}} - {{TaxTotal.name}} - - - - {% endfor %} - - - {% endfor %} - {% for WithholdingTaxTotalID, WithholdingTaxTotal in InvoiceLine.WithholdingTaxesTotal.items() %} - - {{'{:.2f}'.format(WithholdingTaxTotal.total)}} - {% for Percent, TaxSubtotal in WithholdingTaxTotal.taxes.items() %} - - {{'{:.2f}'.format(TaxSubtotal.base)}} - {{'{:.2f}'.format(TaxSubtotal.amount)}} - - {{Percent}} - - {{WithholdingTaxTotalID}} - {{WithholdingTaxTotal.name}} - - - - {% endfor %} - - {% endfor %} - - {{InvoiceLine.ItemDescription}} - - {% if InvoiceLine.BrandName %} - {{InvoiceLine.BrandName}} - {% endif %} - - {% if InvoiceLine.ModelName %} - {{InvoiceLine.ModelName}} - {% endif %} - - - - - {{InvoiceLine.StandardItemIdentification}} - - - {% if CustomizationID == '11' %} - - - - - {{InvoiceLine.InformationContentProviderParty.ID}} - - - - - {% endif %} - - - {{InvoiceLine.PriceAmount}} - {{InvoiceLine.Quantity}} - - - {% endfor %} - diff --git a/l10n_co_account_e_invoicing/templates/SendBillAsync.xml b/l10n_co_account_e_invoicing/templates/SendBillAsync.xml deleted file mode 100644 index c5e1531..0000000 --- a/l10n_co_account_e_invoicing/templates/SendBillAsync.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - {{Created}} - {{Expires}} - - {{BinarySecurityToken}} - - http://wcf.dian.colombia/IWcfDianCustomerServices/SendBillAsync - {{To}} - - - - {{fileName}} - {{contentFile}} - - - \ No newline at end of file diff --git a/l10n_co_account_e_invoicing/templates/SendBillAttachmentAsync.xml b/l10n_co_account_e_invoicing/templates/SendBillAttachmentAsync.xml deleted file mode 100644 index 006784a..0000000 --- a/l10n_co_account_e_invoicing/templates/SendBillAttachmentAsync.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - {{Created}} - {{Expires}} - - {{BinarySecurityToken}} - - http://wcf.dian.colombia/IWcfDianCustomerServices/SendBillAttachmentAsync - {{To}} - - - - {{fileName}} - {{contentFile}} - - - \ No newline at end of file diff --git a/l10n_co_account_e_invoicing/templates/SendBillSync.xml b/l10n_co_account_e_invoicing/templates/SendBillSync.xml deleted file mode 100644 index f93a6c7..0000000 --- a/l10n_co_account_e_invoicing/templates/SendBillSync.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - {{Created}} - {{Expires}} - - {{BinarySecurityToken}} - - http://wcf.dian.colombia/IWcfDianCustomerServices/SendBillSync - {{To}} - - - - {{fileName}} - {{contentFile}} - - - \ No newline at end of file diff --git a/l10n_co_account_e_invoicing/templates/SendTestSetAsync.xml b/l10n_co_account_e_invoicing/templates/SendTestSetAsync.xml deleted file mode 100644 index e6ce1e6..0000000 --- a/l10n_co_account_e_invoicing/templates/SendTestSetAsync.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - {{Created}} - {{Expires}} - - {{BinarySecurityToken}} - - http://wcf.dian.colombia/IWcfDianCustomerServices/SendTestSetAsync - {{To}} - - - - {{fileName}} - {{contentFile}} - {{testSetId}} - - - \ No newline at end of file diff --git a/l10n_co_account_e_invoicing/views/account_fiscal_position_party_tax_scheme_views.xml b/l10n_co_account_e_invoicing/views/account_fiscal_position_party_tax_scheme_views.xml deleted file mode 100644 index e7b1c79..0000000 --- a/l10n_co_account_e_invoicing/views/account_fiscal_position_party_tax_scheme_views.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - account.fiscal.position.party.tax.scheme - - - - - - - - - - account.fiscal.position.party.tax.scheme - - - - - - - - - - account.fiscal.position.party.tax.scheme - -
- - - - -
-
-
- - - Fiscal Responsibilities (PartyTaxScheme) - ir.actions.act_window - account.fiscal.position.party.tax.scheme - tree,form - - - - - -
diff --git a/l10n_co_account_e_invoicing/views/account_fiscal_position_tax_level_code_views.xml b/l10n_co_account_e_invoicing/views/account_fiscal_position_tax_level_code_views.xml deleted file mode 100644 index 82343f2..0000000 --- a/l10n_co_account_e_invoicing/views/account_fiscal_position_tax_level_code_views.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - account.fiscal.position.tax.level.code - - - - - - - - - - account.fiscal.position.tax.level.code - - - - - - - - - - account.fiscal.position.tax.level.code - -
- - - - -
-
-
- - - Fiscal Responsibilities (TaxLevelCode) - ir.actions.act_window - account.fiscal.position.tax.level.code - tree,form - - - - - -
diff --git a/l10n_co_account_e_invoicing/views/account_fiscal_position_views.xml b/l10n_co_account_e_invoicing/views/account_fiscal_position_views.xml deleted file mode 100644 index 5c68bf3..0000000 --- a/l10n_co_account_e_invoicing/views/account_fiscal_position_views.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - account.fiscal.position - - - - - - - - - - diff --git a/l10n_co_account_e_invoicing/views/account_fiscal_year_views.xml b/l10n_co_account_e_invoicing/views/account_fiscal_year_views.xml deleted file mode 100644 index a38f9cf..0000000 --- a/l10n_co_account_e_invoicing/views/account_fiscal_year_views.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - account.fiscal.year - - - - - - - - - - - - - account.fiscal.year - - - - - - - - - - - diff --git a/l10n_co_account_e_invoicing/views/account_move_dian_document_views.xml b/l10n_co_account_e_invoicing/views/account_move_dian_document_views.xml deleted file mode 100644 index 6d50c5f..0000000 --- a/l10n_co_account_e_invoicing/views/account_move_dian_document_views.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - account.move.dian.document - - - - - - - - - - - - - - account.move.dian.document - -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - DIAN Documents - ir.actions.act_window - account.move.dian.document - tree,form - - - -
diff --git a/l10n_co_account_e_invoicing/views/account_move_views.xml b/l10n_co_account_e_invoicing/views/account_move_views.xml deleted file mode 100644 index 9da4a3d..0000000 --- a/l10n_co_account_e_invoicing/views/account_move_views.xml +++ /dev/null @@ -1,173 +0,0 @@ - - - - account.move - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/l10n_co_account_e_invoicing/views/account_tax_group_views.xml b/l10n_co_account_e_invoicing/views/account_tax_group_views.xml deleted file mode 100644 index 2cd037c..0000000 --- a/l10n_co_account_e_invoicing/views/account_tax_group_views.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - account.tax.group - - - - - - - {'required': [('is_einvoicing', '=', True)]} - - - - - diff --git a/l10n_co_account_e_invoicing/views/ir_sequence_views.xml b/l10n_co_account_e_invoicing/views/ir_sequence_views.xml deleted file mode 100644 index e65742a..0000000 --- a/l10n_co_account_e_invoicing/views/ir_sequence_views.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - ir.sequence - - - - - - - - - - diff --git a/l10n_co_account_e_invoicing/views/product_template_views.xml b/l10n_co_account_e_invoicing/views/product_template_views.xml deleted file mode 100644 index acf3988..0000000 --- a/l10n_co_account_e_invoicing/views/product_template_views.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - product.template - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/l10n_co_account_e_invoicing/views/res_company_views.xml b/l10n_co_account_e_invoicing/views/res_company_views.xml deleted file mode 100644 index e2f22cc..0000000 --- a/l10n_co_account_e_invoicing/views/res_company_views.xml +++ /dev/null @@ -1,115 +0,0 @@ - - - - res.company - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/l10n_co_account_e_invoicing/views/res_partner_views.xml b/l10n_co_account_e_invoicing/views/res_partner_views.xml deleted file mode 100644 index df8c591..0000000 --- a/l10n_co_account_e_invoicing/views/res_partner_views.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - res.partner - - - - - - - - - - - - diff --git a/l10n_co_account_move_discrepancy_response/README.rst b/l10n_co_account_move_discrepancy_response/README.rst deleted file mode 100644 index bbd23a6..0000000 --- a/l10n_co_account_move_discrepancy_response/README.rst +++ /dev/null @@ -1,33 +0,0 @@ -.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png - :target: https://www.gnu.org/licenses/agpl - :alt: License: AGPL-3 - -========================================================================= -Conceptos de corrección para facturas rectificativas para la localizacion -========================================================================= -========== -Colombiana -========== - -Este módulo tiene los conceptos de corrección para facturas rectificativas -identificados por la DIAN para la localizacion Colombiana, informacion obtenida -del anexo tecnico para facturacion electronica version 1.8, puntos 13.2.4. y -13.2.5. - -- Crea un campo en las facturas rectificativas para definir el concepto de - corrección que le corresponda. - -This module has the correction concepts for refund invoices identified by the -DIAN for the Colombian localization, information obtained from the technical -annex for e-invoicing version 1.8, points 13.2.4. and 13.2.5. - -- Creates a field in the refund invoices to define the concept of correction - that corresponds to it. - -Credits -======= - -Contributors ------------- - -* Joan Marín diff --git a/l10n_co_account_move_discrepancy_response/__init__.py b/l10n_co_account_move_discrepancy_response/__init__.py deleted file mode 100644 index b3f2d6a..0000000 --- a/l10n_co_account_move_discrepancy_response/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import models -from . import wizards diff --git a/l10n_co_account_move_discrepancy_response/__manifest__.py b/l10n_co_account_move_discrepancy_response/__manifest__.py deleted file mode 100644 index 995ee1d..0000000 --- a/l10n_co_account_move_discrepancy_response/__manifest__.py +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -{ - "name": "Conceptos de corrección para facturas rectificativas " - "para la localizacion Colombiana", - "summary": "Este módulo tiene los conceptos de corrección para facturas " - "rectificativas identificados por la DIAN para la localizacion Colombiana", - "version": "14.0.1.0.0", - "license": "AGPL-3", - "website": "https://github.com/JoanMarin", - "author": "Joan Marín Github@JoanMarin", - "category": "Localization", - "depends": [ - "account_debit_note", - "account_invoice_force_number_extended" - ], - "data": [ - "security/ir.model.access.csv", - "data/account_move_discrepancy_response_code_data.xml", - "wizards/account_debit_note_views.xml", - "wizards/account_move_reversal_views.xml", - "views/account_move_discrepancy_response_code_views.xml", - "views/account_move_views.xml", - "views/account_journal_views.xml", - ], - "installable": True, -} diff --git a/l10n_co_account_move_discrepancy_response/data/account_move_discrepancy_response_code_data.xml b/l10n_co_account_move_discrepancy_response/data/account_move_discrepancy_response_code_data.xml deleted file mode 100644 index c3fb0c8..0000000 --- a/l10n_co_account_move_discrepancy_response/data/account_move_discrepancy_response_code_data.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - Devolución parcial de los bienes y/o no aceptación parcial del servicio - 1 - credit - - - Anulación de factura electrónica - 2 - credit - - - Rebaja o descuento parcial o total - 3 - credit - - - Ajuste de precio - 4 - credit - - - Otros - 5 - credit - - - Intereses - 1 - debit - - - Gastos por cobrar - 2 - debit - - - Cambio del valor - 3 - debit - - - Otros - 4 - debit - - diff --git a/l10n_co_account_move_discrepancy_response/i18n/es.po b/l10n_co_account_move_discrepancy_response/i18n/es.po deleted file mode 100644 index 1adadd9..0000000 --- a/l10n_co_account_move_discrepancy_response/i18n/es.po +++ /dev/null @@ -1,193 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * l10n_co_account_move_discrepancy_response -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-07-01 14:28+0000\n" -"PO-Revision-Date: 2021-07-01 14:28+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_move_reversal -msgid "Account Move Reversal" -msgstr "Revocación de movimiento en cuenta" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_debit_note -msgid "Add Debit Note wizard" -msgstr "Asistente para agregar nota débito" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,help:l10n_co_account_move_discrepancy_response.field_account_journal__debit_note_sequence -msgid "" -"Check this box if you don't want to share the same sequence for invoices and" -" debit notes made from this journal" -msgstr "Marque esta casilla si no quiere compartir la misma secuencia para facturas y" -" las notas debito hechas desde este diario" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__code -msgid "Code" -msgstr "Código" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_bank_statement_line__discrepancy_response_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_debit_note__discrepancy_response_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move__discrepancy_response_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_reversal__discrepancy_response_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_payment__discrepancy_response_code_id -msgid "Correction concept for Refund Invoice" -msgstr "Concepto de Corrección para la Factura Rectificativa" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.actions.act_window,name:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_action -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_move_discrepancy_response_code -#: model:ir.ui.menu,name:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_view_tree -msgid "Correction concepts for Refund Invoices" -msgstr "Conceptos de Corrección para Facturas Rectificativas" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__create_date -msgid "Created on" -msgstr "Creado el" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields.selection,name:l10n_co_account_move_discrepancy_response.selection__account_move__refund_type__credit -#: model:ir.model.fields.selection,name:l10n_co_account_move_discrepancy_response.selection__account_move_discrepancy_response_code__type__credit -msgid "Credit Note" -msgstr "Nota Crédito" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields.selection,name:l10n_co_account_move_discrepancy_response.selection__account_move__refund_type__debit -#: model:ir.model.fields.selection,name:l10n_co_account_move_discrepancy_response.selection__account_move_discrepancy_response_code__type__debit -msgid "Debit Note" -msgstr "Nota Débito" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal__debit_note_sequence_id -msgid "Debit Note Entry Sequence" -msgstr "Secuencia de Asiento de Nota Débito" - -#. module: l10n_co_account_move_discrepancy_response -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_journal.py:0 -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_journal.py:0 -#, python-format -msgid "Debit Note Sequence - " -msgstr "Secuencia de Nota Débito - " - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal__debit_note_sequence -msgid "Dedicated Debit Note Sequence" -msgstr "Secuencia de Nota Débito Dedicada" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_debit_note__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_reversal__display_name -msgid "Display Name" -msgstr "Nombre mostrado" - -#. module: l10n_co_account_move_discrepancy_response -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_view_search -msgid "Group By" -msgstr "Agrupar Por" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_debit_note__id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal__id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move__id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_reversal__id -msgid "ID" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_journal -msgid "Journal" -msgstr "Diario" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_move -msgid "Journal Entry" -msgstr "Asiento contable" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_debit_note____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_reversal____last_update -msgid "Last Modified on" -msgstr "Última modificación el" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__write_uid -msgid "Last Updated by" -msgstr "Última actualización por" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__write_date -msgid "Last Updated on" -msgstr "Última actualización el" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__name -msgid "Name" -msgstr "Nombre" - -#. module: l10n_co_account_move_discrepancy_response -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_move.py:0 -#, python-format -msgid "Please define a sequence for the debit notes" -msgstr "Por favor, defina una secuencia para notas debito" - -#. module: l10n_co_account_move_discrepancy_response -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_move.py:0 -#, python-format -msgid "Please define a sequence for the refunds" -msgstr "Por favor, defina una secuencia para facturas rectificativas" - -#. module: l10n_co_account_move_discrepancy_response -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_move.py:0 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Por favor, defina una secuencia para el diario." - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_bank_statement_line__refund_type -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move__refund_type -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_payment__refund_type -msgid "Refund Type" -msgstr "Tipo Rectificación" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,help:l10n_co_account_move_discrepancy_response.field_account_journal__debit_note_sequence_id -msgid "" -"This field contains the information related to the numbering of the debit " -"note entries of this journal." -msgstr "" -"Este campo contiene la información relativa a la numeración de los asientos " -"de nota débito de este diario." - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__type -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_view_search -msgid "Type" -msgstr "Tipo" diff --git a/l10n_co_account_move_discrepancy_response/i18n/es_CO.po b/l10n_co_account_move_discrepancy_response/i18n/es_CO.po deleted file mode 100644 index 1adadd9..0000000 --- a/l10n_co_account_move_discrepancy_response/i18n/es_CO.po +++ /dev/null @@ -1,193 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * l10n_co_account_move_discrepancy_response -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-07-01 14:28+0000\n" -"PO-Revision-Date: 2021-07-01 14:28+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_move_reversal -msgid "Account Move Reversal" -msgstr "Revocación de movimiento en cuenta" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_debit_note -msgid "Add Debit Note wizard" -msgstr "Asistente para agregar nota débito" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,help:l10n_co_account_move_discrepancy_response.field_account_journal__debit_note_sequence -msgid "" -"Check this box if you don't want to share the same sequence for invoices and" -" debit notes made from this journal" -msgstr "Marque esta casilla si no quiere compartir la misma secuencia para facturas y" -" las notas debito hechas desde este diario" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__code -msgid "Code" -msgstr "Código" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_bank_statement_line__discrepancy_response_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_debit_note__discrepancy_response_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move__discrepancy_response_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_reversal__discrepancy_response_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_payment__discrepancy_response_code_id -msgid "Correction concept for Refund Invoice" -msgstr "Concepto de Corrección para la Factura Rectificativa" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.actions.act_window,name:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_action -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_move_discrepancy_response_code -#: model:ir.ui.menu,name:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_view_tree -msgid "Correction concepts for Refund Invoices" -msgstr "Conceptos de Corrección para Facturas Rectificativas" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__create_date -msgid "Created on" -msgstr "Creado el" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields.selection,name:l10n_co_account_move_discrepancy_response.selection__account_move__refund_type__credit -#: model:ir.model.fields.selection,name:l10n_co_account_move_discrepancy_response.selection__account_move_discrepancy_response_code__type__credit -msgid "Credit Note" -msgstr "Nota Crédito" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields.selection,name:l10n_co_account_move_discrepancy_response.selection__account_move__refund_type__debit -#: model:ir.model.fields.selection,name:l10n_co_account_move_discrepancy_response.selection__account_move_discrepancy_response_code__type__debit -msgid "Debit Note" -msgstr "Nota Débito" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal__debit_note_sequence_id -msgid "Debit Note Entry Sequence" -msgstr "Secuencia de Asiento de Nota Débito" - -#. module: l10n_co_account_move_discrepancy_response -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_journal.py:0 -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_journal.py:0 -#, python-format -msgid "Debit Note Sequence - " -msgstr "Secuencia de Nota Débito - " - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal__debit_note_sequence -msgid "Dedicated Debit Note Sequence" -msgstr "Secuencia de Nota Débito Dedicada" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_debit_note__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_reversal__display_name -msgid "Display Name" -msgstr "Nombre mostrado" - -#. module: l10n_co_account_move_discrepancy_response -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_view_search -msgid "Group By" -msgstr "Agrupar Por" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_debit_note__id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal__id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move__id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_reversal__id -msgid "ID" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_journal -msgid "Journal" -msgstr "Diario" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_move -msgid "Journal Entry" -msgstr "Asiento contable" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_debit_note____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_reversal____last_update -msgid "Last Modified on" -msgstr "Última modificación el" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__write_uid -msgid "Last Updated by" -msgstr "Última actualización por" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__write_date -msgid "Last Updated on" -msgstr "Última actualización el" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__name -msgid "Name" -msgstr "Nombre" - -#. module: l10n_co_account_move_discrepancy_response -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_move.py:0 -#, python-format -msgid "Please define a sequence for the debit notes" -msgstr "Por favor, defina una secuencia para notas debito" - -#. module: l10n_co_account_move_discrepancy_response -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_move.py:0 -#, python-format -msgid "Please define a sequence for the refunds" -msgstr "Por favor, defina una secuencia para facturas rectificativas" - -#. module: l10n_co_account_move_discrepancy_response -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_move.py:0 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "Por favor, defina una secuencia para el diario." - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_bank_statement_line__refund_type -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move__refund_type -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_payment__refund_type -msgid "Refund Type" -msgstr "Tipo Rectificación" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,help:l10n_co_account_move_discrepancy_response.field_account_journal__debit_note_sequence_id -msgid "" -"This field contains the information related to the numbering of the debit " -"note entries of this journal." -msgstr "" -"Este campo contiene la información relativa a la numeración de los asientos " -"de nota débito de este diario." - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__type -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_view_search -msgid "Type" -msgstr "Tipo" diff --git a/l10n_co_account_move_discrepancy_response/i18n/l10n_co_account_move_discrepancy_response.pot b/l10n_co_account_move_discrepancy_response/i18n/l10n_co_account_move_discrepancy_response.pot deleted file mode 100644 index 2162ace..0000000 --- a/l10n_co_account_move_discrepancy_response/i18n/l10n_co_account_move_discrepancy_response.pot +++ /dev/null @@ -1,190 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * l10n_co_account_move_discrepancy_response -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-07-01 14:28+0000\n" -"PO-Revision-Date: 2021-07-01 14:28+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_move_reversal -msgid "Account Move Reversal" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_debit_note -msgid "Add Debit Note wizard" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,help:l10n_co_account_move_discrepancy_response.field_account_journal__debit_note_sequence -msgid "" -"Check this box if you don't want to share the same sequence for invoices and" -" debit notes made from this journal" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__code -msgid "Code" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_bank_statement_line__discrepancy_response_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_debit_note__discrepancy_response_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move__discrepancy_response_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_reversal__discrepancy_response_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_payment__discrepancy_response_code_id -msgid "Correction concept for Refund Invoice" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.actions.act_window,name:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_action -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_move_discrepancy_response_code -#: model:ir.ui.menu,name:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_view_tree -msgid "Correction concepts for Refund Invoices" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__create_uid -msgid "Created by" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__create_date -msgid "Created on" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields.selection,name:l10n_co_account_move_discrepancy_response.selection__account_move__refund_type__credit -#: model:ir.model.fields.selection,name:l10n_co_account_move_discrepancy_response.selection__account_move_discrepancy_response_code__type__credit -msgid "Credit Note" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields.selection,name:l10n_co_account_move_discrepancy_response.selection__account_move__refund_type__debit -#: model:ir.model.fields.selection,name:l10n_co_account_move_discrepancy_response.selection__account_move_discrepancy_response_code__type__debit -msgid "Debit Note" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal__debit_note_sequence_id -msgid "Debit Note Entry Sequence" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_journal.py:0 -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_journal.py:0 -#, python-format -msgid "Debit Note Sequence - " -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal__debit_note_sequence -msgid "Dedicated Debit Note Sequence" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_debit_note__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_reversal__display_name -msgid "Display Name" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_view_search -msgid "Group By" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_debit_note__id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal__id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move__id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__id -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_reversal__id -msgid "ID" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_journal -msgid "Journal" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model,name:l10n_co_account_move_discrepancy_response.model_account_move -msgid "Journal Entry" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_debit_note____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_journal____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_reversal____last_update -msgid "Last Modified on" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__write_date -msgid "Last Updated on" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__name -msgid "Name" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_move.py:0 -#, python-format -msgid "Please define a sequence for the debit notes" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_move.py:0 -#, python-format -msgid "Please define a sequence for the refunds" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: code:addons/l10n_co_account_move_discrepancy_response/models/account_move.py:0 -#, python-format -msgid "Please define a sequence on the journal." -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_bank_statement_line__refund_type -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move__refund_type -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_payment__refund_type -msgid "Refund Type" -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,help:l10n_co_account_move_discrepancy_response.field_account_journal__debit_note_sequence_id -msgid "" -"This field contains the information related to the numbering of the debit " -"note entries of this journal." -msgstr "" - -#. module: l10n_co_account_move_discrepancy_response -#: model:ir.model.fields,field_description:l10n_co_account_move_discrepancy_response.field_account_move_discrepancy_response_code__type -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_discrepancy_response.account_move_discrepancy_response_code_view_search -msgid "Type" -msgstr "" diff --git a/l10n_co_account_move_discrepancy_response/models/__init__.py b/l10n_co_account_move_discrepancy_response/models/__init__.py deleted file mode 100644 index d515f61..0000000 --- a/l10n_co_account_move_discrepancy_response/models/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import account_journal -from . import account_move_discrepancy_response_code -from . import account_move diff --git a/l10n_co_account_move_discrepancy_response/models/account_journal.py b/l10n_co_account_move_discrepancy_response/models/account_journal.py deleted file mode 100644 index 41597d4..0000000 --- a/l10n_co_account_move_discrepancy_response/models/account_journal.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import models, api, fields, _ - - -class AccountJournal(models.Model): - _inherit = "account.journal" - - debit_note_sequence = fields.Boolean( - string="Dedicated Debit Note Sequence", - help="Check this box if you don't want to share the same sequence for invoices and debit " - "notes made from this journal", - default=False) - debit_note_sequence_id = fields.Many2one( - comodel_name="ir.sequence", - string="Debit Note Entry Sequence", - help= - "This field contains the information related to the numbering of the debit note " - "entries of this journal.", - copy=False) - - @api.model - def create(self, vals): - if (vals.get('type') in ('sale', 'purchase') - and vals.get('debit_note_sequence') - and not vals.get('debit_note_sequence_id')): - values = { - 'name': _('Debit Note Sequence - ') + vals.get('name'), - 'company_id': vals.get('company_id'), - 'prefix': 'DN' + (vals.get('code') or '')} - vals['debit_note_sequence_id'] = self.create_sequence(values) - - return super(AccountJournal, self).create(vals) - - def write(self, vals): - res = super(AccountJournal, self).write(vals) - - for journal in self.filtered(lambda j: j.type in ('sale', 'purchase')): - if journal.debit_note_sequence and not journal.debit_note_sequence_id: - values = { - 'name': _('Debit Note Sequence - ') + journal.name, - 'company_id': journal.company_id, - 'prefix': 'DN' + (journal.code or '')} - journal.debit_note_sequence_id = self.create_sequence(values) - - return res diff --git a/l10n_co_account_move_discrepancy_response/models/account_move.py b/l10n_co_account_move_discrepancy_response/models/account_move.py deleted file mode 100644 index d943630..0000000 --- a/l10n_co_account_move_discrepancy_response/models/account_move.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models, _ -from odoo.exceptions import UserError - - -class AccountMove(models.Model): - _inherit = "account.move" - - refund_type = fields.Selection( - selection=[('debit', 'Debit Note'), ('credit', 'Credit Note')], - index=True, - string='Refund Type', - tracking=True) - discrepancy_response_code_id = fields.Many2one( - comodel_name='account.move.discrepancy.response.code', - string='Correction concept for Refund Invoice') - - def action_post(self): - msg1 = _('Please define a sequence for the refunds') - msg2 = _('Please define a sequence for the debit notes') - msg3 = _('Please define a sequence on the journal.') - - for move in self: - if move.move_name == '/': - new_name = '/' - - if move.journal_id.sequence_id: - sequence = move.journal_id.sequence_id - - if move.journal_id.refund_sequence and move.refund_type == 'credit': - if not move.journal_id.refund_sequence_id: - raise UserError(msg1) - - sequence = move.journal_id.refund_sequence_id - - if move.journal_id.debit_note_sequence and move.refund_type == 'debit': - if not move.journal_id.debit_note_sequence_id: - raise UserError(msg2) - - sequence = move.journal_id.debit_note_sequence_id - - new_name = sequence.next_by_id() - else: - raise UserError(msg3) - - move.move_name = new_name - - return super(AccountMove, self).action_post() diff --git a/l10n_co_account_move_discrepancy_response/models/account_move_discrepancy_response_code.py b/l10n_co_account_move_discrepancy_response/models/account_move_discrepancy_response_code.py deleted file mode 100644 index a2d4f1e..0000000 --- a/l10n_co_account_move_discrepancy_response/models/account_move_discrepancy_response_code.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models - - -class AccountInvoiceDiscrepancyResponseCode(models.Model): - _name = 'account.move.discrepancy.response.code' - _description = 'Correction concepts for Refund Invoices' - - name = fields.Char(string='Name') - code = fields.Char(string='Code') - type = fields.Selection( - selection=[('credit', 'Credit Note'), ('debit', 'Debit Note')], - string='Type') diff --git a/l10n_co_account_move_discrepancy_response/security/ir.model.access.csv b/l10n_co_account_move_discrepancy_response/security/ir.model.access.csv deleted file mode 100644 index 7c1843a..0000000 --- a/l10n_co_account_move_discrepancy_response/security/ir.model.access.csv +++ /dev/null @@ -1,3 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_account_move_discrepancy_response_code_manager,account.move.discrepancy.response.code.manager,model_account_move_discrepancy_response_code,account.group_account_manager,1,1,1,1 -access_account_move_discrepancy_response_code_users,account.move.discrepancy.response.code.users,model_account_move_discrepancy_response_code,,1,0,0,0 diff --git a/l10n_co_account_move_discrepancy_response/static/description/icon.png b/l10n_co_account_move_discrepancy_response/static/description/icon.png deleted file mode 100644 index 622927838651dc92e35b74bbd4f8013aa17b9fed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 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 diff --git a/l10n_co_account_move_discrepancy_response/views/account_journal_views.xml b/l10n_co_account_move_discrepancy_response/views/account_journal_views.xml deleted file mode 100644 index c4b44a7..0000000 --- a/l10n_co_account_move_discrepancy_response/views/account_journal_views.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - account.journal - - - - - - - - - diff --git a/l10n_co_account_move_discrepancy_response/views/account_move_discrepancy_response_code_views.xml b/l10n_co_account_move_discrepancy_response/views/account_move_discrepancy_response_code_views.xml deleted file mode 100644 index 22c6285..0000000 --- a/l10n_co_account_move_discrepancy_response/views/account_move_discrepancy_response_code_views.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - account.move.discrepancy.response.code - - - - - - - - - - - account.move.discrepancy.response.code - - - - - - - - - - - - - account.move.discrepancy.response.code - -
- - - - - -
-
-
- - - Correction concepts for Refund Invoices - ir.actions.act_window - account.move.discrepancy.response.code - tree,form - - - - - -
diff --git a/l10n_co_account_move_discrepancy_response/views/account_move_views.xml b/l10n_co_account_move_discrepancy_response/views/account_move_views.xml deleted file mode 100644 index 6c2fd8f..0000000 --- a/l10n_co_account_move_discrepancy_response/views/account_move_views.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - account.move - - - - - - - - - diff --git a/l10n_co_account_move_discrepancy_response/wizards/__init__.py b/l10n_co_account_move_discrepancy_response/wizards/__init__.py deleted file mode 100644 index 0fec4f7..0000000 --- a/l10n_co_account_move_discrepancy_response/wizards/__init__.py +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import account_debit_note -from . import account_move_reversal diff --git a/l10n_co_account_move_discrepancy_response/wizards/account_debit_note.py b/l10n_co_account_move_discrepancy_response/wizards/account_debit_note.py deleted file mode 100644 index d7b0fd1..0000000 --- a/l10n_co_account_move_discrepancy_response/wizards/account_debit_note.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import models, fields - - -class AccountDebitNote(models.TransientModel): - _inherit = "account.debit.note" - - discrepancy_response_code_id = fields.Many2one( - comodel_name='account.move.discrepancy.response.code', - string='Correction concept for Refund Invoice') - - def _prepare_default_values(self, move): - values = super(AccountDebitNote, self)._prepare_default_values(move) - values['refund_type'] = 'debit' - values['discrepancy_response_code_id'] = self.discrepancy_response_code_id.id - - return values diff --git a/l10n_co_account_move_discrepancy_response/wizards/account_debit_note_views.xml b/l10n_co_account_move_discrepancy_response/wizards/account_debit_note_views.xml deleted file mode 100644 index a66fe2c..0000000 --- a/l10n_co_account_move_discrepancy_response/wizards/account_debit_note_views.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - account.debit.note - - - - - - - - diff --git a/l10n_co_account_move_discrepancy_response/wizards/account_move_reversal.py b/l10n_co_account_move_discrepancy_response/wizards/account_move_reversal.py deleted file mode 100644 index 026d1e2..0000000 --- a/l10n_co_account_move_discrepancy_response/wizards/account_move_reversal.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import models, fields - - -class AccountMoveReversal(models.TransientModel): - _inherit = "account.move.reversal" - - discrepancy_response_code_id = fields.Many2one( - comodel_name='account.move.discrepancy.response.code', - string='Correction concept for Refund Invoice') - - def _prepare_default_reversal(self, move): - values = super(AccountMoveReversal, self)._prepare_default_reversal(move) - values['refund_type'] = 'credit' - values['discrepancy_response_code_id'] = self.discrepancy_response_code_id.id - - return values diff --git a/l10n_co_account_move_discrepancy_response/wizards/account_move_reversal_views.xml b/l10n_co_account_move_discrepancy_response/wizards/account_move_reversal_views.xml deleted file mode 100644 index 1cdadaa..0000000 --- a/l10n_co_account_move_discrepancy_response/wizards/account_move_reversal_views.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - account.move.reversal - - - - - - - - diff --git a/l10n_co_account_move_payment_mean/README.rst b/l10n_co_account_move_payment_mean/README.rst deleted file mode 100644 index 667914f..0000000 --- a/l10n_co_account_move_payment_mean/README.rst +++ /dev/null @@ -1,34 +0,0 @@ -.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png - :target: https://www.gnu.org/licenses/agpl - :alt: License: AGPL-3 - -======================================================= -Formas y medios de pago para la localizacion Colombiana -======================================================= - -Este módulo tiene las formas y medios de pago identificados por la DIAN para la -localizacion Colombiana, informacion obtenida del anexo tecnico para -facturacion electronica version 1.8, punto 13.3.4. - -- Crea un campo en la factura para definir la forma de pago que tuvo, se creo - una funcion 'onchange' que establece 'Contado' si la fecha de la factura es - igual a la fecha de vencimiento, si no, establece 'Crédito'. - -Known issues / Roadmap -====================== - -Future possible improvement: -Habilitar campo 'payment_mean_code_id' correspondiente al medio de pago, queda -pendiente porque hay que analizar si con este campo en tipo 'Many2one' es -suficiente para suplir el requerimiento o puede ser necesario establecer un -campo One2many ya que la factura podría tener 2 o mas pagos y cada uno podría -ser con un medio de pago diferente, o pensar en una solución mas avanzada que -este relacionada con el pago de las facturas en Odoo. - -Credits -======= - -Contributors ------------- - -* Joan Marín diff --git a/l10n_co_account_move_payment_mean/__init__.py b/l10n_co_account_move_payment_mean/__init__.py deleted file mode 100644 index 9027225..0000000 --- a/l10n_co_account_move_payment_mean/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import models diff --git a/l10n_co_account_move_payment_mean/__manifest__.py b/l10n_co_account_move_payment_mean/__manifest__.py deleted file mode 100644 index b4f9bc5..0000000 --- a/l10n_co_account_move_payment_mean/__manifest__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -{ - "name": "Formas y medios de pago para la localizacion Colombiana", - "summary": "Este módulo tiene las formas y medios de pago identificados " - "por la DIAN para la localizacion Colombiana", - "version": "14.0.1.0.0", - "license": "AGPL-3", - "website": "https://github.com/JoanMarin", - "author": "Joan Marín Github@JoanMarin", - "category": "Localization", - "depends": ["account"], - "data": [ - "security/ir.model.access.csv", - "data/account_payment_mean_data.xml", - "data/account.payment.mean.code.csv", - "views/account_payment_mean_views.xml", - "views/account_payment_mean_code_views.xml", - "views/account_move_views.xml", - ], - "installable": True, -} diff --git a/l10n_co_account_move_payment_mean/data/account.payment.mean.code.csv b/l10n_co_account_move_payment_mean/data/account.payment.mean.code.csv deleted file mode 100644 index 5172127..0000000 --- a/l10n_co_account_move_payment_mean/data/account.payment.mean.code.csv +++ /dev/null @@ -1,79 +0,0 @@ -id,code,name -account_payment_mean_code_001,1,Instrumento no definido -account_payment_mean_code_002,2,Crédito ACH -account_payment_mean_code_003,3,Débito ACH -account_payment_mean_code_004,4,Reversión débito de demanda ACH -account_payment_mean_code_005,5,Reversión crédito de demanda ACH -account_payment_mean_code_006,6,Crédito de demanda ACH -account_payment_mean_code_007,7,Débito de demanda ACH -account_payment_mean_code_008,8,Mantener -account_payment_mean_code_009,9,Clearing Nacional o Regional -account_payment_mean_code_010,10,Efectivo -account_payment_mean_code_011,11,Reversión Crédito Ahorro -account_payment_mean_code_012,12,Reversión Débito Ahorro -account_payment_mean_code_013,13,Crédito Ahorro -account_payment_mean_code_014,14,Débito Ahorro -account_payment_mean_code_015,15,Bookentry Crédito -account_payment_mean_code_016,16,Bookentry Débito -account_payment_mean_code_017,17,Concentración de la demanda en efectivo / Desembolso Crédito (CCD) -account_payment_mean_code_018,18,Concentración de la demanda en efectivo / Desembolso (CCD) débito -account_payment_mean_code_019,19,Crédito Pago negocio corporativo (CTP) -account_payment_mean_code_020,20,Cheque -account_payment_mean_code_021,21,Proyecto bancario -account_payment_mean_code_022,22,Proyecto bancario certificado -account_payment_mean_code_023,23,Cheque bancario -account_payment_mean_code_024,24,Nota cambiaria esperando aceptación -account_payment_mean_code_025,25,Cheque certificado -account_payment_mean_code_026,26,Cheque Local -account_payment_mean_code_027,27,Débito Pago Negocio Corporativo (CTP) -account_payment_mean_code_028,28,Crédito Negocio Intercambio Corporativo (CTX) -account_payment_mean_code_029,29,Débito Negocio Intercambio Corporativo (CTX) -account_payment_mean_code_030,30,Transferencia Crédito -account_payment_mean_code_031,31,Transferencia Débito -account_payment_mean_code_032,32,Concentración Efectivo / Desembolso Crédito plus (CCD+) -account_payment_mean_code_033,33,Concentración Efectivo / Desembolso Débito plus (CCD+) -account_payment_mean_code_034,34,Pago y depósito pre acordado (PPD) -account_payment_mean_code_035,35,Concentración efectivo ahorros / Desembolso Crédito (CCD) -account_payment_mean_code_036,36,Concentración efectivo ahorros / Desembolso Débito (CCD) -account_payment_mean_code_037,37,Pago Negocio Corporativo Ahorros Crédito (CTP) -account_payment_mean_code_038,38,Pago Negocio Corporativo Ahorros Débito (CTP) -account_payment_mean_code_039,39,Crédito Negocio Intercambio Corporativo (CTX) -account_payment_mean_code_040,40,Débito Negocio Intercambio Corporativo (CTX) -account_payment_mean_code_041,41,Concentración efectivo/Desembolso Crédito plus (CCD+) -account_payment_mean_code_042,42,Consignación bancaria -account_payment_mean_code_043,43,Concentración efectivo / Desembolso Débito plus (CCD+) -account_payment_mean_code_044,44,Nota cambiaria -account_payment_mean_code_045,45,Transferencia Crédito Bancario -account_payment_mean_code_046,46,Transferencia Débito Interbancario -account_payment_mean_code_047,47,Transferencia Débito Bancaria -account_payment_mean_code_048,48,Tarjeta Crédito -account_payment_mean_code_049,49,Tarjeta Débito -account_payment_mean_code_050,50,Postgiro -account_payment_mean_code_051,51,Telex estándar bancario francés -account_payment_mean_code_052,52,Pago comercial urgente -account_payment_mean_code_053,53,Pago Tesorería Urgente -account_payment_mean_code_060,60,Nota promisoria -account_payment_mean_code_061,61,Nota promisoria firmada por el acreedor -account_payment_mean_code_062,62,"Nota promisoria firmada por el acreedor, avalada por el banco" -account_payment_mean_code_063,63,"Nota promisoria firmada por el acreedor, avalada por un tercero" -account_payment_mean_code_064,64,Nota promisoria firmada por el banco -account_payment_mean_code_065,65,Nota promisoria firmada por un banco avalada por otro banco -account_payment_mean_code_066,66,Nota promisoria firmada -account_payment_mean_code_067,67,Nota promisoria firmada por un tercero avalada por un banco -account_payment_mean_code_070,70,Retiro de nota por el por el acreedor -account_payment_mean_code_071,71,Bonos -account_payment_mean_code_072,72,Vales -account_payment_mean_code_074,74,Retiro de nota por el por el acreedor sobre un banco -account_payment_mean_code_075,75,"Retiro de nota por el acreedor, avalada por otro banco" -account_payment_mean_code_076,76,"Retiro de nota por el acreedor, sobre un banco avalada por un tercero" -account_payment_mean_code_077,77,Retiro de una nota por el acreedor sobre un tercero -account_payment_mean_code_078,78,Retiro de una nota por el acreedor sobre un tercero tercero avalada por un banco -account_payment_mean_code_091,91,Nota bancaria transferible -account_payment_mean_code_092,92,Cheque local trasferible -account_payment_mean_code_093,93,Giro referenciado -account_payment_mean_code_094,94,Giro urgente -account_payment_mean_code_095,95,Giro formato abierto -account_payment_mean_code_096,96,Método de pago solicitado no usado -account_payment_mean_code_097,97,Clearing entre partners -account_payment_mean_code_098,98,"Cuentas de Ahorro de Tramite Simplificado (CATS)(Nequi, Daviplata, etc)" -account_payment_mean_code_zzz,ZZZ,Acuerdo mutuo diff --git a/l10n_co_account_move_payment_mean/data/account_payment_mean_data.xml b/l10n_co_account_move_payment_mean/data/account_payment_mean_data.xml deleted file mode 100644 index 8fd9ed9..0000000 --- a/l10n_co_account_move_payment_mean/data/account_payment_mean_data.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - Counted - 1 - - - Credit - 2 - - diff --git a/l10n_co_account_move_payment_mean/i18n/es.po b/l10n_co_account_move_payment_mean/i18n/es.po deleted file mode 100644 index 23d99c5..0000000 --- a/l10n_co_account_move_payment_mean/i18n/es.po +++ /dev/null @@ -1,149 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * l10n_co_account_move_payment_mean -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-30 22:29+0000\n" -"PO-Revision-Date: 2021-06-30 22:29+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__code -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__code -msgid "Code" -msgstr "Código" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.ui.menu,name:l10n_co_account_move_payment_mean.l10n_co_account_payment_mean_menu -msgid "Colombian Localization Payments" -msgstr "Pagos de Localización Colombiana" - -#. module: l10n_co_account_move_payment_mean -#: model:account.payment.mean,name:l10n_co_account_move_payment_mean.account_payment_mean_1 -msgid "Counted" -msgstr "Contado" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__create_date -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__create_date -msgid "Created on" -msgstr "Creado el" - -#. module: l10n_co_account_move_payment_mean -#: model:account.payment.mean,name:l10n_co_account_move_payment_mean.account_payment_mean_2 -msgid "Credit" -msgstr "Crédito" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__display_name -msgid "Display Name" -msgstr "Nombre mostrado" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move__id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__id -msgid "ID" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model,name:l10n_co_account_move_payment_mean.model_account_move -msgid "Journal Entry" -msgstr "Asiento contable" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code____last_update -msgid "Last Modified on" -msgstr "Última modificación el" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__write_uid -msgid "Last Updated by" -msgstr "Última actualización por" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__write_date -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__write_date -msgid "Last Updated on" -msgstr "Última actualización el" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_bank_statement_line__payment_mean_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move__payment_mean_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment__payment_mean_code_id -msgid "Mean of Payment" -msgstr "Medio de Pago" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__name -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__name -msgid "Name" -msgstr "Nombre" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.actions.act_window,name:l10n_co_account_move_payment_mean.account_payment_mean_code_action -#: model:ir.model,name:l10n_co_account_move_payment_mean.model_account_payment_mean_code -#: model:ir.ui.menu,name:l10n_co_account_move_payment_mean.account_payment_mean_code_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_code_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_code_view_tree -msgid "Payment Means" -msgstr "Medios de Pago" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_bank_statement_line__payment_mean_id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move__payment_mean_id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment__payment_mean_id -msgid "Payment Method" -msgstr "Método de pago" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.actions.act_window,name:l10n_co_account_move_payment_mean.account_payment_mean_action -#: model:ir.model,name:l10n_co_account_move_payment_mean.model_account_payment_mean -#: model:ir.ui.menu,name:l10n_co_account_move_payment_mean.account_payment_mean_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_view_tree -msgid "Payment Methods" -msgstr "Formas de Pago" - -#. module: l10n_co_account_move_payment_mean -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_code_view_search -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_view_search -msgid "Search" -msgstr "Buscar" - -#. module: l10n_co_account_move_payment_mean -#: code:addons/l10n_co_account_move_payment_mean/models/account_payment_mean.py:0 -#, python-format -msgid "The code must be unique" -msgstr "El código debe ser único" - -#. module: l10n_co_account_move_payment_mean -#: code:addons/l10n_co_account_move_payment_mean/models/account_payment_mean_code.py:0 -#, python-format -msgid "The combination of code and name must be unique" -msgstr "La combinación de código y nombre debe ser única" - -#. module: l10n_co_account_move_payment_mean -#: code:addons/l10n_co_account_move_payment_mean/models/account_payment_mean.py:0 -#, python-format -msgid "The name must be unique" -msgstr "El nombre debe ser único" diff --git a/l10n_co_account_move_payment_mean/i18n/es_CO.po b/l10n_co_account_move_payment_mean/i18n/es_CO.po deleted file mode 100644 index 23d99c5..0000000 --- a/l10n_co_account_move_payment_mean/i18n/es_CO.po +++ /dev/null @@ -1,149 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * l10n_co_account_move_payment_mean -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-30 22:29+0000\n" -"PO-Revision-Date: 2021-06-30 22:29+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__code -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__code -msgid "Code" -msgstr "Código" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.ui.menu,name:l10n_co_account_move_payment_mean.l10n_co_account_payment_mean_menu -msgid "Colombian Localization Payments" -msgstr "Pagos de Localización Colombiana" - -#. module: l10n_co_account_move_payment_mean -#: model:account.payment.mean,name:l10n_co_account_move_payment_mean.account_payment_mean_1 -msgid "Counted" -msgstr "Contado" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__create_uid -msgid "Created by" -msgstr "Creado por" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__create_date -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__create_date -msgid "Created on" -msgstr "Creado el" - -#. module: l10n_co_account_move_payment_mean -#: model:account.payment.mean,name:l10n_co_account_move_payment_mean.account_payment_mean_2 -msgid "Credit" -msgstr "Crédito" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__display_name -msgid "Display Name" -msgstr "Nombre mostrado" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move__id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__id -msgid "ID" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model,name:l10n_co_account_move_payment_mean.model_account_move -msgid "Journal Entry" -msgstr "Asiento contable" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code____last_update -msgid "Last Modified on" -msgstr "Última modificación el" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__write_uid -msgid "Last Updated by" -msgstr "Última actualización por" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__write_date -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__write_date -msgid "Last Updated on" -msgstr "Última actualización el" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_bank_statement_line__payment_mean_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move__payment_mean_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment__payment_mean_code_id -msgid "Mean of Payment" -msgstr "Medio de Pago" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__name -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__name -msgid "Name" -msgstr "Nombre" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.actions.act_window,name:l10n_co_account_move_payment_mean.account_payment_mean_code_action -#: model:ir.model,name:l10n_co_account_move_payment_mean.model_account_payment_mean_code -#: model:ir.ui.menu,name:l10n_co_account_move_payment_mean.account_payment_mean_code_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_code_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_code_view_tree -msgid "Payment Means" -msgstr "Medios de Pago" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_bank_statement_line__payment_mean_id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move__payment_mean_id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment__payment_mean_id -msgid "Payment Method" -msgstr "Método de pago" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.actions.act_window,name:l10n_co_account_move_payment_mean.account_payment_mean_action -#: model:ir.model,name:l10n_co_account_move_payment_mean.model_account_payment_mean -#: model:ir.ui.menu,name:l10n_co_account_move_payment_mean.account_payment_mean_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_view_tree -msgid "Payment Methods" -msgstr "Formas de Pago" - -#. module: l10n_co_account_move_payment_mean -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_code_view_search -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_view_search -msgid "Search" -msgstr "Buscar" - -#. module: l10n_co_account_move_payment_mean -#: code:addons/l10n_co_account_move_payment_mean/models/account_payment_mean.py:0 -#, python-format -msgid "The code must be unique" -msgstr "El código debe ser único" - -#. module: l10n_co_account_move_payment_mean -#: code:addons/l10n_co_account_move_payment_mean/models/account_payment_mean_code.py:0 -#, python-format -msgid "The combination of code and name must be unique" -msgstr "La combinación de código y nombre debe ser única" - -#. module: l10n_co_account_move_payment_mean -#: code:addons/l10n_co_account_move_payment_mean/models/account_payment_mean.py:0 -#, python-format -msgid "The name must be unique" -msgstr "El nombre debe ser único" diff --git a/l10n_co_account_move_payment_mean/i18n/l10n_co_account_move_payment_mean.pot b/l10n_co_account_move_payment_mean/i18n/l10n_co_account_move_payment_mean.pot deleted file mode 100644 index 1191b27..0000000 --- a/l10n_co_account_move_payment_mean/i18n/l10n_co_account_move_payment_mean.pot +++ /dev/null @@ -1,149 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * l10n_co_account_move_payment_mean -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-06-30 22:29+0000\n" -"PO-Revision-Date: 2021-06-30 22:29+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__code -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__code -msgid "Code" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.ui.menu,name:l10n_co_account_move_payment_mean.l10n_co_account_payment_mean_menu -msgid "Colombian Localization Payments" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:account.payment.mean,name:l10n_co_account_move_payment_mean.account_payment_mean_1 -msgid "Counted" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__create_uid -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__create_uid -msgid "Created by" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__create_date -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__create_date -msgid "Created on" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:account.payment.mean,name:l10n_co_account_move_payment_mean.account_payment_mean_2 -msgid "Credit" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__display_name -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__display_name -msgid "Display Name" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move__id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__id -msgid "ID" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model,name:l10n_co_account_move_payment_mean.model_account_move -msgid "Journal Entry" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean____last_update -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code____last_update -msgid "Last Modified on" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__write_uid -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__write_date -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__write_date -msgid "Last Updated on" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_bank_statement_line__payment_mean_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move__payment_mean_code_id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment__payment_mean_code_id -msgid "Mean of Payment" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean__name -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment_mean_code__name -msgid "Name" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.actions.act_window,name:l10n_co_account_move_payment_mean.account_payment_mean_code_action -#: model:ir.model,name:l10n_co_account_move_payment_mean.model_account_payment_mean_code -#: model:ir.ui.menu,name:l10n_co_account_move_payment_mean.account_payment_mean_code_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_code_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_code_view_tree -msgid "Payment Means" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_bank_statement_line__payment_mean_id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_move__payment_mean_id -#: model:ir.model.fields,field_description:l10n_co_account_move_payment_mean.field_account_payment__payment_mean_id -msgid "Payment Method" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model:ir.actions.act_window,name:l10n_co_account_move_payment_mean.account_payment_mean_action -#: model:ir.model,name:l10n_co_account_move_payment_mean.model_account_payment_mean -#: model:ir.ui.menu,name:l10n_co_account_move_payment_mean.account_payment_mean_menu -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_view_form -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_view_tree -msgid "Payment Methods" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_code_view_search -#: model_terms:ir.ui.view,arch_db:l10n_co_account_move_payment_mean.account_payment_mean_view_search -msgid "Search" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: code:addons/l10n_co_account_move_payment_mean/models/account_payment_mean.py:0 -#, python-format -msgid "The code must be unique" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: code:addons/l10n_co_account_move_payment_mean/models/account_payment_mean_code.py:0 -#, python-format -msgid "The combination of code and name must be unique" -msgstr "" - -#. module: l10n_co_account_move_payment_mean -#: code:addons/l10n_co_account_move_payment_mean/models/account_payment_mean.py:0 -#, python-format -msgid "The name must be unique" -msgstr "" diff --git a/l10n_co_account_move_payment_mean/models/__init__.py b/l10n_co_account_move_payment_mean/models/__init__.py deleted file mode 100644 index acdb316..0000000 --- a/l10n_co_account_move_payment_mean/models/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import account_payment_mean -from . import account_payment_mean_code -from . import account_move diff --git a/l10n_co_account_move_payment_mean/models/account_move.py b/l10n_co_account_move_payment_mean/models/account_move.py deleted file mode 100644 index a9bd3a8..0000000 --- a/l10n_co_account_move_payment_mean/models/account_move.py +++ /dev/null @@ -1,68 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import api, fields, models - - -class AccountMove(models.Model): - _inherit = "account.move" - - @api.depends('invoice_date', 'invoice_date_due', 'invoice_payment_term_id') - def _get_payment_mean_id(self): - for move in self: - ir_model_data_obj = self.env['ir.model.data'] - id_payment_term = ir_model_data_obj.get_object_reference( - 'account', 'account_payment_term_immediate')[1] - payment_term_immediate = self.env['account.payment.term'].browse( - id_payment_term) - - if not move.invoice_date: - id_payment_mean = False - elif (not move.invoice_payment_term_id - and move.invoice_date == move.invoice_date_due): - id_payment_mean = ir_model_data_obj.get_object_reference( - 'l10n_co_account_move_payment_mean', 'account_payment_mean_1')[1] - elif move.invoice_payment_term_id == payment_term_immediate: - id_payment_mean = ir_model_data_obj.get_object_reference( - 'l10n_co_account_move_payment_mean', 'account_payment_mean_1')[1] - else: - id_payment_mean = ir_model_data_obj.get_object_reference( - 'l10n_co_account_move_payment_mean', 'account_payment_mean_2')[1] - - move.payment_mean_id = self.env['account.payment.mean'].browse( - id_payment_mean) - - @api.onchange('invoice_date', 'invoice_date_due', 'invoice_payment_term_id') - def _onchange_invoice_dates_payment_term(self): - if not self.payment_mean_code_id: - self.payment_mean_code_id = self.env['account.payment.mean.code'].search( - [('code', '=', '1')]).id - - payment_mean_id = fields.Many2one( - comodel_name='account.payment.mean', - compute="_get_payment_mean_id", - string='Payment Method', - store=False) - payment_mean_code_id = fields.Many2one( - comodel_name='account.payment.mean.code', - string='Mean of Payment', - copy=False) - - @api.model - def create(self, vals): - res = super(AccountMove, self).create(vals) - - for invoice in res: - invoice._onchange_invoice_dates_payment_term() - - return res - - def write(self, vals): - res = super(AccountMove, self).write(vals) - - if vals.get('invoice_date'): - for invoice in self: - invoice._onchange_invoice_dates_payment_term() - - return res diff --git a/l10n_co_account_move_payment_mean/models/account_payment_mean.py b/l10n_co_account_move_payment_mean/models/account_payment_mean.py deleted file mode 100644 index 5e6cbe0..0000000 --- a/l10n_co_account_move_payment_mean/models/account_payment_mean.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models, _ - - -class AccountPaymentMean(models.Model): - _name = 'account.payment.mean' - _description = 'Payment Methods' - - name = fields.Char(string='Name', required=True, translate=True) - code = fields.Char(string='Code', required=True) - - _sql_constraints = [ - ('name_unique', 'unique(name)', _("The name must be unique")), - ('code_unique', 'unique(code)', _("The code must be unique"))] diff --git a/l10n_co_account_move_payment_mean/models/account_payment_mean_code.py b/l10n_co_account_move_payment_mean/models/account_payment_mean_code.py deleted file mode 100644 index 3abf6d3..0000000 --- a/l10n_co_account_move_payment_mean/models/account_payment_mean_code.py +++ /dev/null @@ -1,17 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models, _ - - -class AccountPaymentMeanCode(models.Model): - _name = 'account.payment.mean.code' - _description = 'Payment Means' - - name = fields.Char(string='Name', required=True) - code = fields.Char(string='Code', required=True) - - _sql_constraints = [ - ('code_and_name_unique', 'unique(code, name)', - _("The combination of code and name must be unique"))] diff --git a/l10n_co_account_move_payment_mean/security/ir.model.access.csv b/l10n_co_account_move_payment_mean/security/ir.model.access.csv deleted file mode 100644 index c6f2fdb..0000000 --- a/l10n_co_account_move_payment_mean/security/ir.model.access.csv +++ /dev/null @@ -1,5 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_account_payment_mean_manager,account_payment_mean_manager,model_account_payment_mean,account.group_account_manager,1,1,1,1 -access_account_payment_mean_users,account_payment_mean_users,model_account_payment_mean,,1,0,0,0 -access_account_payment_mean_code_manager,account_payment_mean_code_manager,model_account_payment_mean_code,account.group_account_manager,1,1,1,1 -access_account_payment_mean_code_users,account_payment_mean_code_users,model_account_payment_mean_code,,1,0,0,0 diff --git a/l10n_co_account_move_payment_mean/static/description/icon.png b/l10n_co_account_move_payment_mean/static/description/icon.png deleted file mode 100644 index 622927838651dc92e35b74bbd4f8013aa17b9fed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLDI#^NA%Cx&(BWL^R}iUB?$u0WcB zA&r6I3 - - - account.move - - - - - - - - - diff --git a/l10n_co_account_move_payment_mean/views/account_payment_mean_code_views.xml b/l10n_co_account_move_payment_mean/views/account_payment_mean_code_views.xml deleted file mode 100644 index d6d1f4b..0000000 --- a/l10n_co_account_move_payment_mean/views/account_payment_mean_code_views.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - account.payment.mean.code - - - - - - - - - - account.payment.mean.code - - - - - - - - - - account.payment.mean.code - -
- - - - -
-
-
- - - Payment Means - ir.actions.act_window - account.payment.mean.code - tree,form - - - - - -
diff --git a/l10n_co_account_move_payment_mean/views/account_payment_mean_views.xml b/l10n_co_account_move_payment_mean/views/account_payment_mean_views.xml deleted file mode 100644 index 4f72de4..0000000 --- a/l10n_co_account_move_payment_mean/views/account_payment_mean_views.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - account.payment.mean - - - - - - - - - - account.payment.mean - - - - - - - - - - account.payment.mean - -
- - - - -
-
-
- - - Payment Methods - ir.actions.act_window - account.payment.mean - tree,form - - - - - - - -
diff --git a/l10n_co_account_tax_group_type/README.rst b/l10n_co_account_tax_group_type/README.rst deleted file mode 100644 index 7cda524..0000000 --- a/l10n_co_account_tax_group_type/README.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png - :target: https://www.gnu.org/licenses/agpl - :alt: License: AGPL-3 - -========================= -Colombian Tax Group Types -========================= - -Este módulo tiene los Tributos (tipos de impuesto) identificados por la DIAN -para la localizacion Colombiana, informacion obtenida del anexo tecnico para -facturacion electronica version 1.8, punto 13.2.2. - -This module has the Tributes (types of tax) identified by the DIAN for the -Colombian localization, information obtained from the technical annex for -e-invoicing version 1.8, point 13.2.2. - - -Credits -======= - -Contributors ------------- - -* Joan Marín diff --git a/l10n_co_account_tax_group_type/__init__.py b/l10n_co_account_tax_group_type/__init__.py deleted file mode 100644 index 0414ac6..0000000 --- a/l10n_co_account_tax_group_type/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/l10n_co_account_tax_group_type/__manifest__.py b/l10n_co_account_tax_group_type/__manifest__.py deleted file mode 100644 index c74b6c0..0000000 --- a/l10n_co_account_tax_group_type/__manifest__.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright 2021 Joan Marín -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -{ - "name": "Colombian Tax Group Types", - "summary": "Colombian Tax Group Types", - "version": "14.0.1.0.0", - "license": "AGPL-3", - "website": "https://github.com/JoanMarin", - "author": "Joan Marín Github@JoanMarin", - "category": "Localization", - "depends": ["account_tax_group_type"], - "data": ["data/account_tax_group_type_data.xml"], - "installable": True, -} diff --git a/l10n_co_account_tax_group_type/data/account_tax_group_type_data.xml b/l10n_co_account_tax_group_type/data/account_tax_group_type_data.xml deleted file mode 100644 index 1a2966e..0000000 --- a/l10n_co_account_tax_group_type/data/account_tax_group_type_data.xml +++ /dev/null @@ -1,105 +0,0 @@ - - - - 01 - IVA - tax - Impuesto sobre la Ventas - - - 02 - IC - tax - Impuesto al Consumo Departamental Nominal - - - 03 - ICA - tax - Impuesto de Industria, Comercio y Aviso - - - 04 - INC - tax - Impuesto Nacional al Consumo - - - 05 - ReteIVA - withholding_tax - Retención sobre el IVA - - - 06 - ReteRenta - withholding_tax - Retención sobre Renta - - - 07 - ReteICA - withholding_tax - Retención sobre el ICA - - - 08 - IC Porcentual - tax - Impuesto al Consumo Departamental Porcentual - - - 20 - FtoHorticultura - tax - Cuota de Fomento Hortifrutícula - - - 21 - Timbre - tax - Impuesto de Timbre - - - 22 - INC Bolsas - tax - Impuesto Nacional al Consumo de Bolsa Plástica - - - 23 - INCarbono - tax - Impuesto Nacional del Carbono - - - 24 - INCombustibles - tax - Impuesto Nacional a los Combustibles - - - 25 - Sobretasa Combustibles - tax - Sobretasa a los combustibles - - - 26 - Sordicom - tax - Contribución minoristas (Combustibles) - - - 30 - IC Datos - tax - Impuesto al Consumo de Datos - - - ZZ - Nombre de la figura tributaria - tax - Otros tributos, tasas, contribuciones, y similares - - diff --git a/l10n_co_account_tax_group_type/i18n/es.po b/l10n_co_account_tax_group_type/i18n/es.po deleted file mode 100644 index 781a35e..0000000 --- a/l10n_co_account_tax_group_type/i18n/es.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-20 13:59+0000\n" -"PO-Revision-Date: 2021-08-20 13:59+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/l10n_co_account_tax_group_type/i18n/es_CO.po b/l10n_co_account_tax_group_type/i18n/es_CO.po deleted file mode 100644 index 781a35e..0000000 --- a/l10n_co_account_tax_group_type/i18n/es_CO.po +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-20 13:59+0000\n" -"PO-Revision-Date: 2021-08-20 13:59+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/l10n_co_account_tax_group_type/i18n/l10n_co_account_tax_group_type.pot b/l10n_co_account_tax_group_type/i18n/l10n_co_account_tax_group_type.pot deleted file mode 100644 index 781a35e..0000000 --- a/l10n_co_account_tax_group_type/i18n/l10n_co_account_tax_group_type.pot +++ /dev/null @@ -1,15 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-08-20 13:59+0000\n" -"PO-Revision-Date: 2021-08-20 13:59+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" diff --git a/l10n_co_account_tax_group_type/static/description/icon.png b/l10n_co_account_tax_group_type/static/description/icon.png deleted file mode 100644 index 622927838651dc92e35b74bbd4f8013aa17b9fed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?I3?vN&YJLDI#^NA%Cx&(BWL^R}iUB?$u0WcB zA&r6I3