From 28de0484e92dc1aec9b276be99ec166a65a673d7 Mon Sep 17 00:00:00 2001 From: esraa Date: Wed, 9 Oct 2024 11:54:01 +0300 Subject: [PATCH] updates in fleet --- odex25_fleet/odex_fleet/i18n/ar_001.po | 8 +++++ .../odex_fleet/models/fleet_service_type.py | 2 +- .../odex_fleet/models/maintenance_request.py | 36 +++++++++++-------- .../odex_fleet/security/ir.model.access.csv | 4 +-- .../views/maintenance_request_view.xml | 6 ++-- 5 files changed, 35 insertions(+), 21 deletions(-) diff --git a/odex25_fleet/odex_fleet/i18n/ar_001.po b/odex25_fleet/odex_fleet/i18n/ar_001.po index 097f8f4f1..0407a7c28 100644 --- a/odex25_fleet/odex_fleet/i18n/ar_001.po +++ b/odex25_fleet/odex_fleet/i18n/ar_001.po @@ -2574,7 +2574,15 @@ msgstr "" msgid "Serial Number" msgstr "الرقم المسلسل" + #. module: odex_fleet +#: code:addons/odex_fleet/models/fleet_service_type.py:0 +#, python-format +msgid "service" +msgstr "الخدمة" + +#. module: odex_fleet +#: code:addons/odex_fleet/models/fleet_service_type.py:0 #: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service__service_id #: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config__service_ids #: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__service_id diff --git a/odex25_fleet/odex_fleet/models/fleet_service_type.py b/odex25_fleet/odex_fleet/models/fleet_service_type.py index 1a99c3543..173911711 100644 --- a/odex25_fleet/odex_fleet/models/fleet_service_type.py +++ b/odex25_fleet/odex_fleet/models/fleet_service_type.py @@ -10,5 +10,5 @@ class FleetServiceType(models.Model): help='Choose whether the service refer to contracts, vehicle services or both') def get_new_category_selection(self): - selection = [('service', 'Service')] + selection = [(_('service'), _('Service'))] return selection diff --git a/odex25_fleet/odex_fleet/models/maintenance_request.py b/odex25_fleet/odex_fleet/models/maintenance_request.py index c493035ef..bbf979f7f 100644 --- a/odex25_fleet/odex_fleet/models/maintenance_request.py +++ b/odex25_fleet/odex_fleet/models/maintenance_request.py @@ -21,11 +21,11 @@ class FleetMaintenance(models.Model): else: raise ValidationError(_("You Need To Configurate Account Details")) return res - + name = fields.Char(string="Name") next_request_date = fields.Date(string="Next Request Date") date = fields.Date(string=" Request Date", default=fields.Date.context_today) - next_odometer = fields.Float(string="Next Odometer") + next_odometer = fields.Float(string="Next Odometer", compute='get_old_odometer', store=True) odometer = fields.Float(string="Odometer") type = fields.Selection([('corrective', 'Corrective'), ('preventive', 'Preventive')], string='Maintenance Type', default="corrective") @@ -53,6 +53,11 @@ class FleetMaintenance(models.Model): user_id = fields.Many2one('res.users', string='Responsible', required=False, default=lambda self: self.env.user) edit_access = fields.Boolean(compute="get_access", ) + @api.onchange('vehicle_id') + def get_old_odometer(self): + for rec in self: + rec.next_odometer = rec.vehicle_id.odometer + def get_access(self): for rec in self: rec.edit_access = False @@ -63,8 +68,7 @@ class FleetMaintenance(models.Model): def get_total(self): for rec in self: if rec.service_ids: - rec.total1 = sum(rec.service_ids.mapped('qty')) - + rec.total1 = sum(rec.service_ids.mapped('qty')) def create_invoice(self): partner = self.quotation_ids.filtered(lambda r: r.approve == True).mapped('partner_id') @@ -100,11 +104,11 @@ class FleetMaintenance(models.Model): self.invoice_id = invoice.id # invoice.sudo().action_invoice_open() - @api.depends('quotation_ids','quotation_ids.approve') + @api.depends('quotation_ids', 'quotation_ids.approve') def get_cost(self): for rec in self: - if rec.quotation_ids.filtered(lambda r:r.approve == True): - rec.total_cost = sum(rec.quotation_ids.filtered(lambda r:r.approve == True).mapped('cost')) + if rec.quotation_ids.filtered(lambda r: r.approve == True): + rec.total_cost = sum(rec.quotation_ids.filtered(lambda r: r.approve == True).mapped('cost')) @api.onchange('vehicle_id') def get_vehcile_date(self): @@ -115,13 +119,13 @@ class FleetMaintenance(models.Model): def action_confirm(self): for rec in self: + record = rec.quotation_ids.sudo().filtered(lambda r: r.approve == True) + if not record: + raise ValidationError(_("You Need Approve Quotation First")) rec.sudo().state = 'confirm' def action_approve(self): for rec in self: - record = rec.quotation_ids.sudo().filtered(lambda r: r.approve == True) - if not record: - raise ValidationError(_("You Need Approve Quotation First")) rec.state = 'approve' rec.vehicle_id.next_request_date = rec.next_request_date @@ -142,17 +146,18 @@ class FleetMaintenance(models.Model): for rec in self: rec.state = 'cancel' + class FleetQuotation(models.Model): _name = 'fleet.quotation' _description = 'Fleet Quotation' cost = fields.Float(string="Cost") offer = fields.Binary(string="Offer Attachment") - partner_id = fields.Many2one('res.partner',string="Partner") + partner_id = fields.Many2one('res.partner', string="Partner") approve = fields.Boolean() - request_id = fields.Many2one('fleet.maintenance' ) + request_id = fields.Many2one('fleet.maintenance') reason = fields.Text(string="Reject Reason") - state = fields.Selection(related='request_id.state',store=True) + state = fields.Selection(related='request_id.state', store=True) edit_access = fields.Boolean(compute="get_access", ) def get_access(self): @@ -173,7 +178,7 @@ class FleetQuotation(models.Model): form_view_id = self.env.ref("odex_fleet.wizard_reject_reason_fleet_wiz_form").id return { 'name': _("Reject Reason"), - + 'view_mode': 'form', 'res_model': 'reject.reason.fleet.wiz', 'views': [(form_view_id, 'form')], @@ -182,6 +187,7 @@ class FleetQuotation(models.Model): 'context': {'default_request_id': self.id}, } + class FleetQuotationService(models.Model): _name = 'fleet.quotation.service' _description = 'Fleet Service' @@ -190,7 +196,7 @@ class FleetQuotationService(models.Model): cost = fields.Float(string="Cost") number = fields.Float(string="Number") total = fields.Float(string="Total", compute='_compute_total', readonly=True) - service_id = fields.Many2one('fleet.service.type',string="Service") + service_id = fields.Many2one('fleet.service.type', string="Service") request_id = fields.Many2one('fleet.maintenance') @api.onchange('number', 'qty') diff --git a/odex25_fleet/odex_fleet/security/ir.model.access.csv b/odex25_fleet/odex_fleet/security/ir.model.access.csv index d97844b3c..494ad18a0 100644 --- a/odex25_fleet/odex_fleet/security/ir.model.access.csv +++ b/odex25_fleet/odex_fleet/security/ir.model.access.csv @@ -53,8 +53,8 @@ fleet.fleet_vehicle_log_contract_access_right_user,fleet_vehicle_log_contract_ac fleet_vehicle_log_contract_access_right_user_hr,fleet_vehicle_log_contract_access_right_hr,fleet.model_fleet_vehicle_log_contract,fleet_group_hr,1,1,1,1 fleet_vehicle_log_contract_access_right_user_hr_off,fleet_vehicle_log_contract_access_right_hr_off,fleet.model_fleet_vehicle_log_contract,fleet_group_hr_officer,1,0,1,0 fleet_vehicle_log_line,fleet_vehicle_log_line,model_fleet_service_line_config,,1,1,1,0 -fleet_vehicle_log_line_quotation,fleet_vehicle_log_line_quotation,model_fleet_quotation,,1,1,1,0 -fleet_vehicle_log_line_quotation_ser,fleet_vehicle_log_line_quotation_ser,model_fleet_quotation_service,,1,1,1,0 +fleet_vehicle_log_line_quotation,fleet_vehicle_log_line_quotation,model_fleet_quotation,,1,1,1,1 +fleet_vehicle_log_line_quotation_ser,fleet_vehicle_log_line_quotation_ser,model_fleet_quotation_service,,1,1,1,1 fleet_vehicle_access_right_general,fleet_vehicle_access_right_general,fleet.model_fleet_vehicle,,1,0,0,0 fleet_vehicle_access_right_acc,fleet_vehicle_access_right_general,fleet.model_fleet_vehicle,fleet_group_account,1,1,0,0 fleet_vehicle_access_right_hr_off,fleet_vehicle_access_right_general,fleet.model_fleet_vehicle,fleet_group_hr_officer,1,1,0,0 diff --git a/odex25_fleet/odex_fleet/views/maintenance_request_view.xml b/odex25_fleet/odex_fleet/views/maintenance_request_view.xml index 0f38b012e..5e52d0a8b 100644 --- a/odex25_fleet/odex_fleet/views/maintenance_request_view.xml +++ b/odex25_fleet/odex_fleet/views/maintenance_request_view.xml @@ -56,13 +56,13 @@ - + -