diff --git a/l10n_ar_sale/__manifest__.py b/l10n_ar_sale/__manifest__.py index cca6b731..515cbbe9 100644 --- a/l10n_ar_sale/__manifest__.py +++ b/l10n_ar_sale/__manifest__.py @@ -1,6 +1,6 @@ { 'name': 'Argentinian Sale Total Fields', - 'version': "17.0.1.1.0", + 'version': "17.0.1.2.0", 'category': 'Localization/Argentina', 'sequence': 14, 'author': 'ADHOC SA', diff --git a/l10n_ar_sale/models/sale_order.py b/l10n_ar_sale/models/sale_order.py index 0559e8f4..19a8bedb 100644 --- a/l10n_ar_sale/models/sale_order.py +++ b/l10n_ar_sale/models/sale_order.py @@ -53,16 +53,38 @@ def _get_sale_checkbook(self): ) @api.model_create_multi - def create(self, vals): - for val in vals: - if self.env.user.has_group('l10n_ar_sale.use_sale_checkbook') and \ - val.get('name', _('New')) == _('New') and \ - val.get('sale_checkbook_id'): - sale_checkbook = self.env['sale.checkbook'].browse( - val.get('sale_checkbook_id')) - val['name'] = sale_checkbook.sequence_id and\ - sale_checkbook.sequence_id._next() or _('New') - return super(SaleOrder, self).create(vals) + def create(self, vals_list): + for value in vals_list: + if self.env.user.has_group('l10n_ar_sale.use_sale_checkbook') and value.get("sale_checkbook_id"): + sale_checkbook = self.env["sale.checkbook"].browse(value["sale_checkbook_id"]) + if sale_checkbook.sequence_id: + value["name"] = sale_checkbook.sequence_id.next_by_id() or _('New') + return super(SaleOrder, self).create(vals_list) + + @api.onchange('partner_id', 'sale_checkbook_id') + def set_order_sequence(self): + """ + Este metodo muestra en el momento de crear la OV la secuencia del talonario + """ + if self.env.user.has_group('l10n_ar_sale.use_sale_checkbook') and self.sale_checkbook_id: + number_next = self.sale_checkbook_id.sequence_id.number_next_actual + self.name = self.sale_checkbook_id.sequence_id.get_next_char(number_next) + + def write(self, vals): + """ + Un talonario de ventas podrĂ­a tener una secuencia de orden diferente, por lo que podrĂ­amos + necesitar cambiarlo en consecuencia + """ + if self.env.user.has_group('l10n_ar_sale.use_sale_checkbook') and self.sale_checkbook_id: + sale_checkbook = self.sale_checkbook_id + if sale_checkbook.sequence_id: + for record in self: + if record.state in {"draft", "sent"}: + number_next = sale_checkbook.sequence_id.number_next_actual + new_vals = vals.copy() + new_vals["name"] = sale_checkbook.sequence_id.get_next_char(number_next) or _('New') + return super(SaleOrder, record).write(new_vals) + return super(SaleOrder, self).write(vals) def _compute_tax_totals(self): """ Mandamos en contexto el invoice_date para calculo de impuesto con partner aliquot diff --git a/l10n_ar_sale/views/sale_view.xml b/l10n_ar_sale/views/sale_view.xml index 6fb9df65..31db1c10 100644 --- a/l10n_ar_sale/views/sale_view.xml +++ b/l10n_ar_sale/views/sale_view.xml @@ -17,7 +17,7 @@ - +