This commit is contained in:
2026-03-22 11:22:09 +01:00
parent 85bb272edf
commit d10d805753
6 changed files with 113 additions and 3 deletions

View File

@@ -173,6 +173,9 @@ def register():
purchase.AssayLine,
purchase.AssayElement,
purchase.AssayUnit,
purchase.PayableRule,
purchase.PenaltyRule,
purchase.ConcentrateTerm,
backtoback.Backtoback,
dimension.AnalyticDimension,
dimension.AnalyticDimensionValue,

View File

@@ -760,6 +760,67 @@ class AssayElement(ModelSQL, ModelView):
('impurity', 'Impurity'),
], "Type")
class PayableRule(ModelSQL, ModelView):
"Payable Rule"
__name__ = 'payable.rule'
element = fields.Many2One('assay.element', "Element")
payable_percent = fields.Numeric("Payable %")
deduction_value = fields.Numeric("Deduction Value")
deduction_unit = fields.Many2One('assay.unit',"Unit")
class PenaltyRule(ModelSQL, ModelView):
"Penalty Rule"
__name__ = 'penalty.rule'
element = fields.Many2One('assay.element', "Element")
threshold = fields.Numeric("Treshold")
threshold_unit = fields.Many2One('assay.unit',"Unit")
step = fields.Numeric("Step")
penalty_value = fields.Numeric("Penalty Value")
currency = fields.Many2One('currency.currency',"Curr")
unit = fields.Many2One('product.uom',"Unit")
class ConcentrateTerm(ModelSQL, ModelView):
"Concentrate Term"
__name__ = 'concentrate.term'
line = fields.Many2One(
'purchase.line', "Line",
ondelete='CASCADE'
)
element = fields.Many2One('assay.element',"Element")
component = fields.Many2One(
'pricing.component',
"Price Component"
)
manual_price = fields.Numeric(
"Manual Price",
digits=(16, 6)
)
currency = fields.Many2One('currency.currency',"Curr")
unit = fields.Many2One('product.uom',"Unit")
payable_rule = fields.Many2One(
'payable.rule',"Payable Rule"
)
penalty_rules = fields.Many2One(
'penalty.rule',
"Penalties"
)
valid_from = fields.Date("Valid From")
valid_to = fields.Date("Valid To")
class QualityAnalysis(ModelSQL,ModelView):
"Quality Analysis"
__name__ = 'quality.analysis'
@@ -922,6 +983,7 @@ class Line(metaclass=PoolMeta):
quality_analysis = fields.One2Many('quality.analysis','line',"Quality analysis")
assays = fields.One2Many('assay.assay','line',"Assays")
terms = fields.One2Many('concentrate.term','line',"Terms")
@classmethod
def default_finished(cls):

View File

@@ -194,6 +194,17 @@ this repository contains the full copyright notices and license terms. -->
<field name="name">assay_element_form</field>
</record>
<record model="ir.ui.view" id="concentrate_view_tree">
<field name="model">concentrate.term</field>
<field name="type">tree</field>
<field name="name">concentrate_tree</field>
</record>
<record model="ir.ui.view" id="concentrate_view_form">
<field name="model">concentrate.term</field>
<field name="type">form</field>
<field name="name">concentrate_form</field>
</record>
<menuitem
name="Pnl Report"
parent="purchase_trade.menu_global_reporting"

View File

@@ -0,0 +1,22 @@
<form col="4">
<label name="element"/>
<field name="element"/>
<label name="component"/>
<field name="component"/>
<label name="payable_rule"/>
<field name="payable_rule"/>
<label name="penalty_rules"/>
<field name="penalty_rules"/>
<newline/>
<label name="manual_price"/>
<field name="manual_price"/>
<label name="currency"/>
<field name="currency"/>
<label name="unit"/>
<field name="unit"/>
<newline/>
<label name="valid_from"/>
<field name="valid_from"/>
<label name="valid_to"/>
<field name="valid_to"/>
</form>

View File

@@ -0,0 +1,6 @@
<tree editable="1">
<field name="element"/>
<field name="component"/>
<field name="payable_rule"/>
<field name="penalty_rules"/>
</tree>

View File

@@ -55,9 +55,15 @@ this repository contains the full copyright notices and license terms. -->
<field name="certif"/>
</xpath>
<xpath expr="/form/notebook/page[@id='taxes']" position="before">
<page string="Assays" col="4" id="as">
<field name="assays" mode="tree,form" view_ids="purchase_trade.assay_view_tree,purchase_trade.assay_view_form"/>
</page>
<page string="Concentrate" col="4" id="co">
<notebook colspan="4">
<page string="Assays" col="4" id="as">
<field name="assays" mode="tree,form" view_ids="purchase_trade.assay_view_tree,purchase_trade.assay_view_form"/>
</page>
<page string="Term" col="4" id="te">
<field name="terms" mode="tree,form" view_ids="purchase_trade.concentrate_view_tree,purchase_trade.concentrate_view_form"/>
</page>
</notebook>
<page string="Lots" col="4" id="lots">
<field name="lots" mode="tree,form" view_ids="lot.lot_view_tree_sequence,lot.lot_view_form"/>
</page>