Odoo
Implementation
Material Purchase Requisitions | Material Requisitions By Employee | Material Requisitions By Users | Material Request in Odoo | Material Requisition
by Creyox Technologies https://www.creyox.com| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Inventory (stock) • Purchase (purchase) • Discuss (mail) • Invoicing (account) |
| Lines of code | 718 |
| Technical Name |
cr_material_purchase_requisitions |
| License | LGPL-3 |
| Website | https://www.creyox.com |
| Versions | 13.0 14.0 15.0 16.0 17.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Employees (hr)
• Inventory (stock) • Purchase (purchase) • Discuss (mail) • Invoicing (account) |
| Lines of code | 718 |
| Technical Name |
cr_material_purchase_requisitions |
| License | LGPL-3 |
| Website | https://www.creyox.com |
| Versions | 13.0 14.0 15.0 16.0 17.0 19.0 |
Material Purchase Requisitions | Material Requisitions By Employee | Material Requisitions By Users | Material Request in Odoo | Material Requisition
Overview
This application enables your employees to generate material requisition requests in Odoo, which will then proceed through an approval process involving the department manager and the requisition officer.
Employees in Odoo can efficiently create purchase requisition requests for materials, with access restricted to their own requisition records. The system allows employees to request multiple items on a single form, streamlining the material requisition process. Department managers have the authority to approve or decline these requests, ensuring proper oversight. Once approved, requisition officers can either approve or reject the material requests. Odoo sends email notifications to department managers and requisition officers for approval actions. Based on the requisition line, the request is sent to the stock/warehouse for internal picking or converted into a purchase order. If materials are unavailable in stock, the system automatically triggers procurement using Odoo's standard processes. Users can specify whether the products should be sourced from the warehouse or purchased from vendors, allowing flexibility with options such as Purchase Order or Internal Picking, ensuring efficient material management within Odoo.
Features
- Employees have the ability to submit purchase requisition requests for materials in Odoo.
- Employees are limited to viewing and managing their own material purchase requisition records for products and materials in the system.
- Employees can request multiple materials/items on a single requisition request.
- The department manager has the ability to approve or deny material purchase requisitions for their department.
- Requisition users can approve or reject requests that have been approved by department managers.
- The warehouse can send materials to the employee's location. If materials are out of stock, procurement will be automatically generated using the standard Odoo process.
- Purchase requisition requests can be fulfilled through internal picking or purchase orders, based on the selected option.
- Requisition users can decide whether to source products from stock/warehouse or purchase from vendors.
- PDF Report for each Material Requisition.
- Support in Community and Enterprise Edition
- Easy to use.
Material Purchase Requisition by Employee/Users
- Material Purchase Requisition User Access
- Go to Settings >> User&Companies Menu >> Click on User, User ave to select "Purchase Requisition Department Manager" for the manager and "Purchase Requisition User" for the requisition user.
- On the Employee model User have to see the "Purchase Requisition Settings" tab have option to select Destination Location of Employee
- Go to Employee >> Departments >> menu have option to select Destination Location of Departments
- Employee can create purchase request under requisition module and see all the created records.
- Employee can confirm request by clicking on Confirm button and then state will changed to "Waiting Department Approval".
- You can see the Picking Information details under Picking Information tab.
- Department Manager can approve or reject request by click on Department Approve button or Reject button,By clicking on Department Approve Button then state will changed to "Waiting IR Approve".
- User can approve request by click on Approve button then state will changed to "Approved".
- You can see the Other Information tab which show the Purchase Requisition history.
- User can also Reject request by click on Reject button then wizard is open and set the reason for rejection and by clicking Reject button of wizard the state is changed to "Rejected" and you can see the reason is also set to the Added field.
- User can create picking and purchase order by clicking on Create Picking And Po button then state is changed to "Purchase Order Created" and you can see the two smart button.
Internal Picking
- By Clicking on Internal Transfer button you can see the Picking is created for Added internal picking line.
- You can see the internal picking tree view which is created for added vendor.
Purchase Order
- By Clicking on Purchase Order button you can see the Purchase Order is created for Added Purchase Order line.
- You can see the Purchase Order tree view which is created for added vendor.
- Requisition User can Receive the Purchase Requisition by clicking "Received" button,after clicking on that state changes to "Received"
Purchase Requisition Report
- User can generate the purchase requisition pdf report by clicking on purchase requisition report.
Please log in to comment on this module
This feature works well in real life.
HI once we try to install this module in fresh v19 database getting error. RPC_ERROR Odoo Server Error Occured on optix.iwesabe.com:5718 on model ir.module.module on 2025-11-23 06:58:21 GMT Traceback (most recent call last): File "/odoo18t/odoo/tools/convert.py", line 590, in _tag_root f(rec) File "/odoo18t/odoo/tools/convert.py", line 261, in _tag_function _eval_xml(self, rec, env) File "/odoo18t/odoo/tools/convert.py", line 188, in _eval_xml return odoo.api.call_kw(model, method_name, args, kwargs) File "/odoo18t/odoo/api.py", line 535, in call_kw result = getattr(recs, name)(*args, **kwargs) File "/odoo18t/custom/optix-erp/optix/models/res_config_settings.py", line 29, in _rename_xml_id_if_exists rules.sudo().unlink() File "/odoo18t/odoo/models.py", line 4573, in unlink cr.execute(SQL( File "/odoo18t/odoo/sql_db.py", line 357, in execute res = self._obj.execute(query, params) psycopg2.errors.ForeignKeyViolation: update or delete on table "stock_rule" violates foreign key constraint "stock_move_rule_id_fkey" on table "stock_move" DETAIL: Key (id)=(2) is still referenced from table "stock_move". The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/odoo18t/odoo/http.py", line 2166, in _transactioning return service_model.retrying(func, env=self.env) File "/odoo18t/odoo/service/model.py", line 156, in retrying result = func() File "/odoo18t/odoo/http.py", line 2133, in _serve_ir_http response = self.dispatcher.dispatch(rule.endpoint, args) File "/odoo18t/odoo/http.py", line 2381, in dispatch result = self.request.registry['ir.http']._dispatch(endpoint) File "/odoo18t/odoo/addons/base/models/ir_http.py", line 333, in _dispatch result = endpoint(**request.params) File "/odoo18t/odoo/http.py", line 754, in route_wrapper result = endpoint(self, *args, **params_ok) File "/odoo18t/addons/web/controllers/dataset.py", line 42, in call_button action = call_kw(request.env[model], method, args, kwargs) File "/odoo18t/odoo/api.py", line 535, in call_kw result = getattr(recs, name)(*args, **kwargs) File "<decorator-gen-85>", line 2, in button_immediate_upgrade File "/odoo18t/odoo/addons/base/models/ir_module.py", line 75, in check_and_log return method(self, *args, **kwargs) File "/odoo18t/odoo/addons/base/models/ir_module.py", line 678, in button_immediate_upgrade return self._button_immediate_function(self.env.registry[self._name].button_upgrade) File "/odoo18t/odoo/addons/base/models/ir_module.py", line 611, in _button_immediate_function registry = modules.registry.Registry.new(self._cr.dbname, update_module=True) File "<decorator-gen-13>", line 2, in new File "/odoo18t/odoo/tools/func.py", line 97, in locked return func(inst, *args, **kwargs) File "/odoo18t/odoo/modules/registry.py", line 129, in new odoo.modules.load_modules(registry, force_demo, status, update_module) File "/odoo18t/odoo/modules/loading.py", line 485, in load_modules processed_modules += load_marked_modules(env, graph, File "/odoo18t/odoo/modules/loading.py", line 365, in load_marked_modules loaded, processed = load_module_graph( File "/odoo18t/odoo/modules/loading.py", line 228, in load_module_graph load_data(env, idref, mode, kind='data', package=package) File "/odoo18t/odoo/modules/loading.py", line 72, in load_data tools.convert_file(env, package.name, filename, idref, mode, noupdate, kind) File "/odoo18t/odoo/tools/convert.py", line 662, in convert_file convert_xml_import(env, module, fp, idref, mode, noupdate) File "/odoo18t/odoo/tools/convert.py", line 733, in convert_xml_import obj.parse(doc.getroot()) File "/odoo18t/odoo/tools/convert.py", line 648, in parse self._tag_root(de) File "/odoo18t/odoo/tools/convert.py", line 590, in _tag_root f(rec) File "/odoo18t/odoo/tools/convert.py", line 603, in _tag_root raise ParseError('while parsing %s:%s, somewhere inside\n%s' % ( odoo.tools.convert.ParseError: while parsing /odoo18t/custom/optix-erp/optix/data/res_company.xml:4, somewhere inside <function model="ir.model.data" name="_rename_xml_id_if_exists"> <value model="base" eval="[{ 'old_xml_id': 'optifocus.rc_yar', 'new_xml_id': 'optix.rc_yar', 'noupdate': True, }]"/> <!-- new --> </function> The above server error caused the following client error: RPC_ERROR: Odoo Server Error RPCError@http://optix.iwesabe.com:5718/web/assets/80a8987/web.assets_web.min.js:3160:338 makeErrorFromResponse@http://optix.iwesabe.com:5718/web/assets/80a8987/web.assets_web.min.js:3163:165 rpc._rpc/promise</<@http://optix.iwesabe.com:5718/web/assets/80a8987/web.assets_web.min.js:3168:34