Add wizard to bom inputs/outputs to create/find product with different shape/measurements

This commit is contained in:
Jordi Esteve 2014-12-02 15:32:32 +01:00
parent d6dbc6e92b
commit c6e9608b0f
5 changed files with 74 additions and 4 deletions

View file

@ -14,6 +14,14 @@ msgctxt "error:product.measurements_shape_creation:"
msgid "The stock move is not in draft state." msgid "The stock move is not in draft state."
msgstr "La línia d'albarà no està en estat esborrany." msgstr "La línia d'albarà no està en estat esborrany."
msgctxt "model:ir.action,name:wizard_bom_input_measurements_shape_creation"
msgid "Create/Find product with same code and different shape/measurements"
msgstr "Crea/Cerca producte amb el mateix codi i diferent forma/mesures"
msgctxt "model:ir.action,name:wizard_bom_output_measurements_shape_creation"
msgid "Create/Find product with same code and different shape/measurements"
msgstr "Crea/Cerca producte amb el mateix codi i diferent forma/mesures"
msgctxt "model:ir.action,name:wizard_purchase_measurements_shape_creation" msgctxt "model:ir.action,name:wizard_purchase_measurements_shape_creation"
msgid "Create/Find product with same code and different shape/measurements" msgid "Create/Find product with same code and different shape/measurements"
msgstr "Crea/Cerca producte amb el mateix codi i diferent forma/mesures" msgstr "Crea/Cerca producte amb el mateix codi i diferent forma/mesures"

View file

@ -14,6 +14,14 @@ msgctxt "error:product.measurements_shape_creation:"
msgid "The stock move is not in draft state." msgid "The stock move is not in draft state."
msgstr "La línea de albarán no está en estado borrador." msgstr "La línea de albarán no está en estado borrador."
msgctxt "model:ir.action,name:wizard_bom_input_measurements_shape_creation"
msgid "Create/Find product with same code and different shape/measurements"
msgstr "Crear/Buscar producto con el mismo código y distinta forma/medidas"
msgctxt "model:ir.action,name:wizard_bom_output_measurements_shape_creation"
msgid "Create/Find product with same code and different shape/measurements"
msgstr "Crear/Buscar producto con el mismo código y distinta forma/medidas"
msgctxt "model:ir.action,name:wizard_purchase_measurements_shape_creation" msgctxt "model:ir.action,name:wizard_purchase_measurements_shape_creation"
msgid "Create/Find product with same code and different shape/measurements" msgid "Create/Find product with same code and different shape/measurements"
msgstr "Crear/Buscar producto con el mismo código y distinta forma/medidas" msgstr "Crear/Buscar producto con el mismo código y distinta forma/medidas"

View file

