Allow duplicate on another sale.

This commit refs #20872
This commit is contained in:
Sergio Morillo 2021-11-24 21:52:28 +01:00
parent 9ec5f6d70f
commit 89fcc0be2f
3 changed files with 29 additions and 15 deletions

View File

@ -96,4 +96,8 @@ msgstr "Mover"
msgctxt "field:sale.line.quick_action.move,sale:"
msgid "Sale"
msgstr "Venta"
msgctxt "field:sale.line.quick_action.duplicate,sale:"
msgid "Sale"
msgstr "Venta"

36
sale.py
View File

@ -136,10 +136,8 @@ class SaleLineQuickActionDuplicate(ModelView):
__name__ = 'sale.line.quick_action.duplicate'
copies = fields.Integer('Copies', required=True)
@classmethod
def default_copies(cls):
return 1
sale = fields.Many2One('sale.sale', 'Sale', required=True,
domain=[('state', '=', 'draft')])
class SaleLineQuickAction(Wizard):
@ -192,11 +190,8 @@ class SaleLineQuickAction(Wizard):
}
def transition_do_duplicate(self):
pool = Pool()
SaleLine = pool.get('sale.line')
records = SaleLine.browse(Transaction().context['active_ids'])
SaleLine.copy(records * self.duplicate.copies)
self._create_lines(self.duplicate.sale,
copies=self.duplicate.copies)
return 'end'
def default_split(self, fields):
@ -223,12 +218,25 @@ class SaleLineQuickAction(Wizard):
def _get_split_values(self):
return {}
def transition_do_move(self):
def transition_do_move(self, copies=1, delete_lines=True):
self._create_lines(self.move.sale, move=True)
return 'end'
def _create_lines(self, sale, copies=1, move=False):
pool = Pool()
SaleLine = pool.get('sale.line')
sale_lines = SaleLine.browse(Transaction().context['active_ids'])
SaleLine.copy(sale_lines, default={
'sale': self.move.sale.id
SaleLine.copy(sale_lines * copies, default={
'sale': sale.id
})
SaleLine.delete(sale_lines)
return 'end'
if move:
SaleLine.delete(sale_lines)
def default_duplicate(self, fields):
pool = Pool()
SaleLine = pool.get('sale.line')
sale_line = SaleLine(Transaction().context['active_id'])
return {
'copies': 1,
'sale': sale_line.sale.id
}

View File

@ -2,7 +2,9 @@
<!-- The COPYRIGHT file at the top level of this repository contains the full
copyright notices and license terms. -->
<form>
<form col="2">
<label name="sale"/>
<field name="sale"/>
<label name="copies"/>
<field name="copies"/>
</form>