add customer name and upstream production to work orders. Add customer name to shop floor view on MOs.
This commit is contained in:
parent
afb4d84e8f
commit
ddaee59a59
8 changed files with 135 additions and 22 deletions
|
|
@ -18,17 +18,23 @@
|
|||
# DEALINGS IN THE SOFTWARE.
|
||||
#
|
||||
{
|
||||
'name': 'Client Name on Manufacturing Order',
|
||||
'version': '17.0.1.0.0',
|
||||
'summary': 'Show the customer name on manufacturing order views.',
|
||||
'category': 'Manufacturing',
|
||||
'author': 'Bemade Inc.',
|
||||
'website': 'http://www.bemade.org',
|
||||
'license': 'LGPL-3',
|
||||
'depends': ['sale_mrp'],
|
||||
'data': [
|
||||
'views/mrp_production_views.xml',
|
||||
"name": "Client Name on Manufacturing Order",
|
||||
"version": "17.0.2.0.0",
|
||||
"summary": "Show the customer name on manufacturing order views.",
|
||||
"category": "Manufacturing",
|
||||
"author": "Bemade Inc.",
|
||||
"website": "http://www.bemade.org",
|
||||
"license": "LGPL-3",
|
||||
"depends": ["sale_mrp", "mrp_workorder", "web"],
|
||||
"data": [
|
||||
"views/mrp_production_views.xml",
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': False
|
||||
'assets': {
|
||||
'web.assets_backend': [
|
||||
'client_name_on_manufacturing_orders/static/src/**/*.xml',
|
||||
'client_name_on_manufacturing_orders/static/src/**/*.js',
|
||||
]
|
||||
},
|
||||
"installable": True,
|
||||
"auto_install": False,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
from . import mrp_production
|
||||
from . import mrp_production
|
||||
|
|
|
|||
|
|
@ -2,20 +2,40 @@ from odoo import models, fields, api
|
|||
|
||||
|
||||
class MrpProduction(models.Model):
|
||||
_inherit = 'mrp.production'
|
||||
_inherit = "mrp.production"
|
||||
|
||||
customer_ids = fields.Many2many(
|
||||
comodel_name='res.partner',
|
||||
comodel_name="res.partner",
|
||||
compute="_compute_customers",
|
||||
string="Customers",
|
||||
store=True,
|
||||
compute_sudo=True,
|
||||
)
|
||||
|
||||
@api.depends('procurement_group_id')
|
||||
upstream_production_ids = fields.Many2many(
|
||||
comodel_name="mrp.production",
|
||||
relation="mrp_production_upstream_rel",
|
||||
column1="production_id",
|
||||
column2="upstream_production_id",
|
||||
compute="_compute_upstream_production_ids",
|
||||
string="Upstream Manufacturing Orders",
|
||||
store=True,
|
||||
compute_sudo=True,
|
||||
)
|
||||
|
||||
@api.depends("procurement_group_id")
|
||||
def _compute_customers(self):
|
||||
for rec in self:
|
||||
rec.customer_ids = (rec.mapped('procurement_group_id').
|
||||
mapped('mrp_production_ids').
|
||||
mapped('move_dest_ids').
|
||||
mapped('group_id').
|
||||
mapped('sale_id').
|
||||
mapped('partner_id').ids)
|
||||
rec.customer_ids = (
|
||||
rec.mapped("procurement_group_id")
|
||||
.mapped("mrp_production_ids")
|
||||
.mapped("move_dest_ids")
|
||||
.mapped("group_id")
|
||||
.mapped("sale_id")
|
||||
.mapped("partner_id")
|
||||
.ids
|
||||
)
|
||||
|
||||
def _compute_upstream_production_ids(self):
|
||||
for rec in self:
|
||||
rec.upstream_production_ids = rec._get_sources().ids
|
||||
|
|
|
|||
27
client_name_on_manufacturing_orders/models/mrp_workorder.py
Normal file
27
client_name_on_manufacturing_orders/models/mrp_workorder.py
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
from odoo import models, fields, api
|
||||
|
||||
|
||||
class MrpWorkorder(models.Model):
|
||||
_inherit = "mrp.workorder"
|
||||
|
||||
customer_ids = fields.Many2many(
|
||||
comodel_name="res.partner",
|
||||
compute="_compute_customer_ids",
|
||||
string="Customers",
|
||||
)
|
||||
|
||||
upstream_production_ids = fields.Many2many(
|
||||
comodel_name="mrp.production",
|
||||
compute="_compute_upstream_production_ids",
|
||||
string="Upstream Manufacturing Orders",
|
||||
)
|
||||
|
||||
@api.depends("production_id.customer_ids")
|
||||
def _compute_customer_ids(self):
|
||||
for rec in self:
|
||||
rec.customer_ids = rec.production_id.customer_ids
|
||||
|
||||
@api.depends("production_id.upstream_production_ids")
|
||||
def _compute_upstream_production_ids(self):
|
||||
for rec in self:
|
||||
rec.upstream_production_ids = rec.production_id.upstream_production_ids
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
import {MrpDisplay} from "@mrp_workorder/mrp_display/mrp_display";
|
||||
import {patch} from "@web/core/utils/patch";
|
||||
|
||||
patch(MrpDisplay.prototype, {
|
||||
_makeModelParams() {
|
||||
var params = super._makeModelParams();
|
||||
const customerFields = this.props.models.find(
|
||||
(m) => m.resModel === "res.partner"
|
||||
).fields;
|
||||
params.config.activeFields.customer_ids.related = {
|
||||
fields: customerFields,
|
||||
activeFields: customerFields,
|
||||
};
|
||||
return params;
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
import {MrpDisplayAction} from "@mrp_workorder/mrp_display/mrp_display_action";
|
||||
import {patch} from "@web/core/utils/patch";
|
||||
|
||||
patch(MrpDisplayAction.prototype, {
|
||||
get fieldsStructure() {
|
||||
const vals = super.fieldsStructure;
|
||||
vals["mrp.production"].push("customer_ids", "upstream_production_ids");
|
||||
vals["mrp.workorder"].push("customer_ids", "upstream_production_ids");
|
||||
vals["res.partner"] = ["id", "display_name"];
|
||||
return vals;
|
||||
},
|
||||
});
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
/** @odoo-module **/
|
||||
|
||||
import {Many2ManyTagsField} from "@web/views/fields/many2many_tags/many2many_tags_field";
|
||||
import {MrpDisplayRecord} from "@mrp_workorder/mrp_display/mrp_display_record";
|
||||
|
||||
MrpDisplayRecord.components = {
|
||||
...MrpDisplayRecord.components,
|
||||
Many2ManyTagsField,
|
||||
};
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<templates xml:space="preserver">
|
||||
<t t-inherit="mrp_workorder.MrpDisplayRecord" t-inherit-mode="extension">
|
||||
<xpath expr="//div[hasclass('card-header')]" position="inside">
|
||||
<t
|
||||
t-if="props.record.data.customer_ids && props.record.data.customer_ids.records"
|
||||
>
|
||||
<Many2ManyTagsField
|
||||
name="'customer_ids'"
|
||||
record="props.record"
|
||||
canCreate="false"
|
||||
canCreateEdit="false"
|
||||
canQuickCreate="false"
|
||||
readonly="true"
|
||||
/>
|
||||
</t>
|
||||
</xpath>
|
||||
</t>
|
||||
</templates>
|
||||
Loading…
Reference in a new issue