Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion stock_currency_valuation/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
'name': 'Stock currency valuation',
'version': "16.0.2.3.0",
'version': "16.0.3.0.0",
'category': 'Warehouse Management',
'sequence': 14,
'summary': '',
Expand All @@ -14,11 +14,13 @@
'product_replenishment_cost',
],
'data': [
'security/ir.model.access.csv',
'views/product_category.xml',
'views/stock_picking.xml',
'views/stock_landed_cost_views.xml',
'views/product.xml',
'views/stock_valuation_layer.xml',
'views/stock_valuation_layer_recompute.xml',
'wizard/stock_valuation_layer_revaluation_views.xml',
],
'installable': True,
Expand Down
1 change: 1 addition & 0 deletions stock_currency_valuation/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@
from . import account_move
from . import stock_picking
from . import stock_move_line
from . import stock_valuation_layer_recompute
416 changes: 416 additions & 0 deletions stock_currency_valuation/models/stock_valuation_layer_recompute.py

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions stock_currency_valuation/security/ir.model.access.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
stock_currency_valuation.access_stock_valuation_layer_recompute,access_stock_valuation_layer_recompute,stock_currency_valuation.model_stock_valuation_layer_recompute,base.group_user,1,1,1,1
stock_currency_valuation.access_stock_valuation_layer_recompute_line,access_stock_valuation_layer_recompute_line,stock_currency_valuation.model_stock_valuation_layer_recompute_line,base.group_user,1,1,1,1
114 changes: 114 additions & 0 deletions stock_currency_valuation/views/stock_valuation_layer_recompute.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="stock_valuation_layer_recompute_form_view" model="ir.ui.view">
<field name="name">stock.valuation.layer.recompute.form</field>
<field name="model">stock.valuation.layer.recompute</field>
<field name="type">form</field> <!-- Corrected type field -->
<field name="arch" type="xml">
<header>
<button name="action_compute_lines" type="object" string="compute lines" attrs="{'invisible': [('state', 'in', ['done', 'cancel'])]}"/>
<button name="delete_adjust_compute_lines" type="object" string="delete adjust and compute lines" attrs="{'invisible': [('state', 'in', ['done', 'cancel'])]}"/>
<button name="action_manual_slv_revaluation" type="object" string="Revaluate" attrs="{'invisible': [('state', 'in', ['draft', 'cancel','done'])]}"/>
<button name="action_cancel" type="object" string="Cancel" attrs="{'invisible': [('state', 'in', ['done', 'cancel'])]}"/>
<button name="back_to_draft" type="object" string="Back to Draft" attrs="{'invisible': [('state', '!=', 'cancel')]}"/>
<field name="state" widget="statusbar" statusbar_visible="draft,in_process,done,cancel"/>
</header>
<form>
<sheet>
<group >
<group colspan="2">
<field name="company_id" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
<field name="product_id" attrs="{'readonly': [('state', '!=', 'draft')]}"/>
<field name="valuation_currency_id" attrs="{'readonly': [('state', 'in', ['done', 'cancel'])]}"/>
</group>
<group>
<field name="initial_amount" attrs="{'readonly': [('state', 'in', ['done', 'cancel'])]}"/>
<field name="final_amount" attrs="{'readonly': [('state', 'in', ['done', 'cancel'])]}"/>
<field name="final_rate" readonly="True"/>

</group>
<group>
<field name="initial_amount_in_currency" attrs="{'readonly': [('state', 'in', ['done', 'cancel'])]}"/>
<field name="final_amount_in_currency" attrs="{'readonly': [('state', 'in', ['done', 'cancel'])]}"/>
</group>
<field name="last_manual_svl_id" readonly="1"/>
</group>
<field name="line_ids" attrs="{'readonly': [('state', 'in', ['done', 'cancel'])]}">
<tree>
<field name="currency_id" invisible="1"/>
<field name="company_currency_id" invisible="1"/>
<field name="layer_date" readonly="True" optional="hide"/>
<field name="svl_type" readonly="True" optional="hide"/>
<field name="layer_id" readonly="True" optional="show"/>
<field name="quantity" readonly="True" optional="hide"/>
<field name="quantity_at_time" readonly="True" optional="hide"/>
<field name="layer_unit_cost" optional="hide"/>
<field name="layer_value" currency_field="company_currency_id"/>
<field name="new_unit_cost" currency_field="company_currency_id" optional="hide"/>
<field name="new_value" currency_field="company_currency_id"/>
<field name="layer_unit_cost_in_currency" optional="hide"/>
<field name="layer_value_in_currency"/>
<field name="new_unit_cost_in_currency" optional="hide"/>
<field name="new_value_in_currency"/>
<field name="standard_price" currency_field="company_currency_id"/>
<field name="standard_price_in_currency"/>
<field name="need_changes" readonly="True"/>
</tree>
</field>
</sheet>
</form>
</field>
</record>

