GithubHelp home page GithubHelp logo

oca / manufacture Goto Github PK

View Code? Open in Web Editor NEW
166.0 72.0 476.0 44.56 MB

Odoo Manufacturing Addons

License: GNU Affero General Public License v3.0

Python 50.83% HTML 49.13% JavaScript 0.05%
erp hacktoberfest manufacturing mrp odoo python

manufacture's People

Contributors

aaronhforgeflow avatar badbole avatar bernatpforgeflow avatar chrisoforgeflow avatar davidbforgeflow avatar davidjforgeflow avatar dreispt avatar florian-dacosta avatar francesco-ooops avatar geomer198 avatar grindtildeath avatar hviorforgeflow avatar ilyasprogrammer avatar ivantodorovich avatar ivorra78 avatar jordibforgeflow avatar loisrforgeflow avatar marcelsavegnago avatar marylla avatar miquelrforgeflow avatar mymage avatar oca-git-bot avatar oca-transbot avatar oca-travis avatar oihane avatar pedrobaeza avatar ps-tubtim avatar renda-dev avatar victoralmau avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

manufacture's Issues

[RFC] Procurement of byproducts

My client's use case: bought products are disassembled, and the parts are used in the manufacturing of other products. Working in Odoo 8.0.

Disassembly is implemented using standard mrp_byproduct. I am implementing procurement by configuring the byproducts with the Manufacturing route, selecting a BOM if the procurement's product is a byproduct on that BOM. When the MO is created and confirmed, I temporarily switch around the BOM's main product and the byproduct (within the same transaction, of course). While this can be viewed as an ugly hack, the overrides are simple and clean and automatic procurement of the byproduct is achieved.

Do you have any comments on this process, and would you like me to propose this module to this project?

[11.0] mrp_bom_equivalent

This module considers all the the products in the same product category to be equivalent and interchangeable in a Manufacturing Order, using the product priority. The user can specify non-equivalent products to a part on a BOM.

Usage

  • Go to Manufacturing > Master Data > Bill of Materials
  • Create or update a BOM to check the box "Use Equivalences"
  • Set the non-equivalent products among the products of the same category

Dependencies

MTO-MTS rule: the minimal quantity is not taken into account

Dear All,
I've implemented both "MRP MTO with Stock" and "Stock MTS+MTO Rule" Apps.
I've entered a SO for Finished product and the net calculation (requirement - stock) has been performed successfully creating a MO with proper quantitu
The same happened for raw materials for BOM explotion and a PO has been created with the proper quantity. Unfortunately the PO's quantity has not taken into account the minimal quantity set in vendor price list in product master data.
Regards
claudio candito

[11.0] mrp_production_split_manual

Module description

This module allows the production manager to split a manufacturing order based on the minimum capacity of the work centers involved in the routing.

Configuration

  • Set the capacity on your work centers

Usage

  • Create a manufacturing order for a product using the work center configured previously
  • Set a quantity to produce greater than 1
  • Click on "Split"
  • The wizard will show the "Total Quantity to Produce", the "Maximum Capacity" and lines where you can decided how you want to split the quantity. The first line is the existing MO.

[8.0] quality_control_stock: Expected singleton exception with multiple triggers per picking-route/product

Hi!

I stumbled across an exception when trying to confirm a picking in the stock picking wizard: When having multiple triggers for one picking type on one product, we get a singleton-exception:

Traceback (most recent call last):
  File "/opt/odoo/openerp/http.py", line 543, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/opt/odoo/openerp/http.py", line 580, in dispatch
    result = self._call_function(**self.params)
  File "/opt/odoo/openerp/http.py", line 316, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/odoo/openerp/service/model.py", line 118, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/odoo/openerp/http.py", line 313, in checked_call
    return self.endpoint(*a, **kw)
  File "/opt/odoo/openerp/http.py", line 809, in __call__
    return self.method(*args, **kw)
  File "/opt/odoo/openerp/http.py", line 409, in response_wrap
    response = f(*args, **kw)
  File "/opt/odoo/addons/web/controllers/main.py", line 948, in call_button
    action = self._call_kw(model, method, args, {})
  File "/opt/odoo/addons/web/controllers/main.py", line 936, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/opt/odoo/openerp/api.py", line 268, in wrapper
    return old_api(self, *args, **kwargs)
  File "/opt/odoo/openerp/api.py", line 439, in old_api
    result = new_api(recs, *args, **kwargs)
  File "/opt/odoo/openerp/api.py", line 443, in new_api
    result = [method(rec, *args, **kwargs) for rec in self]
  File "/opt/odoo/addons/stock/wizard/stock_transfer_details.py", line 109, in do_detailed_transfer
    self.picking_id.do_transfer()
  File "/opt/odoo/openerp/api.py", line 266, in wrapper
    return new_api(self, *args, **kwargs)
  File "/opt/odoo/openerp/api.py", line 592, in new_api
    result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
  File "/opt/odoo/addons/stock_invoice_directly/stock_invoice_directly.py", line 37, in do_transfer
    res = super(stock_picking, self).do_transfer(cr, uid, picking_ids, context=context)
  File "/opt/odoo/openerp/api.py", line 268, in wrapper
    return old_api(self, *args, **kwargs)
  File "/opt/odoo/openerp/api.py", line 399, in old_api
    result = method(recs, *args, **kwargs)
  File "/opt/odoo/addons/quality_control_stock/models/stock_picking.py", line 48, in do_transfer
    if qc_trigger.partner_selectable else False)
  File "/opt/odoo/openerp/fields.py", line 825, in __get__
    record.ensure_one()
  File "/opt/odoo/openerp/models.py", line 5319, in ensure_one
    raise except_orm("ValueError", "Expected singleton: %s" % self)
