Purchase & Sale

This commit is contained in:
2026-07-26 15:01:14 +02:00
parent df4570aff8
commit b1f97ade55
4 changed files with 79 additions and 63 deletions

View File

@@ -2815,12 +2815,14 @@ class Line(metaclass=PoolMeta):
'on_change_with_attribute_set'
)
attributes_name = fields.Function(
fields.Char("Attributes Name"),
'on_change_with_attributes_name'
)
finished = fields.Boolean("Mark as finished")
attributes_name = fields.Function(
fields.Char("Attributes Name"),
'on_change_with_attributes_name'
)
specification = fields.Function(
fields.Char("Specification"), 'on_change_with_specification')
finished = fields.Boolean("Mark as finished")
quality_analysis = fields.One2Many('quality.analysis','line',"Quality analysis")
assays = fields.One2Many('assay.assay','line',"Assays")
@@ -2875,9 +2877,17 @@ class Line(metaclass=PoolMeta):
'product_attribute.msg_label_value',
label=attribute.string,
value=attribute.format(value)
))
))
return " | ".join(filter(None, values))
@fields.depends(
'product', 'attributes',
'coffee_origin', 'coffee_type', 'coffee_process', 'coffee_variety',
'coffee_crop_year', 'coffee_screen_size', 'coffee_moisture_max',
'coffee_defect_max', 'coffee_cup_score_min')
def on_change_with_specification(self, name=None):
return self.on_change_with_attributes_name(name)
@fields.depends(
'quantity_theorical', 'quantity', 'lots', 'targeted_qt',
methods=['_recompute_trade_price_fields'])

View File

@@ -2511,6 +2511,8 @@ class SaleLine(metaclass=PoolMeta):
fields.Char("Attributes Name"),
'on_change_with_attributes_name'
)
specification = fields.Function(
fields.Char("Specification"), 'on_change_with_specification')
finished = fields.Boolean("Mark as finished")
pricing_rule = fields.Text("Pricing description")
@@ -2657,6 +2659,14 @@ class SaleLine(metaclass=PoolMeta):
))
return " | ".join(filter(None, values))
@fields.depends(
'product', 'attributes',
'coffee_origin', 'coffee_type', 'coffee_process', 'coffee_variety',
'coffee_crop_year', 'coffee_screen_size', 'coffee_moisture_max',
'coffee_defect_max', 'coffee_cup_score_min')
def on_change_with_specification(self, name=None):
return self.on_change_with_attributes_name(name)
@fields.depends(
'quantity_theorical', 'quantity', 'lots', 'targeted_qt',
methods=['_recompute_trade_price_fields'])

View File

@@ -27,34 +27,44 @@ this repository contains the full copyright notices and license terms. -->
view_ids="purchase.product_view_list_purchase_line"/>
<label name="product_supplier"/>
<field name="product_supplier"/>
<label name="del_period"/>
<label name="del_period" string="Execution Period:"/>
<field name="del_period"/>
<label name="period_at"/>
<field name="period_at"/>
<label name="from_del"/>
<field name="from_del" width="120" xexpand="0" xfill="0"/>
<label name="to_del"/>
<field name="to_del" width="120" xexpand="0" xfill="0"/>
<newline/>
<label name="attributes_name"/>
<field name="attributes_name" colspan="3"/>
<label name="specification"/>
<field name="specification" colspan="3"/>
<label id="delivery_date" string="Delivery Date:"/>
<field name="delivery_date" width="120" xexpand="0" xfill="0"/>
<label string="" id="delivery_date_edit_label"/>
<field name="delivery_date_edit" xexpand="0" xfill="0" xalign="0"/>
</group>
<group id="quantities" string="Quantities &amp; Unit"
colspan="12" col="12" panel="card" icon="tryton-archive"
xalign="0" yalign="0"
col_widths="min-content,1fr,min-content,1fr,min-content,1fr,min-content,1fr,min-content,0.8fr,min-content,min-content">
<label name="quantity_theorical"/>
<field name="quantity_theorical"/>
<label name="quantity"/>
<field name="quantity"/>
<label name="targeted_qt"/>
<field name="targeted_qt" width="120" xexpand="0" xfill="0" xalign="0"/>
<label name="unit"/>
<field name="unit"/>
<label name="concentration"/>
<field name="concentration" width="80" xexpand="0" xfill="0"/>
<label name="finished"/>
<field name="finished" xexpand="0" xfill="0"/>
<newline/>
<label name="attributes_name"/>
<field name="attributes_name" colspan="11"/>
</group>
<group id="line_top_left" colspan="6" col="1"
xalign="0" yalign="0"
col_widths="1fr">
<group id="quantities" string="Quantities &amp; Unit"
colspan="1" col="8" panel="card" icon="tryton-archive"
xalign="0" yalign="0"
col_widths="min-content,1fr,min-content,1fr,min-content,1fr,min-content,1fr">
<label name="quantity_theorical"/>
<field name="quantity_theorical"/>
<label name="quantity"/>
<field name="quantity"/>
<label name="targeted_qt"/>
<field name="targeted_qt" width="120" xexpand="0" xfill="0" xalign="0"/>
<label name="unit"/>
<field name="unit"/>
</group>
<group id="coffee_packing" string="Packing &amp; Tolerance"
colspan="1" col="6" panel="card" icon="tryton-archive"
xalign="0" yalign="0"
@@ -91,19 +101,6 @@ this repository contains the full copyright notices and license terms. -->
<group id="line_top_right" colspan="6" col="1"
xalign="0" yalign="0"
col_widths="1fr">
<group id="dates" string="Dates"
colspan="1" col="8" panel="card" icon="tryton-date"
xalign="0" yalign="0"
col_widths="min-content,1fr,min-content,1fr,min-content,1fr,min-content,min-content">
<label name="from_del"/>
<field name="from_del" width="120" xexpand="0" xfill="0"/>
<label name="to_del"/>
<field name="to_del" width="120" xexpand="0" xfill="0"/>
<label id="delivery_date" string="Delivery Date:"/>
<field name="delivery_date" width="120" xexpand="0" xfill="0"/>
<label string="" id="delivery_date_edit_label"/>
<field name="delivery_date_edit" xexpand="0" xfill="0" xalign="0"/>
</group>
<group id="pricing_amounts" string="Pricing &amp; Amounts"
colspan="1" col="6" panel="card" icon="tryton-public"
xalign="0" yalign="0"

