mirror of
https://github.com/NaN-tic/trytond-sale_product_package.git
synced 2023-12-14 03:03:09 +01:00
parent
f2bb4eb182
commit
d2e3924418
|
@ -8,6 +8,7 @@ from . import sale
|
|||
def register():
|
||||
Pool.register(
|
||||
product.Package,
|
||||
sale.Sale,
|
||||
sale.SaleLine,
|
||||
module='sale_product_package', type_='model')
|
||||
Pool.register(
|
||||
|
|
20
locale/ca.po
20
locale/ca.po
|
@ -18,12 +18,6 @@ msgctxt "field:sale.line,product_template:"
|
|||
msgid "Product's template"
|
||||
msgstr "Plantilla de producte"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_package_null"
|
||||
msgid "You can not create a package because there are sale lines that already "
|
||||
"use the product without packages."
|
||||
msgstr "No pot crear paquets perque ja hi han línies de venta que ja utilitzen "
|
||||
"aquest producte sense paquets."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_package_quantity"
|
||||
msgid ""
|
||||
"The quantity \"%(qty)s\" of product \"%(product)s\" is not a multiple of "
|
||||
|
@ -31,3 +25,17 @@ msgid ""
|
|||
msgstr ""
|
||||
"La quantitat \"%(qty)s\" del producte \"%(product)s\" no és un múltiple de "
|
||||
"la quantitat \"%(package_qty)s\" del seu paquet \"%(package)s\"."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_has_package_required"
|
||||
msgid ""
|
||||
"You can not confirm because some lines has not product package and is "
|
||||
"required."
|
||||
msgstr ""
|
||||
"No pot confirmar perquè algunes linies no disposa de paquets de producte "
|
||||
"i es requerit."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_package_null"
|
||||
msgid "You can not create a package because there are sale lines that already "
|
||||
"use the product without packages."
|
||||
msgstr "No pot crear paquets perquè ja hi han línies de venta que ja utilitzen "
|
||||
"aquest producte sense paquets."
|
||||
|
|
22
locale/es.po
22
locale/es.po
|
@ -18,12 +18,6 @@ msgctxt "field:sale.line,product_template:"
|
|||
msgid "Product's template"
|
||||
msgstr "Plantilla de producto"
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_package_null"
|
||||
msgid "You can not create a package because there are sale lines that already "
|
||||
"use the product without packages."
|
||||
msgstr "No puede crear paquetes porque hay líneas de venta que ya usan este "
|
||||
"producto sin paquetes."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_package_quantity"
|
||||
msgid ""
|
||||
"The quantity \"%(qty)s\" of product \"%(product)s\" is not a multiple of "
|
||||
|
@ -31,3 +25,19 @@ msgid ""
|
|||
msgstr ""
|
||||
"La cantidad \"%(qty)s\" del producto \"%(product)s\" no es un múltiplo de la"
|
||||
" cantidad \"%(package_qty)s\" de su paquete \"%(package)s\"."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_has_package_required"
|
||||
msgid ""
|
||||
"You can not confirm because some lines has not product package and is "
|
||||
"required."
|
||||
msgstr ""
|
||||
"No puede confirmar porque algunas líneas no dispone de paquetes de producto "
|
||||
"y es requerido."
|
||||
|
||||
msgctxt "model:ir.message,text:msg_product_package_null"
|
||||
msgid ""
|
||||
"You can not create a package because there are sale lines that already use "
|
||||
"the product without packages."
|
||||
msgstr ""
|
||||
"No puede crear paquetes porque hay líneas de venta que ya usan este producto"
|
||||
" sin paquetes."
|
||||
|
|
|
@ -9,5 +9,8 @@ this repository contains the full copyright notices and license terms. -->
|
|||
<record model="ir.message" id="msg_product_package_null">
|
||||
<field name="text">You can not create a package because there are sale lines that already use the product without packages.</field>
|
||||
</record>
|
||||
<record model="ir.message" id="msg_product_has_package_required">
|
||||
<field name="text">You can not confirm because some lines has not product package and is required.</field>
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
|
|
25
sale.py
25
sale.py
|
@ -7,7 +7,30 @@ from trytond.transaction import Transaction
|
|||
from trytond.i18n import gettext
|
||||
from trytond.exceptions import UserError
|
||||
|
||||
__all__ = ['SaleLine', 'HandleShipmentException', 'HandleInvoiceException']
|
||||
__all__ = ['Sale', 'SaleLine',
|
||||
'HandleShipmentException', 'HandleInvoiceException']
|
||||
|
||||
|
||||
class Sale(metaclass=PoolMeta):
|
||||
__name__ = 'sale.sale'
|
||||
|
||||
@classmethod
|
||||
def _check_product_has_package_required(cls, sales):
|
||||
for sale in sales:
|
||||
for line in sale.lines:
|
||||
if line.type != 'line':
|
||||
continue
|
||||
if (line.product and line.product_has_packages
|
||||
and not line.product_package):
|
||||
return False
|
||||
return True
|
||||
|
||||
@classmethod
|
||||
def confirm(cls, sales):
|
||||
if not cls._check_product_has_package_required(sales):
|
||||
raise UserError(gettext(
|
||||
'sale_product_package.msg_product_has_package_required'))
|
||||
super(Sale, cls).confirm(sales)
|
||||
|
||||
|
||||
class SaleLine(metaclass=PoolMeta):
|
||||
|
|
Loading…
Reference in a new issue