21.03.26
This commit is contained in:
@@ -169,6 +169,9 @@ def register():
|
||||
purchase.PurchaseStrategy,
|
||||
purchase.PriceComposition,
|
||||
purchase.QualityAnalysis,
|
||||
purchase.Assay,
|
||||
purchase.AssayLine,
|
||||
purchase.AssayElement,
|
||||
backtoback.Backtoback,
|
||||
dimension.AnalyticDimension,
|
||||
dimension.AnalyticDimensionValue,
|
||||
|
||||
@@ -528,7 +528,69 @@ class PriceComposition(ModelSQL,ModelView):
|
||||
line = fields.Many2One('purchase.line',"Purchase line")
|
||||
component = fields.Char("Component")
|
||||
price = fields.Numeric("Price")
|
||||
|
||||
|
||||
class Assay(ModelSQL, ModelView):
|
||||
__name__ = 'assay.assay'
|
||||
|
||||
line = fields.Many2One('purchase.line',"Purchase Line")
|
||||
|
||||
reference = fields.Char("Lab Reference")
|
||||
date = fields.Date("Analysis Date")
|
||||
|
||||
type = fields.Selection([
|
||||
('provisional', 'Provisional'),
|
||||
('final', 'Final'),
|
||||
('umpire', 'Umpire'),
|
||||
], "Type")
|
||||
|
||||
status = fields.Selection([
|
||||
('draft', 'Draft'),
|
||||
('validated', 'Validated'),
|
||||
], "Status")
|
||||
|
||||
laboratory = fields.Char("Laboratory")
|
||||
|
||||
lines = fields.One2Many(
|
||||
'assay.line', 'assay', "Assay Lines"
|
||||
)
|
||||
|
||||
document = fields.Binary("Analysis", filename='filename')
|
||||
filename = fields.Char('Analysis')
|
||||
|
||||
class AssayLine(ModelSQL, ModelView):
|
||||
__name__ = 'assay.line'
|
||||
|
||||
assay = fields.Many2One('assay.assay', "Assay")
|
||||
|
||||
element = fields.Many2One('assay.element', "Element")
|
||||
|
||||
value = fields.Float("Value")
|
||||
|
||||
unit = fields.Many2One('product.uom', "Unit")
|
||||
|
||||
category = fields.Selection([
|
||||
('assay', 'Assay'),
|
||||
('penalty', 'Penalty'),
|
||||
('moisture', 'Moisture'),
|
||||
], "Category")
|
||||
|
||||
method = fields.Char("Method")
|
||||
|
||||
is_payable = fields.Boolean("Payable")
|
||||
|
||||
class AssayElement(ModelSQL, ModelView):
|
||||
__name__ = 'assay.element'
|
||||
|
||||
name = fields.Char("Code") # Cu, Au, As
|
||||
description = fields.Char("Description")
|
||||
|
||||
default_unit = fields.Many2One('product.uom', "Default Unit")
|
||||
|
||||
type = fields.Selection([
|
||||
('metal', 'Metal'),
|
||||
('impurity', 'Impurity'),
|
||||
])
|
||||
|
||||
class QualityAnalysis(ModelSQL,ModelView):
|
||||
"Quality Analysis"
|
||||
__name__ = 'quality.analysis'
|
||||
@@ -690,6 +752,7 @@ class Line(metaclass=PoolMeta):
|
||||
finished = fields.Boolean("Mark as finished")
|
||||
|
||||
quality_analysis = fields.One2Many('quality.analysis','line',"Quality analysis")
|
||||
assays = fields.One2Many('assay.assay','line',"Assays")
|
||||
|
||||
@classmethod
|
||||
def default_finished(cls):
|
||||
|
||||
@@ -173,6 +173,27 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="name">quality_analysis_form</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="assay_view_tree">
|
||||
<field name="model">assay.assay</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">assay_tree</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="assay_view_form">
|
||||
<field name="model">assay.assay</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">assay_form</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="assay_line_view_tree">
|
||||
<field name="model">assay.line</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="name">assay_line_tree</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="assay_element_view_form">
|
||||
<field name="model">assay.element</field>
|
||||
<field name="type">form</field>
|
||||
<field name="name">assay_element_form</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
name="Pnl Report"
|
||||
parent="purchase_trade.menu_global_reporting"
|
||||
|
||||
16
modules/purchase_trade/view/assay_form.xml
Normal file
16
modules/purchase_trade/view/assay_form.xml
Normal file
@@ -0,0 +1,16 @@
|
||||
<form col="4">
|
||||
<label name="reference"/>
|
||||
<field name="reference"/>
|
||||
<label name="date"/>
|
||||
<field name="date"/>
|
||||
<label name="type"/>
|
||||
<field name="type"/>
|
||||
<label name="status"/>
|
||||
<field name="status"/>
|
||||
<label name="laboratory"/>
|
||||
<field name="laboratory"/>
|
||||
<label name="filename"/>
|
||||
<field name="filename"/>
|
||||
<newline/>
|
||||
<field name="lines" colspan="4"/>
|
||||
</form>
|
||||
8
modules/purchase_trade/view/assay_line_tree.xml
Normal file
8
modules/purchase_trade/view/assay_line_tree.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<tree editable="1">
|
||||
<field name="element"/>
|
||||
<field name="value"/>
|
||||
<field name="unit"/>
|
||||
<field name="category"/>
|
||||
<field name="method"/>
|
||||
<field name="is_payable"/>
|
||||
</tree>
|
||||
8
modules/purchase_trade/view/assay_tree.xml
Normal file
8
modules/purchase_trade/view/assay_tree.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<tree editable="1">
|
||||
<field name="reference"/>
|
||||
<field name="date"/>
|
||||
<field name="type"/>
|
||||
<field name="status"/>
|
||||
<field name="laboratory"/>
|
||||
<field name="filename"/>
|
||||
</tree>
|
||||
@@ -55,8 +55,8 @@ 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="Quality Analysis" col="4" id="qa">
|
||||
<field name="quality_analysis" mode="form,tree" view_ids="purchase_trade.quality_analysis_view_form,purchase_trade.quality_analysis_view_tree"/>
|
||||
<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="Lots" col="4" id="lots">
|
||||
<field name="lots" mode="tree,form" view_ids="lot.lot_view_tree_sequence,lot.lot_view_form"/>
|
||||
|
||||
Reference in New Issue
Block a user