@ -8,6 +8,9 @@ from trytond.transaction import Transaction
__all__ = ['ProductMeasurementsShapeCreation'] __all__ = ['ProductMeasurementsShapeCreation']
__metaclass__ = PoolMeta __metaclass__ = PoolMeta
MODELS = ['stock.move', 'sale.line', 'purchase.line', 'production.bom.input',
'production.bom.output']
class ProductMeasurementsShapeCreation(Wizard): class ProductMeasurementsShapeCreation(Wizard):
__name__ = 'product.measurements_shape_creation' __name__ = 'product.measurements_shape_creation'
@ -27,10 +30,11 @@ class ProductMeasurementsShapeCreation(Wizard):
Move = pool.get('stock.move') Move = pool.get('stock.move')
SaleLine = pool.get('sale.line') SaleLine = pool.get('sale.line')
PurchaseLine = pool.get('purchase.line') PurchaseLine = pool.get('purchase.line')
BOMInput = pool.get('production.bom.input')
BOMOutput = pool.get('production.bom.output')
context = Transaction().context context = Transaction().context
if context['active_model'] in ['stock.move', 'sale.line', if context['active_model'] in MODELS:
'purchase.line']:
if context['active_model'] == 'stock.move': if context['active_model'] == 'stock.move':
line = Move(context['active_id']) line = Move(context['active_id'])
if line.state != 'draft': if line.state != 'draft':
@ -43,6 +47,10 @@ class ProductMeasurementsShapeCreation(Wizard):
line = PurchaseLine(context['active_id']) line = PurchaseLine(context['active_id'])
if line.purchase.state != 'draft': if line.purchase.state != 'draft':
self.raise_user_error('purchase_readonly') self.raise_user_error('purchase_readonly')
elif context['active_model'] == 'production.bom.input':
line = BOMInput(context['active_id'])
elif context['active_model'] == 'production.bom.output':
line = BOMOutput(context['active_id'])
product_id = line.product.id product_id = line.product.id
new_context = { new_context = {
'active_model': 'product.product', 'active_model': 'product.product',
@ -60,16 +68,21 @@ class ProductMeasurementsShapeCreation(Wizard):
Move = pool.get('stock.move') Move = pool.get('stock.move')
SaleLine = pool.get('sale.line') SaleLine = pool.get('sale.line')
PurchaseLine = pool.get('purchase.line') PurchaseLine = pool.get('purchase.line')
BOMInput = pool.get('production.bom.input')
BOMOutput = pool.get('production.bom.output')
context = Transaction().context context = Transaction().context
if context['active_model'] in ['stock.move', 'sale.line', if context['active_model'] in MODELS:
'purchase.line']:
if context['active_model'] == 'stock.move': if context['active_model'] == 'stock.move':
line = Move(context['active_id']) line = Move(context['active_id'])
elif context['active_model'] == 'sale.line': elif context['active_model'] == 'sale.line':
line = SaleLine(context['active_id']) line = SaleLine(context['active_id'])
elif context['active_model'] == 'purchase.line': elif context['active_model'] == 'purchase.line':
line = PurchaseLine(context['active_id']) line = PurchaseLine(context['active_id'])
elif context['active_model'] == 'production.bom.input':
line = BOMInput(context['active_id'])
elif context['active_model'] == 'production.bom.output':
line = BOMOutput(context['active_id'])
template = line.product.template template = line.product.template
new_template = self.create_find(template) new_template = self.create_find(template)
line.product = new_template.products[0] line.product = new_template.products[0]

View file

@ -62,5 +62,45 @@ The COPYRIGHT file at the top level of this repository contains the full copyrig
ref="wizard_purchase_measurements_shape_creation"/> ref="wizard_purchase_measurements_shape_creation"/>
<field name="group" ref="product.group_product_admin"/> <field name="group" ref="product.group_product_admin"/>
</record> </record>
<record model="ir.action.wizard"
id="wizard_bom_input_measurements_shape_creation">
<field name="name">Create/Find product with same code and different shape/measurements</field>
<field name="wiz_name">product.measurements_shape_creation</field>
<field name="model">production.bom.input</field>
</record>
<record model="ir.action.keyword"
id="act_bom_input_measurements_shape_creation_keyword1">
<field name="keyword">form_action</field>
<field name="model">production.bom.input,-1</field>
<field name="action"
ref="wizard_bom_input_measurements_shape_creation"/>
</record>
<record model="ir.action-res.group"
id="wizard_bom_input_measurements_shape_creation-group_product_admin">
<field name="action"
ref="wizard_bom_input_measurements_shape_creation"/>
<field name="group" ref="product.group_product_admin"/>
</record>
<record model="ir.action.wizard"
id="wizard_bom_output_measurements_shape_creation">
<field name="name">Create/Find product with same code and different shape/measurements</field>
<field name="wiz_name">product.measurements_shape_creation</field>
<field name="model">production.bom.output</field>
</record>
<record model="ir.action.keyword"
id="act_bom_output_measurements_shape_creation_keyword1">
<field name="keyword">form_action</field>
<field name="model">production.bom.output,-1</field>
<field name="action"
ref="wizard_bom_output_measurements_shape_creation"/>
</record>
<record model="ir.action-res.group"
id="wizard_bom_output_measurements_shape_creation-group_product_admin">
<field name="action"
ref="wizard_bom_output_measurements_shape_creation"/>
<field name="group" ref="product.group_product_admin"/>
</record>
</data> </data>
</tryton> </tryton>

View file

@ -6,5 +6,6 @@ depends:
stock stock
sale sale
purchase purchase
production
xml: xml:
product.xml product.xml