From d283938e75b425e2a13f646b302a97bf564fff88 Mon Sep 17 00:00:00 2001 From: Katherine Zaoral Date: Tue, 31 Jan 2023 18:07:14 -0300 Subject: [PATCH 1/2] [IMP] l10n_uy_reports: F2181 show error rejected inv The user need to check that all the posted invices in Odoo that want to report should be also accepted by DGI. We can only report info related to invoices that has been accepted. If they have been rejected they need to be processed by the user before generating this file. --- l10n_uy_reports/wizards/form_report_wiz.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/l10n_uy_reports/wizards/form_report_wiz.py b/l10n_uy_reports/wizards/form_report_wiz.py index 53e94ab2..fbef0bcc 100644 --- a/l10n_uy_reports/wizards/form_report_wiz.py +++ b/l10n_uy_reports/wizards/form_report_wiz.py @@ -48,18 +48,30 @@ def _get_invoices(self): * Solo debemos tomar en cuenta los cfe que tengan un partner con numero de identificacion, los que no no tenemos que tomarlos en cuenta ni enviar nada. - * Solo tomar en cuenta los aceptados, el resto no """ self.ensure_one() domain = [ ('company_id', '=', self.company_id.id), ('state', '=', 'posted'), - '|', ('l10n_uy_cfe_state', 'in', ['accepted']), ('move_type', 'like', 'in_'), ('date', '>=', self.date_from), ('date', '<', self.date_to), ('partner_id.vat', '!=', False), ('l10n_latam_document_type_id.code', '!=', '0'), ('l10n_latam_document_type_id.code', '!=', False) ] res = self.env['account.move'].search(domain, order='invoice_date asc, name asc, id asc') + + # Solo tomar en cuenta los comprobantes aceptados por DGI, si hay comprobantes que estan en estado posteado en + # Odoo y que estan en estado DGI rechazado o cancelado no debemos informarlos en el formulario, solo debemos + # informar aquellos cuyo estado haya sido aceptado por DGI. Le avisamos al cliente con un warning asi pueda + # revisar y aplicar las acciones necesarias sobre esos comprobantes. + not_accepted = res.filtered(lambda x: x.l10n_uy_cfe_state != 'accepted') + if not_accepted: + raise UserError(_( + 'No se puede generar el formulario ya que tiene facturas validadas en Odoo que no estan aceptadas por' + 'DGI') + '.\n -' + '\n - '.join(not_accepted.mapped('display_name'))) + + # TODO KZ pending revision de lado de producto: aca tenemos que ver si tambien tomamos en cuenta o no los + # comprobantes aceptados/rechazados comercialmente por el receptor del documento. + return res def _search_tax(self, tax_name, tax_type): From 6482c604cf73b8599105f4a6c411a9e7397fb7f9 Mon Sep 17 00:00:00 2001 From: Katherine Zaoral Date: Wed, 22 Feb 2023 13:24:16 -0300 Subject: [PATCH 2/2] [IMP] l10n_uy_edi: pre process errors Show message error "Debe indicar un tipo de documento Uruguayo para poder facturar a este cliente" not only for e-factura document, but for all generated documents " --- l10n_uy_edi/models/l10n_uy_cfe.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/l10n_uy_edi/models/l10n_uy_cfe.py b/l10n_uy_edi/models/l10n_uy_cfe.py index 909f0e42..63015710 100644 --- a/l10n_uy_edi/models/l10n_uy_cfe.py +++ b/l10n_uy_edi/models/l10n_uy_cfe.py @@ -333,8 +333,9 @@ def _l10n_uy_get_cfe_receptor(self): if receptor_required: if not self.partner_id.l10n_latam_identification_type_id and not self.partner_id.l10n_latam_identification_type_id.l10n_uy_dgi_code: raise UserError(_('The partner of the CFE need to have a Uruguayan Identification Type')) - if tipo_doc == 0: - raise UserError(_('Debe indicar un tipo de documento Uruguayo para poder facturar a este cliente')) + + if tipo_doc == 0: + raise UserError(_('Debe indicar un tipo de documento Uruguayo para poder facturar a este cliente')) if cond_e_fact_expo or cond_e_fact or (cond_e_ticket and receptor_required): if not all([self.partner_id.street, self.partner_id.city, self.partner_id.state_id, self.partner_id.country_id, self.partner_id.vat]):