1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- # -*- coding: utf-8 -*-
- # Part of Odoo. See LICENSE file for full copyright and licensing details.
- from . import models
- from . import wizard
- from . import report
- from . import controller
- from . import populate
- from odoo import api, SUPERUSER_ID
- def _pre_init_mrp(cr):
- """ Allow installing MRP in databases with large stock.move table (>1M records)
- - Creating the computed+stored field stock_move.is_done and
- stock_move.unit_factor is terribly slow with the ORM and leads to "Out of
- Memory" crashes
- """
- cr.execute("""ALTER TABLE "stock_move" ADD COLUMN "is_done" bool;""")
- cr.execute("""UPDATE stock_move
- SET is_done=COALESCE(state in ('done', 'cancel'), FALSE);""")
- cr.execute("""ALTER TABLE "stock_move" ADD COLUMN "unit_factor" double precision;""")
- cr.execute("""UPDATE stock_move
- SET unit_factor=1;""")
- def _create_warehouse_data(cr, registry):
- """ This hook is used to add a default manufacture_pull_id, manufacture
- picking_type on every warehouse. It is necessary if the mrp module is
- installed after some warehouses were already created.
- """
- env = api.Environment(cr, SUPERUSER_ID, {})
- warehouse_ids = env['stock.warehouse'].search([('manufacture_pull_id', '=', False)])
- warehouse_ids.write({'manufacture_to_resupply': True})
- def uninstall_hook(cr, registry):
- env = api.Environment(cr, SUPERUSER_ID, {})
- warehouses = env["stock.warehouse"].search([])
- pbm_routes = warehouses.mapped("pbm_route_id")
- warehouses.write({"pbm_route_id": False})
- # Fail unlink means that the route is used somewhere (e.g. route_id on stock.rule). In this case
- # we don't try to do anything.
- try:
- with env.cr.savepoint():
- pbm_routes.unlink()
- except:
- pass
|