<record id="stock_valuation_layer_recompute_list_view" model="ir.ui.view">
<field name="name">stock.valuation.layer.recompute.list</field>
<field name="model">stock.valuation.layer.recompute</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree>
<field name="product_id"/>
<field name="valuation_currency_id"/>
<field name="amount_changed"/>
<field name="slv_changed"/>
<field name="initial_amount"/>
<field name="final_amount"/>
<field name="initial_amount_in_currency"/>
<field name="final_amount_in_currency"/>
<field name="state"/>
<field name="last_manual_svl_id"/>
</tree>
</field>
</record>

<record id="stock_valuation_layer_recompute_search_view" model="ir.ui.view">
<field name="name">stock.valuation.layer.recompute.search</field>
<field name="model">stock.valuation.layer.recompute</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search>
<filter string="Draft" name="filter_draft" domain="[('state', '=', 'draft')]" />
<filter string="In Process" name="filter_in_process" domain="[('state', '=', 'in_process')]" />
<filter string="Done" name="filter_done" domain="[('state', '=', 'done')]" />
<filter string="Cancelled" name="filter_cancel" domain="[('state', '=', 'cancel')]" />
<filter string="SLV Changed" name="filter_slv_changed" domain="[('slv_changed', '=', True)]" />
<field name="product_id" string="Product"/>
<group expand="0" name="group_by" string="Group By">
<filter string="Product" name="group_by_product_id" context="{'group_by': 'product_id'}"/>
<filter string="Company" name="group_by_company_id" context="{'group_by': 'company_id'}"/>
<filter string="State" name="group_by_state" context="{'group_by': 'state'}"/>

</group>
</search>
</field>
</record>

<record id="action_stock_valuation_layer_recompute" model="ir.actions.act_window">
<field name="name">Recompute layer</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">stock.valuation.layer.recompute</field>
<field name="view_mode">tree,form</field>
</record>

<menuitem action="action_stock_valuation_layer_recompute" id="layer_recompute_menu" parent="stock.menu_warehouse_report" name="Layer recompute" sequence="2"/>

</odoo>
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<div class="o_row" attrs="{'invisible':[('show_added_value_in_currency', '!=', True)]}">
<span><field name="added_value_in_currency" class="oe_inline"/> = <field name="new_value_in_currency" class="oe_inline"/> (<field name="new_value_in_currency_by_qty" class="oe_inline ms-1"/> by <field name="product_uom_name" class="oe_inline me-1"/>)
<small class="mx-2 fst-italic">Use a negative added value to record a decrease in the product value</small></span>
</div>
</div>
<field name="show_added_value_in_currency" invisible="1"/>
<field name="valuation_currency_id" invisible="1"/>
</field>
Expand Down
4 changes: 2 additions & 2 deletions stock_ux/models/stock_move.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# For copyright and license notices, see __manifest__.py file in module root
# directory
##############################################################################
from odoo import models, fields, api, _
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
from odoo.tools import float_compare

Expand Down Expand Up @@ -184,7 +184,7 @@ def check_cancel(self):
if self.filtered(
lambda x: x.picking_id and x.state == 'cancel' and not self.user_has_groups('stock_ux.allow_picking_cancellation')):
raise ValidationError("Only User with 'Picking cancelation allow' rights can cancel pickings")

def _merge_moves(self, merge_into=False):
# 22/04/2024: Agregamos esto porque sino al intentar confirmar compras con usuarios sin permisos, podia pasar que salga la constrain de arriba (check_cancel)
return super(StockMove,self.with_context(cancel_from_order=True))._merge_moves(merge_into = merge_into)
Loading