|
1 | 1 | import datetime |
2 | 2 | import re |
3 | 3 |
|
4 | | -from odoo import fields, models |
| 4 | +from odoo import api, fields, models |
5 | 5 |
|
6 | 6 | try: |
7 | 7 | from pyafipws.iibb import IIBB |
@@ -43,6 +43,28 @@ class StockPicking(models.Model): |
43 | 43 | compute="_compute_l10n_ar_afip_barcode", |
44 | 44 | string="AFIP Barcode", |
45 | 45 | ) |
| 46 | + l10n_ar_delivery_guide_number = fields.Char( |
| 47 | + # lo hacemos editable para facturas de proveedor y tmb para que este disponible en acciones masivas, importaciones y demás |
| 48 | + readonly=False, |
| 49 | + help='Número o lista de números de remitos separadas por ",". Por ejempplo:\n' |
| 50 | + "* 0001-00000001\n" |
| 51 | + "* 0001-00000001,0001-00000002", |
| 52 | + ) |
| 53 | + |
| 54 | + @api.onchange("l10n_ar_delivery_guide_number") |
| 55 | + def _format_document_number(self): |
| 56 | + if self.l10n_ar_delivery_guide_number: |
| 57 | + if "," in self.l10n_ar_delivery_guide_number: |
| 58 | + docs = self.l10n_ar_delivery_guide_number.split(",") |
| 59 | + else: |
| 60 | + docs = [self.l10n_ar_delivery_guide_number] |
| 61 | + l10n_ar_delivery_guide_numbers = [] |
| 62 | + for doc in docs: |
| 63 | + l10n_ar_delivery_guide_numbers.append(self.env.ref("l10n_ar.dc_r_r")._format_document_number(doc)) |
| 64 | + self.l10n_ar_delivery_guide_number = ",".join(l10n_ar_delivery_guide_numbers) |
| 65 | + # # if |
| 66 | + # self.l10n_ar_delivery_guide_number = self.env.ref('l10n_ar.dc_r_r')._format_document_number( |
| 67 | + # self.l10n_ar_delivery_guide_number) |
46 | 68 |
|
47 | 69 | def _get_name_delivery_report(self, report_xml_id): |
48 | 70 | """Method similar to the '_get_name_invoice_report' of l10n_latam_invoice_document |
@@ -451,6 +473,12 @@ def do_pyafipws_presentar_remito( |
451 | 473 | return True |
452 | 474 |
|
453 | 475 | def _action_done(self): |
| 476 | + # asignamos nro antes de validar para que el reporte que salga al enviar por correo (_send_confirmation_email) |
| 477 | + # sea con look y nro argentino |
| 478 | + # TODO revisar si alguien lo usa y sacar este contexto |
| 479 | + if not self._context.get("do_not_assign_numbers", False): |
| 480 | + for picking in self.filtered("picking_type_id.auto_assign_delivery_guide"): |
| 481 | + picking.l10n_ar_action_create_delivery_guide() |
454 | 482 | res = super()._action_done() |
455 | 483 | for rec in self.filtered(lambda x: x.picking_type_code == "incoming" and x.dispatch_number): |
456 | 484 | rec.move_line_ids.filtered(lambda l: l.lot_id and not l.lot_id.dispatch_number).mapped("lot_id").write( |
|
0 commit comments