oca / manufacture Goto Github PK
View Code? Open in Web Editor NEWOdoo Manufacturing Addons
License: GNU Affero General Public License v3.0
Odoo Manufacturing Addons
License: GNU Affero General Public License v3.0
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?
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.
when both addons are installed stock_available_mrp calls _bom_explode and causes singleton expected error while accessing product page.
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
This module allows the production manager to split a manufacturing order based on the minimum capacity of the work centers involved in the routing.
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
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).
https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-9.0
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:
Steps:
ASUSTeK
My Producción Note with ascii
to field Production Notes
True
to field "Customer"iPad Retina Display
True
to field Make To Order
ASUSTek
to field partner.iPad Retina Display
to field productSaw:
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)
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.
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:
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:
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
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
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'
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)
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
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:
When I try to print the BOM Structure report of the parent BOM, I get a similar error:
This prints fine when the dismantled BOM is not present. Any idea whats going on?
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
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.
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:
Submit and assignment
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:
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).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.
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.
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.
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.
Visual 1
Visual 2
Visual 3
Visual 4
Expectde Behavior.
Visual 5
When you start a WO, it sets the MO state ignoring the MO workflow behaviour as you can see in this PR: (5e6ced1#diff-5ddfc0f2cd6e2a6524362393d297c9deR158)
This code isn't necessary at all because the modify_production_order_state method (mrp_operations) changes the state to in_production through the workflow: see https://github.com/odoo/odoo/blob/8.0/addons/mrp_operations/mrp_operations.py#L118
https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-11.0
As a complement to requirements 50-65 in https://docs.google.com/spreadsheets/d/1wfmiT5nAW7d9I4CAyNQ2IKdOLzpN1a0rnR6Q539lf6M/edit#gid=0, it would probably be useful to keep track of those changes in a chatter, so that interested users get be informed when a machine is out of order, moved, reconfigured...
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?.
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
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.
module name: mrp_split
Through a wizard in MO we can split a MO into two:
A user can choose to split according to a different quantity if needed.
To achieve this we will need to:
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!
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.
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.
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.
module: quality_control_stock
version: 8.0
Steps to reproduce
Current behavior
Inspection did not created
Expected behavior
Inspection created
Is it by design? QC inspection won't trigger when transfer product using package
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
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).
Print the following PDF document to have the barcode of the manufacturing operations:
LGPL
I'm wondering why this dependency is needed here: https://github.com/OCA/manufacture/blob/9.0/mrp_bom_dismantling/__openerp__.py#L16
cc @cyrilgdn
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"
https://github.com/OCA/maintainer-tools/wiki/Migration-to-version-10.0
From the Manufacturing order I created a quality control inspection by clicking on the button Inspections
In the inspection form, I set the link to the correct MO and save, but when I come back to the MO, the butonn is still displaying 0 inspections and when I click on the button, the list of inspections is empty
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.
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
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.
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.
Step 7 : analyze actual costs against estimated costs (Costs and Revenue).
BUG : Increases consumer unit
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.
The model mrp.operation.workcenter adds op_wc_lines where we can override values from the workcenter, but the values for time_start and time_stop are not taken into account for the mrp.routing.workcenter lines.
This information could be important for cost estimation and users expect it to be, at least, added to the value of hour_nbr.
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?
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?
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
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.
The goal of this issue is to provide a roadmap for the Master Production Schedule module of Odoo.
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 |
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.