Browse Source

Dec 26 [UPDT] Bug Fixed 'fleet_car_workshop'

pull/232/head
AjmalCybro 2 years ago
parent
commit
0a757b1bdf
  1. 11
      fleet_car_workshop/__manifest__.py
  2. 7
      fleet_car_workshop/models/car_workshop.py
  3. 9
      fleet_car_workshop/models/config.py
  4. 25
      fleet_car_workshop/models/dashboard.py
  5. 6
      fleet_car_workshop/models/timesheet.py

11
fleet_car_workshop/__manifest__.py

@ -27,10 +27,11 @@
'website': "https://www.cybrosys.com", 'website': "https://www.cybrosys.com",
'company': 'Cybrosys Techno Solutions', 'company': 'Cybrosys Techno Solutions',
'depends': [ 'depends': [
'base', 'base',
'fleet', 'fleet',
'stock' 'account',
], 'stock'
],
'data': [ 'data': [
'data/workshop_data.xml', 'data/workshop_data.xml',
'views/worksheet_views.xml', 'views/worksheet_views.xml',
@ -50,5 +51,5 @@
'license': 'AGPL-3', 'license': 'AGPL-3',
'installable': True, 'installable': True,
'auto_install': False, 'auto_install': False,
'application': False, 'application': True,
} }

7
fleet_car_workshop/models/car_workshop.py

@ -17,7 +17,7 @@
# If not, see <https://www.gnu.org/licenses/>. # If not, see <https://www.gnu.org/licenses/>.
# #
############################################################################## ##############################################################################
from datetime import date, datetime from datetime import date
from dateutil.relativedelta import relativedelta from dateutil.relativedelta import relativedelta
from psutil import long from psutil import long
@ -43,7 +43,6 @@ class CarWorkshop(models.Model):
tracking=True, tracking=True,
change_default=True) change_default=True)
@api.model @api.model
def _default_company_id(self): def _default_company_id(self):
car_id = self._context.get('active_id') car_id = self._context.get('active_id')
@ -65,7 +64,6 @@ class CarWorkshop(models.Model):
return False return False
return self.stage_find(vehicle_id, [('fold', '=', False)]) return self.stage_find(vehicle_id, [('fold', '=', False)])
@api.model @api.model
def _read_group_stage_ids(self, stages, domain, order): def _read_group_stage_ids(self, stages, domain, order):
search_domain = [('id', 'in', stages.ids)] search_domain = [('id', 'in', stages.ids)]
@ -135,7 +133,6 @@ class CarWorkshop(models.Model):
invoice_count = fields.Integer(string="Invoice_count", compute='compute_invoice_count') invoice_count = fields.Integer(string="Invoice_count", compute='compute_invoice_count')
@api.depends('planned_works.work_cost', 'materials_used.price') @api.depends('planned_works.work_cost', 'materials_used.price')
def amount_total1(self): def amount_total1(self):
for records in self: for records in self:
@ -160,7 +157,6 @@ class CarWorkshop(models.Model):
_( _(
'Please select a Customer.')) 'Please select a Customer.'))
invoice_line_ids = [] invoice_line_ids = []
company_id = self.env['res.users'].browse(1).company_id company_id = self.env['res.users'].browse(1).company_id
currency_value = company_id.currency_id.id currency_value = company_id.currency_id.id
@ -383,7 +379,6 @@ class CarWorkshop(models.Model):
self.partner_id = self.vehicle_id.partner_id self.partner_id = self.vehicle_id.partner_id
self.stage_id = self.stage_find(self.vehicle_id, [('fold', '=', False)]) self.stage_id = self.stage_find(self.vehicle_id, [('fold', '=', False)])
def stage_find(self, section_id, domain=[], order='sequence'): def stage_find(self, section_id, domain=[], order='sequence'):
""" Override of the base.stage method """ Override of the base.stage method
Parameter of the stage search taken from the lead: Parameter of the stage search taken from the lead:

9
fleet_car_workshop/models/config.py

@ -17,8 +17,6 @@
# If not, see <https://www.gnu.org/licenses/>. # If not, see <https://www.gnu.org/licenses/>.
# #
############################################################################## ##############################################################################
from odoo.tools.translate import _
from odoo import fields, models, api
from odoo import fields, models from odoo import fields, models
@ -27,7 +25,8 @@ from odoo import fields, models
class WorkshopSetting(models.TransientModel): class WorkshopSetting(models.TransientModel):
_inherit = 'res.config.settings' _inherit = 'res.config.settings'
invoice_journal_type = fields.Many2one('account.journal', string="Car Workshop Journal", config_parameter='fleet_car_workshop.invoice_journal_type') invoice_journal_type = fields.Many2one('account.journal', string="Car Workshop Journal",
config_parameter='fleet_car_workshop.invoice_journal_type')
class WorksheetTags(models.Model): class WorksheetTags(models.Model):
@ -38,7 +37,7 @@ class WorksheetTags(models.Model):
color = fields.Integer('Color Index') color = fields.Integer('Color Index')
_sql_constraints = [ _sql_constraints = [
('name_uniq', 'unique (name)', "Tag name already exists !"), ('name_uniq', 'unique (name)', "Tag name already exists !"),
] ]
@ -55,7 +54,7 @@ class WorksheetStages(models.Model):
description = fields.Text(string='Description', translate=True) description = fields.Text(string='Description', translate=True)
sequence = fields.Integer(string='Sequence') sequence = fields.Integer(string='Sequence')
vehicle_ids = fields.Many2many('car.car', 'worksheet_type_rel', 'type_id', 'vehicle_id', string='Vechicles', vehicle_ids = fields.Many2many('car.car', 'worksheet_type_rel', 'type_id', 'vehicle_id', string='Vechicles',
default=_get_default_vehicle_ids) default=_get_default_vehicle_ids)
fold = fields.Boolean('Folded in Tasks Pipeline', fold = fields.Boolean('Folded in Tasks Pipeline',
help='This stage is folded in the kanban view when ' help='This stage is folded in the kanban view when '
'there are no records in that stage to display.') 'there are no records in that stage to display.')

