Add new button "Done" to end individually each distribution. (#7)
Task #047777
This commit is contained in:
parent
a14f712dee
commit
a2328604f8
19
locale/ca.po
19
locale/ca.po
|
@ -921,6 +921,10 @@ msgctxt "field:production.enology.product,uom:"
|
|||
msgid "Uom"
|
||||
msgstr "UdM"
|
||||
|
||||
msgctxt "field:production.output.distribution,distribution_state:"
|
||||
msgid "Distribution State"
|
||||
msgstr "Estat Distribució"
|
||||
|
||||
msgctxt "field:production.output.distribution,final_quantity:"
|
||||
msgid "Final Quantity"
|
||||
msgstr "Quantitat Final"
|
||||
|
@ -939,7 +943,7 @@ msgstr "Ubicació"
|
|||
|
||||
msgctxt "field:production.output.distribution,produced_quantity:"
|
||||
msgid "Produced Quantity"
|
||||
msgstr "Quantitat produia"
|
||||
msgstr "Quantitat produïda"
|
||||
|
||||
msgctxt "field:production.output.distribution,product:"
|
||||
msgid "Template"
|
||||
|
@ -1284,6 +1288,11 @@ msgstr ""
|
|||
"El producte \"%(product)s\" no pot tenir més d'una collita degut al seu "
|
||||
"tipus agronòmic"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.model.button,string:production_output_distribution_done_button"
|
||||
msgid "Done"
|
||||
msgstr "Realitzar"
|
||||
|
||||
msgctxt "model:ir.model.button,string:weighing_analysis_button"
|
||||
msgid "Analysis"
|
||||
msgstr "Anàlisi"
|
||||
|
@ -1717,6 +1726,14 @@ msgctxt "selection:product.template,agronomic_type:"
|
|||
msgid "Wine"
|
||||
msgstr "Vi"
|
||||
|
||||
msgctxt "selection:production.output.distribution,distribution_state:"
|
||||
msgid "Done"
|
||||
msgstr "Realitzat"
|
||||
|
||||
msgctxt "selection:production.output.distribution,distribution_state:"
|
||||
msgid "Draft"
|
||||
msgstr "Esborrany"
|
||||
|
||||
msgctxt "selection:production.output.distribution,production_state:"
|
||||
msgid "Assigned"
|
||||
msgstr "Reservat"
|
||||
|
|
19
locale/es.po
19
locale/es.po
|
@ -921,6 +921,10 @@ msgctxt "field:production.enology.product,uom:"
|
|||
msgid "Uom"
|
||||
msgstr "UdM"
|
||||
|
||||
msgctxt "field:production.output.distribution,distribution_state:"
|
||||
msgid "Distribution State"
|
||||
msgstr "Estado Distribución"
|
||||
|
||||
msgctxt "field:production.output.distribution,final_quantity:"
|
||||
msgid "Final Quantity"
|
||||
msgstr "Cantidad Final"
|
||||
|
@ -1284,6 +1288,11 @@ msgstr ""
|
|||
"El producto \"%(product)s\" no puede tener más de una cosecha debido a su "
|
||||
"Tipo Agronómico"
|
||||
|
||||
msgctxt ""
|
||||
"model:ir.model.button,string:production_output_distribution_done_button"
|
||||
msgid "Done"
|
||||
msgstr "Realizar"
|
||||
|
||||
msgctxt "model:ir.model.button,string:weighing_analysis_button"
|
||||
msgid "Analysis"
|
||||
msgstr "Análisis"
|
||||
|
@ -1717,6 +1726,14 @@ msgctxt "selection:product.template,agronomic_type:"
|
|||
msgid "Wine"
|
||||
msgstr "Vino"
|
||||
|
||||
msgctxt "selection:production.output.distribution,distribution_state:"
|
||||
msgid "Done"
|
||||
msgstr "Realizado"
|
||||
|
||||
msgctxt "selection:production.output.distribution,distribution_state:"
|
||||
msgid "Draft"
|
||||
msgstr "Borrador"
|
||||
|
||||
msgctxt "selection:production.output.distribution,production_state:"
|
||||
msgid "Assigned"
|
||||
msgstr "Reservado"
|
||||
|
@ -1731,7 +1748,7 @@ msgstr "Realizado"
|
|||
|
||||
msgctxt "selection:production.output.distribution,production_state:"
|
||||
msgid "Draft"
|
||||
msgstr "Esborany"
|
||||
msgstr "Borrador"
|
||||
|
||||
msgctxt "selection:production.output.distribution,production_state:"
|
||||
msgid "Request"
|
||||
|
|
|
@ -438,20 +438,21 @@ class Production(metaclass=PoolMeta):
|
|||
moves = []
|
||||
for production in productions:
|
||||
for distrib in production.output_distribution:
|
||||
product = production.create_variant(distrib.product,
|
||||
production.production_template.pass_feature)
|
||||
product = production.pass_feature(product)
|
||||
product = production.copy_certification(product)
|
||||
move = production._move(
|
||||
production.location,
|
||||
distrib.location,
|
||||
production.company,
|
||||
product,
|
||||
distrib.uom,
|
||||
distrib.produced_quantity)
|
||||
move.production_output = production
|
||||
move.unit_price = Decimal(0)
|
||||
moves.append(move)
|
||||
if distrib.distribution_state == 'draft':
|
||||
product = production.create_variant(distrib.product,
|
||||
production.production_template.pass_feature)
|
||||
product = production.pass_feature(product)
|
||||
product = production.copy_certification(product)
|
||||
move = production._move(
|
||||
production.location,
|
||||
distrib.location,
|
||||
production.company,
|
||||
product,
|
||||
distrib.uom,
|
||||
distrib.produced_quantity)
|
||||
move.production_output = production
|
||||
move.unit_price = Decimal(0)
|
||||
moves.append(move)
|
||||
|
||||
Move.save(moves)
|
||||
super().done(productions)
|
||||
|
@ -533,6 +534,23 @@ class OutputDistribution(ModelSQL, ModelView):
|
|||
('assigned', 'Assigned'), ('running', 'Running'), ('done', 'Done'),
|
||||
('cancelled', 'Cancelled')], 'State'),
|
||||
'on_change_with_production_state')
|
||||
distribution_state = fields.Selection([
|
||||
('draft', 'Draft'), ('done', 'Done')], 'Distribution State',
|
||||
readonly=True)
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super().__setup__()
|
||||
cls._buttons.update({
|
||||
'done': {
|
||||
'readonly': Eval('distribution_state') != 'draft',
|
||||
'depends': ['distribution_state']
|
||||
}
|
||||
})
|
||||
|
||||
@classmethod
|
||||
def default_distribution_state(cls):
|
||||
return 'draft'
|
||||
|
||||
@fields.depends('production', '_parent_production.state')
|
||||
def on_change_with_production_state(self, name=None):
|
||||
|
@ -591,6 +609,34 @@ class OutputDistribution(ModelSQL, ModelView):
|
|||
return ((self.final_quantity or 0) -
|
||||
(self.initial_quantity or 0))
|
||||
|
||||
@classmethod
|
||||
@ModelView.button
|
||||
def done(cls, distributions):
|
||||
pool = Pool()
|
||||
Move = pool.get('stock.move')
|
||||
|
||||
moves = []
|
||||
for distribution in distributions:
|
||||
product = distribution.production.create_variant(
|
||||
distribution.product,
|
||||
distribution.production.production_template.pass_feature)
|
||||
product = distribution.production.pass_feature(product)
|
||||
|
||||
move = distribution.production._move(
|
||||
distribution.production.location,
|
||||
distribution.location,
|
||||
distribution.production.company,
|
||||
product,
|
||||
distribution.uom,
|
||||
distribution.produced_quantity)
|
||||
move.production_output = distribution.production
|
||||
move.unit_price = Decimal(0)
|
||||
moves.append(move)
|
||||
distribution.distribution_state = 'done'
|
||||
Move.save(moves)
|
||||
Move.do(moves)
|
||||
cls.save(distributions)
|
||||
|
||||
|
||||
class ProductionEnologyProduct(ModelSQL, ModelView):
|
||||
'Production Enology Product'
|
||||
|
|
|
@ -79,6 +79,12 @@
|
|||
<field name="res_model">production.output.distribution</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.model.button" id="production_output_distribution_done_button">
|
||||
<field name="name">done</field>
|
||||
<field name="string">Done</field>
|
||||
<field name="model" search="[('model', '=', 'production.output.distribution')]"/>
|
||||
</record>
|
||||
|
||||
<!-- Production Enology -->
|
||||
<record model="ir.ui.view" id="production_enology_product_view_form">
|
||||
<field name="model">production.enology.product</field>
|
||||
|
|
|
@ -14,6 +14,10 @@ this repository contains the full copyright notices and license terms. -->
|
|||
<field name="final_quantity"/>
|
||||
<label name="produced_quantity"/>
|
||||
<field name="produced_quantity"/>
|
||||
<label name="distribution_state"/>
|
||||
<field name="distribution_state"/>
|
||||
<field name="production_state" invisible="1"/>
|
||||
<field name="initial_quantity" invisible="1"/>
|
||||
<newline/>
|
||||
<button colspan="2" name="done"/>
|
||||
</form>
|
||||
|
|
|
@ -4,10 +4,11 @@ this repository contains the full copyright notices and license terms. -->
|
|||
<tree editable="1">
|
||||
<field name="product"/>
|
||||
<field name="location"/>
|
||||
<field name="uom"/>
|
||||
<field name="initial_quantity_readonly"/>
|
||||
<field name="final_quantity"/>
|
||||
<field name="initial_quantity_readonly"/>
|
||||
<field name="produced_quantity"/>
|
||||
<field name="production_state"/>
|
||||
<field name="distribution_state"/>
|
||||
<field name="initial_quantity" tree_invisible="1"/>
|
||||
<button name="done"/>
|
||||
</tree>
|
||||
|
|
Loading…
Reference in New Issue