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():
|
def register():
|
||||||
Pool.register(
|
Pool.register(
|
||||||
product.Package,
|
product.Package,
|
||||||
|
sale.Sale,
|
||||||
sale.SaleLine,
|
sale.SaleLine,
|
||||||
module='sale_product_package', type_='model')
|
module='sale_product_package', type_='model')
|
||||||
Pool.register(
|
Pool.register(
|
||||||
|
|
20
locale/ca.po
20
locale/ca.po
|
@ -18,12 +18,6 @@ msgctxt "field:sale.line,product_template:"
|
||||||
msgid "Product's template"
|
msgid "Product's template"
|
||||||
msgstr "Plantilla de producte"
|
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"
|
msgctxt "model:ir.message,text:msg_package_quantity"
|
||||||
msgid ""
|
msgid ""
|
||||||
"The quantity \"%(qty)s\" of product \"%(product)s\" is not a multiple of "
|
"The quantity \"%(qty)s\" of product \"%(product)s\" is not a multiple of "
|
||||||
|
@ -31,3 +25,17 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"La quantitat \"%(qty)s\" del producte \"%(product)s\" no és un múltiple de "
|
"La quantitat \"%(qty)s\" del producte \"%(product)s\" no és un múltiple de "
|
||||||
"la quantitat \"%(package_qty)s\" del seu paquet \"%(package)s\"."
|
"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"
|
msgid "Product's template"
|
||||||
msgstr "Plantilla de producto"
|
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"
|
msgctxt "model:ir.message,text:msg_package_quantity"
|
||||||
msgid ""
|
msgid ""
|
||||||
"The quantity \"%(qty)s\" of product \"%(product)s\" is not a multiple of "
|
"The quantity \"%(qty)s\" of product \"%(product)s\" is not a multiple of "
|
||||||
|
@ -31,3 +25,19 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"La cantidad \"%(qty)s\" del producto \"%(product)s\" no es un múltiplo de la"
|
"La cantidad \"%(qty)s\" del producto \"%(product)s\" no es un múltiplo de la"
|
||||||
" cantidad \"%(package_qty)s\" de su paquete \"%(package)s\"."
|
" 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">
|
<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>
|
<field name="text">You can not create a package because there are sale lines that already use the product without packages.</field>
|
||||||
</record>
|
</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>
|
</data>
|
||||||
</tryton>
|
</tryton>
|
||||||
|
|
25
sale.py
25
sale.py
|
@ -7,7 +7,30 @@ from trytond.transaction import Transaction
|
||||||
from trytond.i18n import gettext
|
from trytond.i18n import gettext
|
||||||
from trytond.exceptions import UserError
|
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):
|
class SaleLine(metaclass=PoolMeta):
|
||||||
|
|
Loading…
Reference in a new issue