except_orm: ('ValueError', 'Expected singleton: qc.trigger(2, 12)')

I hacked a quick patch because we need to do our pickings here immediately. It seems to work so far, but currently I have zero time for further testing.

quality_control_stock.patch.txt

Please have a look. :)

Cheers

Jörn

Calculating the cost price (standard-price) when the method is Average Price

When the warehouse is valued by method of the Average Weighted Price (cost_method del objeto product.product) , this algorithm should be applied:

Average Price (Pm) = (Si * Pma) + (E * PC) / (Sf + E).

Where:
Si = initial Stock (Before the movement of Entry).
Pma = average Price before the entry.
Sf = End Stock (After movement of Entry).
E: units of Entry (purchase or manufacture).
PC = Cost price of the Entry (It Will Be Purchase price or Cost price of Production.).

standard-price (del objeto product.product)= Pm (calculated).

Migration to version 9.0

Todo

https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-9.0

Modules to migrate

  • mrp_production_properties
  • mrp_bom_note - #73
  • mrp_calendar_view - By @nicomacr - #168
  • mrp_production_note
  • mrp_bom_product_details
  • mrp_bom_reference_selection
  • mrp_industrial_design_bom
  • mrp_produce_uos
  • mrp_bom_version - #105
  • mrp_hook - Hooks already in core
  • mrp_operations_extension
  • mrp_operations_project
  • mrp_operations_time_control
  • mrp_production_partner_note - #75
  • mrp_production_estimated_cost
  • mrp_production_real_cost
  • mrp_project
  • mrp_sale_info - #92
  • quality_control - By @lreficent - #198
  • quality_control_mrp
  • quality_control_stock

Calculating actual costs

The strategy of 85% of the Spanish production companies is the cost strategy. That is why those companies that manufacture what they sell and have always deliver maximum value to its investors, providing more value to customers than its competitors, put great emphasis on the analysis of production costs.

I think, Odoo should give greater value to the MRP tool incorporating the following analysis:

               Menu ==>Reports ==> Production ==> Analysis Actual  Costs

a) Cost of materials: Number of units raw materials consumed (product.qty the mrp.production.product.line object) multiply the production cost of each material / s raw / s (cost_price the object product.product , on the tab of the tab supplies raw product).

Material cost = Σ Materiali (product.qty the mrp.production.product.line object) * Price Costei (cost_price the product.product object); Where i = 1 ... n (each of the materials consumed lines).

b) Calculation of real production hours depending on the start / stop work order.

Once you create a work order, either by having played the Calculate button data or confirm the order of production work orders as many operations have been included in the route of production are created.

The production manager or operator responsible for production mark the beginning and work stoppages to be done in the workplace, using the buttons; Initiated, Completed, Pending the mrp.production.workcenter.line object.

The total hours of production in the center is the sum of real production intervals: Σhfi-hii, for all i = the number of intervals (start / stop), where hii the start and stop time hfi or end of the interval.

c) Cost of Equipment: When we measure in hours: the cost price of the particular product in production center (product_id of mrp.wokcenter object) placed on the cost hours (cost_hour the object mrp.wokcenter Product) for the hours b calculated.

It will be equal to (mrp_wokcenter cost_cycle the object) by the cycles performed, when measuring cycles number of cycles is equal to the amount produced divided by the capacity of the cycle defined in the CT line route (opc_wc_lines object mrp.routing.workcenter / capacity_per_cycle).

