236 lines
12 KiB
XML
236 lines
12 KiB
XML
<odoo>
|
|
<record id="stock_valuation_layer_form" model="ir.ui.view">
|
|
<field name="name">stock.valuation.layer.form</field>
|
|
<field name="model">stock.valuation.layer</field>
|
|
<field name="arch" type="xml">
|
|
<form edit="0" create="0">
|
|
<sheet>
|
|
<group>
|
|
<group>
|
|
<field name="create_date" string="Date" />
|
|
<field name="product_id" />
|
|
<field name="stock_move_id" invisible="not stock_move_id" />
|
|
</group>
|
|
</group>
|
|
<notebook>
|
|
<page string="Valuation" name="valuation">
|
|
<group>
|
|
<field name="quantity" />
|
|
<field name="uom_id" groups="uom.group_uom" />
|
|
<field name="currency_id" invisible="1" />
|
|
<field name="unit_cost" />
|
|
<field name="value" />
|
|
<field name="remaining_qty" />
|
|
</group>
|
|
</page>
|
|
<page string="Other Info" name="other_info">
|
|
<group>
|
|
<field name="description" />
|
|
<field name="account_move_id" groups="account.group_account_invoice" invisible="not account_move_id" />
|
|
<field name="company_id" groups="base.group_multi_company" />
|
|
<field name="stock_valuation_layer_id" invisible="not stock_valuation_layer_id" />
|
|
</group>
|
|
</page>
|
|
</notebook>
|
|
</sheet>
|
|
</form>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="stock_valuation_layer_tree" model="ir.ui.view">
|
|
<field name="name">stock.valuation.layer.tree</field>
|
|
<field name="model">stock.valuation.layer</field>
|
|
<field name="arch" type="xml">
|
|
<tree default_order="id desc" create="0"
|
|
import="0" js_class="inventory_report_list"
|
|
action="action_open_reference" type="object">
|
|
<header>
|
|
<button name="action_valuation_at_date" string="Valuation at Date" type="object"
|
|
invisible="((context.get('inventory_mode') and not context.get('inventory_report_mode')) or context.get('no_at_date'))"
|
|
class="btn-primary ms-1"
|
|
display="always"/>
|
|
</header>
|
|
<field name="create_date" string="Date" />
|
|
<field name="reference"/>
|
|
<field name="account_move_id" optional="hide" groups="account.group_account_user"/>
|
|
<button name="action_open_journal_entry" groups="account.group_account_user" type="object" title="Journal Entry" icon="fa-book" invisible="not account_move_id"/>
|
|
<field name="product_id" />
|
|
<field name="company_id" groups="base.group_multi_company"/>
|
|
<field name="quantity" string="Moved Quantity" optional="show" sum="Total Moved Quantity"/>
|
|
<field name="remaining_qty" type="measure" optional="hide" sum="Total Remaining Quantity"/>
|
|
<field name="unit_cost" optional="hide"/>
|
|
<field name="uom_id" groups="uom.group_uom" />
|
|
<field name="currency_id" column_invisible="True" />
|
|
<field name="value" sum="Total Value" optional="show"/>
|
|
<field name="description" optional="hide"/>
|
|
<field name="remaining_value" type="measure" optional="hide" sum="Total Remaining Value"/>
|
|
<groupby name="product_id">
|
|
<field name="cost_method" invisible="1"/>
|
|
<field name="quantity_svl" invisible="1"/>
|
|
<button name="action_revaluation" icon="fa-plus" title="Add Manual Valuation" type="object" invisible="cost_method == 'standard' or quantity_svl <= 0" />
|
|
</groupby>
|
|
</tree>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="stock_valuation_layer_valuation_at_date_tree_inherited" model="ir.ui.view">
|
|
<field name="name">inventory.aging.tree</field>
|
|
<field name="model">stock.valuation.layer</field>
|
|
<field name="inherit_id" ref="stock_valuation_layer_tree"/>
|
|
<field name="mode">primary</field>
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//field[@name='remaining_qty']" position="attributes">
|
|
<attribute name="optional">show</attribute>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="stock_valuation_layer_pivot" model="ir.ui.view">
|
|
<field name="name">stock.valuation.layer.pivot</field>
|
|
<field name="model">stock.valuation.layer</field>
|
|
<field name="arch" type="xml">
|
|
<pivot>
|
|
<field name="quantity" type="measure"/>
|
|
<field name="value" type="measure"/>
|
|
</pivot>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="stock_valuation_layer_graph" model="ir.ui.view">
|
|
<field name="name">inventory.aging.graph</field>
|
|
<field name="model">stock.valuation.layer</field>
|
|
<field name="arch" type="xml">
|
|
<graph>
|
|
<field name="remaining_qty" type="measure"/>
|
|
</graph>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="stock_valuation_layer_action" model="ir.actions.act_window">
|
|
<field name="name">Stock Valuation</field>
|
|
<field name="res_model">stock.valuation.layer</field>
|
|
<field name="view_mode">tree,form,pivot</field>
|
|
<field name="view_id" ref="stock_valuation_layer_tree"/>
|
|
<field name="domain">[('product_id.type', '=', 'product')]</field>
|
|
<field name="context">{'search_default_group_by_product_id': True}</field>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_smiling_face"/>
|
|
<p>
|
|
There are no valuation layers. Valuation layers are created when there are product moves that impact the valuation of the stock.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="view_inventory_valuation_search" model="ir.ui.view">
|
|
<field name="name">Inventory Valuation</field>
|
|
<field name="model">stock.valuation.layer</field>
|
|
<field name="arch" type="xml">
|
|
<search string="Inventory Valuation">
|
|
<field name="product_id"/>
|
|
<field name="reference"/>
|
|
<field name="categ_id" />
|
|
<field name="product_tmpl_id" />
|
|
<field name="warehouse_id" groups="stock.group_stock_multi_warehouses"/>
|
|
<field name="company_id" groups="base.group_multi_company"/>
|
|
<separator/>
|
|
<filter string="Incoming" name="incoming" domain="[('stock_move_id.location_id.usage', 'not in', ('internal', 'transit')), ('stock_move_id.location_dest_id.usage', 'in', ('internal', 'transit'))]"/>
|
|
<filter string="Outgoing" name="outgoing" domain="[('stock_move_id.location_id.usage', 'in', ('internal', 'transit')), ('stock_move_id.location_dest_id.usage', 'not in', ('internal', 'transit'))]"/>
|
|
<separator/>
|
|
<filter string="Has Remaining Qty" name="has_remaining_qty" domain="[('remaining_qty', '>', 0)]"/>
|
|
<group expand='0' string='Group by...'>
|
|
<filter string='Product' name="group_by_product_id" context="{'group_by': 'product_id'}"/>
|
|
<filter string='Product Category' name="group_by_categ_id" context="{'group_by': 'categ_id'}"/>
|
|
<filter string='Date' name="group_by_created_date" context="{'group_by': 'create_date'}"/>
|
|
<filter string='Company' name="group_by_company_id" context="{'group_by': 'company_id'}" groups="base.group_multi_company"/>
|
|
</group>
|
|
</search>
|
|
</field>
|
|
</record>
|
|
|
|
<!-- reporting view -->
|
|
<record id="stock_valuation_layer_report_tree" model="ir.ui.view">
|
|
<field name="name">stock.valuation.layer.report.tree</field>
|
|
<field name="model">stock.valuation.layer</field>
|
|
<field name="inherit_id" ref="stock_valuation_layer_tree"/>
|
|
<field name="mode">primary</field>
|
|
<field name="arch" type="xml">
|
|
<field name="quantity" position="attributes">
|
|
<attribute name="invisible">1</attribute>
|
|
</field>
|
|
<field name="unit_cost" position="after">
|
|
<field name="remaining_qty" sum="Total Remaining Quantity"/>
|
|
</field>
|
|
<field name="value" position="before">
|
|
<field name="remaining_value" sum="Total Remaining Value"/>
|
|
</field>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="stock_valuation_layer_report_action" model="ir.actions.act_window">
|
|
<field name="name">Stock Valuation</field>
|
|
<field name="res_model">stock.valuation.layer</field>
|
|
<field name="view_mode">tree,form,pivot</field>
|
|
<field name="view_id" ref="stock_valuation_layer_report_tree"/>
|
|
<field name="context">{'search_default_has_remaining_qty': 1}</field>
|
|
<field name="domain">[('product_id.type', '=', 'product')]</field>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_smiling_face"/>
|
|
<p>
|
|
There are no valuation layers. Valuation layers are created when there are product moves that impact the valuation of the stock.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<record id="inventory_aging_action" model="ir.actions.act_window">
|
|
<field name="name">Inventory Aging</field>
|
|
<field name="res_model">stock.valuation.layer</field>
|
|
<field name="view_mode">pivot,tree,graph</field>
|
|
<field name="view_ids"
|
|
eval="[(5, 0, 0),
|
|
(0, 0, {'view_mode': 'pivot', 'view_id': ref('stock_valuation_layer_pivot')}),
|
|
(0, 0, {'view_mode': 'tree', 'view_id': ref('stock_valuation_layer_tree')})]"/>
|
|
<field name="context">{
|
|
'search_default_has_remaining_qty': True,
|
|
'search_default_incoming': True,
|
|
'pivot_column_groupby': ['create_date:month'],
|
|
'pivot_row_groupby': ['categ_id'],
|
|
'pivot_measures': ['remaining_qty', 'remaining_value'],
|
|
'graph_mode': 'bar',
|
|
'graph_groupbys': ['create_date:month'],
|
|
}</field>
|
|
<field name="domain">[('product_id.type', '=', 'product')]</field>
|
|
<field name="help" type="html">
|
|
<p class="o_view_nocontent_smiling_face"/>
|
|
<p>
|
|
There are no valuation layers. Valuation layers are created when there are product moves that impact the valuation of the stock.
|
|
</p>
|
|
</field>
|
|
</record>
|
|
|
|
<menuitem id="menu_valuation" name="Valuation" parent="stock.menu_warehouse_report" sequence="250" action="stock_valuation_layer_action"/>
|
|
<menuitem id="menu_inventory_aging" name="Inventory Aging" parent="stock.menu_warehouse_report" sequence="260" action="inventory_aging_action"/>
|
|
|
|
<record id="stock_valuation_layer_picking" model="ir.ui.view">
|
|
<field name="name">stock.valuation.layer.picking</field>
|
|
<field name="model">stock.picking</field>
|
|
<field name="inherit_id" ref="stock.view_picking_form" />
|
|
<field name="arch" type="xml">
|
|
<xpath expr="//field[@name='is_locked']" position="before">
|
|
<field name="country_code" invisible="1"/>
|
|
</xpath>
|
|
|
|
<xpath expr="//div[@name='button_box']" position="inside">
|
|
<button type="object"
|
|
name="action_view_stock_valuation_layers"
|
|
class="oe_stat_button" icon="fa-dollar" groups="base.group_no_one"
|
|
invisible="state != 'done'" >
|
|
<div class="o_stat_info">
|
|
<span class="o_stat_text">Valuation</span>
|
|
</div>
|
|
</button>
|
|
</xpath>
|
|
</field>
|
|
</record>
|
|
|
|
</odoo>
|