From f94d1b46cb16db9e0bd219a39f0c2286904874bf Mon Sep 17 00:00:00 2001 From: Ajmal JK Date: Mon, 3 Feb 2020 11:28:46 +0530 Subject: [PATCH] [FIX] Bug Fixed 'fleet_car_workshop' --- fleet_car_workshop/__manifest__.py | 2 +- fleet_car_workshop/models/car_workshop.py | 29 +++++++++++++++++++ fleet_car_workshop/models/config.py | 2 +- fleet_car_workshop/models/timesheet.py | 4 +-- .../security/ir.model.access.csv | 4 +-- fleet_car_workshop/views/worksheet_stages.xml | 2 +- 6 files changed, 36 insertions(+), 7 deletions(-) diff --git a/fleet_car_workshop/__manifest__.py b/fleet_car_workshop/__manifest__.py index 7d85b7363..dee12f9e5 100644 --- a/fleet_car_workshop/__manifest__.py +++ b/fleet_car_workshop/__manifest__.py @@ -19,7 +19,7 @@ ############################################################################## { 'name': 'Car Workshop', - 'version': '10.0.1.0.1', + 'version': '10.0.2.0.1', 'summary': 'Complete Vehicle Workshop Operations & Reports', 'description': 'Vehicle workshop operations & Its reports', 'category': 'Industries', diff --git a/fleet_car_workshop/models/car_workshop.py b/fleet_car_workshop/models/car_workshop.py index c110ae72e..c0e770207 100644 --- a/fleet_car_workshop/models/car_workshop.py +++ b/fleet_car_workshop/models/car_workshop.py @@ -203,6 +203,35 @@ class CarWorkshop(models.Model): invoiced_date = invoiced_date[0:10] if invoiced_date == str(date.today()): total = total + rows.price_subtotal + for lines in self.materials_used: + product_ids = self.env['product.product'].search( + [('id', '=', lines.material.id)]) + for prod_id in product_ids: + move_id = self.env['stock.picking'] + type_obj = self.env['stock.picking.type'] + company_id = self.env.context.get('company_id') or self.env.user.company_id.id + types = type_obj.search([('code', '=', 'outgoing'), ('warehouse_id.company_id', '=', company_id)], limit=1) + vals = { + 'partner_id': self.partner_id.id, + 'origin': self.name, + 'move_type': 'one', + 'picking_type_id': types.id, + 'location_id': types.default_location_src_id.id, + 'location_dest_id': self.partner_id.property_stock_customer.id, + 'move_lines': [(0, 0, { + 'name': self.name, + 'product_id': prod_id.id, + 'product_uom': prod_id.uom_id.id, + 'product_uom_qty': lines.amount, + 'quantity_done': lines.amount, + 'location_id': types.default_location_src_id.id, + 'location_dest_id': self.partner_id.property_stock_customer.id, + })], + } + move = move_id.create(vals) + move.action_confirm() + move.action_assign() + move.action_done() return result @api.depends('works_done.duration') diff --git a/fleet_car_workshop/models/config.py b/fleet_car_workshop/models/config.py index ebf41784e..d70e5e3ee 100644 --- a/fleet_car_workshop/models/config.py +++ b/fleet_car_workshop/models/config.py @@ -78,7 +78,7 @@ class WorksheetStages(models.Model): class Services(models.Model): - _inherit = 'product.template' + _inherit = 'product.product' type = fields.Selection([('consu', _('Consumable')), ('service', _('Service')), ('product', _('Stockable Product'))], 'Product Type', required=True, help="A consumable is a product for which you don't manage stock," diff --git a/fleet_car_workshop/models/timesheet.py b/fleet_car_workshop/models/timesheet.py index c4c13daa5..7d51fe03d 100644 --- a/fleet_car_workshop/models/timesheet.py +++ b/fleet_car_workshop/models/timesheet.py @@ -24,7 +24,7 @@ from odoo import fields, models, api class PlannedWork (models.Model): _name = 'planned.work' - planned_work = fields.Many2one('product.template', string='Planned work', domain=[('type', '=', 'service')]) + planned_work = fields.Many2one('product.product', string='Planned work', domain=[('type', '=', 'service')]) time_spent = fields.Float(string='Estimated Time') work_date = fields.Datetime(string='Date') # Date of work planned:planned date responsible = fields.Many2one('res.users', string='Responsible') @@ -42,7 +42,7 @@ class PlannedWork (models.Model): class MaterialUsed (models.Model): _name = 'material.used' - material = fields.Many2one('product.template', string='Products') + material = fields.Many2one('product.product', string='Products') amount = fields.Integer(string='Quantity') price = fields.Float(string='Unit Price') material_id = fields.Many2one('car.workshop') diff --git a/fleet_car_workshop/security/ir.model.access.csv b/fleet_car_workshop/security/ir.model.access.csv index 5f3868aa3..b8b3d0578 100644 --- a/fleet_car_workshop/security/ir.model.access.csv +++ b/fleet_car_workshop/security/ir.model.access.csv @@ -9,7 +9,7 @@ access_car_car_user,car.car.user,fleet_car_workshop.model_car_car,fleet.fleet_gr access_car_workshop_user,car.workshop.user,fleet_car_workshop.model_car_workshop,fleet.fleet_group_user,1,0,0,0 access_worksheet_tags_all_user,car.car_tags_all,fleet_car_workshop.model_worksheet_tags,fleet.fleet_group_user,1,0,0,0 access_worksheet_stages_user,worksheet.stages.user,fleet_car_workshop.model_worksheet_stages,fleet.fleet_group_user,1,0,0,0 -access_service_product_user,car.car.products.user,fleet_car_workshop.model_product_template,fleet.fleet_group_user,0,0,0,0 +access_service_product_user,car.car.products.user,fleet_car_workshop.model_product_product,fleet.fleet_group_user,0,0,0,0 access_material_used_user,material.used.user,fleet_car_workshop.model_material_used,fleet.fleet_group_user,1,0,0,0 access_planned_work_user,planned.work.user,fleet_car_workshop.model_planned_work,fleet.fleet_group_user,1,0,0,0 @@ -17,6 +17,6 @@ access_car_car_manager,car.car.manager,fleet_car_workshop.model_car_car,fleet.fl access_car_workshop_manager,car.workshop.manager,fleet_car_workshop.model_car_workshop,fleet.fleet_group_manager,1,1,1,1 access_worksheet_tags_all_manager,car.car_tags_all.manager,fleet_car_workshop.model_worksheet_tags,fleet.fleet_group_manager,1,1,1,1 access_worksheet_stages_manager,worksheet.stages.manager,fleet_car_workshop.model_worksheet_stages,fleet.fleet_group_manager,1,1,1,1 -access_service_product_manager,car.car.products.manager,fleet_car_workshop.model_product_template,fleet.fleet_group_manager,1,1,1,1 +access_service_product_manager,car.car.products.manager,fleet_car_workshop.model_product_product,fleet.fleet_group_manager,1,1,1,1 access_material_used_manager,material.used.manager,fleet_car_workshop.model_material_used,fleet.fleet_group_manager,1,1,1,1 access_planned_work_manager,planned.work.manager,fleet_car_workshop.model_planned_work,fleet.fleet_group_manager,1,1,1,1 \ No newline at end of file diff --git a/fleet_car_workshop/views/worksheet_stages.xml b/fleet_car_workshop/views/worksheet_stages.xml index b3ed90bb5..fb8c0e53f 100644 --- a/fleet_car_workshop/views/worksheet_stages.xml +++ b/fleet_car_workshop/views/worksheet_stages.xml @@ -72,7 +72,7 @@ Service-Products ir.actions.act_window - product.template + product.product kanban,tree,form form {"search_default_services":'service'}