d) Costs of operators. It consists of the sum of:

  1. Average price determined in the Workers (op_avg_cost the mrp.workcenter object) tab for the amount of hours worked by each worker. Imputed hours will be reflected in new tab "tasks" (project) in the work order, right extra information.
  2. Product price cost of pre-operation, the mrp.workcenter pre_op_product object (cost_price the product.product object) by the hours of pre-production (time_start line CT of the order, time before producing).
  3. Product price cost post-operation, the mrp.workcenter post_op_product object (cost_price the product.product object cost price variant) by the hours of post-production (time_stop line CT, later to produce).

[9.0] mrp_production_partner_note: UnicodeEncodeError

Steps:

  1. Connect to last build of runbot 9.0
  2. Search partner ASUSTeK
    • Add value My Producción Note with ascii to field Production Notes
    • Set value True to field "Customer"
  3. Search product iPad Retina Display
    • Set value True to field Make To Order
  4. Create a new sale order:
    • Choose ASUSTek to field partner.
    • Choose iPad Retina Display to field product
  5. Confirm production

Saw:

File "mrp_production_partner_note/models/procurement_order.py", line 20, in _prepare_mo_vals
    res['notes'] = '{old}{mine}'.format(old=old, mine=mrp_notes)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 30: ordinal not in range(128)

quality_control_mrp api.model

function action_produce in mrp_production.py has api.model and uses self as instance (for move in self.move_created_ids2) this loop never executes.

