diff --git a/manufacture_process_costing/README.rst b/manufacture_process_costing/README.rst new file mode 100755 index 000000000..86a6155d4 --- /dev/null +++ b/manufacture_process_costing/README.rst @@ -0,0 +1,48 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg + :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +Process Cost of Manufacturing Orders +==================================== +* This module allow to manage process cost of manufacturing orders. + +Configuration +============= +- www.odoo.com/documentation/15.0/setup/install.html +- Install our custom addon + +License +------- +General Public License, Version 3 (LGPL v3). +(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: (V16) Javid A, + (V15) Adarsh K, + Contact: odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com + +Further information +=================== +HTML Description: ``__ diff --git a/manufacture_process_costing/__init__.py b/manufacture_process_costing/__init__.py new file mode 100755 index 000000000..b163d435f --- /dev/null +++ b/manufacture_process_costing/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models + diff --git a/manufacture_process_costing/__manifest__.py b/manufacture_process_costing/__manifest__.py new file mode 100755 index 000000000..008af916c --- /dev/null +++ b/manufacture_process_costing/__manifest__.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': 'Process Cost of Manufacturing Orders', + 'version': '15.0.1.0.0', + 'category': 'Manufacturing', + 'summary': """Manufacture Process Costing By Material Cost, Labour Cost and + Overhead Cost""", + 'description': """This module helps to calculate process cost of + manufacturing order and workorder with material cost, labour cost and + overhead cost from components and work center. It calculates both + estimated costing and real costing. Estimated costing is done on Bill of + Material-BOM and real costing calculated on manufacturing order based on + real-time consumption and quantity consumption. You can also provide a + cancel reason for canceling the manufacture order.You can also see the + reports for BOM and Manufacture order. Also, you can add cancel + reasons.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://cybrosys.com', + 'depends': ['base', 'mrp'], + 'data': [ + 'security/ir.model.access.csv', + 'views/res_config_settings_views.xml', + 'views/mrp_bom_views.xml', + 'views/mrp_production_views.xml', + 'views/mrp_workcenter_views.xml', + 'views/mrp_cancel_reason_views.xml', + 'report/mrp_bom_cost_reports.xml', + 'report/mrp_bom_cost_report_templates.xml', + 'report/mrp_production_cost_reports.xml', + 'report/mrp_production_cost_report_templates.xml', + ], + 'images': ['static/description/banner.png'], + 'License': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/manufacture_process_costing/doc/RELEASE_NOTES.md b/manufacture_process_costing/doc/RELEASE_NOTES.md new file mode 100755 index 000000000..8e60b6d3d --- /dev/null +++ b/manufacture_process_costing/doc/RELEASE_NOTES.md @@ -0,0 +1,5 @@ + +#### 28.06.2024 +#### Version 15.0.1.0.0 +#### ADD +- Initial commit for Process Cost of Manufacturing Orders diff --git a/manufacture_process_costing/models/__init__.py b/manufacture_process_costing/models/__init__.py new file mode 100755 index 000000000..65592a9a2 --- /dev/null +++ b/manufacture_process_costing/models/__init__.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import direct_labour_cost +from . import direct_material_cost +from . import direct_overhead_cost +from . import mrp_bom +from . import mrp_cancel_reason +from . import mrp_production +from . import mrp_workorder +from . import mrp_workcenter +from . import res_config_settings + diff --git a/manufacture_process_costing/models/direct_labour_cost.py b/manufacture_process_costing/models/direct_labour_cost.py new file mode 100755 index 000000000..1324b1386 --- /dev/null +++ b/manufacture_process_costing/models/direct_labour_cost.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models + + +class DirectLabourCost(models.Model): + """This class creates a new model with the name direct.labour.cost""" + _name = 'direct.labour.cost' + _description = 'Direct Labour Cost' + + labour_cost_id = fields.Many2one('mrp.bom', + string='Labour Cost', + help='Corresponding bill of materials') + operation = fields.Char(string='Operation', + help='Operation required for the work') + work_center_id = fields.Many2one('mrp.workcenter', + string='Work Center', + help='Corresponding work center') + planned_minute = fields.Float(string='Planned Minute', + help='Planned minutes for the work') + cost_minute = fields.Float(string='Cost/Minute', + help='Cost per minute for the work') + total_cost = fields.Float(compute='_compute_total_cost', store=True, + string='Total Cost', help='Total labour cost') + production_labour_id = fields.Many2one('mrp.production', + string='Production Labour', + help='corresponding manufacturing ' + 'order') + actual_minute = fields.Float(string='Actual Minute', + help='Actual minutes taken for the work') + total_actual_cost = fields.Float(compute='_compute_total_actual_cost', + string='Total Actual Cost', + help='Total Actual labour cost') + + @api.depends('planned_minute', 'cost_minute') + def _compute_total_cost(self): + """Calculate total_cost based on planned_minute and cost_minute""" + for rec in self: + rec.total_cost = rec.planned_minute * rec.cost_minute + + @api.depends('actual_minute', 'cost_minute') + def _compute_total_actual_cost(self): + """Calculate total_actual_cost based on actual_minute and cost_minute""" + for rec in self: + rec.total_actual_cost = rec.actual_minute * rec.cost_minute diff --git a/manufacture_process_costing/models/direct_material_cost.py b/manufacture_process_costing/models/direct_material_cost.py new file mode 100755 index 000000000..632d6a3a8 --- /dev/null +++ b/manufacture_process_costing/models/direct_material_cost.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models + + +class DirectMaterialCost(models.Model): + """This class creates a new model with the name direct.material.cost""" + _name = 'direct.material.cost' + _description = 'Direct Material Cost' + + material_cost_id = fields.Many2one('mrp.bom', + string='Material Cost', + help='Corresponding bill of materials') + product_id = fields.Many2one('product.product', + string='Product', + help='Product required for the work') + planned_qty = fields.Integer(string='Planned Qty', + help='Planned minutes for the work') + uom_id = fields.Many2one('uom.uom', string='UoM', + help="Unit of measure") + cost_unit = fields.Float(string='Cost/Unit', + help='Cost per unit for the work') + total_cost = fields.Float(compute='_compute_total_cost', store=True, + string='Total Cost', help='Total material cost') + production_material_id = fields.Many2one('mrp.production', + string='Production Material', + help='Corresponding manufacturing ' + 'order') + actual_quantity = fields.Integer(string='Actual Quantity', + help='Actual quantity taken for the work') + total_actual_cost = fields.Float(compute='_compute_total_actual_cost', + string='Total Actual Cost', + help='Total actual material cost') + + @api.depends('planned_qty', 'cost_unit') + def _compute_total_cost(self): + """Calculate total_cost based on planned_qty and cost_unit""" + for rec in self: + rec.total_cost = rec.planned_qty * rec.cost_unit + + @api.depends('actual_quantity', 'cost_unit') + def _compute_total_actual_cost(self): + """Calculate total_actual_cost based on actual_quantity and cost_unit""" + for rec in self: + rec.total_actual_cost = rec.actual_quantity * rec.cost_unit diff --git a/manufacture_process_costing/models/direct_overhead_cost.py b/manufacture_process_costing/models/direct_overhead_cost.py new file mode 100755 index 000000000..b65b8b8d5 --- /dev/null +++ b/manufacture_process_costing/models/direct_overhead_cost.py @@ -0,0 +1,64 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models + + +class DirectOverheadCost(models.Model): + """This class creates a new model with the name direct.overhead.cost""" + _name = 'direct.overhead.cost' + _description = 'Direct Overhead Cost' + + overhead_cost_id = fields.Many2one('mrp.bom', + string='Overhead Cost', + help='Corresponding bill of materials') + operation = fields.Char(string='Operation', + help='Operation required for the work') + work_center_id = fields.Many2one('mrp.workcenter', + string='Work Center', + help='Corresponding work center') + planned_minute = fields.Float(string='Planned Minute', + help='Planned minutes for the work') + cost_minute = fields.Float(string='Cost/Minute', + help='Cost per minute for the work') + total_cost = fields.Float(compute='_compute_total_cost', store=True, + string='Total Cost', + help='Total overhead cost') + production_overhead_id = fields.Many2one('mrp.production', + string='Production Overhead', + help='corresponding manufacturing ' + 'order') + actual_minute = fields.Float(string='Actual Minute', + help='Actual minutes taken for the work') + total_actual_cost = fields.Float(compute='_compute_total_actual_cost', + help='Total Actual overhead cost') + + @api.depends('planned_minute', 'cost_minute') + def _compute_total_cost(self): + """Calculate total_cost based on planned_minute and cost_minute""" + for rec in self: + rec.total_cost = rec.planned_minute * rec.cost_minute + + @api.depends('actual_minute', 'cost_minute') + def _compute_total_actual_cost(self): + """Calculate total_actual_cost based on actual_minute and cost_minute""" + for rec in self: + rec.total_actual_cost = rec.actual_minute * rec.cost_minute diff --git a/manufacture_process_costing/models/mrp_bom.py b/manufacture_process_costing/models/mrp_bom.py new file mode 100755 index 000000000..918451fb2 --- /dev/null +++ b/manufacture_process_costing/models/mrp_bom.py @@ -0,0 +1,146 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models + + +class MrpBom(models.Model): + """This class inherits the existing class mrp.bom to add the + additional features of the costing""" + _inherit = 'mrp.bom' + + material_cost_ids = fields.One2many('direct.material.cost', + 'material_cost_id', + string='Material Cost', + help="Material cost") + labour_cost_ids = fields.One2many('direct.labour.cost', + 'labour_cost_id', + string='Labour Cost', help="Labour cost") + overhead_cost_ids = fields.One2many('direct.overhead.cost', + 'overhead_cost_id', + string='Overhead Cost', help="Overhead " + "cost") + total_material_cost = fields.Float(compute='_compute_total_material_cost', + string='Total Material Cost', + store=True, help='Total Material Cost') + total_labour_cost = fields.Float(compute='_compute_total_labour_cost', + string='Total Labour Cost', + store=True, help='Total Labour Cost') + total_overhead_cost = fields.Float(compute='_compute_total_overhead_cost', + string='Total Overhead Cost', + store=True, help='Total Overhead Cost') + + @api.onchange('bom_line_ids') + def _onchange_bom_line_ids(self): + """write into material_cost_ids when bom_line_ids is changed""" + self.write({'material_cost_ids': [(5, 0)]}) + self.write({ + 'material_cost_ids': [ + (0, 0, { + 'material_cost_id': self.id, + 'product_id': rec.product_id.id, + 'planned_qty': rec.product_qty, + 'uom_id': rec.product_id.uom_id.id, + 'cost_unit': rec.product_id.standard_price, + }) for rec in self.bom_line_ids] + }) + + @api.onchange('operation_ids') + def _onchange_operation_ids(self): + """write into labour_cost_ids and overhead_cost_ids when + operation_ids is changed""" + process = self.env['ir.config_parameter'].sudo() + process_value = process.get_param( + 'manufacture_process_costing.process_costing_method') + if process_value == 'work-center': + self.write({'labour_cost_ids': [(5, 0)]}) + self.write({ + 'labour_cost_ids': [ + (0, 0, { + 'labour_cost_id': self.id, + 'operation': rec.name, + 'work_center_id': rec.workcenter_id.id, + 'planned_minute': rec.time_cycle, + 'cost_minute': rec.workcenter_id.labour_cost, + }) for rec in self.operation_ids] + }) + self.write({'overhead_cost_ids': [(5, 0)]}) + self.write({ + 'overhead_cost_ids': [ + (0, 0, { + 'overhead_cost_id': self.id, + 'operation': rec.name, + 'work_center_id': rec.workcenter_id.id, + 'planned_minute': rec.time_cycle, + 'cost_minute': rec.workcenter_id.overhead_cost, + }) for rec in self.operation_ids] + }) + else: + self.write({'labour_cost_ids': [(5, 0)]}) + self.write({ + 'labour_cost_ids': [ + (0, 0, { + 'labour_cost_id': self.id, + 'operation': rec.name, + 'work_center_id': rec.workcenter_id.id, + 'planned_minute': rec.time_cycle, + }) for rec in self.operation_ids] + }) + self.write({'overhead_cost_ids': [(5, 0)]}) + self.write({ + 'overhead_cost_ids': [ + (0, 0, { + 'overhead_cost_id': self.id, + 'operation': rec.name, + 'work_center_id': rec.workcenter_id.id, + 'planned_minute': rec.time_cycle, + }) for rec in self.operation_ids] + }) + + @api.depends('material_cost_ids.total_cost') + def _compute_total_material_cost(self): + """Calculates Total material costs""" + for result in self: + result.ensure_one() + result.total_material_cost = 0.00 + if result.material_cost_ids: + result.total_material_cost = sum( + result.material_cost_ids.mapped('total_cost')) + + @api.depends('labour_cost_ids.total_cost') + def _compute_total_labour_cost(self): + """Calculate total labour costs""" + for result in self: + result.ensure_one() + result.total_labour_cost = 0.00 + if result.labour_cost_ids: + result.total_labour_cost = sum( + result.labour_cost_ids.mapped('total_cost')) + + @api.depends('overhead_cost_ids.total_cost') + def _compute_total_overhead_cost(self): + """Calculate total overhead costs""" + for result in self: + result.ensure_one() + result.total_overhead_cost = 0.00 + if result.overhead_cost_ids: + result.total_overhead_cost = sum( + result.overhead_cost_ids.mapped('total_cost')) diff --git a/manufacture_process_costing/models/mrp_cancel_reason.py b/manufacture_process_costing/models/mrp_cancel_reason.py new file mode 100755 index 000000000..87eeec449 --- /dev/null +++ b/manufacture_process_costing/models/mrp_cancel_reason.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class MrpCancelReason(models.Model): + """The class represents a new model mrp.cancel.reason""" + _name = 'mrp.cancel.reason' + _description = 'Mrp Cancel Reason' + _rec_name = 'manufacturing_id' + _order = "id desc" + + reason_for_cancel = fields.Text( + string='Reason For Cancel', + help='Provide a reason for the cancellation of the manufacturing order') + manufacturing_id = fields.Many2one('mrp.production', + required=True, + string='Manufacture Order', + help='Corresponding manufacturing order') + date = fields.Datetime( + string='Cancel Date', default=fields.Datetime.now(), + help='The date and time of cancelling the manufacturing order') + cancelled_by_id = fields.Many2one( + 'res.users', + string='Cancelled By', + default=lambda self: self.env.user.id, + help='The corresponding user who is cancelling the order') + + def action_button_cancel(self): + """Calls the function action_cancel() from mrp production""" + self.manufacturing_id.action_cancel() diff --git a/manufacture_process_costing/models/mrp_production.py b/manufacture_process_costing/models/mrp_production.py new file mode 100755 index 000000000..68b7b67b7 --- /dev/null +++ b/manufacture_process_costing/models/mrp_production.py @@ -0,0 +1,230 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import api, fields, models +from odoo.exceptions import ValidationError + + +class MrpProduction(models.Model): + """This class inherits the existing class mrp production to add the + additional feature of the costing methods""" + _inherit = 'mrp.production' + + material_cost_ids = fields.One2many('direct.material.cost', + 'production_material_id', + string='Material Costs') + labour_cost_ids = fields.One2many('direct.labour.cost', + 'production_labour_id', + string='Labour Costs') + overhead_cost_ids = fields.One2many('direct.overhead.cost', + 'production_overhead_id', + string='Overhead Costs') + total_material_cost = fields.Float(compute='_compute_total_material_cost', + store=True, + string='Total Material Cost', + help='Total Material Cost of production') + total_labour_cost = fields.Float(compute='_compute_total_labour_cost', + store=True, string='Total Labour Cost', + help='Total Labour Cost of production') + total_overhead_cost = fields.Float(compute='_compute_total_overhead_cost', + store=True, + string='Total Overhead Cost', + help='Total Overhead Cost of production') + total_cost = fields.Float(compute='_compute_total_cost', store=True, + help='Total Cost of production', + string='Total Cost') + total_actual_material_cost = fields.Float( + string='Total Actual Material Cost', + compute='_compute_total_actual_material_cost', store=True, + help='Total Actual Material Cost of production') + total_actual_labour_cost = fields.Float(string='Total Actual Labour Cost', + compute='_compute_total_actual_' + 'labour_cost', + store=True, + help='Total Actual Labour Cost ' + 'of production') + total_actual_overhead_cost = fields.Float( + string='Total Actual Overhead Cost', + compute='_compute_total_actual_overhead_cost', store=True, + help='Total Actual Overhead Cost of production') + total_actual_cost = fields.Float(compute='_compute_total_actual_cost', + store=True, string='Total Actual Cost', + help='Total Actual Cost of production') + + def action_cancel_button(self): + """Returns the mrp.cancel.reason""" + reason = self.env['mrp.cancel.reason'].create( + {'manufacturing_id': self.id}) + return { + 'type': 'ir.actions.act_window', + 'name': 'Cancel Reason', + 'view_mode': 'form', + 'res_model': 'mrp.cancel.reason', + 'target': 'new', + 'view_type': 'form', + 'res_id': reason.id, + } + + @api.model_create_multi + def create(self, vals_list): + """Writes data to material_cost_ids, labour_cost_ids and + overhead_cost_ids when change in bom_id""" + res = super().create(vals_list) + bom = res.bom_id + if not bom: + raise ValidationError("BOM ID does not exist or is not assigned properly.") + res.write({'material_cost_ids': [(5, 0)]}) + res.write({ + 'material_cost_ids': [ + (0, 0, { + 'production_material_id': res.id, + 'material_cost_id': self.id, + 'product_id': rec.product_id.id, + 'planned_qty': rec.planned_qty, + 'uom_id': rec.uom_id.id, + 'cost_unit': rec.cost_unit, + }) for rec in res.bom_id.material_cost_ids] + }) + res.write({'labour_cost_ids': [(5, 0)]}) + res.write({ + 'labour_cost_ids': [ + (0, 0, { + 'production_labour_id': res.id, + 'labour_cost_id': self.id, + 'operation': rec.operation, + 'work_center_id': rec.work_center_id.id, + 'planned_minute': rec.planned_minute, + 'cost_minute': rec.cost_minute, + }) for rec in res.bom_id.labour_cost_ids] + }) + res.write({'overhead_cost_ids': [(5, 0)]}) + res.write({ + 'overhead_cost_ids': [ + (0, 0, { + 'production_overhead_id': res.id, + 'overhead_cost_id': self.id, + 'operation': rec.operation, + 'work_center_id': rec.work_center_id.id, + 'planned_minute': rec.planned_minute, + 'cost_minute': rec.cost_minute, + }) for rec in res.bom_id.overhead_cost_ids] + }) + return res + + @api.onchange('bom_id') + def _onchange_bom_id(self): + """Writes data to material_cost_ids, labour_cost_ids and + overhead_cost_ids when change in bom_id""" + self.write({'material_cost_ids': [(5, 0)]}) + self.write({ + 'material_cost_ids': [ + (0, 0, { + 'production_material_id': self.id, + 'material_cost_id': self.bom_id.id, + 'product_id': rec.product_id.id, + 'planned_qty': rec.planned_qty, + 'uom_id': rec.uom_id.id, + 'cost_unit': rec.cost_unit, + }) for rec in self.bom_id.material_cost_ids] + }) + self.write({'labour_cost_ids': [(5, 0)]}) + self.write({ + 'labour_cost_ids': [ + (0, 0, { + 'production_labour_id': self.id, + 'labour_cost_id': rec.id, + 'operation': rec.operation, + 'work_center_id': rec.work_center_id.id, + 'planned_minute': rec.planned_minute, + 'cost_minute': rec.cost_minute, + }) for rec in self.bom_id.labour_cost_ids] + }) + self.write({'overhead_cost_ids': [(5, 0)]}) + self.write({ + 'overhead_cost_ids': [ + (0, 0, { + 'production_overhead_id': self.id, + 'overhead_cost_id': rec.id, + 'operation': rec.operation, + 'work_center_id': rec.work_center_id.id, + 'planned_minute': rec.planned_minute, + 'cost_minute': rec.cost_minute, + }) for rec in self.bom_id.overhead_cost_ids] + }) + + @api.depends('material_cost_ids.total_cost') + def _compute_total_material_cost(self): + """Calculate total_material_cost""" + for result in self: + result.total_material_cost = sum( + result.mapped('material_cost_ids').mapped('total_cost')) + + @api.depends('labour_cost_ids.total_cost') + def _compute_total_labour_cost(self): + """Calculate total_labour_cost""" + for result in self: + result.total_labour_cost = sum( + result.mapped('labour_cost_ids').mapped('total_cost')) + + @api.depends('overhead_cost_ids.total_cost') + def _compute_total_overhead_cost(self): + """Calculates total_overhead_cost""" + for result in self: + result.total_overhead_cost = sum( + result.mapped('overhead_cost_ids').mapped('total_cost')) + + @api.depends('total_material_cost', 'total_labour_cost', + 'total_overhead_cost') + def _compute_total_cost(self): + """Calculates total_cost""" + for rec in self: + rec.total_cost = rec.total_material_cost + \ + rec.total_labour_cost + rec.total_overhead_cost + + @api.depends('material_cost_ids.total_actual_cost') + def _compute_total_actual_material_cost(self): + """Calculates total_actual_material_cost""" + for cost in self: + cost.total_actual_material_cost = sum( + cost.mapped('material_cost_ids').mapped('total_actual_cost')) + + @api.depends('labour_cost_ids.total_actual_cost') + def _compute_total_actual_labour_cost(self): + """Calculates total_actual_labour_cost""" + for cost in self: + cost.total_actual_labour_cost = sum( + cost.mapped('labour_cost_ids').mapped('total_actual_cost')) + + @api.depends('overhead_cost_ids.total_actual_cost') + def _compute_total_actual_overhead_cost(self): + """Calculates total_actual_overhead_cost""" + for cost in self: + cost.total_actual_overhead_cost = sum( + cost.mapped('overhead_cost_ids').mapped('total_actual_cost')) + + @api.depends('total_actual_material_cost', 'total_actual_labour_cost', + 'total_actual_overhead_cost') + def _compute_total_actual_cost(self): + """Calculates total_actual_cost""" + for rec in self: + rec.total_actual_cost = rec.total_actual_material_cost + \ + rec.total_actual_labour_cost + \ + rec.total_actual_overhead_cost diff --git a/manufacture_process_costing/models/mrp_workcenter.py b/manufacture_process_costing/models/mrp_workcenter.py new file mode 100755 index 000000000..6c69681f7 --- /dev/null +++ b/manufacture_process_costing/models/mrp_workcenter.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class MrpWorkcenter(models.Model): + """This class inherits the already existing class mrp workcenter to add + the total cost of overhead and labour per minute""" + _inherit = 'mrp.workcenter' + + overhead_cost = fields.Float(string='Overhead Costs per minute', + help='Set an overhead cost cost per minute') + labour_cost = fields.Float(string='Labour Costs per minute', + help='Set an labour cost cost per minute') diff --git a/manufacture_process_costing/models/mrp_workorder.py b/manufacture_process_costing/models/mrp_workorder.py new file mode 100755 index 000000000..125e2ab2a --- /dev/null +++ b/manufacture_process_costing/models/mrp_workorder.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models + + +class MrpWorkorder(models.Model): + """This class inherits the existing class with model name mrp.workorder + to define a function to automatically calculate the costings""" + _inherit = 'mrp.workorder' + + def button_finish(self): + """Super the button_finish button in workorder and update the + actual_minute and actual_quantity of labour_cost_ids, + overhead_cost_ids, material_cost_ids according to the settings value""" + res = super(MrpWorkorder, self).button_finish() + process = self.env['ir.config_parameter'].sudo() + process_value = process.get_param( + 'manufacture_process_costing.process_costing_method') + if process_value == 'work-center': + for rec in self.production_id.labour_cost_ids: + for val in self: + if rec.operation == val.name: + labour_id = rec.id + self.production_id.write({ + 'labour_cost_ids': [ + (1, labour_id, { + 'actual_minute': rec.duration + }) for rec in self] + }) + for rec in self.production_id.overhead_cost_ids: + for val in self: + if rec.operation == val.name: + overhead_id = rec.id + self.production_id.write({ + 'overhead_cost_ids': [ + (1, overhead_id, { + 'actual_minute': rec.duration + }) for rec in self] + }) + self.production_id.write({ + 'material_cost_ids': [ + (1, rec.id, { + 'actual_quantity': rec.planned_qty + }) for rec in self.production_id.material_cost_ids] + }) + return res diff --git a/manufacture_process_costing/models/res_config_settings.py b/manufacture_process_costing/models/res_config_settings.py new file mode 100755 index 000000000..d3667412f --- /dev/null +++ b/manufacture_process_costing/models/res_config_settings.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + """This class extends the 'res.config.settings' model to add a custom + field for configuring the process costing method""" + _inherit = 'res.config.settings' + + process_costing_method = fields.Selection(selection=[ + ('manually', 'Manually'), ('work-center', 'Work Center')], + default='manually', string='Process Costing Method', + config_parameter='manufacture_process_costing.process_costing_method', + help='How to compute process costing, whether manually or work ' + 'center based') diff --git a/manufacture_process_costing/report/mrp_bom_cost_report_templates.xml b/manufacture_process_costing/report/mrp_bom_cost_report_templates.xml new file mode 100755 index 000000000..a9ecba4f2 --- /dev/null +++ b/manufacture_process_costing/report/mrp_bom_cost_report_templates.xml @@ -0,0 +1,219 @@ + + + + + diff --git a/manufacture_process_costing/report/mrp_bom_cost_reports.xml b/manufacture_process_costing/report/mrp_bom_cost_reports.xml new file mode 100755 index 000000000..7f770d509 --- /dev/null +++ b/manufacture_process_costing/report/mrp_bom_cost_reports.xml @@ -0,0 +1,14 @@ + + + + + Bom Cost Report + mrp.bom + qweb-pdf + manufacture_process_costing.report_bom_cost + manufacture_process_costing.report_bom_cost + 'BOM Cost Report - %s' % object.display_name + + report + + diff --git a/manufacture_process_costing/report/mrp_production_cost_report_templates.xml b/manufacture_process_costing/report/mrp_production_cost_report_templates.xml new file mode 100755 index 000000000..3988aa4a6 --- /dev/null +++ b/manufacture_process_costing/report/mrp_production_cost_report_templates.xml @@ -0,0 +1,295 @@ + + + + + diff --git a/manufacture_process_costing/report/mrp_production_cost_reports.xml b/manufacture_process_costing/report/mrp_production_cost_reports.xml new file mode 100755 index 000000000..887993d38 --- /dev/null +++ b/manufacture_process_costing/report/mrp_production_cost_reports.xml @@ -0,0 +1,14 @@ + + + + + Production Cost Report + mrp.production + qweb-pdf + manufacture_process_costing.production_cost_report + manufacture_process_costing.production_cost_report + 'Production Cost Report - %s' % object.display_name + + report + + diff --git a/manufacture_process_costing/security/ir.model.access.csv b/manufacture_process_costing/security/ir.model.access.csv new file mode 100755 index 000000000..88c99c564 --- /dev/null +++ b/manufacture_process_costing/security/ir.model.access.csv @@ -0,0 +1,5 @@ +id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink +access_direct_material_cost,access.direct.material.cost,model_direct_material_cost,base.group_user,1,1,1,1 +access_direct_labour_cost,access.direct.labour.cost,model_direct_labour_cost,base.group_user,1,1,1,1 +access_direct_overhead_cost,access.direct.overhead.cost,model_direct_overhead_cost,base.group_user,1,1,1,1 +access_mrp_cancel_reason,access.mrp.cancel.reason,model_mrp_cancel_reason,base.group_user,1,1,1,1 diff --git a/manufacture_process_costing/static/description/assets/icons/check.png b/manufacture_process_costing/static/description/assets/icons/check.png new file mode 100755 index 000000000..c8e85f51d Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/check.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/chevron.png b/manufacture_process_costing/static/description/assets/icons/chevron.png new file mode 100755 index 000000000..2089293d6 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/chevron.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/cogs.png b/manufacture_process_costing/static/description/assets/icons/cogs.png new file mode 100755 index 000000000..95d0bad62 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/cogs.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/consultation.png b/manufacture_process_costing/static/description/assets/icons/consultation.png new file mode 100755 index 000000000..8319d4baa Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/consultation.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/ecom-black.png b/manufacture_process_costing/static/description/assets/icons/ecom-black.png new file mode 100755 index 000000000..a9385ff13 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/ecom-black.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/education-black.png b/manufacture_process_costing/static/description/assets/icons/education-black.png new file mode 100755 index 000000000..3eb09b27b Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/education-black.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/hotel-black.png b/manufacture_process_costing/static/description/assets/icons/hotel-black.png new file mode 100755 index 000000000..130f613be Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/hotel-black.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/license.png b/manufacture_process_costing/static/description/assets/icons/license.png new file mode 100755 index 000000000..a5869797e Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/license.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/lifebuoy.png b/manufacture_process_costing/static/description/assets/icons/lifebuoy.png new file mode 100755 index 000000000..658d56ccc Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/lifebuoy.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/manufacturing-black.png b/manufacture_process_costing/static/description/assets/icons/manufacturing-black.png new file mode 100755 index 000000000..697eb0e9f Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/manufacturing-black.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/pos-black.png b/manufacture_process_costing/static/description/assets/icons/pos-black.png new file mode 100755 index 000000000..97c0f90c1 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/pos-black.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/puzzle.png b/manufacture_process_costing/static/description/assets/icons/puzzle.png new file mode 100755 index 000000000..65cf854e7 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/puzzle.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/restaurant-black.png b/manufacture_process_costing/static/description/assets/icons/restaurant-black.png new file mode 100755 index 000000000..4a35eb939 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/restaurant-black.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/service-black.png b/manufacture_process_costing/static/description/assets/icons/service-black.png new file mode 100755 index 000000000..301ab51cb Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/service-black.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/trading-black.png b/manufacture_process_costing/static/description/assets/icons/trading-black.png new file mode 100755 index 000000000..9398ba2f1 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/trading-black.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/training.png b/manufacture_process_costing/static/description/assets/icons/training.png new file mode 100755 index 000000000..884ca024d Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/training.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/update.png b/manufacture_process_costing/static/description/assets/icons/update.png new file mode 100755 index 000000000..ecbc5a01a Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/update.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/user.png b/manufacture_process_costing/static/description/assets/icons/user.png new file mode 100755 index 000000000..6ffb23d9f Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/user.png differ diff --git a/manufacture_process_costing/static/description/assets/icons/wrench.png b/manufacture_process_costing/static/description/assets/icons/wrench.png new file mode 100755 index 000000000..6c04dea0f Binary files /dev/null and b/manufacture_process_costing/static/description/assets/icons/wrench.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/categories.png b/manufacture_process_costing/static/description/assets/misc/categories.png new file mode 100755 index 000000000..bedf1e0b1 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/categories.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/check-box.png b/manufacture_process_costing/static/description/assets/misc/check-box.png new file mode 100755 index 000000000..42caf24b9 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/check-box.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/compass.png b/manufacture_process_costing/static/description/assets/misc/compass.png new file mode 100755 index 000000000..d5fed8faa Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/compass.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/corporate.png b/manufacture_process_costing/static/description/assets/misc/corporate.png new file mode 100755 index 000000000..2eb13edbf Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/corporate.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/customer-support.png b/manufacture_process_costing/static/description/assets/misc/customer-support.png new file mode 100755 index 000000000..79efc72ed Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/customer-support.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/cybrosys-logo.png b/manufacture_process_costing/static/description/assets/misc/cybrosys-logo.png new file mode 100755 index 000000000..cc3cc0ccf Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/cybrosys-logo.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/features.png b/manufacture_process_costing/static/description/assets/misc/features.png new file mode 100755 index 000000000..b41769f77 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/features.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/logo.png b/manufacture_process_costing/static/description/assets/misc/logo.png new file mode 100755 index 000000000..478462d3e Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/logo.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/pictures.png b/manufacture_process_costing/static/description/assets/misc/pictures.png new file mode 100755 index 000000000..56d255fe9 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/pictures.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/pie-chart.png b/manufacture_process_costing/static/description/assets/misc/pie-chart.png new file mode 100755 index 000000000..426e05244 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/pie-chart.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/right-arrow.png b/manufacture_process_costing/static/description/assets/misc/right-arrow.png new file mode 100755 index 000000000..730984a06 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/right-arrow.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/star.png b/manufacture_process_costing/static/description/assets/misc/star.png new file mode 100755 index 000000000..2eb9ab29f Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/star.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/support.png b/manufacture_process_costing/static/description/assets/misc/support.png new file mode 100755 index 000000000..4f18b8b82 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/support.png differ diff --git a/manufacture_process_costing/static/description/assets/misc/whatsapp.png b/manufacture_process_costing/static/description/assets/misc/whatsapp.png new file mode 100755 index 000000000..d513a5356 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/misc/whatsapp.png differ diff --git a/manufacture_process_costing/static/description/assets/modules/1.png b/manufacture_process_costing/static/description/assets/modules/1.png new file mode 100644 index 000000000..b23e3d477 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/modules/1.png differ diff --git a/manufacture_process_costing/static/description/assets/modules/2.png b/manufacture_process_costing/static/description/assets/modules/2.png new file mode 100755 index 000000000..bea96ebc8 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/modules/2.png differ diff --git a/manufacture_process_costing/static/description/assets/modules/3.png b/manufacture_process_costing/static/description/assets/modules/3.png new file mode 100644 index 000000000..5bac2760f Binary files /dev/null and b/manufacture_process_costing/static/description/assets/modules/3.png differ diff --git a/manufacture_process_costing/static/description/assets/modules/4.png b/manufacture_process_costing/static/description/assets/modules/4.png new file mode 100644 index 000000000..1ae89db30 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/modules/4.png differ diff --git a/manufacture_process_costing/static/description/assets/modules/5.png b/manufacture_process_costing/static/description/assets/modules/5.png new file mode 100644 index 000000000..5ce064582 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/modules/5.png differ diff --git a/manufacture_process_costing/static/description/assets/modules/6.png b/manufacture_process_costing/static/description/assets/modules/6.png new file mode 100644 index 000000000..c000dae7a Binary files /dev/null and b/manufacture_process_costing/static/description/assets/modules/6.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/hero__1.gif b/manufacture_process_costing/static/description/assets/screenshots/hero__1.gif new file mode 100644 index 000000000..e5d411317 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/hero__1.gif differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss1.png b/manufacture_process_costing/static/description/assets/screenshots/ss1.png new file mode 100644 index 000000000..d37bbf301 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss1.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss10.png b/manufacture_process_costing/static/description/assets/screenshots/ss10.png new file mode 100644 index 000000000..c0651984e Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss10.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss11.png b/manufacture_process_costing/static/description/assets/screenshots/ss11.png new file mode 100644 index 000000000..2c6e548ce Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss11.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss12.png b/manufacture_process_costing/static/description/assets/screenshots/ss12.png new file mode 100644 index 000000000..52f96da34 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss12.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss13.png b/manufacture_process_costing/static/description/assets/screenshots/ss13.png new file mode 100644 index 000000000..c41bc61f4 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss13.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss14.png b/manufacture_process_costing/static/description/assets/screenshots/ss14.png new file mode 100644 index 000000000..dbe752ba8 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss14.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss15.png b/manufacture_process_costing/static/description/assets/screenshots/ss15.png new file mode 100644 index 000000000..8cedd73af Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss15.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss16.png b/manufacture_process_costing/static/description/assets/screenshots/ss16.png new file mode 100644 index 000000000..0e2abfe02 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss16.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss17.png b/manufacture_process_costing/static/description/assets/screenshots/ss17.png new file mode 100644 index 000000000..684d13ddd Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss17.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss18.png b/manufacture_process_costing/static/description/assets/screenshots/ss18.png new file mode 100644 index 000000000..1166abd48 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss18.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss19.png b/manufacture_process_costing/static/description/assets/screenshots/ss19.png new file mode 100644 index 000000000..97f2e26b3 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss19.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss2.png b/manufacture_process_costing/static/description/assets/screenshots/ss2.png new file mode 100644 index 000000000..cbb27e601 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss2.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss20.png b/manufacture_process_costing/static/description/assets/screenshots/ss20.png new file mode 100644 index 000000000..bbf0d2492 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss20.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss21.png b/manufacture_process_costing/static/description/assets/screenshots/ss21.png new file mode 100644 index 000000000..bfa3b5926 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss21.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss22.png b/manufacture_process_costing/static/description/assets/screenshots/ss22.png new file mode 100644 index 000000000..70936a3c3 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss22.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss23.png b/manufacture_process_costing/static/description/assets/screenshots/ss23.png new file mode 100644 index 000000000..86cfc9f08 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss23.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss24.png b/manufacture_process_costing/static/description/assets/screenshots/ss24.png new file mode 100644 index 000000000..90a1c9929 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss24.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss25.png b/manufacture_process_costing/static/description/assets/screenshots/ss25.png new file mode 100644 index 000000000..274df2ce9 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss25.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss26.png b/manufacture_process_costing/static/description/assets/screenshots/ss26.png new file mode 100644 index 000000000..05130ad79 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss26.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss27.png b/manufacture_process_costing/static/description/assets/screenshots/ss27.png new file mode 100644 index 000000000..163c4ea9d Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss27.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss28.png b/manufacture_process_costing/static/description/assets/screenshots/ss28.png new file mode 100644 index 000000000..9d5948140 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss28.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss29.png b/manufacture_process_costing/static/description/assets/screenshots/ss29.png new file mode 100644 index 000000000..f669cee03 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss29.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss3.png b/manufacture_process_costing/static/description/assets/screenshots/ss3.png new file mode 100644 index 000000000..6f3826610 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss3.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss30.png b/manufacture_process_costing/static/description/assets/screenshots/ss30.png new file mode 100644 index 000000000..a3625b53c Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss30.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss31.png b/manufacture_process_costing/static/description/assets/screenshots/ss31.png new file mode 100644 index 000000000..ffa594568 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss31.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss32.png b/manufacture_process_costing/static/description/assets/screenshots/ss32.png new file mode 100644 index 000000000..57fb25ffa Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss32.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss33.png b/manufacture_process_costing/static/description/assets/screenshots/ss33.png new file mode 100644 index 000000000..c71717674 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss33.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss34.png b/manufacture_process_costing/static/description/assets/screenshots/ss34.png new file mode 100644 index 000000000..d9970b662 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss34.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss35.png b/manufacture_process_costing/static/description/assets/screenshots/ss35.png new file mode 100644 index 000000000..d6b31324b Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss35.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss4.png b/manufacture_process_costing/static/description/assets/screenshots/ss4.png new file mode 100644 index 000000000..a27fffad4 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss4.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss5.png b/manufacture_process_costing/static/description/assets/screenshots/ss5.png new file mode 100644 index 000000000..3c51ce657 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss5.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss6.png b/manufacture_process_costing/static/description/assets/screenshots/ss6.png new file mode 100644 index 000000000..cd1e54fc0 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss6.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss7.png b/manufacture_process_costing/static/description/assets/screenshots/ss7.png new file mode 100644 index 000000000..41ccc9c00 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss7.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss8.png b/manufacture_process_costing/static/description/assets/screenshots/ss8.png new file mode 100644 index 000000000..2a777b170 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss8.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/ss9.png b/manufacture_process_costing/static/description/assets/screenshots/ss9.png new file mode 100644 index 000000000..552a4fcf1 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/ss9.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_1.png b/manufacture_process_costing/static/description/assets/screenshots/work_1.png new file mode 100755 index 000000000..9359860f6 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_1.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_10.png b/manufacture_process_costing/static/description/assets/screenshots/work_10.png new file mode 100755 index 000000000..1466db9e5 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_10.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_11.png b/manufacture_process_costing/static/description/assets/screenshots/work_11.png new file mode 100755 index 000000000..4fcb5b541 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_11.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_12.png b/manufacture_process_costing/static/description/assets/screenshots/work_12.png new file mode 100755 index 000000000..81c88f085 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_12.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_13.png b/manufacture_process_costing/static/description/assets/screenshots/work_13.png new file mode 100755 index 000000000..5b1dab92e Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_13.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_14.png b/manufacture_process_costing/static/description/assets/screenshots/work_14.png new file mode 100755 index 000000000..e4e04f9b7 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_14.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_15.png b/manufacture_process_costing/static/description/assets/screenshots/work_15.png new file mode 100755 index 000000000..2d2014aee Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_15.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_16.png b/manufacture_process_costing/static/description/assets/screenshots/work_16.png new file mode 100755 index 000000000..b98c22054 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_16.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_17.png b/manufacture_process_costing/static/description/assets/screenshots/work_17.png new file mode 100755 index 000000000..5e0fe9972 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_17.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_18.png b/manufacture_process_costing/static/description/assets/screenshots/work_18.png new file mode 100755 index 000000000..dd946fbde Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_18.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_19.png b/manufacture_process_costing/static/description/assets/screenshots/work_19.png new file mode 100755 index 000000000..3aa1a9f32 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_19.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_20.png b/manufacture_process_costing/static/description/assets/screenshots/work_20.png new file mode 100755 index 000000000..3d9153f45 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_20.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_21.png b/manufacture_process_costing/static/description/assets/screenshots/work_21.png new file mode 100755 index 000000000..ca9ca17d4 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_21.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_22.png b/manufacture_process_costing/static/description/assets/screenshots/work_22.png new file mode 100755 index 000000000..407775071 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_22.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_23.png b/manufacture_process_costing/static/description/assets/screenshots/work_23.png new file mode 100755 index 000000000..31d2593c0 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_23.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_24.png b/manufacture_process_costing/static/description/assets/screenshots/work_24.png new file mode 100755 index 000000000..ef8a7b4ac Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_24.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_25.png b/manufacture_process_costing/static/description/assets/screenshots/work_25.png new file mode 100755 index 000000000..2c8f219a5 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_25.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_26.png b/manufacture_process_costing/static/description/assets/screenshots/work_26.png new file mode 100755 index 000000000..9d3032f95 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_26.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_27.png b/manufacture_process_costing/static/description/assets/screenshots/work_27.png new file mode 100755 index 000000000..50f369bb9 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_27.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_28.png b/manufacture_process_costing/static/description/assets/screenshots/work_28.png new file mode 100755 index 000000000..971934866 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_28.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_29.png b/manufacture_process_costing/static/description/assets/screenshots/work_29.png new file mode 100755 index 000000000..02d83d183 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_29.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_3.png b/manufacture_process_costing/static/description/assets/screenshots/work_3.png new file mode 100755 index 000000000..6016f6437 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_3.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_30.png b/manufacture_process_costing/static/description/assets/screenshots/work_30.png new file mode 100755 index 000000000..18d4dba7d Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_30.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_31.png b/manufacture_process_costing/static/description/assets/screenshots/work_31.png new file mode 100755 index 000000000..afaa8f09a Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_31.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_32.png b/manufacture_process_costing/static/description/assets/screenshots/work_32.png new file mode 100755 index 000000000..79a824858 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_32.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_33.png b/manufacture_process_costing/static/description/assets/screenshots/work_33.png new file mode 100755 index 000000000..f4f4c3829 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_33.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_34.png b/manufacture_process_costing/static/description/assets/screenshots/work_34.png new file mode 100755 index 000000000..1f44ac18c Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_34.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_35.png b/manufacture_process_costing/static/description/assets/screenshots/work_35.png new file mode 100755 index 000000000..4a4bcb071 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_35.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_36.png b/manufacture_process_costing/static/description/assets/screenshots/work_36.png new file mode 100755 index 000000000..6b048d23f Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_36.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_4.png b/manufacture_process_costing/static/description/assets/screenshots/work_4.png new file mode 100755 index 000000000..fb41a6220 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_4.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_5.png b/manufacture_process_costing/static/description/assets/screenshots/work_5.png new file mode 100755 index 000000000..ab2da5131 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_5.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_6.png b/manufacture_process_costing/static/description/assets/screenshots/work_6.png new file mode 100755 index 000000000..5800fd54d Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_6.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_7.png b/manufacture_process_costing/static/description/assets/screenshots/work_7.png new file mode 100755 index 000000000..1adb64e56 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_7.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_8.png b/manufacture_process_costing/static/description/assets/screenshots/work_8.png new file mode 100755 index 000000000..666fbe98d Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_8.png differ diff --git a/manufacture_process_costing/static/description/assets/screenshots/work_9.png b/manufacture_process_costing/static/description/assets/screenshots/work_9.png new file mode 100755 index 000000000..03c000241 Binary files /dev/null and b/manufacture_process_costing/static/description/assets/screenshots/work_9.png differ diff --git a/manufacture_process_costing/static/description/banner.png b/manufacture_process_costing/static/description/banner.png new file mode 100644 index 000000000..998ec7791 Binary files /dev/null and b/manufacture_process_costing/static/description/banner.png differ diff --git a/manufacture_process_costing/static/description/icon.png b/manufacture_process_costing/static/description/icon.png new file mode 100644 index 000000000..8a1cf1a80 Binary files /dev/null and b/manufacture_process_costing/static/description/icon.png differ diff --git a/manufacture_process_costing/static/description/index.html b/manufacture_process_costing/static/description/index.html new file mode 100755 index 000000000..9178a3f84 --- /dev/null +++ b/manufacture_process_costing/static/description/index.html @@ -0,0 +1,719 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+ +
+
+
+ +

+ Process Cost of Manufacturing Orders

+

Manufacturing Process Costing with Material Cost, + Labour Cost and Overhead Cost based on Work Center.

+ + +
+
+
+ + +
+ + +
+
+ +
+

Explore This + Module

+
+ + + + +
+
+ +
+

Overview +

+
+
+
+ This module helps to calculate process cost of manufacturing order and work order with + material cost, labour cost and overhead cost from components and work center. It + calculates both estimated costing and real costing. Estimated costing is done on Bill + of Material-BOM and real costing calculated on manufacturing order based on real-time + consumption and quantity consumption. You can also provide a cancel reason for + canceling the manufacture order.You can also see the reports for + BOM and Manufacture order. Also, you can add cancel reasons. +
+
+ + + +
+
+ +
+

Features +

+
+
+
+
+ + Material cost, Labour cost and Overhead + cost for Production +
+
+ + Calculates Estimated cost and Real cost +
+
+ + Production Cost report for bom and manufacturing order +
+
+ + Provide Cancel Reason for Canceling MO +
+
+ + Print Costing Report +
+
+
+ + + +
+
+ +
+

Screenshots +

+
+
+
+ +
+

Process Cost Configuration +

+

Go to Manufacturing -> Configuration + -> Settings . + User can select manufacture process costing method as 'Manually' or 'Work-Center'. +

+ +
+ +
+

1.Costing Method Manually +

+

+ After setting the process costing method 'Manually', the user can go to + Products -> Bill of Materials . Create a Bill of Materials

+ +
+ +
+

+ You can add the components. Then the Material Cost is added automatically based on the components.

+ +
+ +
+

+ Then Add the Operations.

+ +
+
+

+ Then the Labour Cost is added automatically based on the operations. Also, you can add the Cost/Minute manually.

+ +
+ + +
+

+ Also, Overhead Cost is added automatically based on the operations. You can add the Cost/Minute manually.

+ +
+
+

+ In the Costing page the values are computed automatically based on the Material Cost, Labour Cost and Overhead Cost.

+ +
+ + +
+

+ Now go to Operations -> Manufacturing Order and create a new Manufacturing order. + By setting the Bill of Material, all the datas from corresponding BOM will + be loaded here. You can also add Components and Work Orders, and it will reflect in + other costs but not in the actual BOM.

+ +
+ +
+

+ Here you can see the Work Orders. Plan the manufacturing order.

+ +
+ +
+

+ Then you can go to Material Cost, Labour Cost and Overhead Cost tabs and + change the Actual quantity and Actual Minute manually.

+ + + +
+ +
+

+ In the Costing tab, you can see both estimated cost and actual cost calculated.

+ +
+ +
+

2.Costing Method Automated Work-Center Process +

+

+ For costing method automated process go to Configuration -> Settings and enable + the Work Orders Feature and also set the Process Costing Method to 'Work Center'.

+ +
+
+

+ Then go to Configuration -> Work Centers. Add the Actual Costing

+ +
+ + +
+

+ Then go to Products -> Bill of Materials and configure the Components + and Operations.

+ + +
+ +
+

+ Then the estimated Material Cost, Labour Cost and Overhead Cost will + be calculated automatically based on the Work Center.

+ + +
+ +
+

+ You can also see total cost of Material, Labour and Overhead.

+ +
+ +
+

+ Now go to Operations -> Manufacturing Order and create a new Manufacturing order. + By setting the Bill of Material, all the datas from corresponding BOM will + be loaded here. You can also add components and work order, and it will reflect in + other costs but not in the actual BOM. Now you can confirm the manufacturing order + and plan and start the work-order.The work order Real Duration is reflected on + the Labour and Overhead Actual Minute. Also, the Material Actual Quantity is coming + from the components.

+ + + + +
+ +
+

+ Under the costing tab you can see all the estimated cost and actual cost.

+ +
+ +
+

Cancel Reason for Manufacturing Orders +

+

+ When you cancel a Manufacturing Order, a popup wizard appears, and you could + provide a reason for canceling and cancel it.

+ + +
+ +
+

+ Under Configuration -> Cancel Reasons , you can see all the reasons for + canceling the Manufacturing Order.

+ + +
+ +
+

Bill of Material Report +

+

+ You can print the Bill of Material Report from the BOM menu itself.

+ +
+ + +
+
+ +
+

Manufacturing Orders Report +

+

+ You can print the Manufacturing Order Report from the Manufacturing menu itself.

+ +
+ + +
+
+ +
+
+ + + +
+
+ +
+

Related + Products +

+
+
+
+ +
+
+ + + + +
+
+ +
+

Our Services +

+
+ +
+
+
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ + +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+ +
+ + + + + +
+
+ +
+

Our + Industries +

+
+ +
+
+
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+ +
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+ +
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+ +
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+ +
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+ +
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+ +
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+ +
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

+
+
+
+
+ + + + +
+
+ +
+

Support +

+
+
+
+
+
+
+ +
+
+

Need Help?

+

Got questions or need help? Get in touch.

+ +

+ odoo@cybrosys.com

+
+
+
+
+
+
+
+ +
+
+

WhatsApp

+

Say hi to us on WhatsApp!

+ +

+91 86068 + 27707

+
+
+
+
+
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/manufacture_process_costing/views/mrp_bom_views.xml b/manufacture_process_costing/views/mrp_bom_views.xml new file mode 100755 index 000000000..e19a0b20a --- /dev/null +++ b/manufacture_process_costing/views/mrp_bom_views.xml @@ -0,0 +1,74 @@ + + + + + + mrp.bom.view.form.inherit.manufacture.process.costing + + mrp.bom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/manufacture_process_costing/views/mrp_cancel_reason_views.xml b/manufacture_process_costing/views/mrp_cancel_reason_views.xml new file mode 100755 index 000000000..c1b5cc182 --- /dev/null +++ b/manufacture_process_costing/views/mrp_cancel_reason_views.xml @@ -0,0 +1,66 @@ + + + + + Cancel Reason + mrp.cancel.reason + tree,form + + + + + + mrp.cancel.reason.view.form + mrp.cancel.reason + +
+ + + + + + + +
+
+
+
+
+
+ + + mrp.cancel.reason.view.tree + mrp.cancel.reason + + + + + + + + + + + + mrp.cancel.reason.view.search + mrp.cancel.reason + + + + + + + + + + + + + +
diff --git a/manufacture_process_costing/views/mrp_production_views.xml b/manufacture_process_costing/views/mrp_production_views.xml new file mode 100755 index 000000000..fed511408 --- /dev/null +++ b/manufacture_process_costing/views/mrp_production_views.xml @@ -0,0 +1,107 @@ + + + + + + mrp.production.view.form.inherit.manufacture.process.costing + + mrp.production + + + +