View File

@@ -24,34 +24,42 @@ this repository contains the full copyright notices and license terms. -->
col_widths="min-content,2fr,min-content,1.2fr,min-content,1fr,min-content,0.8fr,min-content,min-content">
<label name="product"/>
<field name="product"/>
<label name="del_period"/>
<label name="del_period" string="Execution Period:"/>
<field name="del_period"/>
<label name="period_at"/>
<field name="period_at"/>
<label name="from_del"/>
<field name="from_del" width="120" xexpand="0" xfill="0"/>
<label name="to_del"/>
<field name="to_del" width="120" xexpand="0" xfill="0"/>
<newline/>
<label name="attributes_name"/>
<field name="attributes_name" colspan="3"/>
<label name="specification"/>
<field name="specification" colspan="3"/>
<label name="shipping_date"/>
<field name="shipping_date" width="120" xexpand="0" xfill="0"/>
</group>
<group id="quantities" string="Quantities &amp; Unit"
colspan="12" col="12" panel="card" icon="tryton-archive"
xalign="0" yalign="0"
col_widths="min-content,1fr,min-content,1fr,min-content,1fr,min-content,1fr,min-content,0.8fr,min-content,min-content">
<label name="quantity_theorical"/>
<field name="quantity_theorical"/>
<label name="quantity"/>
<field name="quantity"/>
<label name="targeted_qt"/>
<field name="targeted_qt" width="120" xexpand="0" xfill="0" xalign="0"/>
<label name="unit"/>
<field name="unit"/>
<label name="concentration"/>
<field name="concentration" width="80" xexpand="0" xfill="0"/>
<label name="finished"/>
<field name="finished" xexpand="0" xfill="0"/>
<newline/>
<label name="attributes_name"/>
<field name="attributes_name" colspan="9"/>
</group>
<group id="left_column" colspan="6" col="1"
xalign="0" yalign="0"
col_widths="1fr">
<group id="quantities" string="Quantities &amp; Unit"
colspan="1" col="8" panel="card" icon="tryton-archive"
xalign="0" yalign="0"
col_widths="min-content,1fr,min-content,1fr,min-content,1fr,min-content,1fr">
<label name="quantity_theorical"/>
<field name="quantity_theorical"/>
<label name="quantity"/>
<field name="quantity"/>
<label name="targeted_qt"/>
<field name="targeted_qt" width="120" xexpand="0" xfill="0" xalign="0"/>
<label name="unit"/>
<field name="unit"/>
</group>
<group id="coffee_packing" string="Packing &amp; Tolerance"
colspan="1" col="6" panel="card" icon="tryton-archive"
xalign="0" yalign="0"
@@ -88,15 +96,6 @@ this repository contains the full copyright notices and license terms. -->
<group id="right_column" colspan="6" col="1"
xalign="0" yalign="0"
col_widths="1fr">
<group id="dates" string="Dates"
colspan="1" col="6" panel="card" icon="tryton-date"
xalign="0" yalign="0"
col_widths="min-content,max-content,min-content,max-content,1fr,min-content">
<label name="from_del"/>
<field name="from_del" width="120" xexpand="0" xfill="0"/>
<label name="to_del"/>
<field name="to_del" width="120" xexpand="0" xfill="0"/>
</group>
<group id="pricing_amounts" string="Pricing &amp; Amounts"
colspan="1" col="6" panel="card" icon="tryton-public"
xalign="0" yalign="0"