[IMP] mrp_exception: finalized the changes

This commit is contained in:
Jorge Che
2022-10-20 17:34:16 +00:00
parent 6e20862af2
commit 3bfc3f5ce4
9 changed files with 130 additions and 10 deletions

View File

@@ -1 +1,2 @@
from . import models
from . import wizard

View File

@@ -16,13 +16,12 @@ Custom exceptions on journal entries
'mrp',
],
'data': [
# 'demo/mrp_production_exception.xml',
# 'security/ir.model.access.csv',
# 'views/account_move_views.xml',
# 'wizard/account_move_exception_confirm_views.xml',
'security/ir.model.access.csv',
'views/mrp_production_views.xml',
'wizard/mrp_production_exception_confirm_views.xml',
],
'demo': [
'demo/account_exception_demo.xml',
'demo/mrp_production_exception.xml',
],
'installable': True,
'auto_install': False,

View File

@@ -1,12 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="excep_wrong_label_type" model="exception.rule">
<field name="name">Wrong Label Type</field>
<field name="description">Please, ensure thet the correct Label Type is confirmed.</field>
<record id="except_mrp_product_not_storable" model="exception.rule">
<field name="name">Finished product is not storable</field>
<field name="description">Please, ensure thet the finished product is of Storable type.</field>
<field name="sequence">50</field>
<field name="model">mrp.production</field>
<field name="code">if production.label_type == 'ORG' and any(production.po_lot_id.order_line.mapped(lambda l: l.organic_status == 'NON-ORG')): failed=True</field>
<field name="code">failed = self.product_id.detailed_type != 'storable'</field>
<field name="active" eval="True"/>
</record>
</odoo>

View File

@@ -25,7 +25,7 @@ class MrpProduction(models.Model):
@api.model
def _get_popup_action(self):
return self.env.ref('omf_mrp.action_mrp_production_exception_confirm')
return self.env.ref('mrp_exception.action_mrp_production_exception_confirm')
def action_confirm(self):
self.ensure_one()

View File

@@ -0,0 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
mrp_exception.access_mrp_production_exception_confirm,access_mrp_production_exception_confirm,mrp_exception.model_mrp_production_exception_confirm,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 mrp_exception.access_mrp_production_exception_confirm access_mrp_production_exception_confirm mrp_exception.model_mrp_production_exception_confirm base.group_user 1 1 1 1

View File

@@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="action_mrp_production_exception" model="ir.actions.act_window">
<field name="name">Manufacturing Order Exceptions</field>
<field name="res_model">exception.rule</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="base_exception.view_exception_rule_tree"/>
<field name="domain">[('model', '=', 'mrp.production')]</field>
<field name="context">{'active_test': False, 'default_model' : 'mrp.production'}</field>
</record>
<menuitem
action="action_mrp_production_exception"
id="menu_mrp_production_exception"
sequence="10"
parent="mrp.menu_mrp_configuration"
groups="base_exception.group_exception_rule_manager"
/>
<record id="mrp_production_form_view" model="ir.ui.view">
<field name="name">mrp.production.form.inherit.exception</field>
<field name="model">mrp.production</field>
<field name="inherit_id" ref="mrp.mrp_production_form_view"/>
<field name="arch" type="xml">
<sheet position="before">
<div class="alert alert-danger" role="alert" style="margin-bottom:0px;"
attrs="{'invisible': [('exceptions_summary','=',False)]}">
<p><strong>There are exceptions blocking the confirmation of this Delivery Order:</strong></p>
<field name="exceptions_summary"/>
<button name="action_ignore_exceptions" type="object" class="btn-danger"
string="Ignore Exceptions" help="Click here to be able to confirm this Delivery Order regardless of the exceptions."
groups="base_exception.group_exception_rule_manager"/>
</div>
</sheet>
<xpath expr="//field[@name='bom_id']/.." position="inside">
<field name="ignore_exception" states="done" />
</xpath>
</field>
</record>
<record id="view_picking_tree" model="ir.ui.view">
<field name="name">stock.picking.tree.inherit.exception</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.vpicktree"/>
<field name="arch" type="xml">
<field name="state" position="after">
<field name="main_exception_id"/>
</field>
</field>
</record>
<record id="view_picking_internal_search" model="ir.ui.view">
<field name="name">stock.picking.internal.search.inherit.exception</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_internal_search" />
<field name="arch" type="xml">
<filter name="backorder" position="after">
<separator orientation="vertical"/>
<filter icon="terp-emblem-important" name="tofix" string="Blocked by exceptions" domain="[('main_exception_id','!=',False)]"/>
</filter>
</field>
</record>
</odoo>

View File

@@ -0,0 +1 @@
from . import mrp_production_exception_confirm

View File

@@ -0,0 +1,26 @@
# Part of Hibou Suite Professional. See LICENSE_PROFESSIONAL file for full copyright and licensing details.
from odoo import api, fields, models
class MrpProductionExceptionConfirm(models.TransientModel):
_name = 'mrp.production.exception.confirm'
_inherit = ['exception.rule.confirm']
_description = 'Manufacturing Order Confirm Wizard'
related_model_id = fields.Many2one('mrp.production', 'Manufacturing Order')
def action_confirm(self):
self.ensure_one()
if self.ignore:
self.related_model_id.ignore_exception = True
res = super().action_confirm()
if self.ignore:
return self.related_model_id.button_validate()
else:
return res
def _action_ignore(self):
self.related_model_id.ignore_exception = True
super()._action_ignore()
return self.related_model_id.button_validate()

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_mrp_production_exception_confirm" model="ir.ui.view">
<field name="name">Manufacturing Order Exceptions</field>
<field name="model">mrp.production.exception.confirm</field>
<field name="inherit_id" ref="base_exception.view_exception_rule_confirm"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//footer" position="inside">
<button class="oe_link" special="cancel" string="Cancel"/>
</xpath>
</field>
</record>
<record id="action_mrp_production_exception_confirm" model="ir.actions.act_window">
<field name="name">Blocked due to exceptions</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.production.exception.confirm</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_mrp_production_exception_confirm"/>
<field name="target">new</field>
</record>
</odoo>