25
fleet_car_workshop/models/dashboard.py

@ -30,8 +30,7 @@ class CarVehicle(osv.osv):
_inherit = ['mail.thread'] _inherit = ['mail.thread']
_rec_name = 'vehicle_id' _rec_name = 'vehicle_id'
active = fields.Boolean('Active', default=True)
active = fields.Boolean('Active',default=True)
vehicle_id = fields.Many2one('fleet.vehicle', string='Vehicle Name', tracking=True, required=True) vehicle_id = fields.Many2one('fleet.vehicle', string='Vehicle Name', tracking=True, required=True)
sequence = fields.Integer('Sequence', help="Gives the sequence order when displaying a list of Projects.") sequence = fields.Integer('Sequence', help="Gives the sequence order when displaying a list of Projects.")
@ -39,20 +38,21 @@ class CarVehicle(osv.osv):
worksheet = fields.One2many('car.workshop', 'vehicle_id', string="Task Activities") worksheet = fields.One2many('car.workshop', 'vehicle_id', string="Task Activities")
type_ids = fields.Many2many('worksheet.stages', 'car_workshop_type_rel', type_ids = fields.Many2many('worksheet.stages', 'car_workshop_type_rel',
'vehicle_id', 'type_id', string='Worksheet Stages', 'vehicle_id', 'type_id', string='Worksheet Stages',
states={'close': [('readonly', True)], 'cancelled': [('readonly', True)]}) states={'close': [('readonly', True)], 'cancelled': [('readonly', True)]})
task_count = fields.Integer(compute='_compute_task_count', type='integer', string="Tasks" ) task_count = fields.Integer(compute='_compute_task_count', type='integer', string="Tasks")
task_ids = fields.One2many('car.workshop', 'vehicle_id', domain=['|', ('stage_id.fold', '=', False), ('stage_id', '=', False)]) task_ids = fields.One2many('car.workshop', 'vehicle_id',
domain=['|', ('stage_id.fold', '=', False), ('stage_id', '=', False)])
doc_count = fields.Integer(compute='_compute_attached_docs_count', string="Number of documents attached") doc_count = fields.Integer(compute='_compute_attached_docs_count', string="Number of documents attached")
color = fields.Integer(string='Color Index') color = fields.Integer(string='Color Index')
partner_id = fields.Many2one('res.partner', string='Customer') partner_id = fields.Many2one('res.partner', string='Customer')
state = fields.Selection([('draft', 'New'), state = fields.Selection([('draft', 'New'),
('open', 'In Progress'), ('open', 'In Progress'),
('cancelled', 'Cancelled'), ('cancelled', 'Cancelled'),
('pending', 'Pending'), ('pending', 'Pending'),
('close', 'Closed')], string='Status', required=True, ('close', 'Closed')], string='Status', required=True,
track_visibility='onchange',default='open', copy=False) track_visibility='onchange', default='open', copy=False)
date_start = fields.Date(string='Start Date') date_start = fields.Date(string='Start Date')
date = fields.Date(string='Expiration Date', select=True, track_visibility='onchange') date = fields.Date(string='Expiration Date', select=True, track_visibility='onchange')
@ -104,6 +104,3 @@ class CarVehicle(osv.osv):
'limit': 80, 'limit': 80,
'context': "{'default_res_model': '%s','default_res_id': %d}" % (self._name, self.id) 'context': "{'default_res_model': '%s','default_res_id': %d}" % (self._name, self.id)
} }

6
fleet_car_workshop/models/timesheet.py

@ -21,7 +21,7 @@
from odoo import fields, models, api from odoo import fields, models, api
class PlannedWork (models.Model): class PlannedWork(models.Model):
_name = 'planned.work' _name = 'planned.work'
planned_work = fields.Many2one('product.product', string='Planned work', domain=[('type', '=', 'service')]) planned_work = fields.Many2one('product.product', string='Planned work', domain=[('type', '=', 'service')])
@ -39,7 +39,7 @@ class PlannedWork (models.Model):
self.work_cost = self.planned_work.lst_price self.work_cost = self.planned_work.lst_price
class MaterialUsed (models.Model): class MaterialUsed(models.Model):
_name = 'material.used' _name = 'material.used'
material = fields.Many2one('product.product', string='Products') material = fields.Many2one('product.product', string='Products')
@ -47,7 +47,7 @@ class MaterialUsed (models.Model):
price = fields.Float(string='Unit Price') price = fields.Float(string='Unit Price')
material_id = fields.Many2one('car.workshop') material_id = fields.Many2one('car.workshop')
_defaults = { _defaults = {
'amount': 1, } 'amount': 1, }
@api.onchange('material') @api.onchange('material')
def get_price(self): def get_price(self):

Loading…
Cancel
Save