[/mrp_production_real_cost, error to calculate with average cost price, when delivery production partials

Hi everyone,

Some specialist in the module 'mrp_production_real_cost' can explain to me the next results in the calculate of Average Cost Method:

In resume: if i delivered the manufacturing order in partials, the standard price is different when i delivered the manufacturing order without partials, when i finished the productions orders the quantity is the same.
What is the effect in the formula when i delivered partial of manufacturing order? because if i apply the formula:
(Product stock * Product standard price + Production real cost) / (Product stock + Final product quantity)
For me the results should be the same, because to finally the quantity production is the same, if i delivery production order complete or in partials.

TEST 1:
My finished good is configured the with the next params:
Name: PT01
Cost method: Average price
Standard price = 3

Raw material in the Bom:

  1. RM01, cost method: Average price, standard price = 1
  2. RM02, cost method: Average price, standard price = 1
  3. RM03, cost method: Average price, standard price = 1

First manufacturing order M001: Quantity = 5.
To finish MO01, PT01 product cost and standard price = 3.

Second manufacturing order M002: Quantity = 10.
To finish MO02, PT01 product cost and standard price = 3.

Third manufacturing order M003: Quantity = 8.
To finish MO03, PT01 product cost and standard price = 3.

TEST 2:

My finished good is configured the with the next params:
Name: PT01
Cost method: Average price
Standard price = 3

Raw material in the Bom:

  1. RM01, cost method: Average price, standard price = 1
  2. RM02, cost method: Average price, standard price = 1
  3. RM03, cost method: Average price, standard price = 1

First manufacturing order M001: Quantity = 5.
To finish MO01, PT01 product cost and standard price = 3.

Second manufacturing order M002: Quantity = 10.
To finish MO02, PT01 product cost and standard price = 3.

Third manufacturing order M003: Quantity = 8.
Firsts Partial manufacture: 4 PT01 unids
MO03, PT01 product cost and standard price = 3 with 4 unids manufactured.

Second Partial manufacture: 4 PT01 unids
MO03, PT01 product cost and standard price = 3.95 with the last 4 unids manufactured.

Why the difference (3 vs 3.95) if i realize delivery partials in the production order with the standard price?

Regards

[8.0][mrp_production_estimated_cost] : Error when clicking on Costs Analysis button

In a virtual Manufacturing order, when clicking on Costs Analysis button :

Traceback (most recent call last):
File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 574, in dispatch
result = self._call_function(*_self.params)
File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 307, in checked_call
return self.endpoint(_a, *_kw)
File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 803, in call
return self.method(_args, *_kw)
File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 403, in response_wrap
response = f(_args, *_kw)
File "/home/it-6it/aoe-dev_80/base/addons/web/controllers/main.py", line 952, in call_button
action = self._call_kw(model, method, args, {})
File "/home/it-6it/aoe-dev_80/base/addons/web/controllers/main.py", line 940, in _call_kw
return checked_call(request.db, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/addons/web/controllers/main.py", line 939, in checked_call
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 363, in old_api
result = method(recs, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/addons-partners/mrp_production_estimated_cost/models/mrp_production.py", line 81, in action_show_estimated_costs
'mrp_project.account_analytic_line_mrp_search_view')
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 742, in ref
return self['ir.model.data'].xmlid_to_object(xml_id, raise_if_not_found=raise_if_not_found)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 463, in new_api
result = method(self._model, cr, uid, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/addons/base/ir/ir_model.py", line 950, in xmlid_to_object
t = self.xmlid_to_res_model_res_id(cr, uid, xmlid, raise_if_not_found)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/addons/base/ir/ir_model.py", line 936, in xmlid_to_res_model_res_id
return self.xmlid_lookup(cr, uid, xmlid)[1:3]
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "", line 2, in xmlid_lookup
File "/home/it-6it/aoe-dev_80/base/openerp/tools/cache.py", line 74, in lookup
value = d[key] = self.method(_args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/addons/base/ir/ir_model.py", line 926, in xmlid_lookup
raise ValueError('External ID not found in the system: %s' % (xmlid))
ValueError: External ID not found in the system: mrp_project.account_analytic_line_mrp_search_view

[8.0][mrp_project] Error when creating assignation to a task

In Work order, operators time tab, when adding a line and creating a task to assign a person, I get this error :
Traceback (most recent call last):
File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 574, in dispatch
result = self._call_function(*_self.params)
File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 307, in checked_call
return self.endpoint(_a, *_kw)
File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 803, in call
return self.method(_args, *_kw)
File "/home/it-6it/aoe-dev_80/base/openerp/http.py", line 403, in response_wrap
response = f(_args, *_kw)
File "/home/it-6it/aoe-dev_80/base/addons/web/controllers/main.py", line 948, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/home/it-6it/aoe-dev_80/base/addons/web/controllers/main.py", line 940, in _call_kw
return checked_call(request.db, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/addons/web/controllers/main.py", line 939, in checked_call
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 363, in old_api
result = method(recs, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/addons-partners/mrp_project/models/mrp_production.py", line 98, in write
production=self.production_id)).write(vals)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/addons-partners/mrp_operations_extension/models/mrp_production.py", line 135, in write
update=update)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 547, in new_api
result = method(self._model, cr, uid, self.ids, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/addons/mrp_operations/mrp_operations.py", line 134, in write
result = super(mrp_production_workcenter_line, self).write(cr, uid, ids, vals, context=context)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/addons/mail/mail_thread.py", line 432, in write
result = super(mail_thread, self).write(cr, uid, ids, values, context=context)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 363, in old_api
result = method(recs, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/models.py", line 3779, in write
self._write(old_vals)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 547, in new_api
result = method(self._model, cr, uid, self.ids, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/models.py", line 3922, in _write
result += self._columns[field].set(cr, self, id, field, vals[field], user, context=rel_context) or []
File "/home/it-6it/aoe-dev_80/base/openerp/osv/fields.py", line 811, in set
id_new = obj.create(cr, user, act[2], context=context)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/addons/project_timesheet/project_timesheet.py", line 161, in create
vals['hr_analytic_timesheet_id'] = self._create_analytic_entries(cr, uid, vals, context=context)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 336, in old_api
result = method(recs, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/addons-partners/mrp_project/models/project_task_work.py", line 37, in _create_analytic_entries
workorder=task.workorder))._create_analytic_entries(vals)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/openerp/api.py", line 463, in new_api
result = method(self._model, cr, uid, _args, *_kwargs)
File "/home/it-6it/aoe-dev_80/base/addons/project_timesheet/project_timesheet.py", line 117, in _create_analytic_entries
vals_line['name'] = '%s: %s' % (tools.ustr(task_obj.name), tools.ustr(vals['name'] or '/'))
KeyError: 'name'

Calculating the date of production planning

Take the programming date of production order of the requested date of de sale order (requested_date of the object sale.order ), less the total days of costumer delivery (page of product sales: sale_delay of the object product.product).

date_planned (mrp.production) = requested_date (sale.order) - sale_delay (product.product).

Calculate the Customer Lead Time of the page sales of the product:

sale_delay (product.product) = product_delay (product.product) + po_lead (res.company) + manufacturing_lead (res.company)

mocalculate data on MO does not bring the product_UOM

Create a bill of materials with a product in KG
Go to manufacturing order
Calculate data
The assigned product UOM in "planned materials" is Unit, so it's wrong and it's causing this error:

Field(s) product_uom failed against a constraint: You try to move a product using a UoM that is not compatible with the UoM of the product moved. Please use an UoM in the same UoM category.

This issue was reported by me and @ybofr on this PR but you said it was not related to new hooks. I think it is, since the error appairs with "calculate data" button.
#57

@pedrobaeza @rafaelbn @oihane

Bom Dismantling

I am trying to use the mrp_bom_dismantling module with V9 enterprise. I can successfully install the module and create a dismantling bom. However, when I try to print the BOM Structure report of the dismantled bom I get the following error:
image
When I try to print the BOM Structure report of the parent BOM, I get a similar error:
image
This prints fine when the dismantled BOM is not present. Any idea whats going on?

is:issue is:open [8.0][mrp_production_real_cost] Error when produce product

Hi,

there's new error from mrp_production_real_cost, after I do git pull from the last commit


ERROR demo1 openerp.sql_db: Programming error: can't adapt type 'mrp.production', in query  SELECT "mrp_production"."id" FROM "mrp_production"
                        WHERE "mrp_production".id IN %s  ORDER BY "mrp_production"."priority" DESC,"mrp_production"."date_planned" ASC         

  File "/opt/odoo/server/addons/mrp_production_real_cost/models/mrp_production.py", line 34, in action_production_end
    self.mapped('move_created_ids2').filtered(


  File "/usr/lib/python2.7/dist-packages/psycopg2/extensions.py", line 129, in getquoted
    pobjs = [adapt(o) for o in self._seq]
ValueError: "can't adapt type 'mrp.production'" while evaluating
u'action_production_end()'

regards

[10] no trigger in quality control

Dears,
i install quality control module on Odoo 10 CE but when i go to set the trigger in product form, trigger field is empty and cannot select anything.

[RFC] Nonconforming Material Report (NCMR)

Description

Non-Conformance Material Report (NCMR) allows you to report non-conforming material identified during inspection of items or material (Quality Control or Warehouse Inspection) or during the movement of the materials and/or when the material is in stock.

Information required:

  • Details of the source: order, lot identifiers, product...
  • Description of the material non-conformance and some category to classify them.
  • Inspector (who performed the inspection of the material).

Submit and assignment

  • The NCMR is submitted for a completeness check, routing decision, and to identify the individual responsible for carrying out the non-conforming material disposition.
  • Once it is verified it is assigned to some manager to decide the actions to take.

Disposition of the NCMR

The responsible person/ owner investigates the material non-conformance and can set the NCMR to one of the following proposed dispositions:

  • Rework (to Existing Specification): This disposition is for non-conforming material that can be reworked without adverse effect on safety, performance, interchangeability, reliability, or quality. The reworked material is returned to the normal flow of material.
  • Rework (to New Specification): This disposition is for non-conforming material that can be reworked without adverse effect on safety, performance, interchangeability, reliability, or quality. Assigns a new part number.
  • Reclassify: This disposition involves the reclassification of non-conforming material and the assignment of a new part number.
  • Return to Vendor: This disposition is applicable when the material discrepancy is the responsibility of the supplier and other dispositions are not recommended.
  • Scrap: The non-conforming material cannot be used for its intended purposes and cannot be repaired.
  • Use as is: For items, parts or products for which minor nonconformance is repeated, which can be ignored.
  • Repair: This disposition is to bring the nonconforming material to an acceptable condition but which may not totally conform to the applicable drawings or specifications.
  • No Fault Found: This disposition is used when the non-conformance is reported erroneously. Material of this disposition is returned to the normal flow.

Related Odoo Modules and Models

  • quality_control NCMR is intended to report the material/product non conformities which can be found from Quality Control. At the moment this module is available in v8 and when a QC fails it creates a claim. The NCMR can substitute the claim fitting even better in the QC context.
  • RMA: In this repository some discussion and development is occurring. Some of the possible disposition of NCMR could lead to the creation of an RMA (e.g. Return to Vendor).

[9.0] mrp_sale_info

Related information (sale order, customer and commitment date) was empty when activate Outgoing Shippings (pick + ship) and i guess it will empty if use other custom routing with move more than 1.

MTS MTO rule for Manufacturing Subassemblies

Hello guys,

I configured the MTS MTO rule for Finished Goods products and it works fine - the system checks the stock of finished goods and creates a Manufacturing Order for the required quantity.

I would like to extend this and make Odoo check the Stock of Subassemblies (Subcomponents) of those finished products and if needed create Manufacturing Orders for the required quantities.
Has anyone tried implementing this? What steps should I take? I imagine some setup needs to be done on the Procurements Rules/Routes configuration.

Missing Modules in V9

Hi,
I noticed that a lot of modules that were present in v8 are not present in V9. Is there a reason why they have not been put in this new branch and gotten their installable property set to false?
#41 seem to have them all listed for upgrade to v9.

8.0 [BUG] MRP Total Real Cost

The costs charged (direct) in an order of production standard, whatever the industry sector, are calculated based on the cost of raw materials and auxiliary materials, plus the cost of operators, plus the cost of machinery. Also many companies include preparing machines (CAM,CAD,setting dies, tooling etc ) and often include cleaning the room or production facility , like pre and post tasks.

Currently, the calculations performed Odoo OCA , the costs of operators that are being 33% of the total real costs, and allocation of hours which are ignored have created the " Operators time" tab and the employee has been included HR Settings and product_id of hr_employee .

Maybe it's an oversight (BUG) or a special way to calculate the total real costs.

If you see fit to do this repair VS improving the resolution love me , otherwise I would open a debate on the subject.

Thank you.

For example : In a production

Current Behavior.

1 2016-01-24 12_34_48-2016-01-24 12_06_18-costs revenues - odoo-operarios 1-ingles

                                                            Visual 1

2 2016-01-24 12_07_39-costs revenues - odoo-operarios 2

                                                            Visual 2

3 2016-01-24 12_08_06-costs revenues - odoo-operarios 3

                                                             Visual 3

4 2016-01-24 12_52_54-2016-01-24 12_09_02-manufacturing orders - odoo-mo-total real cost

                                                              Visual 4

Expectde Behavior.

5 2016-01-24 14_04_43-sin titulo - paint

                                                               Visual 5

Migration to version 11.0

Todo

https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-11.0

Modules to migrate

  • mrp_auto_assign - By @lreficent - #270
  • mrp_bom_component_menu - By @mreficent - #303
  • mrp_bom_dismantling
  • mrp_bom_location - by @mpanarin - in #254 - By @lreficent - ##285
  • mrp_bom_note - By @agungrachmatulah - #265
  • mrp_bom_product_details
  • mrp_bom_reference_selection
  • mrp_industrial_design_bom
  • mrp_mto_with_stock - by @bodedra - in #255
  • mrp_mto_with_stock_purchase - By @florian-dacosta - #302
  • mrp_production_note
  • mrp_production_partner_note
  • mrp_production_properties
  • mrp_production_putaway_strategy - By @lreficent - #271
  • mrp_production_request - By @lreficent - #308
  • mrp_progress_button - By @jbeficent - #309
  • mrp_project - By @SalahAdDin - #296
  • mrp_repair_calendar_view
  • mrp_repair_refurbish - By @lreficent - #321
  • mrp_sale_info - By @oihane - #294
  • quality_control - By @jhumfer - #298
  • quality_control_issue - By @lreficent - #316
  • quality_control_mrp - By @NachoAlesLopez - #443
  • quality_control_stock - By @NachoAlesLopez - #307
  • quality_control_team - By @lreficent - #315

[8.0] [BUG or IMPV] The value of the stock of a product does not match the multiplication of its cost price by the amount stored it

Have a cost price of € 2.69101 in the cost price field (cost standar_price product.template object)of the product entity and a stock of 17,710 units in the amount by hand field (qty_available the product_template object. I access a Warehouse: stock movements and inventory data matches that of the product, but in value of stocks gives me an amount to the product of (standar_price the product.template object) x ( product_template qty_available the object) is not same.

How I can analyze the calculation is done to assess the store?.

mrp_mto_with_stock in sales order

Dear All,
The requirement netting works out perfectly in a MO.
it could be nice to extend this feature to the sales order also.
example:
sales order FG=10 ea
Stock FG=3 ea
BOM 1 FG = 3 SF
stock SF=5
therefore
WO1= 7 FG --> 10-3 in stock
WO2= 7*3 - 5 = 16
regards
claudio

[RFC] [mrp_split] Split Manufacturing Orders

Description

Sometimes a manufacturing order (MO) is so big that we do not have enough components available in our stock to start the production, however we would like to start to produce. Currently in Odoo there is no way to start the production of a MO without having all components available or forcing it.

Proposal

module name: mrp_split

Through a wizard in MO we can split a MO into two:

  1. The existing MO will keep what has been consumed/produced so far, plus the quantity to produce where we can ensure full availability of the components.
  2. A second MO that contains the quantity to produce where there's not full availability of raw materials.

A user can choose to split according to a different quantity if needed.

To achieve this we will need to:

  • Identify the bottle neck among all components/requirements.
  • Taking into account the bottle neck component compute the maximum quantity available to produce.
  • Update moves with new quantities and propagate.
  • Keep route for produced parts in the second MO equal to first.

[8.0][mrp_operations_extension] Doubt about number of operators

Hi, I have the next doubt:
In production routing when it's selected the operation for copying his data in the workcenter lines, it is loading each line with respective data to each workcenter of that operation. On each line it is loading the number of operators of that operation through onchange_operation() in MrpRoutingWorkcenter class. It could be corrected as follows, and also take it from workcenter as the other fields, adding also the average cost of operator, that is not being loaded on the onchange:

data = {
    'default': is_default,
    'workcenter': operation_wc.id,
    'capacity_per_cycle': operation_wc.capacity_per_cycle,
    'time_efficiency': operation_wc.time_efficiency,
    'time_cycle': operation_wc.time_cycle,
    'time_start': operation_wc.time_start,
    'time_stop': operation_wc.time_stop,
    # vvvv Original vvvv
    # 'op_number': self.operation.op_number,
    # vvvv Proposal vvvv
    'op_number': operation_wc.op_number,
    'op_avg_cost': operation_wc.op_avg_cost,
}

Cheers!

[11.0] mrp_workorder_split_by_quantity

Module description

This module splits the work orders based on the quantity to produce to have 1 work order per item to produce. The planned dates will be set according to the number of operators set on the work center.

Configuration

  • On the work centers, enter the "Number of Operators"

Usage

  • Go to a confirmed manufacturing order with a quantity to produce greater than 1 and click on "Plan"
  • Check the created work orders, their quantity and their planned dates

Standard Price

When the cost method is average price: the standard cost (manual) should be update manually up, by the user as a target cost or the cost trends over a significant period.

[8.0] mrp_project: Don't automatically create tasks

mrp_project is a dependency of other modules, as they use the link between MO and project. Also, mrp_project creates tasks per each work order.

If tasks and job lines are manually handled, automatic generation of tasks when a MO is set into production might be an undesired behavior.

Real costs in manufacturing orders

Hi,
I am testing the Real Costs module for V8 and I figure out that the "Total Real Cost" on Manufacture order (field: real_cost Object: mrp.production) is different from the "Cost price" on Product form (field: standard_price Object: product.template)
In my testings, I set up average cost and also real cost for the manufactured item but none of options insert the correct cost in the item cost (as calculated in the real_cost field). For both test, the initial inventory was zero.
Also the stock journal entries are taking the cost price value, so these entries have incorrect values.

I tried to run the Runbot to make an example, but it look like to be off

Thanks for your help

Vinicius
virtualbox_ubuntu_22_04_2016_10_04_49
virtualbox_ubuntu_22_04_2016_10_05_32

[11.0] mrp_barcode

Barcode Scanning in Manufacturing

This module allows you to use a barcode scanner to avoid clicking in the tablet interface of the MRP module.

Limitation: This module assumes that there is only one lot/SN of a component in a bin (Scanning a bin allows us to find the lot/SN number).

Configuration

Print the following PDF document to have the barcode of the manufacturing operations:

  • Print (the label of the serial number of the produced item)
  • Validate
  • Mark as done
  • Pass (quality check)
  • Fail (quality check)

Usage

  • Go to Manufacturing
  • Click on the "Work Orders" button of your work center
  • Open the first one
  • The SN of the produced item will be automatically created and set
  • You can click on Print to print the label of the SN of the produced item
  • If a component is tracked by lot or serial number and there is only one number, the number is selected automatically otherwise you scan the barcode of the location
  • The location of the selected lot/SN of the component is displayed

Dependency

  • quality_mrp

License

LGPL

Dismantling a product which produce multiple sub-product of a same type with serial number

my original post is here
https://www.odoo.com/forum/help-1/question/disassemble-a-server-106719
so this is the scenario

the product is a server
it is made of different parts and each part has a serial number
i.e.
src-CTO-0001
SN: SRV0001 (is created during manufacturing process)
1xChassis, SN:
CH00001
2xCPU, SN:
CPU0001
CPU0002
2x Memory, SN:
MEM0001
MEM0002

I create the BOM, I manufactured a server, allocated serial numbers and ...
then I used the BOM and crated a dismantling BoM
then created a Dismantling order. confirmed it.
in the produce section, I entered the serail number of the server to be consumed.
then in the list of "Products to produce lots", for items which I had multiple of them in the BoM, there was only one row and I was able to enter just a single serial
first of all, my expectation was those serials got filled based on the used products in the manufacturing process
furthermore, the system did not allow me to enter multiple serials for items which more than one of them were supposed to get produced

also I got this error:
"You should only receive by the piece with the same serial number"

Migration to version 10.0

Todo

https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-10.0

Modules to migrate

Calculation of real production hours depending on the start / stop work order.

Once you create a work order, either by pushing the Calculate data button a or confirm the order of production, work many orders are created as operations have been included in the route of production are created.

The production manager or operator blamed mark the beginning and work stoppages of the workecnter, using the buttons; Initiated, Completed, Pending the mrp.production.workcenter.line object.

The total hours of production in workcenter is the sum of real production intervals: Σhfi-hii, for all i = the number of intervals (start / stop), where hii is the start and hfi is stop time or end of the interval.

Create a new tab "tasks" (project) in order just to the right of "uptime" work. There will be one line for each job created at the beginning of the work order, a task is generated for each resource assigned to the center, reflecting the start date and time and reset the date and time of order.

If it is temporarily stopped the work order pending clicking on the button the date and time of the entry to be filled.

When the work order resumes, resume clicking the button, you add a new entry for task / resource with the date and time of the moment. It will also generate a new job in the task.

When finally finished the work order will the time end time.

Issue on stock move for manufactured product

When produce product that has average price cost method, the generated journal always has zero credit and debit inspite of the average price on the product form is updated correctly.
Used module: MRP real cost

[BUG v.8] Miscalculate the cost of raw materials

Step 1 : Create a Bill of Materials.

Step 2 : We apply a route.

Step 3 : Define the relationship between the quantity to produce and the raw material.

1 2016-02-03 10_06_42-odoo bill of material

Step 4 : Make a production order.

Step 5 : We produce and finalize the order.

Step 6 : We look at the amount of raw material used in the order itself.

2 2016-02-03 09_33_08-devel - manufacturing orders - odoo-consumed

Step 7 : analyze actual costs against estimated costs (Costs and Revenue).

BUG : Increases consumer unit

4 2016-02-03 10_09_17-devel - costs revenues - odoo revenue vs costs

Current behavior:

In the real Cost BUG : Increases consumer unit.

Expected Behavior:

To calculate the actual cost ; multiplying the consumed amount of raw material by price, as it does when calculating the estimated cost.

Thanks.

Number of cycles in mrp.routing.workcenter

In the tree view of mrp.operation.workcenter inside the mrp_routing_form_view the field "Number of Cycles" actually shows the value of "capacity_per_cycle" from the workcenter.

Is the name of the column wrong or should it do something else?

[8.0] [mrp_project] Projects automatically created from MOs of (sub)products with Manufacture route.

When creating a project from a Sale Order for a product with Manufacture and Make To Order routes, the corresponding MO generated takes the correct Parent project.

But if that product consists of other products with Manufacture and Make To Order, the MOs generated create a new project each, with no parent project or analytic account.

Is there any module or setting I'm missing to fix this or is this a case not yet implemented?

[8.0][mrp_plan_wizard] Feature Suggestion: Light-weighted Material Plan Wizard

Hi guys,
Just found some time and a reason to be active and to get slowly started within the OCA as a developing contributor.

I want to suggest a module which I recently did for a customer and is of small scope.
Its target was to provide a wizard to plan products based on BoM to get a list for daily manual purchase. It could be also a user-friendly starting point for more rich features of planning imho.

I already released it under AGPL-3 but before I further proceed to make it ready for OCA I would like to have your opinion.

Material Planning Wizard (https://github.com/wt-io-it/odoo-addons/tree/8.0/mrp_plan_wizard)

I would appreciate your comments and feedback.

Best regards,
Wolfgang

[10.0] [mrp_mto_with_stock] Not Working as Desired

Hello Community,

mrp_mto_with_stock module is not working as desired for the below scenario. I want to check whether it is a bug or I am missing something.

We have product A and product A consists of product B and C, 1 unit in each for the BOM. We have 5 units for each them in stock and we have a sales order of 20 units of product A.

All the settings are made as described for the module.

1- Manufacture Order is created automatically, but with a problem that 5 units in stock is not taken into account for the auto created MO. Since we have 5 units of Product A in stock, we expect the MO created for 15 units of product A, but it was created for 20 units of product A neglecting the 5 units in stock.
2- Product B and C in stocks are well realized and automatic purchase orders are created correctly. 15 units of Product B and C. No problem on this.
3- When the manufacturing order is completed, the number of used products are doubled as 40 units for each of Product B and Product C. This is another problem.

Thanks and regards.

Roadmap of the Master Production Schedule

The goal of this issue is to provide a roadmap for the Master Production Schedule module of Odoo.

Version 0.1 (15k)

  • Modeling of the MPS using sale and stock procurements (MPS input) and the Odoo scheduler to generate virtual manufacturing orders and purchase orders.
  • Workflow: Draft, Planned, Confirmed, Done.
    • Planned: the scheduler has been run and the table is filled in
    • Confirmed: Manufacturing orders and purchases orders have been created in draft.

Version 0.2 (5k)

  • Provide a table like this one:
Quantities Period 1 Period 2 Period 3
Initial Stock 100 50
Production 50 / 90 real / planned
Purchase 5 / 10 real / planned
Sales 100 / 150 real / planned
Final Stock 50 planned

Version 0.3 (15k)

  • Add machines, configurations, operators and human resources
  • Replace the Odoo Scheduler with a finite capacity scheduler. It will generate an exception or a purchase order with the quantity exceeding the production capacity.

Version 0.4 (10k)

  • Allow to use additional constraints within the scheduler: maintenance, working schedule

Version 0.5 (20k)

  • Gantt / Calendar views
  • Reporting: Planned vs Actual comparison

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.