From 22cad40ada11e47d9256d6bc842b69b995e88241 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D8=B4=D8=B1=D9=83=D8=A9=20=D8=AE=D8=A8=D9=8A=D8=B1=20?= =?UTF-8?q?=D8=A7=D9=84=D9=85=D8=AD=D8=AF=D9=88=D8=AF=D8=A9?= Date: Tue, 15 Oct 2024 15:25:21 +0300 Subject: [PATCH] Delete odex25_fleet directory --- .../odex25_fleet_account_custom/__init__.py | 3 - .../__manifest__.py | 32 - .../i18n/ar_001.po | 112 - .../models/__init__.py | 3 - .../models/models.py | 95 - .../security/security_view.xml | 14 - .../views/fleet_views.xml | 159 - .../views/views.xml | 143 - odex25_fleet/odex25_nadi_custom/__init__.py | 2 - .../odex25_nadi_custom/__manifest__.py | 26 - .../odex25_nadi_custom/i18n/ar_001.po | 43 - .../odex25_nadi_custom/models/__init__.py | 3 - .../odex25_nadi_custom/models/models.py | 6 - .../static/description/icon.png | Bin 32929 -> 0 bytes .../odex25_nadi_custom/views/views.xml | 13 - odex25_fleet/odex_fleet/__init__.py | 4 - odex25_fleet/odex_fleet/__manifest__.py | 47 - odex25_fleet/odex_fleet/data/cron_data.xml | 60 - odex25_fleet/odex_fleet/i18n/ar_001.po | 3223 ----------------- odex25_fleet/odex_fleet/models/__init__.py | 11 - .../odex_fleet/models/account_config.py | 32 - odex25_fleet/odex_fleet/models/driver.py | 52 - .../odex_fleet/models/driver_departments.py | 10 - .../odex_fleet/models/fleet_service_type.py | 14 - odex25_fleet/odex_fleet/models/form_renew.py | 115 - odex25_fleet/odex_fleet/models/infractions.py | 109 - .../odex_fleet/models/insurance_companies.py | 7 - .../odex_fleet/models/maintenance_request.py | 205 -- odex25_fleet/odex_fleet/models/res_config.py | 31 - odex25_fleet/odex_fleet/models/vehicle.py | 682 ---- .../odex_fleet/models/vehicle_deleation.py | 227 -- odex25_fleet/odex_fleet/reports/__init__.py | 5 - odex25_fleet/odex_fleet/reports/driver.py | 73 - .../odex_fleet/reports/driver_template.xml | 241 -- .../odex_fleet/reports/fleet_report.py | 571 --- .../odex_fleet/reports/fleet_template.xml | 1124 ------ .../reports/maintains_purchase_request.xml | 143 - .../odex_fleet/reports/maintains_report.py | 43 - .../odex_fleet/reports/maintains_template.xml | 82 - .../odex_fleet/reports/renew_report.py | 67 - .../odex_fleet/reports/renew_template.xml | 168 - .../reports/service_purchase_request.xml | 138 - .../odex_fleet/reports/service_report.py | 259 -- .../odex_fleet/reports/service_template.xml | 355 -- .../odex_fleet/security/ir.model.access.csv | 93 - .../odex_fleet/security/security_view.xml | 62 - .../odex_fleet/static/css/chartjs/Chart.css | 47 - .../static/css/chartjs/Chart.min.css | 1 - .../odex_fleet/views/account_config_view.xml | 61 - odex25_fleet/odex_fleet/views/config_view.xml | 99 - .../odex_fleet/views/driver_departments.xml | 55 - odex25_fleet/odex_fleet/views/driver_view.xml | 91 - odex25_fleet/odex_fleet/views/infractions.xml | 102 - .../odex_fleet/views/insurance_companies.xml | 42 - .../odex_fleet/views/mail_template.xml | 152 - .../views/maintenance_request_view.xml | 136 - odex25_fleet/odex_fleet/views/renew_view.xml | 107 - .../views/vehicle_deleation_view.xml | 148 - .../odex_fleet/views/vehicle_view.xml | 921 ----- odex25_fleet/odex_fleet/wizards/__init__.py | 4 - .../odex_fleet/wizards/fleet_view.xml | 267 -- odex25_fleet/odex_fleet/wizards/fleet_wiz.py | 82 - .../odex_fleet/wizards/reject_reason.py | 24 - .../odex_fleet/wizards/reject_reason.xml | 28 - .../wizards/reject_reason_infraction.py | 16 - .../wizards/reject_reason_infraction.xml | 24 - 66 files changed, 11314 deletions(-) delete mode 100644 odex25_fleet/odex25_fleet_account_custom/__init__.py delete mode 100644 odex25_fleet/odex25_fleet_account_custom/__manifest__.py delete mode 100644 odex25_fleet/odex25_fleet_account_custom/i18n/ar_001.po delete mode 100644 odex25_fleet/odex25_fleet_account_custom/models/__init__.py delete mode 100644 odex25_fleet/odex25_fleet_account_custom/models/models.py delete mode 100644 odex25_fleet/odex25_fleet_account_custom/security/security_view.xml delete mode 100644 odex25_fleet/odex25_fleet_account_custom/views/fleet_views.xml delete mode 100644 odex25_fleet/odex25_fleet_account_custom/views/views.xml delete mode 100644 odex25_fleet/odex25_nadi_custom/__init__.py delete mode 100644 odex25_fleet/odex25_nadi_custom/__manifest__.py delete mode 100644 odex25_fleet/odex25_nadi_custom/i18n/ar_001.po delete mode 100644 odex25_fleet/odex25_nadi_custom/models/__init__.py delete mode 100644 odex25_fleet/odex25_nadi_custom/models/models.py delete mode 100644 odex25_fleet/odex25_nadi_custom/static/description/icon.png delete mode 100644 odex25_fleet/odex25_nadi_custom/views/views.xml delete mode 100644 odex25_fleet/odex_fleet/__init__.py delete mode 100644 odex25_fleet/odex_fleet/__manifest__.py delete mode 100644 odex25_fleet/odex_fleet/data/cron_data.xml delete mode 100644 odex25_fleet/odex_fleet/i18n/ar_001.po delete mode 100644 odex25_fleet/odex_fleet/models/__init__.py delete mode 100644 odex25_fleet/odex_fleet/models/account_config.py delete mode 100644 odex25_fleet/odex_fleet/models/driver.py delete mode 100644 odex25_fleet/odex_fleet/models/driver_departments.py delete mode 100644 odex25_fleet/odex_fleet/models/fleet_service_type.py delete mode 100644 odex25_fleet/odex_fleet/models/form_renew.py delete mode 100644 odex25_fleet/odex_fleet/models/infractions.py delete mode 100644 odex25_fleet/odex_fleet/models/insurance_companies.py delete mode 100644 odex25_fleet/odex_fleet/models/maintenance_request.py delete mode 100644 odex25_fleet/odex_fleet/models/res_config.py delete mode 100644 odex25_fleet/odex_fleet/models/vehicle.py delete mode 100644 odex25_fleet/odex_fleet/models/vehicle_deleation.py delete mode 100644 odex25_fleet/odex_fleet/reports/__init__.py delete mode 100644 odex25_fleet/odex_fleet/reports/driver.py delete mode 100644 odex25_fleet/odex_fleet/reports/driver_template.xml delete mode 100644 odex25_fleet/odex_fleet/reports/fleet_report.py delete mode 100644 odex25_fleet/odex_fleet/reports/fleet_template.xml delete mode 100644 odex25_fleet/odex_fleet/reports/maintains_purchase_request.xml delete mode 100644 odex25_fleet/odex_fleet/reports/maintains_report.py delete mode 100644 odex25_fleet/odex_fleet/reports/maintains_template.xml delete mode 100644 odex25_fleet/odex_fleet/reports/renew_report.py delete mode 100644 odex25_fleet/odex_fleet/reports/renew_template.xml delete mode 100644 odex25_fleet/odex_fleet/reports/service_purchase_request.xml delete mode 100644 odex25_fleet/odex_fleet/reports/service_report.py delete mode 100644 odex25_fleet/odex_fleet/reports/service_template.xml delete mode 100644 odex25_fleet/odex_fleet/security/ir.model.access.csv delete mode 100644 odex25_fleet/odex_fleet/security/security_view.xml delete mode 100644 odex25_fleet/odex_fleet/static/css/chartjs/Chart.css delete mode 100644 odex25_fleet/odex_fleet/static/css/chartjs/Chart.min.css delete mode 100644 odex25_fleet/odex_fleet/views/account_config_view.xml delete mode 100644 odex25_fleet/odex_fleet/views/config_view.xml delete mode 100644 odex25_fleet/odex_fleet/views/driver_departments.xml delete mode 100644 odex25_fleet/odex_fleet/views/driver_view.xml delete mode 100644 odex25_fleet/odex_fleet/views/infractions.xml delete mode 100644 odex25_fleet/odex_fleet/views/insurance_companies.xml delete mode 100644 odex25_fleet/odex_fleet/views/mail_template.xml delete mode 100644 odex25_fleet/odex_fleet/views/maintenance_request_view.xml delete mode 100644 odex25_fleet/odex_fleet/views/renew_view.xml delete mode 100644 odex25_fleet/odex_fleet/views/vehicle_deleation_view.xml delete mode 100644 odex25_fleet/odex_fleet/views/vehicle_view.xml delete mode 100644 odex25_fleet/odex_fleet/wizards/__init__.py delete mode 100644 odex25_fleet/odex_fleet/wizards/fleet_view.xml delete mode 100644 odex25_fleet/odex_fleet/wizards/fleet_wiz.py delete mode 100644 odex25_fleet/odex_fleet/wizards/reject_reason.py delete mode 100644 odex25_fleet/odex_fleet/wizards/reject_reason.xml delete mode 100644 odex25_fleet/odex_fleet/wizards/reject_reason_infraction.py delete mode 100644 odex25_fleet/odex_fleet/wizards/reject_reason_infraction.xml diff --git a/odex25_fleet/odex25_fleet_account_custom/__init__.py b/odex25_fleet/odex25_fleet_account_custom/__init__.py deleted file mode 100644 index 5305644df..000000000 --- a/odex25_fleet/odex25_fleet_account_custom/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import models \ No newline at end of file diff --git a/odex25_fleet/odex25_fleet_account_custom/__manifest__.py b/odex25_fleet/odex25_fleet_account_custom/__manifest__.py deleted file mode 100644 index 22c078916..000000000 --- a/odex25_fleet/odex25_fleet_account_custom/__manifest__.py +++ /dev/null @@ -1,32 +0,0 @@ -# -*- coding: utf-8 -*- -{ - 'name': "odex25_fleet_account_custom", - - 'summary': """ Customize Integration between fleet and account""", - - 'description': """ - Customize Integration between fleet and account by separate them with boolean field in setting - """, - - 'author': "My Company", - 'website': "http://www.yourcompany.com", - - # Categories can be used to filter modules in modules listing - # Check https://github.com/odoo/odoo/blob/11.0/odoo/addons/base/module/module_data.xml - # for the full list - 'category': 'Uncategorized', - 'version': '0.1', - - # any module necessary for this one to work correctly - 'depends': ['fleet','odex_fleet'], - - # always loaded - 'data': [ - 'security/security_view.xml', - 'views/fleet_views.xml' - ], - # only loaded in demonstration mode - # 'demo': [ - # # 'demo/demo.xml', - # ], -} \ No newline at end of file diff --git a/odex25_fleet/odex25_fleet_account_custom/i18n/ar_001.po b/odex25_fleet/odex25_fleet_account_custom/i18n/ar_001.po deleted file mode 100644 index 996cbcd55..000000000 --- a/odex25_fleet/odex25_fleet_account_custom/i18n/ar_001.po +++ /dev/null @@ -1,112 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * odex25_fleet_account_custom -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-13 11:47+0000\n" -"PO-Revision-Date: 2024-05-13 11:47+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: odex25_fleet_account_custom -#: model:ir.model,name:odex25_fleet_account_custom.model_res_config_settings -msgid "Config Settings" -msgstr "ضبط الاعدادات" - -#. module: odex25_fleet_account_custom -#: model:res.groups,name:odex25_fleet_account_custom.disable_integration_with_account -msgid "Disable Integration With Account" -msgstr "" - -#. module: odex25_fleet_account_custom -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_maintenance__display_name -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_vehicle_log_fuel__display_name -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_vehicle_log_services__display_name -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_form_renew__display_name -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_res_config_settings__display_name -msgid "Display Name" -msgstr "الاسم المعروض" - -#. module: odex25_fleet_account_custom -#: model:ir.model,name:odex25_fleet_account_custom.model_fleet_maintenance -msgid "Fleet Maintenance" -msgstr "صيانة المركبات" - -#. module: odex25_fleet_account_custom -#: model:ir.model,name:odex25_fleet_account_custom.model_form_renew -msgid "Forn Renew" -msgstr "" - -#. module: odex25_fleet_account_custom -#: model:ir.model,name:odex25_fleet_account_custom.model_fleet_vehicle_log_fuel -msgid "Fuel log for vehicles" -msgstr "سجل الوقود للمركبات" - -#. module: odex25_fleet_account_custom -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_maintenance__id -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_vehicle_log_fuel__id -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_vehicle_log_services__id -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_form_renew__id -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_res_config_settings__id -msgid "ID" -msgstr "المُعرف" - -#. module: odex25_fleet_account_custom -#: model:res.groups,name:odex25_fleet_account_custom.integration_with_account -msgid "Integration With Account" -msgstr "" - -#. module: odex25_fleet_account_custom -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_maintenance__integration_with_accounting -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_vehicle_log_fuel__integration_with_accounting -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_vehicle_log_services__integration_with_accounting -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_form_renew__integration_with_accounting -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_res_config_settings__integration_with_accounting_configuration -#: model_terms:ir.ui.view,arch_db:odex25_fleet_account_custom.res_config_settings_inherit -msgid "Integration With Accounting" -msgstr "تكامل مع المالية" - -#. module: odex25_fleet_account_custom -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_maintenance____last_update -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_vehicle_log_fuel____last_update -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_vehicle_log_services____last_update -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_form_renew____last_update -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_res_config_settings____last_update -msgid "Last Modified on" -msgstr "آخر تعديل في" - -#. module: odex25_fleet_account_custom -#: model:ir.model,name:odex25_fleet_account_custom.model_fleet_vehicle_log_services -msgid "Services for vehicles" -msgstr "الخدمات للمركبات" - -#. module: odex25_fleet_account_custom -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_vehicle_log_fuel__state_a -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_vehicle_log_fuel__state_b -msgid "State" -msgstr "" - -#. module: odex25_fleet_account_custom -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_vehicle_log_services__status_a -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_vehicle_log_services__status_b -msgid "Status" -msgstr "" - -#. module: odex25_fleet_account_custom -#: code:addons/odex25_fleet_account_custom/models/models.py:0 -#, python-format -msgid "You Need Approve Quotation First" -msgstr "" - -#. module: odex25_fleet_account_custom -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_maintenance__state_a -#: model:ir.model.fields,field_description:odex25_fleet_account_custom.field_fleet_maintenance__state_b -msgid "state" -msgstr "" \ No newline at end of file diff --git a/odex25_fleet/odex25_fleet_account_custom/models/__init__.py b/odex25_fleet/odex25_fleet_account_custom/models/__init__.py deleted file mode 100644 index 5305644df..000000000 --- a/odex25_fleet/odex25_fleet_account_custom/models/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import models \ No newline at end of file diff --git a/odex25_fleet/odex25_fleet_account_custom/models/models.py b/odex25_fleet/odex25_fleet_account_custom/models/models.py deleted file mode 100644 index e71f5f5cf..000000000 --- a/odex25_fleet/odex25_fleet_account_custom/models/models.py +++ /dev/null @@ -1,95 +0,0 @@ -from odoo import api,fields, models ,_ -from odoo.exceptions import UserError, ValidationError - - - -class FleetFuel(models.Model): - _inherit = 'fleet.vehicle.log.fuel' - - integration_with_accounting = fields.Boolean(string='Integration With Accounting',compute="get_integ") - state_a = fields.Selection(related='state') - state_b = fields.Selection(related='state') - @api.depends("vehicle_id") - def get_integ(self): - config = self.env["res.config.settings"].sudo().search([], limit=1, order="id desc") - self.integration_with_accounting = config.integration_with_accounting_configuration - -class FleetMaintenance(models.Model): - _inherit = 'fleet.maintenance' - - integration_with_accounting = fields.Boolean(string='Integration With Accounting',compute="get_integ") - state_a = fields.Selection(related='state') - state_b = fields.Selection(related='state') - @api.depends("vehicle_id") - def get_integ(self): - config = self.env["res.config.settings"].sudo().search([],limit=1 ,order ="id desc") - self.integration_with_accounting = config.integration_with_accounting_configuration - - def action_approve(self): - for rec in self: - record = rec.quotation_ids.sudo().filtered(lambda r: r.approve == True) - if not record and rec.integration_with_accounting == True: - raise ValidationError(_("You Need Approve Quotation First")) - else: - print("no Validation") - rec.state = 'approve' - rec.vehicle_id.next_request_date = rec.next_request_date - -class FormRenew(models.Model): - _inherit = 'form.renew' - - integration_with_accounting = fields.Boolean(string='Integration With Accounting',compute="get_integ") - - @api.depends("vehicle_id") - def get_integ(self): - config = self.env["res.config.settings"].sudo().search([],limit=1 ,order ="id desc") - self.integration_with_accounting = config.integration_with_accounting_configuration - -class FleetServices(models.Model): - _inherit = 'fleet.vehicle.log.services' - - integration_with_accounting = fields.Boolean(string='Integration With Accounting',compute="get_integ") - status_a = fields.Selection(related='status') - status_b = fields.Selection(related='status') - @api.depends("vehicle_id") - def get_integ(self): - config = self.env["res.config.settings"].sudo().search([],limit=1 ,order ="id desc") - self.integration_with_accounting = config.integration_with_accounting_configuration - - -class ResConfigSettings(models.TransientModel): - _inherit = 'res.config.settings' - - integration_with_accounting_configuration = fields.Boolean(string='Integration With Accounting',config_parameter='odex25_fleet_account_custom.integration_with_accounting_configuration') - - @api.depends('integration_with_accounting_configuration') - def _compute_integration_with_accounting(self): - group1 = self.env.ref('odex25_fleet_account_custom.integration_with_account') - group2 = self.env.ref('odex25_fleet_account_custom.disable_integration_with_account') - for record in self: - if record.integration_with_accounting_configuration == True: - group1.write({'users': [(4, self.env.user.id)]}) - group2.write({'users': [(3, self.env.user.id)]}) - else: - group1.write({'users': [(3, self.env.user.id)]}) - group2.write({'users': [(4, self.env.user.id)]}) - - - @api.model - def create(self, values): - # Call the create method of the superclass - record = super(ResConfigSettings, self).create(values) - - # Call the dependency computation method to perform the desired actions - record._compute_integration_with_accounting() - - return record - - def write(self, values): - # Call the write method of the superclass - result = super(ResConfigSettings, self).write(values) - - # Call the dependency computation method to perform the desired actions - self._compute_integration_with_accounting() - - return result diff --git a/odex25_fleet/odex25_fleet_account_custom/security/security_view.xml b/odex25_fleet/odex25_fleet_account_custom/security/security_view.xml deleted file mode 100644 index c7b375145..000000000 --- a/odex25_fleet/odex25_fleet_account_custom/security/security_view.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - Integration With Account - - - - Disable Integration With Account - - - - - \ No newline at end of file diff --git a/odex25_fleet/odex25_fleet_account_custom/views/fleet_views.xml b/odex25_fleet/odex25_fleet_account_custom/views/fleet_views.xml deleted file mode 100644 index 32d3b0c25..000000000 --- a/odex25_fleet/odex25_fleet_account_custom/views/fleet_views.xml +++ /dev/null @@ -1,159 +0,0 @@ - - - - - fleet.vehicle.log.fuel.inherit - fleet.vehicle.log.fuel - - - - - - - - 0 - 1 - - - 0 - 1 - - - 0 - 1 - - - 0 - 1 - - - odex25_fleet_account_custom.integration_with_account - - - 1 - - - - - - - - - - fleet.maintenance.inherit - fleet.maintenance - - - - - - - - 0 - 1 - - - 0 - 1 - - - 0 - 1 - - - odex25_fleet_account_custom.integration_with_account - - - 1 - - - - - - - - - - fleet.vehicle.log.services.inherit - fleet.vehicle.log.services - - - - - - - - odex25_fleet_account_custom.integration_with_account - - - 0 - 1 - - - 0 - 1 - - - 1 - - - - - - - - - - form.renew.inherit - form.renew - - - - - - - - 0 - 1 - - - 0 - 1 - - - 0 - 1 - - - - - - res.config.settings.inherit - res.config.settings - - - -

Integration With Accounting

-
-
-
-
-
-
-
-
-
- - - - -
\ No newline at end of file diff --git a/odex25_fleet/odex25_fleet_account_custom/views/views.xml b/odex25_fleet/odex25_fleet_account_custom/views/views.xml deleted file mode 100644 index b0878e46e..000000000 --- a/odex25_fleet/odex25_fleet_account_custom/views/views.xml +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/odex25_fleet/odex25_nadi_custom/__init__.py b/odex25_fleet/odex25_nadi_custom/__init__.py deleted file mode 100644 index f5ba686bc..000000000 --- a/odex25_fleet/odex25_nadi_custom/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -# -*- coding: utf-8 -*- -from . import models \ No newline at end of file diff --git a/odex25_fleet/odex25_nadi_custom/__manifest__.py b/odex25_fleet/odex25_nadi_custom/__manifest__.py deleted file mode 100644 index f8ae32d44..000000000 --- a/odex25_fleet/odex25_nadi_custom/__manifest__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- coding: utf-8 -*- -{ - 'name': "Odex25 Nnadi Fleet Custom", - - 'summary': """ - add new field relational employee in fleet vehicle model""", - - 'description': """ - add new field relational employee in fleet vehicle model """, - 'author': "My Company", - 'website': "http://www.yourcompany.com", - - # Categories can be used to filter modules in modules listing - # Check https://github.com/odoo/odoo/blob/15.0/odoo/addons/base/data/ir_module_category_data.xml - # for the full list - 'category': 'Uncategorized', - 'version': '0.1', - - # any module necessary for this one to work correctly - 'depends': ['base','fleet'], - - # always loaded..... - 'data': [ - 'views/views.xml', - ], -} diff --git a/odex25_fleet/odex25_nadi_custom/i18n/ar_001.po b/odex25_fleet/odex25_nadi_custom/i18n/ar_001.po deleted file mode 100644 index ac817dff3..000000000 --- a/odex25_fleet/odex25_nadi_custom/i18n/ar_001.po +++ /dev/null @@ -1,43 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * odex25_nadi_custom -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-12-12 09:18+0000\n" -"PO-Revision-Date: 2023-12-12 09:18+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: odex25_nadi_custom -#: model:ir.model.fields,field_description:odex25_nadi_custom.field_fleet_vehicle__display_name -msgid "Display Name" -msgstr "الاسم المعروض" - -#. module: odex25_nadi_custom -#: code:addons/odex25_nadi_custom/models/models.py:0 -#: model:ir.model.fields,field_description:odex25_nadi_custom.field_fleet_vehicle__employee_id -#, python-format -msgid "Employee" -msgstr "الفني المكلف بالصيانة" - -#. module: odex25_nadi_custom -#: model:ir.model.fields,field_description:odex25_nadi_custom.field_fleet_vehicle__id -msgid "ID" -msgstr "المُعرف" - -#. module: odex25_nadi_custom -#: model:ir.model.fields,field_description:odex25_nadi_custom.field_fleet_vehicle____last_update -msgid "Last Modified on" -msgstr "آخر تعديل في" - -#. module: odex25_nadi_custom -#: model:ir.model,name:odex25_nadi_custom.model_fleet_vehicle -msgid "Vehicle" -msgstr "المركبة" diff --git a/odex25_fleet/odex25_nadi_custom/models/__init__.py b/odex25_fleet/odex25_nadi_custom/models/__init__.py deleted file mode 100644 index 5305644df..000000000 --- a/odex25_fleet/odex25_nadi_custom/models/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import models \ No newline at end of file diff --git a/odex25_fleet/odex25_nadi_custom/models/models.py b/odex25_fleet/odex25_nadi_custom/models/models.py deleted file mode 100644 index 423902abc..000000000 --- a/odex25_fleet/odex25_nadi_custom/models/models.py +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -from odoo import models, fields, api,_ - -class Fleet(models.Model): - _inherit = 'fleet.vehicle' - employee_maintenance_id = fields.Many2one(comodel_name='hr.employee',string=_('Employee')) diff --git a/odex25_fleet/odex25_nadi_custom/static/description/icon.png b/odex25_fleet/odex25_nadi_custom/static/description/icon.png deleted file mode 100644 index 4141f52daab6a780510b5f4e3dd762511add78fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32929 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 OgtWK - - - fleet.form.inherit0 - fleet.vehicle - - - - - - - - diff --git a/odex25_fleet/odex_fleet/__init__.py b/odex25_fleet/odex_fleet/__init__.py deleted file mode 100644 index fe8bf93ac..000000000 --- a/odex25_fleet/odex_fleet/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- coding: utf-8 -*- -from .import models -from .import wizards -from .import reports diff --git a/odex25_fleet/odex_fleet/__manifest__.py b/odex25_fleet/odex_fleet/__manifest__.py deleted file mode 100644 index c9256dc6b..000000000 --- a/odex25_fleet/odex_fleet/__manifest__.py +++ /dev/null @@ -1,47 +0,0 @@ -# -*- coding: utf-8 -*- -{ - 'name': "Odex Fleet", - - 'summary': """ - Manage Fleet and Reports""", - - 'description': """ -Manage Fleet and Reports - """, - - 'author': "Expert Co Ltd", - 'website': "http://www.ex.com", - 'category': 'fleet', - 'version': '0.1', - 'depends': ['fleet','branch','hr_base'], - # 'exp_custody_petty_cash', - # 'bi_odoo_multi_branch_hr' - # 'hr_base' - 'data': [ - 'security/security_view.xml', - 'security/ir.model.access.csv', - 'views/vehicle_view.xml', - 'views/vehicle_deleation_view.xml', - 'views/driver_view.xml', - 'views/maintenance_request_view.xml', - 'views/renew_view.xml', - 'views/config_view.xml', - 'views/account_config_view.xml', - 'data/cron_data.xml', - 'views/mail_template.xml', - 'wizards/fleet_view.xml', - 'reports/fleet_template.xml', - 'reports/maintains_template.xml', - 'reports/driver_template.xml', - 'reports/renew_template.xml', - 'reports/service_template.xml', - 'reports/maintains_purchase_request.xml', - 'reports/service_purchase_request.xml', - 'wizards/reject_reason.xml', - 'views/insurance_companies.xml', - 'views/infractions.xml', - 'wizards/reject_reason_infraction.xml', - 'views/driver_departments.xml', - - ] -} \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/data/cron_data.xml b/odex25_fleet/odex_fleet/data/cron_data.xml deleted file mode 100644 index 8cffbd39e..000000000 --- a/odex25_fleet/odex_fleet/data/cron_data.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - Check Driver Expiry - - code - model.driver_expired_cron() - 1 - days - -1 - - - Check Fleet Expiry - - code - model.fleet_expired_cron() - 1 - days - -1 - - - - Check Fleet Maintenance - - code - model.fleet_maintenance_cron() - 1 - days - -1 - - - Check Delegation Expiry - - code - model.delegation_expired_cron() - 1 - days - -1 - - - Check Delegation Start - - code - model.delegation_start_cron() - 1 - days - -1 - - - Check Delegation Close - - code - model.delegation_close_cron() - 1 - days - -1 - - - diff --git a/odex25_fleet/odex_fleet/i18n/ar_001.po b/odex25_fleet/odex_fleet/i18n/ar_001.po deleted file mode 100644 index 0407a7c28..000000000 --- a/odex25_fleet/odex_fleet/i18n/ar_001.po +++ /dev/null @@ -1,3223 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * odex_fleet -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-19 11:09+0000\n" -"PO-Revision-Date: 2024-05-19 11:09+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: odex_fleet -#: model:mail.template,body_html:odex_fleet.delegation_expiration_email_template -msgid "" -"\n" -" \n" -"

عزيزي العميل

\n" -" نود تذكيركم بقرب انتهاء تفويض سيارة رقم ${(object.vehicle_id.license_plate)} القائد ${(object.employee_id.name)} النوع ${(object.vehicle_id.fleet_type_id.name)} والتي تنتهي بتاريخ ${(object.end_date)}\n" -"\n" -"

\n" -"\t \n" -" " -msgstr "" - -#. module: odex_fleet -#: model:mail.template,body_html:odex_fleet.operation_number_expiration_email_template -msgid "" -"\n" -" \n" -"

عزيزي العميل

\n" -" نود تذكيركم بقرب انتهاء كرت التشغيل رقم ${(object.operation_card_number)} للسيارة رقم ${(object.license_plate)} القائد ${(object.employee_id.name)} النوع ${(object.fleet_type_id.name)} والتي تنتهي بتاريخ ${(object.operation_card_number)}\n" -"\n" -"

\n" -"\t \n" -" " -msgstr "" - -#. module: odex_fleet -#: model:mail.template,body_html:odex_fleet.check_expiration_email_template -msgid "" -"\n" -" \n" -"

عزيزي العميل

\n" -" نود تذكيركم بقرب موعد الفحص للسيارة رقم ${(object.license_plate)} القائد ${(object.employee_id.name)} النوع ${(object.fleet_type_id.name)} والتي تنتهي بتاريخ ${(object.check_end)}\n" -"\n" -"

\n" -"\t \n" -" " -msgstr "" - -#. module: odex_fleet -#: model:mail.template,body_html:odex_fleet.installment_expiration_email_template -msgid "" -"\n" -" \n" -"

عزيزي العميل

\n" -" نود تذكيركم بقرب موعد سداد قسط التامين بوليصة رقم ${(object.fleet_id.insurance_number)} بتاريخ ${(object.date)}\n" -"\n" -"

\n" -"\t \n" -" " -msgstr "" - -#. module: odex_fleet -#: model:mail.template,body_html:odex_fleet.form_expiration_email_template -msgid "" -"\n" -" \n" -"

عزيزي العميل

\n" -" نود تذكيركم بقرب انتهاء الاستمارة للسيارة رقم ${(object.license_plate)} القائد ${(object.employee_id.name)} النوع ${(object.fleet_type_id.name)} والتي تنتهي بتاريخ ${(object.form_end)}\n" -"\n" -"

\n" -"\t \n" -" " -msgstr "" - -#. module: odex_fleet -#: model:mail.template,body_html:odex_fleet.driver_expiration_email_template -msgid "" -"\n" -" \n" -"

عزيزي العميل

\n" -" نود تذكيركم بقرب انتهاء رخصة السائق ${(object.name)} رقم ${(object.license_number)} القائد ${(object.employee_id.name)} والتي تنتهي بتاريخ ${(object.license_end)}\n" -"\n" -"

\n" -"\t \n" -" " -msgstr "" - -#. module: odex_fleet -#: model:mail.template,body_html:odex_fleet.car_expiration_email_template -msgid "" -"\n" -" \n" -"

عزيزي العميل

\n" -" نود تذكيركم بقرب انتهاء رخصة السير للسيارة رقم ${(object.license_plate)} القائد ${(object.employee_id.name)} النوع ${(object.fleet_type_id.name)} والتي تنتهي بتاريخ ${(object.license_end)}\n" -"\n" -"

\n" -"\t \n" -" " -msgstr "" - -#. module: odex_fleet -#: model:mail.template,body_html:odex_fleet.insurance_expiration_email_template -msgid "" -"\n" -" \n" -"

عزيزي العميل

\n" -" نود تذكيركم بقرب موعد انتهاء بوليصة التامين رقم ${(object.insurance_number)} للسيارة رقم ${(object.license_plate)} والتي تنتهي بتاريخ ${(object.insurance_end_date)}\n" -"\n" -"

\n" -"\t \n" -" " -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_config_settings__form -msgid " Form" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__date -msgid " Request Date" -msgstr "تاريخ طلب الصيانة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__state_ids -msgid " States" -msgstr "المحافظة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "Vehicle" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "Days" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "Driver" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "Km" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "Liter Per Day" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "Liter Price Per Day" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "Service" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_branch_report_pdf -msgid "Total Expense" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "Total" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "Type" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "g/km" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "kW" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_infraction__infraction_type__accident -msgid "Accident" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_account_config__account_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__account_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__account_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__account_id -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__account_id -msgid "Account" -msgstr "الحساب" - -#. module: odex_fleet -#: model:ir.ui.menu,name:odex_fleet.fleet_account_config -msgid "Account Configuration" -msgstr "اعدادات الحسابات" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_form_renew_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_fuel_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -msgid "Account Details" -msgstr "بيانات الفاتورة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_needaction -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_needaction -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_needaction -msgid "Action Needed" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__activity_ids -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__activity_ids -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__activity_ids -msgid "Activities" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__activity_exception_decoration -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__activity_exception_decoration -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__activity_exception_decoration -msgid "Activity Exception Decoration" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__activity_state -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__activity_state -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__activity_state -msgid "Activity State" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__activity_type_icon -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__activity_type_icon -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__activity_type_icon -msgid "Activity Type Icon" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_fuel_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -msgid "Additional Details" -msgstr "بيانات اضافية" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "Additional Properties" -msgstr "اعدادات اضافية" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__report_type__all_branch_cost -msgid "All Branch Cost" -msgstr "" - -#. module: odex_fleet -#: model:ir.ui.menu,name:odex_fleet.menu_fleet_reporting_all_branch_cost -msgid "All Branch Expense " -msgstr "تقرير مركبات الفرع" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.state_cost_report_pdf_act -msgid "All State Expense Report" -msgstr "تقرير تكاليف المناطق" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.service_report_pdf_act -msgid "All State Service Report" -msgstr "تقرير خدمات المركبة بالمناطق" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_delegation_vehicle_view_search -msgid "All vehicles" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__cost_amount -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_installment__amount -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "Amount" -msgstr "مبلغ الدفعة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__approve -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_maintenance__state__approve -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_form_renew_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_request_maintenance_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_delegation_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_fuel_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_form -msgid "Approve" -msgstr "اعتماد" - - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_fuel__state__approve -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_services__status__approve -#: model:ir.model.fields.selection,name:odex_fleet.selection__form_renew__state__approve -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_delegation__state__approve -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_infraction__state__approve -msgid "Approved" -msgstr "موافقة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "Archived" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_attachment_count -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_attachment_count -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_attachment_count -msgid "Attachment Count" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__auto_generated -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__auto_generated -msgid "Automatically Generated" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__benefits_discounts -msgid "Benefits/Discounts" -msgstr "خصم من؟" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_res_branch -#: model:ir.model.fields,field_description:odex_fleet.field_driver_department__branch_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__branch_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__branch_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__branch_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_contract__branch_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__branch_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__branch_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__branch_ids -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__branch_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__branch_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__branch_id -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_delegation__delegation_type__branch -#: model:ir.ui.menu,name:odex_fleet.res_branches_menu -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_delegation_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_delegation_vehicle_view_search -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_maintenance_vehicle_view_search -#: model_terms:ir.ui.view,arch_db:odex_fleet.maintains_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.renew_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.state_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.to_renew_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_view_search -msgid "Branch" -msgstr "الفروع" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.all_branch_cost_report_pdf_act -msgid "Branch Chart Cost Report" -msgstr "تقرير مركبات الفرع" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__report_type__branch_cost -msgid "Branch Cost" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.fleet_branch_delegation_action -#: model:ir.ui.menu,name:odex_fleet.branch_delegation_menu -msgid "Branch Delegation" -msgstr "تفويض المركبات" - -#. module: odex_fleet -#: model:ir.ui.menu,name:odex_fleet.menu_fleet_reporting_branch_cost -msgid "Branch Expense " -msgstr "تقرير مصروفات فرع" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_manufacture_company__brand_ids -msgid "Brand" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_vehicle_model_brand -msgid "Brand of the vehicle" -msgstr "العلامة التجارية للمركبة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__cal_type -msgid "Calculation Type" -msgstr "نوع الحساب" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_maintenance__state__cancel -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_fuel__state__cancel -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_services__status__cancel -#: model:ir.model.fields.selection,name:odex_fleet.selection__form_renew__state__cancel -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_delegation__state__cancel -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_infraction__state__cancel -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_form_renew_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_report_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_request_maintenance_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_delegation_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_fuel_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.wizard_reject_reason_fleet_wiz_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.wizard_reject_reason_infraction_form -msgid "Cancel" -msgstr "إلغاء" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.car_category_action -#: model:ir.model,name:odex_fleet.model_car_category -#: model:ir.model.fields,field_description:odex_fleet.field_car_category__car_category -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__car_category -#: model:ir.ui.menu,name:odex_fleet.car_category_menu -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_car_category_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_car_category_view_tree -msgid "Car Category" -msgstr "فئة السيارة" - -#. module: odex_fleet -#: model:mail.template,subject:odex_fleet.check_expiration_email_template -msgid "Car Check" -msgstr "فحص" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__report_type__car_consumption -msgid "Car Consumption" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.car_consumption_cost_report_pdf_act -msgid "Car Consumption Report" -msgstr "تقرير مصروفات المركبة" - -#. module: odex_fleet -#: model:mail.template,subject:odex_fleet.form_expiration_email_template -msgid "Car Form" -msgstr "استمارة المركبة" - -#. module: odex_fleet -#: model:mail.template,subject:odex_fleet.installment_expiration_email_template -msgid "Car Installment" -msgstr "اقساط المركية" - -#. module: odex_fleet -#: model:mail.template,subject:odex_fleet.insurance_expiration_email_template -msgid "Car Insurance" -msgstr "تامين المركبة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_config_settings__car_license -msgid "Car Licence" -msgstr "" - -#. module: odex_fleet -#: model:mail.template,subject:odex_fleet.car_expiration_email_template -msgid "Car License" -msgstr "رخصة المركبة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_res_config_settings_view_form -msgid "Car Notification" -msgstr "" - -#. module: odex_fleet -#: model:mail.template,subject:odex_fleet.operation_number_expiration_email_template -msgid "Car Operation Number" -msgstr "رقم تشغيل المركبة" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.action_partner_owner_form -#: model:ir.model.fields,field_description:odex_fleet.field_res_partner__car_owner -#: model:ir.model.fields,field_description:odex_fleet.field_res_users__car_owner -#: model:ir.ui.menu,name:odex_fleet.fleet_vehicle_owner_menu -msgid "Car Owner" -msgstr "مالك المركبة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__car_weight -msgid "Car Weight" -msgstr "وزن المركبة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__employee_cars_count -msgid "Cars" -msgstr "السيارات " - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__cost_type -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__cost_type -msgid "Category of the cost" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__vin_sn -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__vin_sn -msgid "Chassis Number" -msgstr "رقم الهيكل" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_config_settings__check -msgid "Check" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.server,name:odex_fleet.ir_cron_data_check_delegation_close_ir_actions_server -#: model:ir.cron,cron_name:odex_fleet.ir_cron_data_check_delegation_close -#: model:ir.cron,name:odex_fleet.ir_cron_data_check_delegation_close -msgid "Check Delegation Close" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.server,name:odex_fleet.ir_cron_data_check_delegation_expiry_ir_actions_server -#: model:ir.cron,cron_name:odex_fleet.ir_cron_data_check_delegation_expiry -#: model:ir.cron,name:odex_fleet.ir_cron_data_check_delegation_expiry -msgid "Check Delegation Expiry" -msgstr "انتهاء التفويض" - -#. module: odex_fleet -#: model:ir.actions.server,name:odex_fleet.ir_cron_data_check_delegation_start_ir_actions_server -#: model:ir.cron,cron_name:odex_fleet.ir_cron_data_check_delegation_start -#: model:ir.cron,name:odex_fleet.ir_cron_data_check_delegation_start -msgid "Check Delegation Start" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.server,name:odex_fleet.ir_cron_data_check_driver_expiry_ir_actions_server -#: model:ir.cron,cron_name:odex_fleet.ir_cron_data_check_driver_expiry -#: model:ir.cron,name:odex_fleet.ir_cron_data_check_driver_expiry -msgid "Check Driver Expiry" -msgstr "انتهاء فحص السائق" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__check_end -msgid "Check End Date" -msgstr "تاريخ انتهاء الفحص" - -#. module: odex_fleet -#: model:ir.actions.server,name:odex_fleet.ir_cron_data_check_fleet_expiry_ir_actions_server -#: model:ir.cron,cron_name:odex_fleet.ir_cron_data_check_fleet_expiry -#: model:ir.cron,name:odex_fleet.ir_cron_data_check_fleet_expiry -msgid "Check Fleet Expiry" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.server,name:odex_fleet.ir_cron_data_check_fleet_maintenance_ir_actions_server -#: model:ir.cron,cron_name:odex_fleet.ir_cron_data_check_fleet_maintenance -#: model:ir.cron,name:odex_fleet.ir_cron_data_check_fleet_maintenance -msgid "Check Fleet Maintenance" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.fleet_branch_delegation_action -msgid "Click to create a new Branch Delegation." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.car_category_action -msgid "Click to create a new Car Category." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.driver_department_action -msgid "Click to create a new Department." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.fleet_vehicle_delegation_action -msgid "Click to create a new Driver Delegation." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.fleet_vehicle_renew_action -#: model_terms:ir.actions.act_window,help:odex_fleet.insurance_companies_action -msgid "Click to create a new Form Renew." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.fuel_price_action -msgid "Click to create a new Fuel Price." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.vehicle_infraction_action -msgid "Click to create a new Infraction." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.man_company_action -msgid "Click to create a new Manufacture Company." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.fleet_vehicle_costs_action -msgid "Click to create a new cost." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.fleet_vehicle_log_fuel_action -msgid "Click to create a new fuel log." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.transmission_setting_action -msgid "Click to create a new transmission ." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.fleet_vehicle_amount_action -msgid "Click to create a new type." -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_account_config__state__close -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_delegation__state__close -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_delegation_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_account_config_form -msgid "Close" -msgstr "إلغاء" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_res_company -msgid "Companies" -msgstr "مؤسسات" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__company_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__company_id -msgid "Company" -msgstr "المؤسسة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_companies__name -msgid "Company Name" -msgstr "اسم المؤسسة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__computer_number -msgid "Computer Number" -msgstr "رقم الحاسوب" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_res_config_settings -msgid "Config Settings" -msgstr "ضبط الاعدادات" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_account_config__state__confirm -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_maintenance__state__confirm -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_fuel__state__confirm -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_services__status__confirm -#: model:ir.model.fields.selection,name:odex_fleet.selection__form_renew__state__confirm -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_delegation__state__confirm -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_infraction__state__confirm -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_form_renew_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_request_maintenance_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_delegation_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_account_config_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_fuel_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.wizard_reject_reason_fleet_wiz_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.wizard_reject_reason_infraction_form -msgid "Confirm" -msgstr "تأكيد" - -#. module: odex_fleet -#: model:ir.ui.menu,name:odex_fleet.menu_fleet_reporting_car_consumption -msgid "Consumption Report" -msgstr "تقرير مصروفات المركبة" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_res_partner -msgid "Contact" -msgstr "جهة الاتصال" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__contract_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__contract_id -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_cost__cost_type__contract -msgid "Contract" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_cost__contract_id -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_log_fuel__contract_id -msgid "Contract attached to this cost" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "Contracts" -msgstr "العقود" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_maintenance__type__corrective -msgid "Corrective" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__cost -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service__cost -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service__qty -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__cost_id -#: model_terms:ir.ui.view,arch_db:odex_fleet.renew_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.service_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.to_renew_report_pdf -msgid "Cost" -msgstr "سعر الوحدة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__description -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__description -msgid "Cost Description" -msgstr "وصف التكلفة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_form -msgid "Cost Details" -msgstr "تفاصيل التكلفة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__cost_percentage -msgid "Cost Percentage%" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_search -msgid "Cost Subtype" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_search -msgid "Cost Type" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_vehicle_cost -msgid "Cost related to a vehicle" -msgstr "التكلفة المتعلقة لمركبة" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_cost__cost_subtype_id -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_log_fuel__cost_subtype_id -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_log_services__cost_subtype_id -msgid "Cost type purchased with this cost" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_graph -msgid "Costs Per Month" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_fuel_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -msgid "Create Invoice" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_car_category__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_driver_department__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_account_config__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_type__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fuel_price__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_companies__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_installment__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_manufacture_company__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_fleet_wiz__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_infraction_wiz__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_transmission_setting__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__create_uid -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__create_uid -msgid "Created by" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_car_category__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_driver_department__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_account_config__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_type__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_fuel_price__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_companies__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_installment__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_manufacture_company__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_fleet_wiz__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_infraction_wiz__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_transmission_setting__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__create_date -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__create_date -msgid "Created on" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__custody_id -msgid "Custody" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__date -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_installment__date -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_service_line_config__type__date -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.service_report_pdf -msgid "Date" -msgstr "التاريخ" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__date_from -msgid "Date From" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__date_to -msgid "Date To" -msgstr "" - -#. module: odex_fleet -#: code:addons/odex_fleet/wizards/fleet_wiz.py:0 -#, python-format -msgid "Date To Should Be Greater Than Date From" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_cost__date -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_log_fuel__date -msgid "Date when the cost has been executed" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__advantage_id -msgid "Deduction Employee" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fuel_price__uom_id -msgid "Default unit of measure used for all stock operations." -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_fleet_wiz__delegation_id -#: model:ir.model.fields,field_description:odex_fleet.field_res_company__delegation -#: model:ir.model.fields,field_description:odex_fleet.field_res_config_settings__delegation -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__report_type__delegation -#: model:ir.ui.menu,name:odex_fleet.fleet_vehicles_delegation -msgid "Delegation" -msgstr "التفويض" - -#. module: odex_fleet -#: model:mail.template,subject:odex_fleet.delegation_expiration_email_template -msgid "Delegation End" -msgstr "انتهاء تفويض" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__delegation_end -#: model_terms:ir.ui.view,arch_db:odex_fleet.hr_kanban_view -msgid "Delegation End Date" -msgstr "تاريخ انتهاء التفويض" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__delegation_start -#: model_terms:ir.ui.view,arch_db:odex_fleet.hr_kanban_view -msgid "Delegation Start Date" -msgstr "تاريخ بداية التفويض" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__delegation_type -msgid "Delegation Type" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_driver_department__department_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__department_id -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__vehicle_del_type__department -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_delegation__entity_type__department -msgid "Department" -msgstr "الادارة / القسم" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__department_ids -#: model:ir.ui.menu,name:odex_fleet.driver_department_menu -msgid "Departments" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.all_branch_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_branch_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.state_cost_report_pdf -msgid "Description" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_service_line_config__odometer -msgid "Determine the current mileage value to submit a maintenance request" -msgstr "تحديد قيمة الأميال الحالية لتقديم طلب الصيانة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__discount_amount -msgid "Discount Amount" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_car_category__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_driver_department__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_account_config__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_type__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_contract__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_model__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_model_brand__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_fuel_price__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_companies__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_installment__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_manufacture_company__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_fleet_wiz__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_infraction_wiz__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_all_branch_cost_report_pdf__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_car_consumption_cost_report_pdf__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_driver_delegation_report_pdf__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_driver_report_pdf__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_fleet_branch_report_pdf__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_invoice_report_pdf__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_maintains_report_pdf__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_renew_report_pdf__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_service_report_pdf__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_state_cost_report_pdf__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_to_renew_report_pdf__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_res_branch__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_res_company__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_res_config_settings__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_res_partner__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_transmission_setting__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__display_name -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__display_name -msgid "Display Name" -msgstr "الاسم المعروض" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_account_config__state__draft -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_maintenance__state__draft -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_fuel__state__draft -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_services__status__draft -#: model:ir.model.fields.selection,name:odex_fleet.selection__form_renew__state__draft -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_delegation__state__draft -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_infraction__state__draft -msgid "Draft" -msgstr "مسودة" - - -#. module: odex_fleet -#: model:res.groups,name:odex_fleet.fleet_group_draft -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_form_renew_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_request_maintenance_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_fuel_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -msgid "Set To Draft" -msgstr "إرسال الى مسودة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__employee_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__driver_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__employee_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__employee_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__employee_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__employee_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__employee_id -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__report_type__driver -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_delegation_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.maintains_report_pdf -msgid "Driver" -msgstr "السائق" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.fleet_vehicle_delegation_action -#: model:ir.ui.menu,name:odex_fleet.vehicle_delegation_menu -msgid "Driver Delegation" -msgstr "تفويض سائق مركبة" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.driver_delegation_report_pdf_act -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_delegation_report_pdf -msgid "Driver Delegation Report" -msgstr "تقرير تفويض سائق" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.driver_department_action -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__driver_department -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_department_view_form -msgid "Driver Department" -msgstr "قسم السائقين" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.hr_driver_form_view -msgid "Driver Information" -msgstr "معلومات السائق" - -#. module: odex_fleet -#: model:mail.template,subject:odex_fleet.driver_expiration_email_template -msgid "Driver License" -msgstr "رخصة السائق" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.driver_report_pdf_act -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_report_pdf -msgid "Driver Report" -msgstr "تقرير السائقين" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle__driver_id -msgid "Driver of the vehicle" -msgstr "سائق المركبة" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.odex_employees_list_action -#: model:ir.ui.menu,name:odex_fleet.fleet_vehicle_driver_menu -msgid "Drivers" -msgstr "السائقين" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "Drivers History" -msgstr "سجل السائقين" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__edit_access -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__edit_access -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__edit_access -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__edit_access -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__edit_access -msgid "Edit Access" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_search -msgid "Effective Costs" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_hr_employee -msgid "Employee" -msgstr "الموظف" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_delegation_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_form -msgid "Employee Information" -msgstr "بيانات السائق" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/vehicle.py:0 -#, python-format -msgid "Emptying the odometer value of a vehicle is not allowed." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_delegation_report_pdf -msgid "End" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__end_date -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__end_date -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__end_date -#: model_terms:ir.ui.view,arch_db:odex_fleet.renew_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.to_renew_report_pdf -msgid "End Date" -msgstr "تاريخ النهاية" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "Engine Options" -msgstr "خيارات المحرك" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__entity_type -msgid "Entity Type" -msgstr "نوع الجهة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__first_odometer -msgid "First Odometer" -msgstr "عداد المسافة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config__fleet_id -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_installment__fleet_id -msgid "Fleet" -msgstr "" - -#. module: odex_fleet -#: model:res.groups,name:odex_fleet.fleet_group_account -msgid "Fleet Account Manager" -msgstr "المدير المالى" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.fleet_vehicle_account_config_action -msgid "Fleet Account Settings" -msgstr "اعدادات الحسابات" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.all_branch_cost_report_fleet_report_action -msgid "Fleet All Branch Expense Report" -msgstr "تقرير مركبات الفرع" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.branch_cost_cost_report_fleet_report_action -msgid "Fleet Branch Expense Report" -msgstr "تقرير تكاليف فرع" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.car_consumption_report_fleet_report_action -msgid "Fleet Consumption Report" -msgstr "تقرير مصروفات مركبة" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_account_config -msgid "Fleet Cost" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.delegation_report_fleet_report_action -#: model:ir.ui.menu,name:odex_fleet.menu_fleet_reporting_car_delegation -msgid "Fleet Delegation Report" -msgstr "تقرير تفويض سائق" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.driver_report_fleet_report_action -#: model:ir.ui.menu,name:odex_fleet.menu_fleet_reporting_car_driver -msgid "Fleet Driver Report" -msgstr "تقرير السائقين" - -#. module: odex_fleet -#: model:ir.ui.menu,name:odex_fleet.menu_fleet_reporting_car_invoice -msgid "Fleet Expense Invoice Report" -msgstr "تقرير إستهلاك وقود" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.invoice_report_fleet_report_action -msgid "Fleet Expense Report" -msgstr "تقرير إستهلاك وقود" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.invoice_report_pdf_act -msgid "Fleet Invoice Report" -msgstr "تقرير إستهلاك وقود" - -#. module: odex_fleet -#: model:ir.ui.menu,name:odex_fleet.menu_fleet_reporting_maintains -msgid "Fleet Maintains" -msgstr "تقرير مركبة تجاوزت الصيانة" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.maintains_report_fleet_report_action -msgid "Fleet Maintains Report" -msgstr "تقرير مركبة تجاوزت الصيانة" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.fleet_vehicle_maintenance_action -#: model:ir.model,name:odex_fleet.model_fleet_maintenance -#: model:ir.ui.menu,name:odex_fleet.vehicle_maintenance_menu -msgid "Fleet Maintenance" -msgstr "صيانة المركبات" - -#. module: odex_fleet -#: model:ir.ui.menu,name:odex_fleet.menu_fleet_reporting_to_maintains -msgid "Fleet Need Maintains" -msgstr " مركبات تحتاج الصيانة" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.to_maintains_report_fleet_report_action -msgid "Fleet Need Maintains Report" -msgstr "تقرير مركبة تحت الصيانة" - -#. module: odex_fleet -#: model:ir.ui.menu,name:odex_fleet.menu_fleet_reporting_to_renew -msgid "Fleet Need Renew" -msgstr "بيان تجديد استمارة مركبة" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.to_renew_report_fleet_report_action -msgid "Fleet Need Renew Report" -msgstr "بيان تجديد استمارة مركبة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_res_config_settings_view_form -msgid "Fleet Notification Before" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_quotation -msgid "Fleet Quotation" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.renew_report_fleet_report_action -msgid "Fleet Renew Report" -msgstr "تقرير مركبة تم تجديد استمارة" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.fleet_report_action -msgid "Fleet Report" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_service_line_config -msgid "Fleet Serive Line" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_quotation_service -msgid "Fleet Service" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.service_report_fleet_report_action -msgid "Fleet Service Report" -msgstr "خدمات المركبة" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.cost_state_report_fleet_report_action -msgid "Fleet State Expense Report" -msgstr "تقرير تكاليف المركبات" - -#. module: odex_fleet -#: model:res.groups,name:odex_fleet.fleet_group_supervisor -msgid "Fleet Supervisor" -msgstr "مشرف الاسطول" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_type -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__fleet_type_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_model__fleet_type_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__type_ids -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__fleet_type_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__fleet_type_id -msgid "Fleet Type" -msgstr "نوع المركبة" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_wiz -msgid "Fleet Wizard Report" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_follower_ids -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_follower_ids -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_follower_ids -msgid "Followers" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_channel_ids -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_channel_ids -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_channel_ids -msgid "Followers (Channels)" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_partner_ids -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_partner_ids -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_partner_ids -msgid "Followers (Partners)" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__activity_type_icon -#: model:ir.model.fields,help:odex_fleet.field_form_renew__activity_type_icon -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__activity_type_icon -msgid "Font awesome icon e.g. fa-tasks" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_cost__cost_type -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_log_fuel__cost_type -msgid "For internal purpose only" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_account_config__type__form -msgid "Form" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__form_end -msgid "Form End Date" -msgstr "تاريخ انتهاء النموذج" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.insurance_companies_action -msgid "Form Insurance Companies" -msgstr "مؤسسات التأمين" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.fleet_vehicle_renew_action -#: model:ir.ui.menu,name:odex_fleet.fleet_vehicle_renew_menu -msgid "Form Renew" -msgstr "تجديد استمارة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__form_renew_cost -msgid "Form Renew Cost" -msgstr "تكلفة تجديد النموذج" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_form_renew -msgid "Forn Renew" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "From" -msgstr "استمارة" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_account_config__type__fuel -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_cost__cost_type__fuel -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -msgid "Fuel" -msgstr "وقود" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_log_fuel_view_tree -msgid "Fuel Logs" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.fuel_price_action -#: model:ir.model,name:odex_fleet.model_fuel_price -#: model:ir.ui.menu,name:odex_fleet.fuel_price_menu -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_fuel_price_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_fuel_price_view_tree -msgid "Fuel Price" -msgstr "سعر الوقود" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__fuel_type -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__fuel_type -#: model:ir.model.fields,field_description:odex_fleet.field_fuel_price__fuel_type -msgid "Fuel Type" -msgstr "نوع الوقود" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle__fuel_type -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_log_fuel__fuel_type -#: model:ir.model.fields,help:odex_fleet.field_fuel_price__fuel_type -msgid "Fuel Used by the vehicle" -msgstr "الوقود المستخدم في المركبة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__fuel_consumption -msgid "Fuel consumption" -msgstr "استهلاك الوقود" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_vehicle_log_fuel -msgid "Fuel log for vehicles" -msgstr "سجل الوقود للمركبات" - -#. module: odex_fleet -#: model:res.groups,name:odex_fleet.fleet_group_gm -msgid "GM" -msgstr "المدير العام" - -#. module: odex_fleet -#: model:res.groups,name:odex_fleet.fleet_group_vice_gm -msgid "GM Vice" -msgstr "نائب المدير العام" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__hr_employee__license_type__general -msgid "General" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.fleet_branch_report_pdf_act -msgid "General Cost Report" -msgstr "تقرير مصروفات المركبة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "General Properties" -msgstr "الاعدادات العامة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_delegation_vehicle_view_search -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_maintenance_vehicle_view_search -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_search -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_view_search -msgid "Group By" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.fleet_vehicle_log_fuel_action -msgid "" -"Here you can add refuelling entries for all vehicles. You can\n" -" also filter logs of a particular vehicle using the search\n" -" field." -msgstr "" - -#. module: odex_fleet -#: model:res.groups,name:odex_fleet.fleet_group_hr -msgid "Hr Manager" -msgstr "مدير الموارد البشرية" - -#. module: odex_fleet -#: model:res.groups,name:odex_fleet.fleet_group_hr_officer -msgid "Hr Officer" -msgstr "مسؤل الموارد البشرية" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_car_category__id -#: model:ir.model.fields,field_description:odex_fleet.field_driver_department__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_account_config__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_type__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_contract__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_model__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_model_brand__id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__id -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__id -#: model:ir.model.fields,field_description:odex_fleet.field_fuel_price__id -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__id -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_companies__id -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_installment__id -#: model:ir.model.fields,field_description:odex_fleet.field_manufacture_company__id -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_fleet_wiz__id -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_infraction_wiz__id -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_all_branch_cost_report_pdf__id -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_car_consumption_cost_report_pdf__id -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_driver_delegation_report_pdf__id -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_driver_report_pdf__id -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_fleet_branch_report_pdf__id -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_invoice_report_pdf__id -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_maintains_report_pdf__id -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_renew_report_pdf__id -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_service_report_pdf__id -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_state_cost_report_pdf__id -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_to_renew_report_pdf__id -#: model:ir.model.fields,field_description:odex_fleet.field_res_branch__id -#: model:ir.model.fields,field_description:odex_fleet.field_res_company__id -#: model:ir.model.fields,field_description:odex_fleet.field_res_config_settings__id -#: model:ir.model.fields,field_description:odex_fleet.field_res_partner__id -#: model:ir.model.fields,field_description:odex_fleet.field_transmission_setting__id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__id -msgid "ID" -msgstr "المُعرف" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__activity_exception_icon -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__activity_exception_icon -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__activity_exception_icon -msgid "Icon" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__activity_exception_icon -#: model:ir.model.fields,help:odex_fleet.field_form_renew__activity_exception_icon -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__activity_exception_icon -msgid "Icon to indicate an exception activity." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_delegation_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_report_pdf -msgid "Id Number" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__message_needaction -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__message_unread -#: model:ir.model.fields,help:odex_fleet.field_form_renew__message_needaction -#: model:ir.model.fields,help:odex_fleet.field_form_renew__message_unread -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__message_needaction -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__message_unread -msgid "If checked, new messages require your attention." -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__message_has_error -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__message_has_sms_error -#: model:ir.model.fields,help:odex_fleet.field_form_renew__message_has_error -#: model:ir.model.fields,help:odex_fleet.field_form_renew__message_has_sms_error -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__message_has_error -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__message_has_sms_error -msgid "If checked, some messages have a delivery error." -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_delegation__state__in_progress -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_infraction__state__in_progress -msgid "In Progress" -msgstr "جاري العمل" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__cost_ids -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__cost_ids -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__cost_ids -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -msgid "Included Services" -msgstr "الخدمات" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -msgid "Indicative Cost" -msgstr "قيمة الوحدة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_search -msgid "Indicative Costs" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_infraction_wiz__infraction_id -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_infraction__infraction_type__infraction -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_department_view_view_search -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_view_search -msgid "Infraction" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__infraction_cost -msgid "Infraction Cost" -msgstr "قيمة المخالفة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__infraction_date -msgid "Infraction Date" -msgstr "تاريخ المخالفة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_form -msgid "Infraction Information" -msgstr "بيانات المخالفة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__infraction_number -msgid "Infraction Number" -msgstr "رقم المخالفة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__infraction_type -msgid "Infraction Type" -msgstr "نوع المخالفة" - -#. module: odex_fleet -#: model:ir.ui.menu,name:odex_fleet.vehicles_infractions -msgid "Infractions" -msgstr "مخالفات المركبات" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__installment_ids -msgid "Installment" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_config_settings__installment -msgid "Installment " -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_company__installment -msgid "Installment Notify Before" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__installment_number -msgid "Installment Number" -msgstr "عدد الدفعات" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_config_settings__insurance -msgid "Insurance" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__insurance_companies_id -#: model:ir.ui.menu,name:odex_fleet.insurance_companies_menu -#: model_terms:ir.ui.view,arch_db:odex_fleet.insurance_companies_view_form -msgid "Insurance Companies" -msgstr "مؤسسات التأمين" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__insurance_cost -msgid "Insurance Cost" -msgstr "الملف التأمينى" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__insurance_attachment -msgid "Insurance Docs" -msgstr "الملف التأمينى" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__insurance_end_date -msgid "Insurance End Date" -msgstr "تاريخ نهاية التأمين" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "Insurance Information" -msgstr "معلومات التأمين" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_insurance_installment -msgid "Insurance Installment" -msgstr "أقساط التأمين" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_company__insurance -msgid "Insurance Notify Before" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__insurance_number -msgid "Insurance Number" -msgstr "الرقم التأمينى" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__insurance_start_date -msgid "Insurance Start Date" -msgstr "تاريخ بداية التأمين" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/vehicle.py:0 -#, python-format -msgid "Insurance Start Date must be less than or equal Insurance End Date " -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__invoice_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__invoice_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__invoice_id -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__invoice_id -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__report_type__invoice -msgid "Invoice" -msgstr "فاتورة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "Invoice Number" -msgstr "رقم الفاتورة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__inv_ref -msgid "Invoice Reference" -msgstr "مرجع الفاتورة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "Invoice Report" -msgstr "تقرير الفاتورة" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_fuel__state__invoiced -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_services__status__invoiced -msgid "Invoiced" -msgstr "مفوتر" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__driver -msgid "Is Driver" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_is_follower -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_is_follower -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_is_follower -msgid "Is Follower" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -msgid "Job" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__km_number -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_delegation_report_pdf -msgid "KM Number" -msgstr "الفرق بين عداد المسافة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__last_branch_id -msgid "Last Branch" -msgstr "اخر فرع" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__last_department_id -msgid "Last Department" -msgstr "اخر قسم" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_car_category____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_driver_department____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_account_config____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_type____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_contract____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_model____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_model_brand____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_fuel_price____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_companies____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_installment____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_manufacture_company____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_fleet_wiz____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_infraction_wiz____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_all_branch_cost_report_pdf____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_car_consumption_cost_report_pdf____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_driver_delegation_report_pdf____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_driver_report_pdf____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_fleet_branch_report_pdf____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_invoice_report_pdf____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_maintains_report_pdf____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_renew_report_pdf____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_service_report_pdf____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_state_cost_report_pdf____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_report_odex_fleet_to_renew_report_pdf____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_res_branch____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_res_company____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_res_config_settings____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_res_partner____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_transmission_setting____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation____last_update -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction____last_update -msgid "Last Modified on" -msgstr "آخر تعديل في" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__odometer -msgid "Last Odometer" -msgstr "اخر قيمة لعداد المسافة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__last_project_id -msgid "Last Project" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_car_category__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_driver_department__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_account_config__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_type__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_fuel_price__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_companies__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_installment__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_manufacture_company__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_fleet_wiz__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_infraction_wiz__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_transmission_setting__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__write_uid -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_car_category__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_driver_department__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_account_config__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_type__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_fuel_price__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_companies__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_installment__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_manufacture_company__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_fleet_wiz__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_infraction_wiz__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_transmission_setting__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__write_date -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__write_date -msgid "Last Updated on" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_company__license -#: model:ir.model.fields,field_description:odex_fleet.field_res_config_settings__license -#: model_terms:ir.ui.view,arch_db:odex_fleet.service_report_pdf -msgid "License" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__license_attache -msgid "License Attachment" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__license_end -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__license_end -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__license_end -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__license_end -#: model_terms:ir.ui.view,arch_db:odex_fleet.hr_kanban_view -msgid "License End" -msgstr "تاريخ انتهاء الرخصة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.hr_driver_form_view -msgid "License Information" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__license_number -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__license_number -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__license_number -#: model_terms:ir.ui.view,arch_db:odex_fleet.hr_kanban_view -msgid "License Number" -msgstr "رقم رخصة السياقة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__license_plate -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__license_plate -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__license_plate -msgid "License Plate" -msgstr "رقم اللوحة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__license_start -#: model_terms:ir.ui.view,arch_db:odex_fleet.hr_kanban_view -msgid "License Start" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__license_type -#: model_terms:ir.ui.view,arch_db:odex_fleet.hr_kanban_view -msgid "License Type" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__license_plate -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__license_plate -#: model:ir.model.fields,help:odex_fleet.field_vehicle_infraction__license_plate -msgid "License plate number of the vehicle (i = plate number for a car)" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__line_id -msgid "Line" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__liter -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_fuel__cal_type__liter -msgid "Liter" -msgstr "لتر" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle__location -msgid "Location of the vehicle (garage, ...)" -msgstr "موقع السيارة (المرآب، ...)" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_main_attachment_id -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_main_attachment_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_main_attachment_id -msgid "Main Attachment" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_fleet_wiz__maintenance_id -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_account_config__type__maintenance -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__report_type__maintains -#: model:ir.ui.menu,name:odex_fleet.fleet_maintenance_root -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_request_maintenance_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.maintains_report_pdf -msgid "Maintenance" -msgstr "صيانة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.maintains_report_pdf -msgid "Maintenance Date" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.maintains_purchase_req_act -msgid "Maintenance Purchase Request" -msgstr "طلب أمر شراء" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.maintains_report_pdf_act -msgid "Maintenance Report" -msgstr "تقرير مركبة تحتاج صيانة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__request_id -msgid "Maintenance Request" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "Maintenance Settings" -msgstr "اعدادات الصيانة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__type -msgid "Maintenance Type" -msgstr "نوع الصيانة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__man_company -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_model__man_company_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_model_brand__man_company_id -msgid "Man Company" -msgstr "المؤسسة الاساسية" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.man_company_action -#: model:ir.model,name:odex_fleet.model_manufacture_company -#: model:ir.model.fields,field_description:odex_fleet.field_manufacture_company__man_company -#: model:ir.ui.menu,name:odex_fleet.man_company_menu -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_man_company_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_man_company_view_tree -msgid "Manufacture Company" -msgstr "مؤسسة الصنع" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.renew_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.to_renew_report_pdf -msgid "Manufacture Year" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_has_error -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_has_error -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_has_error -msgid "Message Delivery error" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_ids -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_ids -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_ids -msgid "Messages" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__model_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__model_id -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_delegation_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.maintains_report_pdf -msgid "Model" -msgstr "موديل المركبة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__model_id -msgid "Model Type" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_vehicle_model -msgid "Model of a vehicle" -msgstr "موديل مركبة" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle__model_id -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__model_id -#: model:ir.model.fields,help:odex_fleet.field_vehicle_infraction__model_id -msgid "Model of the vehicle" -msgstr "موديل المركبة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_search -msgid "Month" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__my_activity_date_deadline -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__my_activity_date_deadline -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__my_activity_date_deadline -msgid "My Activity Deadline" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_driver_department__name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_account_config__name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_type__name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__name -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__name -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__name -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_installment__name -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__name -#: model_terms:ir.ui.view,arch_db:odex_fleet.service_report_pdf -msgid "Name" -msgstr "الاسم" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__new_date -msgid "New End Date" -msgstr "تاريخ انتهاء الاستمارة الجديدة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__activity_date_deadline -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__activity_date_deadline -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__activity_date_deadline -msgid "Next Activity Deadline" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__activity_summary -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__activity_summary -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__activity_summary -msgid "Next Activity Summary" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__activity_type_id -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__activity_type_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__activity_type_id -msgid "Next Activity Type" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__next_request_date -msgid "Next Maintenance Date" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__next_odometer -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config__next_odometer -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config__odometer -msgid "Next Odometer" -msgstr "عداد المسافة القادم" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__next_request_date -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config__date -msgid "Next Request Date" -msgstr "تاريخ الصيانة القادم" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_service_line_config__date -msgid "Next Request Date Of Maintenance Request" -msgstr "تاريخ الصيانة القادم" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__notes -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -msgid "Notes" -msgstr "ملاحظات" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_company__car_license -msgid "Notify Before Car Licence" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_company__check -msgid "Notify Before Check" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_company__form -msgid "Notify Before Form" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service__number -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__number -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__number -msgid "Number" -msgstr "الكمية" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_needaction_counter -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_needaction_counter -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_needaction_counter -msgid "Number of Actions" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_has_error_counter -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_has_error_counter -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_has_error_counter -msgid "Number of errors" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__message_needaction_counter -#: model:ir.model.fields,help:odex_fleet.field_form_renew__message_needaction_counter -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__message_needaction_counter -msgid "Number of messages which requires an action" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__message_has_error_counter -#: model:ir.model.fields,help:odex_fleet.field_form_renew__message_has_error_counter -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__message_has_error_counter -msgid "Number of messages with delivery error" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__message_unread_counter -#: model:ir.model.fields,help:odex_fleet.field_form_renew__message_unread_counter -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__message_unread_counter -msgid "Number of unread messages" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__odometer -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__odometer_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__odometer_id -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_service_line_config__type__odometer -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "Odometer" -msgstr "عداد المسافات" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_fuel_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -msgid "Odometer Details" -msgstr "بيانات عداد المسافة" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/vehicle.py:0 -#, python-format -msgid "Odometer Should Be Greater Than 0" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__odometer -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__odometer -msgid "Odometer Value" -msgstr "قيمة عداد المسافة" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_cost__odometer -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_cost__odometer_id -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_log_fuel__odometer -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_log_fuel__odometer_id -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__odometer -msgid "Odometer measure of the vehicle at the moment of this log" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.actions.act_window,help:odex_fleet.fleet_vehicle_costs_action -msgid "" -"Odoo helps you managing the costs for your different\n" -" vehicles. Costs are created automatically from services,\n" -" contracts (fixed or recurring) and fuel logs." -msgstr "" - - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_account_config__type__form -msgid "Form" -msgstr "استمارة" - - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__offer -msgid "Offer Attachment" -msgstr "مرفق العرض" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -msgid "Oil" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__old_branch_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__old_branch_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__old_branch_id -msgid "Old Branch" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__old_vehicle_id -msgid "Old Vehicle" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "Operation" -msgstr "العملية" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_config_settings__operation -msgid "Operation Card" -msgstr "كارت العملية" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__operation_card_end -msgid "Operation Card End" -msgstr "تاريخ انتهاء العملية" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__operation_card_number -msgid "Operation Card Number" -msgstr "رقم كارت العملية" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_company__operation -msgid "Operation Notify Before" -msgstr "الاخطار قبل العملية" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_cost__cost_type__other -msgid "Other" -msgstr "اخرى" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__owner_id -msgid "Owner" -msgstr "المالك" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_insurance_installment__paid -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_maintenance__state__paid -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_request_maintenance_view_form -msgid "Paid" -msgstr "إنشاء فاتورة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__parent_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__parent_id -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_search -msgid "Parent" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_cost__parent_id -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_log_fuel__parent_id -msgid "Parent cost to this current cost" -msgstr "التكلفة الأصلية لهذه التكلفة الحالية" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__partner_id -msgid "Partner" -msgstr "العميل" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__penalty_cost -msgid "Penalty Cost" -msgstr "قيمة مخالفات التأخير" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -msgid "Percentage" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_delegation_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.maintains_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.renew_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.to_renew_report_pdf -msgid "Plate" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_maintenance__type__preventive -msgid "Preventive" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fuel_price__price -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_log_fuel_view_tree -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -msgid "Price" -msgstr "السعر" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__price_per_liter -msgid "Price Per Liter" -msgstr "قيمة اللتر" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_report_form -msgid "Print PDF" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__hr_employee__license_type__private -msgid "Private" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__project_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__project_id -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__vehicle_del_type__project -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_delegation__entity_type__project -msgid "Project" -msgstr "مشروع" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__hr_employee__license_type__public -msgid "Public" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__purchaser_id -msgid "Purchaser" -msgstr "السائق" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__quotation_ids -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__service_ids -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_request_maintenance_view_form -msgid "Quotations" -msgstr "الفواتير" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_fleet_wiz__reason -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_infraction_wiz__reason -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__reason -msgid "Reason" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__receive_date -msgid "Receive Date" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.delegation_receive_report_pdf_act -msgid "Receive Report" -msgstr "تقرير الاستلام" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_fuel_view_form -msgid "Refueling Details" -msgstr "بيانات تعبئة الوقود" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_maintenance__state__refused -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_form_renew_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_request_maintenance_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_delegation_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_fuel_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_form -msgid "Refuse" -msgstr "رفض" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_fuel__state__refused -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_services__status__refused -#: model:ir.model.fields.selection,name:odex_fleet.selection__form_renew__state__refused -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_delegation__state__refused -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_infraction__state__refused -msgid "Refused" -msgstr "مرفوض" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_request_maintenance_view_form -msgid "Reject" -msgstr "" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/infractions.py:0 -#: code:addons/odex_fleet/models/maintenance_request.py:0 -#: code:addons/odex_fleet/models/vehicle_deleation.py:0 -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__reason -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__reason -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__reason -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_delegation_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_form -#, python-format -msgid "Reject Reason" -msgstr "سبب الرفض" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_reject_reason_fleet_wiz -msgid "Reject Wiz" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__report_type__renew -msgid "Renew" -msgstr "تجديد" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_type__amount -msgid "Renew Amount" -msgstr "قيمة تجديد الاستمارة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__cost -msgid "Renew Cost" -msgstr "قيمة التجديد" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.renew_report_pdf_act -#: model:ir.ui.menu,name:odex_fleet.menu_fleet_reporting_renew -msgid "Renew Report" -msgstr "تقرير مركبة تم تجديد إستمارة" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_report_odex_fleet_fleet_branch_report_pdf -msgid "Report Branch" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_report_odex_fleet_all_branch_cost_report_pdf -msgid "Report Branch Cost" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_report_odex_fleet_car_consumption_cost_report_pdf -msgid "Report Consumption" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_report_odex_fleet_driver_delegation_report_pdf -msgid "Report Delegation" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_report_odex_fleet_driver_report_pdf -msgid "Report Driver" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_report_odex_fleet_service_report_pdf -msgid "Report Fleet Service" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_report_odex_fleet_invoice_report_pdf -msgid "Report Invoice" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_report_odex_fleet_maintains_report_pdf -msgid "Report Mainatains" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_report_odex_fleet_renew_report_pdf -msgid "Report Renew" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_report_odex_fleet_state_cost_report_pdf -msgid "Report State Cotst" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_report_odex_fleet_to_renew_report_pdf -msgid "Report To Renew" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__report_type -msgid "Report Type" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__request_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service__request_id -#: model:ir.model.fields,field_description:odex_fleet.field_reject_reason_fleet_wiz__request_id -msgid "Request" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__date -msgid "Request Date" -msgstr "تاريخ الطلب" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__user_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__user_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__user_id -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__user_id -msgid "Responsible" -msgstr "المسؤول" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__activity_user_id -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__activity_user_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__activity_user_id -msgid "Responsible User" -msgstr "المستخدم المسؤول" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_has_sms_error -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_has_sms_error -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_has_sms_error -msgid "SMS Delivery error" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.renew_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.to_renew_report_pdf -msgid "Serial" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__serial_number -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__serial_number -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__serial_number -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 -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__service_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__service_ids -#: model:ir.model.fields,field_description:odex_fleet.field_res_config_settings__service -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_account_config__type__service -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__report_type__service -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_request_maintenance_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.service_report_pdf -msgid "Service" -msgstr "الخدمة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_res_company__service -msgid "Service Notify Before" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__partner_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__partner_id -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__partner_id -msgid "Service Provider" -msgstr "مقدم الخدمة" - -#. module: odex_fleet -#: model:ir.ui.menu,name:odex_fleet.menu_fleet_reporting_car_service -msgid "Service Report" -msgstr " تكاليف خدمات " - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__service_type_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__cost_subtype_ids -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -msgid "Service Type" -msgstr "نوع الخدمة" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_cost__service_id -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_log_fuel__service_id -msgid "Service cost to this current cost" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__service_ids -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_cost__cost_type__services -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "Services" -msgstr "الخدمات" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -msgid "Services Details" -msgstr "بيانات الخدمة" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.services_purchase_req_act -msgid "Services Purchase Request" -msgstr "طلب أمر شراء" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_vehicle_log_services -msgid "Services for vehicles" -msgstr "الخدمات للمركبات" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__state -msgid "Stage" -msgstr "المرحلة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_delegation_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_delegation_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_form -msgid "Start" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__start_date -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__start_date -msgid "Start Date" -msgstr "تاريخ البداية" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/infractions.py:0 -#: code:addons/odex_fleet/models/vehicle_deleation.py:0 -#, python-format -msgid "Start Date must be less than or equal End Date " -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_account_config__state -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__state -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__state -#: model:ir.model.fields,field_description:odex_fleet.field_res_branch__state_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__state -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__state_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__state -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_delegation_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_delegation_vehicle_view_search -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_maintenance_vehicle_view_search -#: model_terms:ir.ui.view,arch_db:odex_fleet.maintains_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_view_search -msgid "State" -msgstr "الحالة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__states -msgid "State" -msgstr "المحافظة" - - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__report_type__state_cost -msgid "State Cost" -msgstr "" - -#. module: odex_fleet -#: model:ir.ui.menu,name:odex_fleet.menu_fleet_reporting_state_cost -msgid "State Expense " -msgstr "تكلفة المناطق " - -#. module: odex_fleet -#: model:ir.ui.menu,name:odex_fleet.res_states_menu -msgid "States" -msgstr "المناطق / المحافظات" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__status -msgid "Status" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__activity_state -#: model:ir.model.fields,help:odex_fleet.field_form_renew__activity_state -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__activity_state -msgid "" -"Status based on activities\n" -"Overdue: Due date is already passed\n" -"Today: Activity date is today\n" -"Planned: Future activities." -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.report,name:odex_fleet.to_renew_report_pdf_act -msgid "TO Renew Report" -msgstr "بيان تجديد استمارة مركبة" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_account_config__tax_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__tax_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__price_tax -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__tax_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__tax_id -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__tax_id -msgid "Tax" -msgstr "الضريبة" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__last_branch_id -msgid "The last Branch the vehicle was authorized for" -msgstr "اخر فرع تم تفويض المركبة له" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__last_department_id -msgid "The last Department the vehicle was authorized for" -msgstr "اخر قسم تم تفويض المركبة له" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__first_odometer -msgid "The odometer value at the moment the car is authorized" -msgstr "قيمة عداد المسافة لحظة تفويض السيارة" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__km_number -msgid "" -"The value of the difference between the odometer at the moment of delivery " -"and receipt" -msgstr "قيمة الفرق بين عداد المسافة لحظة التسليم والاستلام" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.invoice_report_pdf -msgid "To" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__report_type__to_maintains -msgid "To Maintenance" -msgstr "الى الصيانة" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_wiz__report_type__to_renew -msgid "To Renew" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__total1 -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation_service__total -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__total -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__total -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__total_price_tax -#: model:ir.model.fields.selection,name:odex_fleet.selection__fleet_vehicle_log_fuel__cal_type__total -#: model_terms:ir.ui.view,arch_db:odex_fleet.all_branch_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_branch_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_request_maintenance_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.renew_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.service_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.state_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.to_renew_report_pdf -msgid "Total" -msgstr "الاجمالى" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__total_cost -msgid "Total Cost" -msgstr "اجمالى التكلفة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_branch_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.state_cost_report_pdf -msgid "Total Expense" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.all_branch_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -msgid "Total Percentage" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__amount -msgid "Total Price" -msgstr "التكلفة الإجمالية" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__amount -msgid "Total Untax" -msgstr "المجموع بدون الضريبة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.state_cost_report_pdf -msgid "Total Vehicle Expense By state Report" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.all_branch_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_branch_report_pdf -msgid "Total Vehicle Expense For Branch Report" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.state_cost_report_pdf -msgid "Total Vehicle For State" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -msgid "Totals" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -msgid "Totel" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__transmission_id -#: model:ir.model.fields,field_description:odex_fleet.field_transmission_setting__transmission -msgid "Transmission" -msgstr "نوع ناقل الحركة " - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.transmission_setting_action -#: model:ir.ui.menu,name:odex_fleet.transmission_setting_menu -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_transmission_setting_view_tree -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_transmission_view_form -msgid "Transmission Type" -msgstr "نوع الناقل" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_transmission_setting -msgid "Trnsmission Setting" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_account_config__type -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_service_line_config__type -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__cost_subtype_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__cost_subtype_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_services__cost_subtype_id -#: model_terms:ir.ui.view,arch_db:odex_fleet.car_consumption_cost_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_delegation_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.driver_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_type_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_type_view_tree -#: model_terms:ir.ui.view,arch_db:odex_fleet.maintains_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.renew_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.service_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.to_renew_report_pdf -msgid "Type" -msgstr "النوع" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__activity_exception_decoration -#: model:ir.model.fields,help:odex_fleet.field_form_renew__activity_exception_decoration -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__activity_exception_decoration -msgid "Type of the exception activity on record." -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__vin_sn -#: model:ir.model.fields,help:odex_fleet.field_vehicle_infraction__vin_sn -msgid "Unique number written on the vehicle motor (VIN/SN number)" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__odometer_unit -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__odometer_unit -msgid "Unit" -msgstr "وحدة القياس" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fuel_price__uom_id -msgid "Unit of Measure" -msgstr "وحدة القياس" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_cost__odometer_unit -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_log_fuel__odometer_unit -msgid "Unit of the odometer " -msgstr "وحدة القياس العداد" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_unread -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_unread -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_unread -msgid "Unread Messages" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__message_unread_counter -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__message_unread_counter -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__message_unread_counter -msgid "Unread Messages Counter" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_vehicle -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__vehicle_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_cost__vehicle_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__vehicle_id -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__vehicle_ids -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__vehicle_id -#: model:ir.model.fields,field_description:odex_fleet.field_hr_employee__vehicle_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__vehicle_id -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_infraction__vehicle_id -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_delegation_vehicle_view_search -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_form_renew_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_search -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_delegation_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.hr_kanban_view -msgid "Vehicle" -msgstr "المركبة" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_fleet_vehicle_log_contract -msgid "Vehicle Contract" -msgstr "عقد المركبة " - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.fleet_vehicle_costs_action -#: model:ir.ui.menu,name:odex_fleet.fleet_vehicle_costs_menu -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_cost_view_tree -msgid "Vehicle Costs" -msgstr "تكلفة المركبات" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_search -msgid "Vehicle Costs by Month" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__vehicle_del_type -msgid "Vehicle Del Type" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_vehicle_delegation -msgid "Vehicle Deleagation" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_fuel_view_form -msgid "Vehicle Details" -msgstr "بيانات المركبة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.renew_report_pdf -msgid "Vehicle Form Renew Cost Report" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.to_renew_report_pdf -msgid "Vehicle Form To Renew Cost Report" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_form_renew_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_request_maintenance_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_delegation_view_form -#: model_terms:ir.ui.view,arch_db:odex_fleet.vehicle_infraction_view_form -msgid "Vehicle Information" -msgstr "بيانات المركبة" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_vehicle_infraction -msgid "Vehicle Infraction" -msgstr "مخالفات المركبات" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.vehicle_infraction_action -#: model:ir.ui.menu,name:odex_fleet.vehicles_infractions_menu -msgid "Vehicle Infractions" -msgstr "مخالفات المركبات" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.maintains_report_pdf -msgid "Vehicle Maintenance Report" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.maintains_report_pdf -msgid "Vehicle Need Maintenance Report" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.service_report_pdf -msgid "Vehicle Service By state Report" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.fleet_vehicle_amount_action -#: model:ir.ui.menu,name:odex_fleet.fleet_type_menu -msgid "Vehicle Type" -msgstr "نوع المركبة" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_cost__vehicle_id -#: model:ir.model.fields,help:odex_fleet.field_fleet_vehicle_log_fuel__vehicle_id -msgid "Vehicle concerned by this log" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_form -msgid "Vehicle costs" -msgstr "" - -#. module: odex_fleet -#: model:ir.actions.act_window,name:odex_fleet.fleet_vehicle_log_fuel_action -#: model:ir.ui.menu,name:odex_fleet.fleet_vehicle_log_fuel_menu -msgid "Vehicles Fuel Logs" -msgstr "سجلات وقود المركبات" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_cost_indicative_view_graph -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_cost_indicative_view_pivot -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_cost_view_graph -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_cost_view_pivot -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_search -msgid "Vehicles costs" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle_log_fuel__vendor_id -msgid "Vendor" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__website_message_ids -#: model:ir.model.fields,field_description:odex_fleet.field_form_renew__website_message_ids -#: model:ir.model.fields,field_description:odex_fleet.field_vehicle_delegation__website_message_ids -msgid "Website Messages" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_fleet_maintenance__website_message_ids -#: model:ir.model.fields,help:odex_fleet.field_form_renew__website_message_ids -#: model:ir.model.fields,help:odex_fleet.field_vehicle_delegation__website_message_ids -msgid "Website communication history" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_vehicle__location -msgid "Work Location" -msgstr "مكان ايقاف المركبة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_fuel_view_form -msgid "Write here any other information" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_fleet_vehicle_log_services_view_form -msgid "Write here any other information related to the service completed." -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_costs_view_search -msgid "Year" -msgstr "" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/maintenance_request.py:0 -#, python-format -msgid "You Can Not Approve More Than One Quotation" -msgstr "" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/maintenance_request.py:0 -#, python-format -msgid "You NEED To ADD And Approve Quotation Lines" -msgstr "" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/maintenance_request.py:0 -#, python-format -msgid "You Need Approve Quotation First" -msgstr "" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/vehicle_deleation.py:0 -#, python-format -msgid "You Need To Close Other Delegation Request for this Vehicle" -msgstr "" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/form_renew.py:0 -#: code:addons/odex_fleet/models/maintenance_request.py:0 -#: code:addons/odex_fleet/models/vehicle.py:0 -#: code:addons/odex_fleet/models/vehicle.py:0 -#, python-format -msgid "You Need To Configurate Account Details" -msgstr "" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/account_config.py:0 -#, python-format -msgid "You can not Have More than one Confirm record " -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,help:odex_fleet.field_form_renew__date -msgid "date of current maintenance request" -msgstr "تاريخ طلب الصيانة الحالي" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.fleet_vehicle_delegation_view_form -msgid "delegated entity" -msgstr "الجهة المفوض إليها" - -#. module: odex_fleet -#: model:ir.model.fields.selection,name:odex_fleet.selection__vehicle_delegation__delegation_type__driver -msgid "driver" -msgstr "السائق" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_driver_department -msgid "driver.department" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "e.g. Model S" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "e.g. PAE 326" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_insurance_companies -msgid "insurance.companies" -msgstr "" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/vehicle.py:0 -#, python-format -msgid "liter Should Be Greater Than 0" -msgstr "" - -#. module: odex_fleet -#: code:addons/odex_fleet/models/vehicle.py:0 -#, python-format -msgid "odometer should be more than current odometer" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_wiz__project_ids -msgid "projects" -msgstr "" - -#. module: odex_fleet -#: model:ir.model,name:odex_fleet.model_reject_reason_infraction_wiz -msgid "reject.reason.infraction.wiz" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "show the contract for this vehicle" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "show the odometer logs for this vehicle" -msgstr "" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.odex_view_fleet_vehicle_form -msgid "show the services logs for this vehicle" -msgstr "" - -#. module: odex_fleet -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_maintenance__state -#: model:ir.model.fields,field_description:odex_fleet.field_fleet_quotation__state -msgid "state" -msgstr "الحالة" - -#. module: odex_fleet -#: model_terms:ir.ui.view,arch_db:odex_fleet.renew_report_pdf -#: model_terms:ir.ui.view,arch_db:odex_fleet.to_renew_report_pdf -msgid "التاريخ :" -msgstr "" \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/models/__init__.py b/odex25_fleet/odex_fleet/models/__init__.py deleted file mode 100644 index f6402966b..000000000 --- a/odex25_fleet/odex_fleet/models/__init__.py +++ /dev/null @@ -1,11 +0,0 @@ -from . import driver -from . import vehicle -from . import vehicle_deleation -from . import maintenance_request -from . import res_config -from . import form_renew -from . import account_config -from . import insurance_companies -from . import infractions -from . import driver_departments -from . import fleet_service_type \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/models/account_config.py b/odex25_fleet/odex_fleet/models/account_config.py deleted file mode 100644 index 13ba82ef7..000000000 --- a/odex25_fleet/odex_fleet/models/account_config.py +++ /dev/null @@ -1,32 +0,0 @@ -from odoo import models, fields, api, _ -from odoo.exceptions import UserError, ValidationError -from datetime import datetime -from dateutil.relativedelta import relativedelta - - -class AccountConfigFleet(models.Model): - _name = 'fleet.account.config' - _description = 'Fleet Cost' - - name = fields.Char(string="Name") - state = fields.Selection(selection=[('draft', 'Draft'), - ('confirm', 'Confirm'), - ('close', 'Close') - ],default='draft') - type = fields.Selection(selection=[('fuel', 'Fuel'), - ('service', 'Service'), - ('form', 'Form'), - ('maintenance', 'Maintenance'), - ],) - account_id = fields.Many2one('account.account', string="Account") - tax_id = fields.Many2one('account.tax', string='Tax', ondelete='restrict') - - - def action_confirm(self): - rec = self.env['fleet.account.config'].sudo().search([('id','!=',self.id),('type','=',self.type),('state','=','confirm')]) - if rec: - raise ValidationError(_("You can not Have More than one Confirm record ")) - self.state = 'confirm' - - def action_close(self): - self.state = 'close' \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/models/driver.py b/odex25_fleet/odex_fleet/models/driver.py deleted file mode 100644 index 203e42be4..000000000 --- a/odex25_fleet/odex_fleet/models/driver.py +++ /dev/null @@ -1,52 +0,0 @@ -from odoo import models, fields, api, _ -from odoo.exceptions import UserError, ValidationError -from datetime import datetime -from dateutil.relativedelta import relativedelta - - -class HRCustom(models.Model): - _inherit = 'hr.employee' - - driver = fields.Boolean(string="Is Driver") - license_type = fields.Selection(selection=[('private', 'Private'), ('general', 'General'), ('public', 'Public')], - string="License Type") - license_number = fields.Char(string="License Number") - license_start = fields.Date(string="License Start") - license_end = fields.Date(string="License End") - vehicle_id = fields.Many2one('fleet.vehicle', string="Vehicle") - old_vehicle_id = fields.Many2one('fleet.vehicle', string="Old Vehicle") - delegation_start = fields.Date(string="Delegation Start Date") - delegation_end = fields.Date(string="Delegation End Date") - receive_date = fields.Date(string="Receive Date",readonly=True) - license_attache = fields.Binary(string="License Attachment") - employee_cars_count = fields.Integer(compute="_compute_employee_cars_count", string="Cars",groups="base.group_user") - - def _compute_employee_cars_count(self): - driver_ids = (self.mapped('user_id.partner_id') | self.sudo().mapped('address_home_id')).ids - fleet_data = self.env['fleet.vehicle.assignation.log'].read_group( - domain=[('driver_id', 'in', driver_ids)], fields=['vehicle_id:array_agg'], groupby=['driver_id']) - mapped_data = { - group['driver_id'][0]: len(set(group['vehicle_id'])) - for group in fleet_data - } - for employee in self: - drivers = employee.user_id.partner_id | employee.sudo().address_home_id - employee.employee_cars_count = sum(mapped_data.get(pid, 0) for pid in drivers.ids) - - @api.onchange('delegation_start', 'receive_date') - def _onchange_delegation_start(self): - for r in self: - r.receive_date = r.delegation_start - - @api.model - def driver_expired_cron(self): - date = datetime.now().date() - license = self.company_id.license - if license > 0: - date = date + relativedelta(days=license) - fleet = self.env['hr.employee'].sudo().search([('driver','=',True),('license_end', '<=', str(date))]) - for f in fleet: - template = self.env.ref('odex_fleet.driver_expiration_email_template', False) - template.send_mail(f.id) - - diff --git a/odex25_fleet/odex_fleet/models/driver_departments.py b/odex25_fleet/odex_fleet/models/driver_departments.py deleted file mode 100644 index 255bfb684..000000000 --- a/odex25_fleet/odex_fleet/models/driver_departments.py +++ /dev/null @@ -1,10 +0,0 @@ -from odoo import models, fields, api, _ - - -class DriverDepartment(models.Model): - _name = 'driver.department' - # _rec_name = 'driver_department_id' - - name = fields.Char('Name' , related = "department_id.name") - department_id = fields.Many2one('hr.department', string='Department') - branch_id = fields.Many2one('res.branch', string='Branch') \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/models/fleet_service_type.py b/odex25_fleet/odex_fleet/models/fleet_service_type.py deleted file mode 100644 index 173911711..000000000 --- a/odex25_fleet/odex_fleet/models/fleet_service_type.py +++ /dev/null @@ -1,14 +0,0 @@ -from odoo import models, fields, api, _ -from odoo.api import returns - - -class FleetServiceType(models.Model): - _inherit = 'fleet.service.type' - _description = 'Fleet Service Type' - - category = fields.Selection(selection='get_new_category_selection', string='Category', required=True, - help='Choose whether the service refer to contracts, vehicle services or both') - - def get_new_category_selection(self): - selection = [(_('service'), _('Service'))] - return selection diff --git a/odex25_fleet/odex_fleet/models/form_renew.py b/odex25_fleet/odex_fleet/models/form_renew.py deleted file mode 100644 index 55aee5c21..000000000 --- a/odex25_fleet/odex_fleet/models/form_renew.py +++ /dev/null @@ -1,115 +0,0 @@ -from odoo import models, fields, api, _ -from odoo.exceptions import UserError, ValidationError -from datetime import datetime -from dateutil.relativedelta import relativedelta - - -class FormRenew(models.Model): - _name = 'form.renew' - _description = 'Forn Renew' - _inherit = ['mail.thread', 'mail.activity.mixin'] - - @api.model - def default_get(self, default_fields): - res = super(FormRenew, self).default_get(default_fields) - rec = self.env['fleet.account.config'].sudo().search([('type', '=', 'form'), ('state', '=', 'confirm')], - limit=1) - if rec and self.env.user.has_group("odex25_fleet_account_custom.integration_with_account"): - res['account_id'] = rec.account_id.id - res['tax_id'] = rec.tax_id.id - elif self.env.user.has_group("odex25_fleet_account_custom.disable_integration_with_account"): - pass - else: - raise ValidationError(_("You Need To Configurate Account Details")) - return res - - name = fields.Char(string="Name") - branch_id = fields.Many2one('res.branch', string="Branch") - - state = fields.Selection(selection=[('draft', 'Draft'), - ('confirm', 'Confirm'), - ('approve', 'Approved'), - ('refused', 'Refused'), - ('cancel', 'Cancel'), - ], default='draft') - company_id = fields.Many2one('res.company', string='Company', readonly=True, - default=lambda self: self.env.user.company_id) - - vehicle_id = fields.Many2one('fleet.vehicle', string="Vehicle", ) - cost = fields.Float(string="Renew Cost", ) - date = fields.Date(string="Request Date", default=fields.Date.context_today, - help="date of current maintenance request") - user_id = fields.Many2one('res.users', string='Responsible', required=False, default=lambda self: self.env.user) - end_date = fields.Date(string="End Date") - new_date = fields.Date(string="New End Date") - branch_id = fields.Many2one('hr.department', string="Branch") - account_id = fields.Many2one('account.account', string="Account") - invoice_id = fields.Many2one('account.move', string="Invoice", copy=False) - partner_id = fields.Many2one('res.partner', string="Service Provider") - tax_id = fields.Many2one('account.tax', string='Tax', ondelete='restrict') - penalty_cost = fields.Float() - edit_access = fields.Boolean(compute="get_access", ) - - def get_access(self): - for rec in self: - rec.edit_access = False - if rec.state == 'confirm' and self.env.user.has_group('odex_fleet.fleet_group_account'): - rec.edit_access = True - - @api.onchange('vehicle_id') - def get_fleet_data(self): - if self.vehicle_id: - self.branch_id = self.vehicle_id.branch_id.id - self.cost = self.vehicle_id.fleet_type_id.amount - self.end_date = self.vehicle_id.form_end - - def create_invoice(self): - invoice = self.env['account.move'].sudo().create({ - 'partner_id': self.partner_id.id, - 'currency_id': self.env.user.company_id.currency_id.id, - # 'account_id': self.partner_id.property_account_payable_id.id, - 'branch_id': self.vehicle_id.branch_id.id, - 'move_type': 'in_invoice', - 'invoice_date': datetime.now().today(), - 'invoice_line_ids': [(0, 0, { - 'quantity': 1, - 'price_unit': self.cost + self.penalty_cost, - # 'move_id': invoice.id, - 'name': 'Fleet Form Renew Cost', - 'account_id': self.account_id.id, - 'tax_ids': [(6, 0, [self.tax_id.id])], - })] - }) - # self.env['account.move.line'].with_context(check_move_validity=False).sudo().create({ - # 'quantity': 1, - # 'price_unit': self.cost+self.penalty_cost, - # 'move_id': invoice.id, - # 'name': 'Fleet Form Renew Cost', - # 'account_id': self.account_id.id, - # 'tax_ids': [(6, 0, [self.tax_id.id])], - # - # }) - self.invoice_id = invoice.id - # invoice.sudo().action_invoice_open() - - def set_to_draft(self): - for rec in self: - rec.state = 'draft' - - def action_confirm(self): - for rec in self: - rec.state = 'confirm' - - def action_approve(self): - for rec in self: - rec.vehicle_id.form_end = self.new_date - rec.state = 'approve' - rec.create_invoice() - - def action_refuse(self): - for rec in self: - rec.state = 'refused' - - def action_cancel(self): - for rec in self: - rec.state = 'cancel' diff --git a/odex25_fleet/odex_fleet/models/infractions.py b/odex25_fleet/odex_fleet/models/infractions.py deleted file mode 100644 index 9be37807a..000000000 --- a/odex25_fleet/odex_fleet/models/infractions.py +++ /dev/null @@ -1,109 +0,0 @@ -from odoo import models, fields, api, _ -from odoo.exceptions import UserError, ValidationError - - - -class Infractions(models.Model): - _name = 'vehicle.infraction' - _description = 'Vehicle Infraction' - - vehicle_id = fields.Many2one('fleet.vehicle', string="Vehicle", ) - branch_id = fields.Many2one('res.branch', string="Branch") - old_branch_id = fields.Many2one('res.branch', string="Old Branch") - start_date = fields.Date(string="Start Date") - end_date = fields.Date(string="End Date") - vin_sn = fields.Char('Chassis Number', related='vehicle_id.vin_sn', store=True, - copy=False) - model_id = fields.Many2one('fleet.vehicle.model', 'Model', related='vehicle_id.model_id', store=True, ) - license_plate = fields.Char(required=True, related='vehicle_id.license_plate', store=True) - serial_number = fields.Char(related='vehicle_id.serial_number', string="Serial Number") - fleet_type_id = fields.Many2one('fleet.type', string="Fleet Type", related='vehicle_id.fleet_type_id', store=True, ) - employee_id = fields.Many2one('hr.employee', string="Driver", - domain="[('driver', '=', True),('vehicle_id', '=', False)]") - license_number = fields.Char(string="License Number", related='employee_id.license_number', store=True) - license_end = fields.Date(string="License End") - reason = fields.Text() - infraction_type = fields.Selection(selection=[('accident', 'Accident'), - ('infraction', 'Infraction'),],string="Infraction Type") - infraction_number = fields.Char(string="Infraction Number") - infraction_date = fields.Date(string="Infraction Date") - infraction_cost = fields.Integer(string="Infraction Cost") - cost_percentage = fields.Integer(string="Cost Percentage%") - discount_amount = fields.Integer(string="Discount Amount", compute = "get_discount_amount", store = True) - benefits_discounts = fields.Many2one(comodel_name='hr.salary.rule', string='Benefits/Discounts') - state = fields.Selection(selection=[('draft', 'Draft'), - ('confirm', 'Confirm'), - ('approve', 'Approved'), - ('in_progress', 'In Progress'), - ('refused', 'Refused'), - ('cancel', 'Cancel')], default='draft') - advantage_id = fields.Many2one(comodel_name='contract.advantage', string='Deduction Employee') - - @api.depends('infraction_cost', 'cost_percentage') - def get_discount_amount(self): - for rec in self: - if rec.cost_percentage > 0 : - rec.discount_amount = rec.infraction_cost * rec.cost_percentage - else : - rec.discount_amount = rec.infraction_cost - # print(rec.discount_amount) - - @api.onchange('start_date', 'end_date') - @api.constrains('start_date', 'end_date') - def check_data(self): - if self.start_date and self.end_date and self.start_date > self.end_date: - raise UserError(_('Start Date must be less than or equal End Date ')) - - @api.onchange('vehicle_id') - def get_fleet_data(self): - if self.vehicle_id: - self.old_branch_id = self.vehicle_id.branch_id.id - self.employee_id = self.vehicle_id.employee_id - self.license_number = self.vehicle_id.employee_id.license_number - self.license_end = self.vehicle_id.employee_id.license_end - - @api.onchange('employee_id') - def get_emp_data(self): - self.license_end = self.employee_id.license_end - - def action_confirm(self): - for rec in self: - rec.state = 'confirm' - - def action_approve(self): - for rec in self: - rec.state = 'approve' - - def action_inprogress(self): - for rec in self: - rec.state = 'in_progress' - contract_move_id = rec.env['contract.advantage'].create({ - 'benefits_discounts': rec.benefits_discounts.id, - 'date_from': rec.start_date, - 'date_to': rec.end_date, - 'type': 'customize', - 'amount' : rec.discount_amount, - 'employee_id': rec.employee_id.id, - 'contract_advantage_id': rec.employee_id.contract_id.id, - 'penalty_id': True, - 'out_rule': True, - 'state': 'draft', - }) - rec.advantage_id = contract_move_id.id - - def action_refuse(self): - form_view_id = self.env.ref("odex_fleet.wizard_reject_reason_infraction_form").id - return { - 'name': _("Reject Reason"), - - 'view_mode': 'form', - 'res_model': 'reject.reason.infraction.wiz', - 'views': [(form_view_id, 'form')], - 'type': 'ir.actions.act_window', - 'target': 'new', - 'context': {'default_infraction_id': self.id}, - } - - def action_cancel(self): - for rec in self: - rec.sudo().state = 'cancel' \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/models/insurance_companies.py b/odex25_fleet/odex_fleet/models/insurance_companies.py deleted file mode 100644 index 6edda61f8..000000000 --- a/odex25_fleet/odex_fleet/models/insurance_companies.py +++ /dev/null @@ -1,7 +0,0 @@ -from odoo import models, fields, api, _ - - -class InsuranceCompanies(models.Model): - _name = 'insurance.companies' - - name = fields.Char(string='Company Name', required=True) \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/models/maintenance_request.py b/odex25_fleet/odex_fleet/models/maintenance_request.py deleted file mode 100644 index bbf979f7f..000000000 --- a/odex25_fleet/odex_fleet/models/maintenance_request.py +++ /dev/null @@ -1,205 +0,0 @@ -from odoo import models, fields, api, _ -from odoo.exceptions import UserError, ValidationError -from datetime import datetime - - -class FleetMaintenance(models.Model): - _name = 'fleet.maintenance' - _description = 'Fleet Maintenance' - _inherit = ['mail.thread', 'mail.activity.mixin'] - - @api.model - def default_get(self, default_fields): - res = super(FleetMaintenance, self).default_get(default_fields) - rec = self.env['fleet.account.config'].sudo().search([('type', '=', 'maintenance'), ('state', '=', 'confirm')], - limit=1) - if rec and self.env.user.has_group("odex25_fleet_account_custom.integration_with_account"): - res['account_id'] = rec.account_id.id - res['tax_id'] = rec.tax_id.id - elif self.env.user.has_group("odex25_fleet_account_custom.disable_integration_with_account"): - pass - 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", compute='get_old_odometer', store=True) - odometer = fields.Float(string="Odometer") - type = fields.Selection([('corrective', 'Corrective'), ('preventive', 'Preventive')], string='Maintenance Type', - default="corrective") - state = fields.Selection([('draft', 'Draft'), - ('confirm', 'Confirm'), - ('approve', 'Approve'), - ('paid', 'Paid'), - ('refused', 'Refuse'), - ('cancel', 'Cancel'), - ], string='state', default="draft") - vehicle_id = fields.Many2one('fleet.vehicle', string="Vehicle") - license_plate = fields.Char(required=True, related='vehicle_id.license_plate') - employee_id = fields.Many2one('hr.employee', string="Driver") - quotation_ids = fields.One2many('fleet.quotation', 'request_id', string="Quotations") - service_ids = fields.One2many('fleet.quotation.service', 'request_id', string="Quotations") - branch_id = fields.Many2one('hr.department', string="Branch") - # log_id = fields.Many2one('fleet.vehicle.log.services', string="Service Log") - total_cost = fields.Float(string="Total Cost", compute="get_cost", store=True) - total1 = fields.Float(string="Total", compute="get_total", store=True) - account_id = fields.Many2one('account.account', string="Account") - invoice_id = fields.Many2one('account.move', string="Invoice", copy=False) - line_id = fields.Many2one('fleet.service.line.config', string="Line", copy=False) - reason = fields.Text(string="Reject Reason", tracking=True, ) - tax_id = fields.Many2one('account.tax', string='Tax', ondelete='restrict') - 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 - if rec.state == 'approve' and self.env.user.has_group('odex_fleet.fleet_group_account'): - rec.edit_access = True - - @api.depends('service_ids') - def get_total(self): - for rec in self: - if rec.service_ids: - 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') - if not partner: - raise ValidationError(_("You NEED To ADD And Approve Quotation Lines")) - amount = sum(self.quotation_ids.filtered(lambda r: r.approve == True).mapped('cost')) - invoice = self.env['account.move'].sudo().create({ - 'partner_id': partner[0].id, - 'currency_id': self.env.user.company_id.currency_id.id, - # 'name': 'Fleet Service Cost Invoice ', - # 'account_id': partner[0].property_account_payable_id.id, - 'branch_id': self.vehicle_id.branch_id.id, - 'move_type': 'in_invoice', - 'invoice_date': datetime.now().today(), - 'invoice_line_ids': [(0, 0, { - 'quantity': 1, - 'price_unit': amount, - # 'move_id': invoice.id, - 'name': 'Maintenance Service Cost', - 'account_id': self.account_id.id, - 'tax_ids': [(6, 0, [self.tax_id.id])], - })] - }) - # self.env['account.move.line'].with_context(check_move_validity=False).sudo().create({ - # 'quantity': 1, - # 'price_unit': amount, - # 'move_id': invoice.id, - # 'name': 'Maintenance Service Cost', - # 'account_id': self.account_id.id, - # 'tax_ids': [(6, 0, [self.tax_id.id])], - # - # }) - self.invoice_id = invoice.id - # invoice.sudo().action_invoice_open() - - @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')) - - @api.onchange('vehicle_id') - def get_vehcile_date(self): - if self.vehicle_id: - self.odometer = self.vehicle_id.odometer - self.employee_id = self.vehicle_id.employee_id.id - self.branch_id = self.vehicle_id.branch_id.id - - 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: - rec.state = 'approve' - rec.vehicle_id.next_request_date = rec.next_request_date - - def action_refuse(self): - for rec in self: - rec.state = 'refused' - - def set_to_draft(self): - for rec in self: - rec.state = 'draft' - - def action_paid(self): - for rec in self: - rec.create_invoice() - rec.state = 'paid' - - def action_cancel(self): - 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") - approve = fields.Boolean() - request_id = fields.Many2one('fleet.maintenance') - reason = fields.Text(string="Reject Reason") - state = fields.Selection(related='request_id.state', store=True) - edit_access = fields.Boolean(compute="get_access", ) - - def get_access(self): - for rec in self: - rec.edit_access = False - if rec.state == 'approve' and self.env.user.has_group('odex_fleet.fleet_group_account'): - rec.edit_access = True - - def action_approve(self): - rec = self.request_id.quotation_ids.filtered(lambda r: r.approve) - print("YYYYYYYYYYYY", rec) - if rec: - raise ValidationError(_("You Can Not Approve More Than One Quotation")) - self.approve = True - self.reason = False - - def action_reject(self): - 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')], - 'type': 'ir.actions.act_window', - 'target': 'new', - 'context': {'default_request_id': self.id}, - } - - -class FleetQuotationService(models.Model): - _name = 'fleet.quotation.service' - _description = 'Fleet Service' - - qty = fields.Float(string="Cost") - 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") - request_id = fields.Many2one('fleet.maintenance') - - @api.onchange('number', 'qty') - def _compute_total(self): - for r in self: - r.total = r.number * r.qty diff --git a/odex25_fleet/odex_fleet/models/res_config.py b/odex25_fleet/odex_fleet/models/res_config.py deleted file mode 100644 index c57c5fa76..000000000 --- a/odex25_fleet/odex_fleet/models/res_config.py +++ /dev/null @@ -1,31 +0,0 @@ -from odoo import fields, models - - -class ResCompany(models.Model): - _inherit = 'res.company' - - - license = fields.Float(string="License") - car_license = fields.Float( string="Notify Before Car Licence") - delegation = fields.Float(string="Delegation") - form = fields.Float(string="Notify Before Form") - check = fields.Float(string="Notify Before Check") - insurance = fields.Float(string="Insurance Notify Before") - operation = fields.Float(string="Operation Notify Before") - installment = fields.Float(string="Installment Notify Before") - service = fields.Float( string="Service Notify Before") - - - -class ResConfig(models.TransientModel): - _inherit = 'res.config.settings' - - license = fields.Float(related="company_id.license", string="License") - car_license = fields.Float(related="company_id.car_license", string="Car Licence") - delegation = fields.Float(related="company_id.delegation", string="Delegation") - form = fields.Float(related="company_id.form", string=" Form") - check = fields.Float(related="company_id.check", string="Check") - insurance = fields.Float(related="company_id.insurance", string="Insurance") - operation = fields.Float(related="company_id.operation", string="Operation Card") - installment = fields.Float(related="company_id.installment", string="Installment ") - service = fields.Float(related="company_id.service", string="Service") diff --git a/odex25_fleet/odex_fleet/models/vehicle.py b/odex25_fleet/odex_fleet/models/vehicle.py deleted file mode 100644 index e48c4c4b8..000000000 --- a/odex25_fleet/odex_fleet/models/vehicle.py +++ /dev/null @@ -1,682 +0,0 @@ -from odoo import models, fields, api, _ -from datetime import datetime -from odoo.exceptions import UserError, ValidationError -from datetime import timedelta -from dateutil.relativedelta import relativedelta -import math - - -class FleetBranch(models.Model): - _inherit = 'res.branch' - - state_id = fields.Many2one('res.country.state', string="State", ) - - -class Partner(models.Model): - _inherit = 'res.partner' - - car_owner = fields.Boolean(string="Car Owner", ) - - -class FleetVehicle(models.Model): - _inherit = 'fleet.vehicle' - - owner_id = fields.Many2one('res.partner', string="Owner") - insurance_companies_id = fields.Many2one('insurance.companies', string="Insurance Companies") - employee_id = fields.Many2one('hr.employee', string="Driver") - driver_id = fields.Many2one(related='employee_id.user_id.partner_id', store=True, string="Driver") - branch_id = fields.Many2one('hr.department', string="Branch", ) - states = fields.Many2one('res.country.state', string="State", ) - old_branch_id = fields.Many2one('res.branch', string="Old Branch", ) - license_end = fields.Date(string="License End") - check_end = fields.Date(string="Check End Date") - form_end = fields.Date(string="Form End Date") - serial_number = fields.Char(string="Serial Number") - computer_number = fields.Char(string="Computer Number") - operation_card_number = fields.Char(string="Operation Card Number") - operation_card_end = fields.Date(string="Operation Card End") - car_weight = fields.Float(string="Car Weight") - insurance_number = fields.Char(string="Insurance Number") - insurance_start_date = fields.Date(string="Insurance Start Date") - insurance_end_date = fields.Date(string="Insurance End Date") - insurance_attachment = fields.Binary(string="Insurance Docs") - installment_number = fields.Char(string="Installment Number") - fuel_consumption = fields.Float(string="Fuel consumption") - installment_ids = fields.One2many('insurance.installment', 'fleet_id', string="Installment") - service_ids = fields.One2many('fleet.service.line.config', 'fleet_id', string="Services") - next_request_date = fields.Date(string="Next Maintenance Date") - fuel_type = fields.Many2one('fuel.price', 'Fuel Type', help='Fuel Used by the vehicle') - model_id = fields.Many2one('fleet.vehicle.model', string="Model Type", required=True, help='Model of the vehicle') - location = fields.Char(string="Work Location", help='Location of the vehicle (garage, ...)') - car_category = fields.Many2one('car.category', 'Car Category') - # man_company = fields.Many2one('manufacture.company', 'Manufacture Company') - man_company = fields.Many2one(related='model_id.man_company_id') - fleet_type_id = fields.Many2one(related='model_id.fleet_type_id', string="Fleet Type", ) - form_renew_cost = fields.Float(related='model_id.fleet_type_id.amount', string="Form Renew Cost") - transmission_id = fields.Many2one('transmission.setting', string="Transmission") - insurance_cost = fields.Float(string="Insurance Cost", compute="get_insurance_cost", store=True, readonly=False) - department_id = fields.Many2one('hr.department', string="Department", compute="get_department_id", store=True) - project_id = fields.Many2one('project.project', string='Project') - - @api.depends('employee_id') - def get_department_id(self): - for rec in self: - if rec.employee_id: - rec.department_id = rec.employee_id.department_id - - @api.depends('installment_ids') - def get_insurance_cost(self): - total = 0 - for rec in self.installment_ids: - total += rec.amount - self.insurance_cost = total - - @api.model - def fleet_expired_cron(self): - date = datetime.now().date() - operation = self.company_id.operation - insurance = self.company_id.insurance - car_license = self.env.user.company_id.car_license - # delegation = self.company_id.delegation - form = self.company_id.form - check = self.company_id.check - installment = self.company_id.installment - if car_license > 0: - date = date + relativedelta(days=car_license) - fleet = self.env['fleet.vehicle'].sudo().search([('license_end', '<=', str(date))]) - for f in fleet: - template = self.env.ref('odex_fleet.car_expiration_email_template', False) - template.send_mail(f.id) - if insurance > 0: - date = date + relativedelta(days=+int(insurance)) - fleet = self.env['fleet.vehicle'].sudo().search([('insurance_end_date', '>=', str(date))]) - for f in fleet: - template = self.env.ref('odex_fleet.insurance_expiration_email_template', False) - template.send_mail(f.id) - - if form > 0: - date = date + relativedelta(days=+int(form)) - fleet = self.env['fleet.vehicle'].sudo().search([('form_end', '>=', str(date))]) - for f in fleet: - template = self.env.ref('odex_fleet.form_expiration_email_template', False) - template.send_mail(f.id) - if check > 0: - date = date + relativedelta(days=+int(check)) - fleet = self.env['fleet.vehicle'].sudo().search([('check_end', '>=', str(date))]) - for f in fleet: - template = self.env.ref('odex_fleet.check_expiration_email_template', False) - template.send_mail(f.id) - if operation > 0: - date = date + relativedelta(days=+int(operation)) - fleet = self.env['fleet.vehicle'].sudo().search([('operation_card_end', '>=', str(date))]) - for f in fleet: - template = self.env.ref('odex_fleet.operation_expiration_email_template', False) - template.send_mail(f.id) - if installment > 0: - date = date + relativedelta(days=car_license) - fleet = self.env['insurance.installment'].sudo().search([('date', '<=', str(date))]) - for f in fleet: - template = self.env.ref('odex_fleet.installment_expiration_email_template', False) - template.send_mail(f.id) - - @api.onchange('insurance_start_date', 'insurance_end_date') - @api.constrains('insurance_start_date', 'insurance_end_date') - def check_data(self): - if self.insurance_start_date and self.insurance_end_date and self.insurance_start_date > self.insurance_end_date: - raise UserError(_('Insurance Start Date must be less than or equal Insurance End Date ')) - - -class FleetType(models.Model): - _name = 'fleet.type' - _description = 'Fleet Type' - - name = fields.Char(string="Name") - amount = fields.Float(string="Renew Amount") - - -class FuelPrice(models.Model): - _name = 'fuel.price' - _description = 'Fuel Price' - _rec_name = 'fuel_type' - - fuel_type = fields.Many2one('product.product', string='Fuel Type', help='Fuel Used by the vehicle') - price = fields.Float(string="Price") - uom_id = fields.Many2one(related='fuel_type.uom_id', string='Unit of Measure', readonly=True) - - -class CarCtegory(models.Model): - _name = 'car.category' - _description = 'Car Category' - _rec_name = 'car_category' - - car_category = fields.Char('Car Category') - - -class FleetVehicleModelBrand(models.Model): - _inherit = 'fleet.vehicle.model.brand' - man_company_id = fields.Many2one('manufacture.company') - - -class FleetVehicleModel(models.Model): - _inherit = 'fleet.vehicle.model' - - man_company_id = fields.Many2one(related='brand_id.man_company_id') - fleet_type_id = fields.Many2one('fleet.type', string="Fleet Type") - - -class ManufactureCompany(models.Model): - _name = 'manufacture.company' - _description = 'Manufacture Company' - _rec_name = 'man_company' - - man_company = fields.Char('Manufacture Company') - brand_ids = fields.Many2many('fleet.vehicle.model.brand') - - -class TransmissionType(models.Model): - _name = 'transmission.setting' - _description = 'Trnsmission Setting' - _rec_name = 'transmission' - - transmission = fields.Char('Transmission') - - -class InsuranceInstallment(models.Model): - _name = 'insurance.installment' - _description = 'Insurance Installment' - - name = fields.Char(string="Name") - date = fields.Date(string="Date") - amount = fields.Float(string="Amount") - paid = fields.Date(string="Paid") - fleet_id = fields.Many2one('fleet.vehicle', string="Fleet") - - -# class FleetVehicleCost(models.Model): -# _inherit = 'fleet.vehicle.cost' - - -# branch_id = fields.Many2one('res.branch', string="Branch", default=lambda self: self.env.user.branch_id) -# number = fields.Float(string="Number") -# total = fields.Float(string="Total", compute='_compute_total',readonly=True) - -# @api.onchange('number','amount') -# def _compute_total(self): -# for r in self: -# r.total = r.number * r.amount - - -# @api.onchange('vehicle_id') -# def get_branch(self): -# if self.vehicle_id: -# self.branch_id = self.vehicle_id.branch_id.id if self.vehicle_id.branch_id else False - -class FleetVehicleCost(models.Model): - _name = 'fleet.vehicle.cost' - _description = 'Cost related to a vehicle' - _order = 'date desc, vehicle_id asc' - - name = fields.Char(related='vehicle_id.name', string='Name', store=True) - vehicle_id = fields.Many2one('fleet.vehicle', 'Vehicle', help='Vehicle concerned by this log') - cost_subtype_id = fields.Many2one('fleet.service.type', 'Type', help='Cost type purchased with this cost') - amount = fields.Float('Total Price') - cost_type = fields.Selection([ - ('contract', 'Contract'), - ('services', 'Services'), - ('fuel', 'Fuel'), - ('other', 'Other') - ], 'Category of the cost', default="other", help='For internal purpose only', required=True) - parent_id = fields.Many2one('fleet.vehicle.cost', 'Parent', help='Parent cost to this current cost') - service_id = fields.Many2one('fleet.vehicle.log.services', 'Service', help='Service cost to this current cost') - cost_ids = fields.One2many('fleet.vehicle.cost', 'parent_id', 'Included Services', copy=True) - odometer_id = fields.Many2one('fleet.vehicle.odometer', 'Odometer', - help='Odometer measure of the vehicle at the moment of this log') - odometer = fields.Float(compute="_get_odometer", inverse='_set_odometer', string='Odometer Value', - help='Odometer measure of the vehicle at the moment of this log') - odometer_unit = fields.Selection(related='vehicle_id.odometer_unit', string="Unit", readonly=True) - date = fields.Date(help='Date when the cost has been executed') - contract_id = fields.Many2one('fleet.vehicle.log.contract', 'Contract', help='Contract attached to this cost') - auto_generated = fields.Boolean('Automatically Generated', readonly=True) - description = fields.Char("Cost Description") - branch_id = fields.Many2one('hr.department', string="Branch", default=lambda self: self.env.user.branch_id) - number = fields.Float(string="Number") - total = fields.Float(string="Total", compute='_compute_total', readonly=True) - - @api.onchange('number', 'amount') - def _compute_total(self): - for r in self: - r.total = r.number * r.amount - - @api.onchange('vehicle_id') - def get_branch(self): - if self.vehicle_id: - self.branch_id = self.vehicle_id.branch_id.id if self.vehicle_id.branch_id else False - - def _get_odometer(self): - for record in self: - if record.odometer_id: - record.odometer = record.odometer_id.value - - def _set_odometer(self): - for record in self: - if not record.odometer: - raise UserError(_('Emptying the odometer value of a vehicle is not allowed.')) - odometer = self.env['fleet.vehicle.odometer'].create({ - 'value': record.odometer, - 'date': record.date or fields.Date.context_today(record), - 'vehicle_id': record.vehicle_id.id - }) - self.odometer_id = odometer - - @api.model - def create(self, data): - # make sure that the data are consistent with values of parent and contract records given - if 'parent_id' in data and data['parent_id']: - parent = self.browse(data['parent_id']) - data['vehicle_id'] = parent.vehicle_id.id - data['date'] = parent.date - data['cost_type'] = parent.cost_type - if 'contract_id' in data and data['contract_id']: - contract = self.env['fleet.vehicle.log.contract'].browse(data['contract_id']) - data['vehicle_id'] = contract.vehicle_id.id - data['cost_subtype_id'] = contract.cost_subtype_id.id - data['cost_type'] = contract.cost_type - if 'odometer' in data and not data['odometer']: - # if received value for odometer is 0, then remove it from the - # data as it would result to the creation of a - # odometer log with 0, which is to be avoided - del data['odometer'] - return super(FleetVehicleCost, self).create(data) - - -class FleetVehicleLogServices(models.Model): - _inherit = 'fleet.vehicle.log.services' - - @api.model - def default_get(self, default_fields): - res = super(FleetVehicleLogServices, self).default_get(default_fields) - rec = self.env['fleet.account.config'].sudo().search([('type', '=', 'service'), ('state', '=', 'confirm')], - limit=1) - if rec and self.env.user.has_group("odex25_fleet_account_custom.integration_with_account"): - res['account_id'] = rec.account_id.id - res['tax_id'] = rec.tax_id.id - elif self.env.user.has_group("odex25_fleet_account_custom.disable_integration_with_account"): - pass - else: - raise ValidationError(_("You Need To Configurate Account Details")) - return res - - branch_id = fields.Many2one('hr.department', string="Branch") - account_id = fields.Many2one('account.account', string="Account") - tax_id = fields.Many2one('account.tax', string='Tax', ondelete='restrict') - invoice_id = fields.Many2one('account.move', string="Invoice", copy=False) - partner_id = fields.Many2one('res.partner', string="Service Provider", required=1) - request_id = fields.Many2one('fleet.maintenance', string="Maintenance Request") - state = fields.Selection([ - ('draft', 'Draft'), - ('confirm', 'Confirm'), - ('approve', 'Approved'), - ('invoiced', 'Invoiced'), - ('refused', 'Refused'), - ('cancel', 'Cancel'), - - ], default='draft', related="status") - - status = fields.Selection([('draft', 'Draft'), - ('confirm', 'Confirm'), - ('approve', 'Approved'), - ('invoiced', 'Invoiced'), - ('refused', 'Refused'), - ('cancel', 'Cancel'), - ], default='draft') - edit_access = fields.Boolean(compute="get_access", ) - user_id = fields.Many2one('res.users', string='Responsible', required=False, default=lambda self: self.env.user) - cost_subtype_id = fields.Many2one('fleet.service.type', 'Type', help='Cost type purchased with this cost') - cost_ids = fields.One2many('fleet.vehicle.cost', 'service_id', 'Included Services', copy=True) - employee_id = fields.Many2one('hr.employee', string="Driver") - service_type_id = fields.Many2one( - 'fleet.service.type', 'Service Type', required=False, - default=lambda self: self.env.ref('fleet.type_service_service_8', raise_if_not_found=False), - ) - - def copy(self, default=None): - default = dict(default or {}) - default.update({ - 'status': 'draft', - }) - return super(FleetVehicleLogServices, self).copy(default) - - @api.onchange('odometer') - def onchange_odometer(self): - for rec in self: - if rec.odometer < rec.vehicle_id.odometer: - raise ValidationError(_("odometer should be more than current odometer")) - - def get_access(self): - for rec in self: - rec.edit_access = False - if rec.status == 'approve' and self.env.user.has_group('odex_fleet.fleet_group_account'): - rec.edit_access = True - - def set_to_draft(self): - for rec in self: - rec.status = 'draft' - - def action_confirm(self): - self.sudo().status = 'confirm' - - def action_approve(self): - self.status = 'approve' - self.vehicle_id.odometer = self.odometer - - def action_cancel(self): - self.status = 'cancel' - - def action_refuse(self): - self.status = 'refused' - - @api.onchange('vehicle_id') - def get_branch(self): - if self.vehicle_id: - self.branch_id = self.vehicle_id.branch_id.id if self.vehicle_id.branch_id else False - self.odometer = self.vehicle_id.odometer - self.employee_id = self.vehicle_id.employee_id - - def create_invoice(self): - invoice = self.env['account.move'].sudo().create({ - 'partner_id': self.partner_id.id, - 'currency_id': self.env.user.company_id.currency_id.id, - # 'name': 'Fleet Service Cost Invoice ', - # 'account_id': self.partner_id.property_account_payable_id.id, - 'branch_id': self.vehicle_id.branch_id.id, - 'move_type': 'in_invoice', - 'invoice_date': datetime.now().today(), - 'invoice_line_ids': [(0, 0, { - 'quantity': 1, - 'price_unit': self.amount, - # 'move_id': invoice.id, - 'name': 'Fleet Service Cost', - 'account_id': self.account_id.id, - 'tax_ids': [(6, 0, [self.tax_id.id])], - })] - }) - # self.env['account.move.line'].with_context(check_move_validity=False).sudo().create({ - # 'quantity': 1, - # 'price_unit': self.amount, - # 'move_id': invoice.id, - # 'name': 'Fleet Service Cost', - # 'account_id': self.account_id.id, - # 'tax_ids': [(6, 0, [self.tax_id.id])], - # - # }) - self.sudo().invoice_id = invoice.id - # invoice.sudo().action_invoice_open() - self.sudo().status = 'invoiced' - - @api.onchange('cost_ids') - def get_amount_total(self): - for rec in self: - rec.amount = sum(rec.cost_ids.mapped('total')) - - -class FleetVehicleLogContract(models.Model): - _inherit = 'fleet.vehicle.log.contract' - - branch_id = fields.Many2one('hr.department', string="Branch") - - @api.onchange('vehicle_id') - def get_branch(self): - if self.vehicle_id: - self.branch_id = self.vehicle_id.branch_id.id if self.vehicle_id.branch_id else False - - -class FleetVehicleLogFuel(models.Model): - _name = 'fleet.vehicle.log.fuel' - _description = 'Fuel log for vehicles' - _inherits = {'fleet.vehicle.cost': 'cost_id'} - - @api.model - def default_get(self, default_fields): - res = super(FleetVehicleLogFuel, self).default_get(default_fields) - service = self.env.ref('fleet.type_service_refueling', raise_if_not_found=False) - res.update({ - 'date': fields.Date.context_today(self), - 'cost_subtype_id': service and service.id or False, - 'cost_type': 'fuel' - }) - rec = self.env['fleet.account.config'].sudo().search([('type', '=', 'fuel'), ('state', '=', 'confirm')], - limit=1) - if rec and self.env.user.has_group("odex25_fleet_account_custom.integration_with_account"): - res['account_id'] = rec.account_id.id - res['tax_id'] = rec.tax_id.id - elif self.env.user.has_group("odex25_fleet_account_custom.disable_integration_with_account"): - print("pass") - # pass - else: - pass - # raise ValidationError(_("You Need To Configurate Account Details")) - return res - - liter = fields.Float() - price_per_liter = fields.Float() - purchaser_id = fields.Many2one('res.partner', 'Purchaser', - domain="['|',('customer_rank','>',0),('employee','=',True)]") - inv_ref = fields.Char('Invoice Reference', size=64) - vendor_id = fields.Many2one('res.partner', 'Vendor', domain="[('supplier_rank','=',True)]") - notes = fields.Text() - cost_id = fields.Many2one('fleet.vehicle.cost', 'Cost', required=True, ondelete='cascade') - branch_id = fields.Many2one('hr.department', string="Branch") - account_id = fields.Many2one('account.account', string="Account") - tax_id = fields.Many2one('account.tax', string='Tax', ondelete='restrict') - invoice_id = fields.Many2one('account.move', string="Invoice", copy=False) - partner_id = fields.Many2one('res.partner', string="Service Provider") - fuel_type = fields.Many2one(related='vehicle_id.fuel_type') - state = fields.Selection(selection=[('draft', 'Draft'), - ('confirm', 'Confirm'), - ('approve', 'Approved'), - ('invoiced', 'Invoiced'), - ('refused', 'Refused'), - ('cancel', 'Cancel'), - ], default='draft') - amount = fields.Float('Total Untax') - liter = fields.Float() - price_tax = fields.Float(string='Tax') - total_price_tax = fields.Float(string='Total', ) - price_per_liter = fields.Float() - cal_type = fields.Selection(selection=[('total', 'Total'), ('liter', 'Liter')], string="Calculation Type", - default='liter') - edit_access = fields.Boolean(compute="get_access", ) - user_id = fields.Many2one('res.users', string='Responsible', required=False, default=lambda self: self.env.user) - employee_id = fields.Many2one('hr.employee', string="Driver") - - # we need to keep this field as a related with store=True because the graph view doesn't support - # (1) to address fields from inherited table - # (2) fields that aren't stored in database - cost_amount = fields.Float(related='cost_id.amount', string='Amount', store=True) - - @api.onchange('liter', 'price_per_liter', 'amount') - def _onchange_liter_price_amount(self): - # need to cast in float because the value receveid from web client maybe an integer (Javascript and JSON do not - # make any difference between 3.0 and 3). This cause a problem if you encode, for example, 2 liters at 1.5 per - # liter => total is computed as 3.0, then trigger an onchange that recomputes price_per_liter as 3/2=1 (instead - # of 3.0/2=1.5) - # If there is no change in the result, we return an empty dict to prevent an infinite loop due to the 3 intertwine - # onchange. And in order to verify that there is no change in the result, we have to limit the precision of the - # computation to 2 decimal - liter = float(self.liter) - price_per_liter = float(self.price_per_liter) - amount = float(self.amount) - if liter > 0 and price_per_liter > 0 and round(liter * price_per_liter, 2) != amount: - self.amount = round(liter * price_per_liter, 2) - elif amount > 0 and liter > 0 and round(amount / liter, 2) != price_per_liter: - self.price_per_liter = round(amount / liter, 2) - elif amount > 0 and price_per_liter > 0 and round(amount / price_per_liter, 2) != liter: - self.liter = round(amount / price_per_liter, 2) - - def get_access(self): - for rec in self: - rec.edit_access = False - if rec.state == 'approve' and self.env.user.has_group('odex_fleet.fleet_group_account'): - rec.edit_access = True - - def set_to_draft(self): - for rec in self: - rec.state = 'draft' - - @api.onchange('cal_type', 'price_per_liter', 'liter', 'total_price_tax') - def _get_total(self): - for rec in self: - - if rec.cal_type == 'total': - taxes = rec.tax_id.compute_all(rec.price_per_liter, None, 1, product=None, - partner=None) - val = round(sum(t.get('amount', 0.0) for t in taxes.get('taxes', [])), 2) - pice_tax = rec.price_per_liter + val - liter = rec.total_price_tax / pice_tax if val and rec.price_per_liter > 0 else 0 - new_taxes = rec.tax_id.compute_all(rec.price_per_liter, None, liter, product=None, - partner=None) - tax = sum(t.get('amount', 0.0) for t in new_taxes.get('taxes', [])) - rec.price_tax = tax - amount = rec.total_price_tax - rec.price_tax - rec.liter = liter if liter > 0 else 0 - rec.amount = amount if amount > 0 else 0 - else: - taxes = rec.tax_id.compute_all(rec.price_per_liter, None, rec.liter, product=None, - partner=None) - tax = round(sum(t.get('amount', 0.0) for t in taxes.get('taxes', [])), 2) - rec.price_tax = tax if tax > 0 else 0 - rec.amount = rec.liter * rec.price_per_liter - rec.total_price_tax = round(rec.amount + rec.price_tax, 2) - - # def get_account_data(self): - # print("in herere============") - # rec = self.env['fleet.account.config'].sudo().search([('type','=','fuel'),('state','=','confirm')],limit=1) - # if rec: - # self.account_id = rec.account_id.id - # self.tax_id = rec.tax_id.id - # else: - # raise ValidationError(_("You Need To Configurate Account Details")) - - @api.constrains('odometer', 'price_per_liter') - def odometer_check(self): - for rec in self: - if rec.odometer <= 0: - raise ValidationError(_("Odometer Should Be Greater Than 0")) - - @api.constrains('liter') - def liter_check(self): - for rec in self: - if rec.liter <= 0: - raise ValidationError(_("liter Should Be Greater Than 0")) - - def action_confirm(self): - self.odometer_check() - self.sudo().state = 'confirm' - - def action_approve(self): - self.state = 'approve' - - def action_cancel(self): - self.state = 'cancel' - - def action_refuse(self): - self.state = 'refused' - - @api.onchange('vehicle_id') - def _onchange_vehicle(self): - if self.vehicle_id: - self.purchaser_id = self.vehicle_id.driver_id.id - - self.price_per_liter = self.vehicle_id.fuel_type.price or 0 - self.branch_id = self.vehicle_id.branch_id.id if self.vehicle_id.branch_id else False - self.odometer_unit = self.vehicle_id.odometer_unit - self.employee_id = self.vehicle_id.employee_id - - def create_invoice(self): - invoice = self.env['account.move'].sudo().create({ - 'partner_id': self.partner_id.id, - 'currency_id': self.env.user.company_id.currency_id.id, - 'name': 'Fuel Cost Invoice ', - 'journal_id': 2, - # 'account_id': self.partner_id.property_account_payable_id.id, - 'branch_id': self.vehicle_id.branch_id.id, - 'move_type': 'in_invoice', - 'invoice_date': datetime.now().today(), - 'invoice_line_ids': [(0, 0, { - 'quantity': self.liter if self.cal_type == 'liter' else 1, - 'price_unit': self.price_per_liter if self.cal_type == 'liter' else self.amount, - # 'move_id': invoice.id, - 'name': 'Fuel Cost', - 'account_id': self.account_id.id, - 'tax_ids': [(6, 0, [self.tax_id.id])], - 'product_id': self.fuel_type.fuel_type.id, - })] - }) - # self.env['account.move.line'].with_context(check_move_validity=False).sudo().create({ - # 'quantity': self.liter if self.cal_type== 'liter' else 1, - # 'price_unit': self.price_per_liter if self.cal_type== 'liter' else self.amount, - # 'move_id': invoice.id, - # 'name': 'Fuel Cost', - # 'account_id': self.account_id.id, - # 'tax_ids': [(6, 0, [self.tax_id.id])], - # 'product_id': self.fuel_type.fuel_type.id, - # # 'uom_id': self.fuel_type.uom_id.id, - # }) - self.sudo().invoice_id = invoice.id - invoice.sudo()._compute_amount() - # invoice.sudo().action_invoice_open() - self.sudo().state = 'invoiced' - date = fields.Date.context_today(self) - data = {'value': self.odometer, 'date': date, 'vehicle_id': self.vehicle_id.id} - self.env['fleet.vehicle.odometer'].sudo().create(data) - - -class FleetServiceConfig(models.Model): - _name = 'fleet.service.line.config' - _description = 'Fleet Serive Line' - - fleet_id = fields.Many2one('fleet.vehicle') - service_ids = fields.Many2many('fleet.service.type', string="Service") - date = fields.Date(string="Next Request Date", help="Next Request Date Of Maintenance Request") - next_odometer = fields.Float(string="Next Odometer") - odometer = fields.Float(string="Next Odometer", - help="Determine the current mileage value to submit a maintenance request") - type = fields.Selection(selection=[('date', 'Date'), ('odometer', 'Odometer')], - string="Type") - - @api.onchange('type', 'odometer') - def get_vals(self): - for rec in self: - if rec.type == 'odometer': - rec.get_next_odometer() - - def get_next_odometer(self): - for rec in self: - rec.next_odometer = rec.fleet_id.odometer + rec.odometer - - @api.model - def fleet_maintenance_cron(self): - date = self.env['fleet.service.line.config'].sudo().search( - [('type', '=', 'date'), ('date', '=', str(datetime.now().date()))]) - odo = self.env['fleet.service.line.config'].sudo().search([('type', '=', 'odometer'), - ]) - odo = odo.filtered(lambda r: r.fleet_id.odometer >= r.next_odometer) - print("FDDDDDDDDDDDDDDDDDDDDd", str(datetime.now().date()), date, odo.mapped('fleet_id.odometer')) - self.create_request(date) - self.create_request(odo) - - def create_request(self, data): - for d in data: - self.env['fleet.maintenance'].sudo().create({ - 'name': "Preventive Maintenance", - 'type': 'preventive', - 'vehicle_id': d.fleet_id.id, - 'branch_id': d.fleet_id.branch_id.id, - 'odometer': d.fleet_id.odometer, - 'license_plate': d.fleet_id.license_plate, - 'line_id': d.id, - 'employee_id': d.fleet_id.employee_id.id if d.fleet_id.employee_id else False, - 'service_ids': [(0, 0, {'service_id': l.id}) for l in d.service_ids] - }) - if d.type == 'odometer': - d.get_next_odometer() diff --git a/odex25_fleet/odex_fleet/models/vehicle_deleation.py b/odex25_fleet/odex_fleet/models/vehicle_deleation.py deleted file mode 100644 index 07d956596..000000000 --- a/odex25_fleet/odex_fleet/models/vehicle_deleation.py +++ /dev/null @@ -1,227 +0,0 @@ -from odoo import models, fields, api, _ -from odoo.exceptions import UserError, ValidationError -from datetime import datetime -from dateutil.relativedelta import relativedelta - - -class VehicleDelegation(models.Model): - _name = 'vehicle.delegation' - _description = 'Vehicle Deleagation' - _inherit = ['mail.thread', 'mail.activity.mixin'] - - name = fields.Char(string="Name") - branch_id = fields.Many2one('res.branch', string="Branch",related="driver_department.branch_id") - old_branch_id = fields.Many2one('res.branch', string="Old Branch") - employee_id = fields.Many2one('hr.employee', string="Driver", - domain="[('driver', '=', True),('vehicle_id', '=', False)]") - state = fields.Selection(selection=[('draft', 'Draft'), - ('confirm', 'Confirm'), - ('approve', 'Approved'), - ('in_progress', 'In Progress'), - ('refused', 'Refused'), - ('cancel', 'Cancel'), - ('close', 'Close'), ], default='draft') - company_id = fields.Many2one('res.company', string='Company') - project_id = fields.Many2one('project.project', string='Project') - delegation_type = fields.Selection(selection=[('branch', 'Branch'), ('driver', 'driver')], - string="Delegation Type") - license_number = fields.Char(string="License Number", related='employee_id.license_number', store=True) - license_end = fields.Date(string="License End") - vehicle_id = fields.Many2one('fleet.vehicle', string="Vehicle", ) - - license_plate = fields.Char(required=True, related='vehicle_id.license_plate', store=True, - ) - vin_sn = fields.Char('Chassis Number', related='vehicle_id.vin_sn', store=True, - copy=False) - model_id = fields.Many2one('fleet.vehicle.model', 'Model', related='vehicle_id.model_id', store=True, ) - fleet_type_id = fields.Many2one('fleet.type', string="Fleet Type", related='vehicle_id.fleet_type_id', store=True, ) - serial_number = fields.Char(related='vehicle_id.serial_number', string="Serial Number") - state_id = fields.Many2one('res.country.state', string="State", ) - start_date = fields.Date(string="Start Date") - end_date = fields.Date(string="End Date") - reason = fields.Text(string="Reject Reason", tracking=True,) - custody_id = fields.Many2one('custom.employee.custody') - entity_type = fields.Selection(selection=[('department', 'Department'), ('project', 'Project')], - string="Entity Type") - driver_department = fields.Many2one('driver.department') - first_odometer = fields.Float(string='First Odometer',compute="get_first_odometer", store=True,help='The odometer value at the moment the car is authorized') - odometer = fields.Float(string='Last Odometer',compute="get_odometer", store=True, - help='Odometer measure of the vehicle at the moment of this log') - km_number = fields.Integer(string='KM Number', compute='get_km', store=True,help='The value of the difference between the odometer at the moment of delivery and receipt') - last_department_id = fields.Many2one(related='vehicle_id.department_id', string="Last Department",help='The last Department the vehicle was authorized for') - last_project_id = fields.Many2one('project.project', string='Last Project', compute="get_last_project", store=True) - last_branch_id = fields.Many2one('res.branch', string="Last Branch", compute="get_last_branch", store=True,help='The last Branch the vehicle was authorized for') - - @api.depends("vehicle_id") - def get_first_odometer(self): - for rec in self : - if rec.vehicle_id: - odometer_id = self.env['fleet.vehicle.odometer'].search([('vehicle_id','=',rec.vehicle_id.id)],order="date desc",limit=1) - rec.first_odometer = odometer_id.value - - @api.depends("vehicle_id") - def get_odometer(self): - for rec in self: - if rec.vehicle_id: - odometer_id = self.env['fleet.vehicle.odometer'].search([('vehicle_id', '=', rec.vehicle_id.id)], - order="date asc", limit=1) - rec.odometer = odometer_id.value - - @api.depends("vehicle_id") - def get_last_project(self): - for rec in self: - obj = self.search([('vehicle_id', '=', rec.vehicle_id.name)],limit=1) - rec.last_project_id = obj.project_id - - @api.depends("vehicle_id") - def get_last_branch(self): - for rec in self: - rec.last_branch_id = rec.vehicle_id.branch_id - - # @api.onchange('branch_id') - # def onchange_branch(self): - # for rec in self: - # rec.vehicle_id.branch_id = rec.branch_id - - @api.depends('odometer', 'first_odometer') - def get_km(self): - for rec in self : - rec.km_number = rec.odometer - rec.first_odometer - - def create_custody(self): - print("ok") -# for rec in self: -# custody = rec.env['custom.employee.custody'].sudo().create({ -# 'from_hr_department': True, -# 'employee_id': rec.employee_id.id, -# }) -# line = rec.env['employee.custody.line'].sudo().create({ -# 'name': (_("Car Delegation %s")) % rec.vehicle_id.name, -# 'quantity': 1.0, -# 'employee_custody_line': custody.id, -# }) -# custody.sudo().submit() -# rec.custody_id = custody.id - - @api.constrains('vehicle_id', 'delegation_type', 'employee_id', 'start_date', 'end_date') - def car_constrain(self): - for rec in self: - if self.start_date and self.end_date: - clause_1 = ['&', ('end_date', '<=', rec.end_date), ('end_date', '>=', rec.start_date)] - clause_2 = ['&', ('start_date', '<=', rec.end_date), ('start_date', '>=', rec.start_date)] - clause_3 = ['&', ('start_date', '<=', rec.start_date), ('end_date', '>=', rec.end_date)] - value = [('id', '!=', self.id), ('state', 'not in', ['close', 'cancel']), '|', - '|'] + clause_1 + clause_2 + clause_3 - record = self.env['vehicle.delegation'].sudo().search(value) - v = record.filtered(lambda r: r.id != self.id and r.vehicle_id == self.vehicle_id) -# e = record.filtered( -# lambda r: r.id != self.id and r.employee_id == self.employee_id and self.employee_id) - if v: - raise ValidationError(_("You Need To Close Other Delegation Request for this Vehicle")) -# if e: -# raise ValidationError(_("You Need To Close Other Delegation Request for this Driver")) - - @api.onchange('start_date', 'end_date') - @api.constrains('start_date', 'end_date') - def check_data(self): - if self.start_date and self.end_date and self.start_date > self.end_date: - raise UserError(_('Start Date must be less than or equal End Date ')) - - @api.onchange('vehicle_id') - def get_fleet_data(self): - if self.vehicle_id: - self.old_branch_id = self.vehicle_id.branch_id.id - - @api.onchange('employee_id') - def get_emp_data(self): - self.license_end = self.employee_id.license_end - # self.vehicle_id.department_id = self.employee_id.department_id - - def action_confirm(self): - for rec in self: - rec.state = 'confirm' - if rec.driver_department: - rec.vehicle_id.branch_id = rec.branch_id - rec.vehicle_id.department_id = rec.driver_department.department_id - elif rec.project_id: - rec.vehicle_id.project_id = rec.project_id - - def action_approve(self): - for rec in self: - rec.state = 'approve' - - def action_inprogress(self): - for rec in self: - # if rec.start_date > str(datetime.now().date()): - # raise ValidationError(_("You Can Start Request Early than Plan")) - rec.state = 'in_progress' - if rec.delegation_type == 'branch': - rec.vehicle_id.old_branch_id = rec.vehicle_id.branch_id.id - rec.vehicle_id.branch_id = rec.branch_id.id - else: - # rec.vehicle_id.partner_id = rec.employee_id.user_id.partner_id.id - rec.vehicle_id.employee_id = rec.employee_id.id - rec.employee_id.old_vehicle_id = rec.employee_id.vehicle_id.id - rec.employee_id.vehicle_id = rec.vehicle_id.id - rec.employee_id.delegation_start = rec.start_date - rec.employee_id.delegation_end = rec.end_date -# rec.create_custody() - - def action_refuse(self): - 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')], - 'type': 'ir.actions.act_window', - 'target': 'new', - 'context': {'default_delegation_id': self.id}, - } - - def action_close(self): - for rec in self: - rec.state = 'close' - if rec.delegation_type == 'branch': - rec.vehicle_id.branch_id = rec.vehicle_id.old_branch_id.id - else: - rec.vehicle_id.owner_id = False - rec.vehicle_id.employee_id = False - rec.employee_id.vehicle_id = False - rec.employee_id.delegation_start = False - rec.employee_id.delegation_end = False -# if rec.custody_id: -# rec.custody_id.sudo().done() - - def action_cancel(self): - for rec in self: - rec.sudo().state = 'cancel' - - @api.model - def delegation_expired_cron(self): - date = datetime.now().date() - delegation = self.company_id.delegation - if delegation > 0: - date = date + relativedelta(days=delegation) - fleet = self.env['vehicle.delegation'].sudo().search( - [('state', 'in', ['approve', 'in_progress']), ('end_date', '<=', str(date))]) - for f in fleet: - template = self.env.ref('odex_fleet.delegation_expiration_email_template', False) - template.send_mail(f.id) - - @api.model - def delegation_start_cron(self): - date = datetime.now().date() - fleet = self.env['vehicle.delegation'].sudo().search( - [('state', '=', 'approve'), ('start_date', '<=', str(date))]) - for f in fleet: - f.action_inprogress() - - @api.model - def delegation_close_cron(self): - date = datetime.now().date() - fleet = self.env['vehicle.delegation'].sudo().search( - [('state', '=', 'in_progress'), ('end_date', '<=', str(date))]) - for f in fleet: - f.action_close() diff --git a/odex25_fleet/odex_fleet/reports/__init__.py b/odex25_fleet/odex_fleet/reports/__init__.py deleted file mode 100644 index 7a25895e4..000000000 --- a/odex25_fleet/odex_fleet/reports/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from . import fleet_report -from . import maintains_report -from . import renew_report -from . import service_report -from . import driver \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/reports/driver.py b/odex25_fleet/odex_fleet/reports/driver.py deleted file mode 100644 index 40ac17750..000000000 --- a/odex25_fleet/odex_fleet/reports/driver.py +++ /dev/null @@ -1,73 +0,0 @@ -# -*- coding: utf-8 -*- - -import io -import base64 -from odoo import api, fields, models, tools, _ -from odoo.exceptions import ValidationError, UserError - -from datetime import datetime,timedelta,date -from odoo.tools import DEFAULT_SERVER_DATE_FORMAT -import arabic_reshaper -from bidi.algorithm import get_display -import io -import base64 - - # driver - -class Driver(models.AbstractModel): - _name = 'report.odex_fleet.driver_report_pdf' - _description = 'Report Driver' - - def get_result(self, data=None): - form = data - domain = [('driver','=',True),('vehicle_id','!=',False)] - if form['state_ids']: - domain += [('branch_id.state_id','in',form['state_ids'])] - if form['date_from'] and form['date_to']: - domain = [('delegation_start', '>=', form['date_from']), ('delegation_end', '<=', form['date_to'])] - if form['department_ids']: - domain += [('department_id.name','in',form['department_ids'])] - emp = self.env['hr.employee'].sudo().search(domain) - return emp - - @api.model - def _get_report_values(self, docids, data=None): - record = self.get_result(data) - date_to, date_from = ' / ', ' / ' - if data['date_from'] and data['date_to']: - date_from = data['date_from'] - date_to = data['date_to'] - return { - 'date_from': date_from, - 'date_to': date_to, - 'docs': record, - } - - # driver Delegation - -class DriverDelegation(models.AbstractModel): - _name = 'report.odex_fleet.driver_delegation_report_pdf' - _description = 'Report Delegation' - - def get_result(self, data=None): - form = data - domain = [('delegation_type','=','driver'),('state','=','in_progress')] - if form['state_ids']: - domain += [('vehicle_id.branch_id.state_id','in',form['state_ids'])] - # if form['date_from'] and form['date_to']: - # domain += [('start_date', '>=', form['date_from']), ('end_date', '<=', form['date_to'])] - emp = self.env['vehicle.delegation'].sudo().search(domain) - return emp - - @api.model - def _get_report_values(self, docids, data=None): - record = self.get_result(data) - date_to, date_from = ' / ', ' / ' - if data['date_from'] and data['date_to']: - date_from = data['date_from'] - date_to = data['date_to'] - return { - 'date_from': date_from, - 'date_to': date_to, - 'docs': record, - } \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/reports/driver_template.xml b/odex25_fleet/odex_fleet/reports/driver_template.xml deleted file mode 100644 index ccc919976..000000000 --- a/odex25_fleet/odex_fleet/reports/driver_template.xml +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/reports/fleet_report.py b/odex25_fleet/odex_fleet/reports/fleet_report.py deleted file mode 100644 index 6d0da10fd..000000000 --- a/odex25_fleet/odex_fleet/reports/fleet_report.py +++ /dev/null @@ -1,571 +0,0 @@ -# -*- coding: utf-8 -*- - -import io -import base64 -import matplotlib.pyplot as plt -from odoo import api, fields, models, tools, _ -from odoo.exceptions import ValidationError, UserError - -from datetime import datetime,timedelta,date -from odoo.tools import DEFAULT_SERVER_DATE_FORMAT -import arabic_reshaper -from bidi.algorithm import get_display -import io -import base64 - -class FleetBranchReport(models.AbstractModel): - _name = 'report.odex_fleet.fleet_branch_report_pdf' - _description = 'Report Branch' - def get_result(self, data=None): - form = data - domain = [('invoice_id','!=', False)] - if form['branch_ids']: - domain += [('branch_id','in',form['branch_ids'])] - if form['type_ids']: - domain += [('vehicle_id.fleet_type_id','in',form['type_ids'])] - if form['date_from'] and form['date_to']: - domain += [('date', '>=', form['date_from']), ('date', '<=', form['date_to'])] - if form['vehicle_del_type'] == 'department': - domain += [('vehicle_id.department_id.name', 'in', form['department_ids'])] - if form['vehicle_del_type'] == 'project' : - domain += [('vehicle_id.project_id.name', 'in', form['project_ids'])] - service = self.env['fleet.vehicle.log.services'].sudo().search(domain) - fuel = self.env['fleet.vehicle.log.fuel'].sudo().search(domain) - branch = self.env['res.branch'].browse(form['branch_ids']) if form['branch_ids'] else set(service.mapped('branch_id') + fuel.mapped('branch_id')) - types = self.env['fleet.type'].browse(form['type_ids']) if form['type_ids'] else set(service.mapped('vehicle_id.fleet_type_id') + fuel.mapped('vehicle_id.fleet_type_id')) - data = {} - li = [] - for b in branch: - b_service = service.filtered(lambda r:r.branch_id == b) - b_fuel = fuel.filtered(lambda r:r.branch_id == b) - rec = [] - for t in types: - value = {} - value['type'] = t.name - value['total'] = sum(b_service.filtered(lambda r:r.vehicle_id.fleet_type_id == t).mapped('amount')) +\ - sum(b_fuel.filtered(lambda r:r.vehicle_id.fleet_type_id == t).mapped('amount')) or 0 - rec.append(value) - li.append({'branch':b.name,'data':rec,'total':sum(b_service.mapped('amount'))+sum(b_fuel.mapped('amount')) or 0}) - tot = [] - for t in types: - amount = sum(service.filtered(lambda r:r.vehicle_id.fleet_type_id == t and r.branch_id in branch).mapped('amount')) +\ - sum(fuel.filtered(lambda r:r.vehicle_id.fleet_type_id == t and r.branch_id in branch).mapped('amount')) or 0 - tot.append([t.name,amount]) - data['total'] = tot - data['branch'] = sorted(li, key=lambda d: d['total'], reverse=False) - return data - @api.model - def _get_report_values(self, docids, data=None): - record = self.get_result(data) - date_to, date_from = ' / ', ' / ' - if data['date_from'] and data['date_to']: - date_from = data['date_from'] - date_to = data['date_to'] - return { - 'date_from': date_from, - 'date_to': date_to, - 'docs': record, - } - -# cost chart - -class FleetChartReport(models.AbstractModel): - _name = 'report.odex_fleet.all_branch_cost_report_pdf' - _description = 'Report Branch Cost' - - def get_chart(self, cdata,type=False): - print("ffffffffffffffff",cdata) - li = [] - labels, slices = [], [] - for dic in cdata: - if type: - labels.append(get_display(arabic_reshaper.reshape(dic['type']))) - else: - labels.append(get_display(arabic_reshaper.reshape(dic['branch']))) - slices.append(round(dic['total_per'],2)) - textprops = {"fontsize": 9} - plt.pie(slices, labels=labels, autopct='%1.1f%%', shadow=True, startangle=15, textprops=textprops, ) - plt.axis('equal') - buffered = io.BytesIO() - plt.savefig(buffered, format='png') - plt.close() - return base64.b64encode(buffered.getvalue()) - - def bar_get_chart(self, datas,type=False): - li = [] - for cdata in datas: - labels, slices = [], [] - for dic in cdata['data']: - labels.append(get_display(arabic_reshaper.reshape(dic['branch']))) - slices.append(round(dic['total_per'],2)) - line = plt.bar(labels, slices) - plt.xlabel('Percentage') - plt.ylabel("Branch") - for i in range(len(slices)): - plt.annotate(str(slices[i]), xy=(labels[i], slices[i]), ha='center', va='bottom') - # plt.show() - buffered = io.BytesIO() - plt.savefig(buffered, format='png') - plt.close() - li.append(base64.b64encode(buffered.getvalue())) - return li - - def get_result(self, data=None): - form = data - domain = [] - if form['branch_ids']: - domain += [('branch_id','in',form['branch_ids'])] - if form['date_from'] and form['date_to']: - domain += [('date', '>=', form['date_from']), ('date', '<=', form['date_to'])] - if form['type_ids']: - domain += [('vehicle_id.fleet_type_id','in',form['type_ids'])] - if form ['vehicle_del_type'] == 'department': - domain += [('vehicle_id.department_id.name','in',form['department_ids'])] - if form ['vehicle_del_type'] == 'project': - domain += [('vehicle_id.project_id.name','in',form['project_ids'])] - - man = self.env['fleet.maintenance'].sudo().search(domain) - domain += [('invoice_id','!=', False)] - service = self.env['fleet.vehicle.log.services'].sudo().search(domain) - fuel = self.env['fleet.vehicle.log.fuel'].sudo().search(domain) - branch = self.env['res.branch'].browse(form['branch_ids']) if form['branch_ids'] else set(service.mapped('branch_id') + fuel.mapped('branch_id')+man.mapped('branch_id')+ man.mapped('branch_id')+man.mapped('branch_id')) - types = self.env['fleet.type'].browse(form['type_ids']) if form['type_ids'] else set(service.mapped('vehicle_id.fleet_type_id') + fuel.mapped('vehicle_id.fleet_type_id')+man.mapped('vehicle_id.fleet_type_id')) - totals_alls = sum(service.mapped('amount')) + sum(fuel.mapped('amount')) + sum(man.mapped('total_cost')) - - data = {} - li = [] - tot = [] - l = [] - for t in types: - value = {} - value['type'] = t.name - total = sum(service.filtered(lambda r: r.vehicle_id.fleet_type_id == t).mapped('amount')) + \ - sum(fuel.filtered(lambda r: r.vehicle_id.fleet_type_id == t).mapped('amount')) + \ - sum(man.filtered(lambda r: r.vehicle_id.fleet_type_id == t).mapped('total_cost')) - total_per = total / totals_alls * 100 if totals_alls > 0 else 0 - value['total'] = total - value['total_per'] = total_per - l.append(value) - rec = [] - for b in branch: - datas = {} - branch_total = sum( - service.filtered(lambda r: r.vehicle_id.fleet_type_id == t and r.branch_id == b).mapped('amount')) + \ - sum(fuel.filtered(lambda r: r.vehicle_id.fleet_type_id == t and r.branch_id == b).mapped( - 'amount')) +sum(man.filtered(lambda r: r.vehicle_id.fleet_type_id == t and r.branch_id == b).mapped( - 'total_cost')) - branch_total_per = branch_total / totals_alls * 100 if totals_alls > 0 else 0 - datas['branch'] = b.name - datas['total'] = branch_total - datas['total_per'] = branch_total_per - rec.append(datas) - branch_branch = sum( - service.filtered(lambda r:r.branch_id == b).mapped('amount')) + \ - sum(fuel.filtered(lambda r:r.branch_id == b).mapped('amount')) + sum( - man.filtered(lambda r:r.branch_id == b).mapped( 'total_cost')) - branch_per = branch_branch / totals_alls * 100 if totals_alls > 0 else 0 - tot.append({'branch': b.name, 'total': branch_branch, 'total_per': branch_per}) - li.append({'type': t.name, 'data': sorted(rec, key=lambda d: d['total'], reverse=True)}) - tot = [dict(t) for t in {tuple(d.items()) for d in tot}] - data['branch'] = sorted(tot, key=lambda d: d['total'], reverse=True) - data['types'] = sorted(l, key=lambda d: d['total'], reverse=True) - data['branch_types'] = li - data['chart'] = self.get_chart(tot) - data['chart_main'] = self.get_chart(l,type=True) - data['bar_chart'] = self.bar_get_chart(li,type=True) - - - return data - - - @api.model - def _get_report_values(self, docids, data=None): - record = self.get_result(data) - date_to, date_from = ' / ', ' / ' - if data['date_from'] and data['date_to']: - date_from = data['date_from'] - date_to = data['date_to'] - return { - 'date_from': date_from, - 'date_to': date_to, - 'docs': record, - } - - - -# state - -class AllStateReport(models.AbstractModel): - _name = 'report.odex_fleet.state_cost_report_pdf' - _description = 'Report State Cotst' - - def get_result(self, data=None): - form = data - domain = [('invoice_id','!=', False)] - if form['state_ids']: - domain += [('branch_id.state_id','in',form['state_ids'])] - if form['type_ids']: - domain += [('vehicle_id.fleet_type_id','in',form['type_ids'])] - if form['date_from'] and form['date_to']: - domain += [('date', '>=', form['date_from']), ('date', '<=', form['date_to'])] - service = self.env['fleet.vehicle.log.services'].sudo().search(domain) - fuel = self.env['fleet.vehicle.log.fuel'].sudo().search(domain) - branch = list(set(service.mapped('branch_id') + fuel.mapped('branch_id'))) - state = self.env['res.country.state'].browse(form['state_ids']) if form['state_ids'] else list(set(service.mapped('branch_id.state_id') + fuel.mapped('branch_id.state_id'))) - types = self.env['fleet.type'].browse(form['type_ids']) if form['type_ids'] else set(service.mapped('vehicle_id.fleet_type_id') + fuel.mapped('vehicle_id.fleet_type_id')) - last = [] - for s in state: - data = {} - li = [] - for b in branch: - if b.state_id == s: - b_service = service.filtered(lambda r:r.branch_id == b) - b_fuel = fuel.filtered(lambda r:r.branch_id == b) - rec = [] - for t in types: - value = {} - value['type'] = t.name - value['total'] = sum(b_service.filtered(lambda r:r.vehicle_id.fleet_type_id == t).mapped('amount')) +\ - sum(b_fuel.filtered(lambda r:r.vehicle_id.fleet_type_id == t).mapped('amount')) or 0 - rec.append(value) - li.append({'branch':b.name,'data':sorted(rec, key=lambda d: d['total'], reverse=False),'total':sum(b_service.mapped('amount'))+sum(b_fuel.mapped('amount')) or 0}) - tot = [] - total_state = 0 - for t in types: - amount = sum(service.filtered(lambda r:r.vehicle_id.fleet_type_id == t and r.branch_id.state_id == s).mapped('amount')) +\ - sum(fuel.filtered(lambda r:r.vehicle_id.fleet_type_id == t and r.branch_id.state_id == s).mapped('amount')) or 0 - total_state += amount - tot.append([t.name,amount]) - data['total'] = tot - data['branch'] = li - data['state'] = s.name - data['state_total'] = total_state - last.append(data) - return last - - - @api.model - def _get_report_values(self, docids, data=None): - record = self.get_result(data) - print("ffffffffffffffffffff",record) - date_to, date_from = ' / ', ' / ' - if data['date_from'] and data['date_to']: - date_from = data['date_from'] - date_to = data['date_to'] - return { - 'date_from': date_from, - 'date_to': date_to, - 'docs': record, - } - - -# consumption - -# class FleetConsumptionReport(models.AbstractModel): -# _name = 'report.odex_fleet.car_consumption_cost_report_pdf' -# -# def get_result(self, data=None): -# form = data -# domain = [] -# if form['branch_ids']: -# domain += [('branch_id','in',form['branch_ids'])] -# if form['date_from'] and form['date_to']: -# domain += [('date', '>=', form['date_from']), ('date', '<=', form['date_to'])] -# man = self.env['fleet.maintenance'].sudo().search(domain) -# domain += [('invoice_id','!=', False)] -# service = self.env['fleet.vehicle.log.services'].sudo().search(domain) -# fuel = self.env['fleet.vehicle.log.fuel'].sudo().search(domain) -# branch = self.env['res.branch'].browse(form['branch_ids']) if form['branch_ids'] else set(service.mapped('branch_id') + fuel.mapped('branch_id')+man.mapped('branch_id')+ man.mapped('branch_id')+man.mapped('branch_id')) -# types = self.env['fleet.type'].browse(form['type_ids']) if form['type_ids'] else set(service.mapped('vehicle_id.fleet_type_id') + fuel.mapped('vehicle_id.fleet_type_id')+man.mapped('vehicle_id.fleet_type_id')) -# print("gggggggggggggggggg",types,branch) -# data = {} -# li = [] -# for b in branch: -# b_service = service.filtered(lambda r:r.branch_id == b) -# b_fuel = fuel.filtered(lambda r:r.branch_id == b) -# b_man = man.filtered(lambda r: r.branch_id == b) -# service_total = sum (b_service.mapped('amount')) -# fuel_total = sum (b_fuel.mapped('amount')) -# man_total = sum (b_man.mapped('total_cost')) -# totals = service_total+fuel_total+man_total -# service_total_per =service_total/totals*100 if totals>0 else 0 -# fuel_total_per =fuel_total/totals*100 if totals>0 else 0 -# man_total_per =man_total/totals*100 if totals>0 else 0 -# total_per = man_total_per+fuel_total_per+service_total_per -# data['total'] = [[service_total,fuel_total,man_total,totals],[service_total_per,fuel_total_per,man_total_per,total_per]] -# vehicle_ids = list(set(service.mapped('vehicle_id') + fuel.mapped('vehicle_id') + man.mapped('vehicle_id'))) -# rec = [] -# for t in types: -# l =[] -# value = {} -# value['type'] = t.name -# print("dddddddddddd",vehicle_ids) -# # fuel_total_b = 0 -# # man_total_b = 0 -# # service_total_b = 0 -# fuel_total_b = sum(b_fuel.filtered(lambda r: r.vehicle_id.fleet_type_id == t).mapped('amount')) -# man_total_b = sum(b_man.filtered(lambda r: r.vehicle_id.fleet_type_id == t).mapped('total_cost')) -# service_total_b = sum(b_service.filtered(lambda r: r.vehicle_id.fleet_type_id == t).mapped('amount')) -# total_total = service_total+man_total+fuel_total -# total_total_per = totals/ total_total *100if total_total>0 else 0 -# for c in vehicle_ids: -# if c.fleet_type_id == t: -# z = {} -# z['name'] = c.name -# z['model'] = c.model_id.name -# z['driver'] = c.employee_id.name -# z['plate'] = c.license_plate -# z['job'] = c.employee_id.job_id.name -# z['fuel'] = sum(b_fuel.filtered(lambda r:r.vehicle_id == c and r.vehicle_id.fleet_type_id == t).mapped('amount')) -# z['man'] = sum(b_man.filtered(lambda r:r.vehicle_id == c and r.vehicle_id.fleet_type_id == t).mapped('total_cost')) -# z['service'] = sum(b_service.filtered(lambda r:r.vehicle_id == c and r.vehicle_id.fleet_type_id == t).mapped('amount')) -# z['total'] = z['fuel'] + z['man'] + z['service'] -# z['all_tot_per'] = z['total']/total_total*100 if total_total>0 else 0 -# # print("fffffffffff444", z['all_tot_per'] , total_total,z['total'],total_total_per) -# # total_total_per += z['all_tot_per'] -# # fuel_total_b += z['fuel'] -# # man_total_b += z['man'] -# # service_total_b += z['service'] -# l.append(z) -# value['data'] = l -# value['type'] = t.name -# value['total'] = [fuel_total_b,service_total_b,man_total_b,total_total,total_total_per] -# rec.append(value) -# li.append({'branch':b.name,'data':rec,'total':[fuel_total_b,service_total_b,man_total_b,total_total,total_total_per]}) -# data['branch'] = li -# return data -# -# -# @api.model -# def _get_report_values(self, docids, data=None): -# record = self.get_result(data) -# print("ddddddddddddddd",record) -# date_to, date_from = ' / ', ' / ' -# if data['date_from'] and data['date_to']: -# date_from = data['date_from'] -# date_to = data['date_to'] -# return { -# 'date_from': date_from, -# 'date_to': date_to, -# 'docs': record, -# } -# # Form Renew -# # renew -# class Renew(models.AbstractModel): -# _name = 'report.odex_fleet.renew_report_pdf' -# -# def get_result(self, data=None): -# form = data -# domain = [('state','=', 'approve')] -# if form['date_from'] and form['date_to']: -# domain += [('date', '>=', form['date_from']), ('date', '<=', form['date_to'])] -# form = self.env['form.renew'].sudo().search(domain) -# return form -# -# -# @api.model -# def _get_report_values(self, docids, data=None): -# record = self.get_result(data) -# date_to, date_from = ' / ', ' / ' -# if data['date_from'] and data['date_to']: -# date_from = data['date_from'] -# date_to = data['date_to'] -# return { -# 'date_from': date_from, -# 'date_to': date_to, -# 'docs': record, -# } -# # To renew -# class ToRenew(models.AbstractModel): -# _name = 'report.odex_fleet.to_renew_report_pdf' -# -# def get_result(self, data=None): -# form = data -# domain = [] -# if form['date_from'] and form['date_to']: -# domain = [('form_end', '>=', form['date_from']), ('form_end', '<=', form['date_to'])] -# form = self.env['fleet.vehicle'].sudo().search(domain) -# return form -# -# -# @api.model -# def _get_report_values(self, docids, data=None): -# record = self.get_result(data) -# date_to, date_from = ' / ', ' / ' -# if data['date_from'] and data['date_to']: -# date_from = data['date_from'] -# date_to = data['date_to'] -# return { -# 'date_from': date_from, -# 'date_to': date_to, -# 'docs': record, -# } -# # driver - -# class Driver(models.AbstractModel): -# _name = 'report.odex_fleet.driver_report_pdf' -# -# def get_result(self, data=None): -# form = data -# domain = [('driver','=',True),('vehicle_id','!=',False)] -# if form['state_ids']: -# domain += [('branch_id.state_id','in',form['state_ids'])] -# if form['date_from'] and form['date_to']: -# domain = [('delegation_start', '>=', form['date_from']), ('delegation_end', '<=', form['date_to'])] -# emp = self.env['hr.employee'].sudo().search(domain) -# return emp -# -# @api.model -# def _get_report_values(self, docids, data=None): -# record = self.get_result(data) -# date_to, date_from = ' / ', ' / ' -# if data['date_from'] and data['date_to']: -# date_from = data['date_from'] -# date_to = data['date_to'] -# return { -# 'date_from': date_from, -# 'date_to': date_to, -# 'docs': record, -# } -# -# # driver Delegation -# -# class DriverDelegation(models.AbstractModel): -# _name = 'report.odex_fleet.driver_delegation_report_pdf' -# -# def get_result(self, data=None): -# form = data -# domain = [('delegation_type','=','driver'),('state','=','approve')] -# if form['state_ids']: -# domain += [('vehicle_id.branch_id.state_id','in',form['state_ids'])] -# if form['date_from'] and form['date_to']: -# domain += [('start_date', '>=', form['date_from']), ('end_date', '<=', form['date_to'])] -# emp = self.env['vehicle.delegation'].sudo().search(domain) -# return emp -# -# @api.model -# def _get_report_values(self, docids, data=None): -# record = self.get_result(data) -# date_to, date_from = ' / ', ' / ' -# if data['date_from'] and data['date_to']: -# date_from = data['date_from'] -# date_to = data['date_to'] -# return { -# 'date_from': date_from, -# 'date_to': date_to, -# 'docs': record, -# } -# Service -# class AllStateServiceReport(models.AbstractModel): -# _name = 'report.odex_fleet.service_report_pdf' -# -# def get_result(self, data=None): -# form = data -# domain = [('invoice_id','!=', False)] -# if form['state_ids']: -# domain += [('branch_id.state_id','in',form['state_ids'])] -# if form['type_ids']: -# domain += [('fleet_type_id','in',form['type_ids'])] -# if form['date_from'] and form['date_to']: -# domain += [('date', '>=', form['date_from']), ('date', '<=', form['date_to'])] -# service = self.env['fleet.vehicle.log.services'].sudo().search(domain) -# branch = service.mapped('branch_id') -# state = self.env['res.country.state'].browse(form['state_ids']) if form['state_ids'] else service.mapped('branch_id.state_id') -# last = [] -# for s in state: -# data = {} -# li = [] -# for b in branch: -# if b.state_id == s: -# b_service = service.filtered(lambda r:r.branch_id == b) -# rec = [] -# for z in b_service: -# for t in z.cost_ids: -# value = {} -# value['name'] = z.vehicle_id.employee_id.name -# value['cost'] = t.amount -# value['service'] = t.cost_subtype_id.name -# value['vehicle'] = z.vehicle_id.fleet_type_id.name -# value['license_number'] = z.vehicle_id.license_plate -# rec.append(value) -# li.append({'branch':b.name,'data':rec,'total':sum(b_service.mapped('amount')) or 0}) -# data['branch'] = li -# data['state'] = s.name -# last.append(data) -# print("RRRRRRRRRRRRRRRRRR",last) -# return last -# -# -# @api.model -# def _get_report_values(self, docids, data=None): -# record = self.get_result(data) -# date_to, date_from = ' / ', ' / ' -# if data['date_from'] and data['date_to']: -# date_from = data['date_from'] -# date_to = data['date_to'] -# return { -# 'date_from': date_from, -# 'date_to': date_to, -# 'docs': record, -# } -# # Invoice -# class Invoice(models.AbstractModel): -# _name = 'report.odex_fleet.invoice_report_pdf' -# -# def get_result(self, data=None): -# form = data -# domain = [('invoice_id','!=', False)] -# if form['vehicle_ids']: -# domain += [('vehicle_id','in',form['vehicle_ids'])] -# date = 0 -# if form['date_from'] and form['date_to']: -# date = fields.Datetime.from_string(form['date_to']) - fields.Datetime.from_string(form['date_from']) -# date = date.days -# domain += [('date', '>=', form['date_from']), ('date', '<=', form['date_to'])] -# service = self.env['fleet.vehicle.log.fuel'].sudo().search(domain) -# # service_types = self.env['fleet.service.type'].browse(form['service_ids']) if form['service_ids'] else service.mapped('vehicle_id.fleet_type_id') -# vehicle_ids = self.env['fleet.vehicle'].browse(form['vehicle_ids']) -# li = [] -# print("IIIIIIIIIIIIII",date) -# for v in vehicle_ids: -# b_service = service.filtered(lambda r:r.vehicle_id == v) -# invoice = b_service.mapped('invoice_id') -# if invoice: -# rec = {} -# rec['service'] = "Fuel" -# rec['car'] = v.name -# rec['driver'] = v.employee_id.name -# rec['type'] = v.fleet_type_id.name -# l = [] -# total = 0 -# for t in invoice: -# value = {} -# value['date'] = t.date_invoice -# value['number'] = t.number -# value['amount'] = t.amount_total -# total += t.amount_total -# l.append(value) -# rec['data'] = l -# rec['total'] = total -# rec['date'] = date -# liter = round(sum(b_service.mapped('liter'))/date,2) -# rec['liter'] = liter -# rec['liter_price'] = round(total/liter,2) -# li.append(rec) -# return li -# -# -# -# @api.model -# def _get_report_values(self, docids, data=None): -# record = self.get_result(data) -# print("OOOOOOOOOOOOOOOOOO",record) -# date_to, date_from = ' / ', ' / ' -# if data['date_from'] and data['date_to']: -# date_from = data['date_from'] -# date_to = data['date_to'] -# return { -# 'date_from': date_from, -# 'date_to': date_to, -# 'docs': record, -# } \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/reports/fleet_template.xml b/odex25_fleet/odex_fleet/reports/fleet_template.xml deleted file mode 100644 index b56d57bb2..000000000 --- a/odex25_fleet/odex_fleet/reports/fleet_template.xml +++ /dev/null @@ -1,1124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/odex25_fleet/odex_fleet/reports/maintains_purchase_request.xml b/odex25_fleet/odex_fleet/reports/maintains_purchase_request.xml deleted file mode 100644 index 53883af97..000000000 --- a/odex25_fleet/odex_fleet/reports/maintains_purchase_request.xml +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/reports/maintains_report.py b/odex25_fleet/odex_fleet/reports/maintains_report.py deleted file mode 100644 index bf761a28c..000000000 --- a/odex25_fleet/odex_fleet/reports/maintains_report.py +++ /dev/null @@ -1,43 +0,0 @@ -# -*- coding: utf-8 -*- - -import io -import base64 -from odoo import api, fields, models, tools, _ -from odoo.exceptions import ValidationError, UserError - -from datetime import datetime,timedelta,date -from odoo.tools import DEFAULT_SERVER_DATE_FORMAT - -class FleetMaintainsReport(models.AbstractModel): - _name = 'report.odex_fleet.maintains_report_pdf' - _description = 'Report Mainatains' - - def get_result(self, data=None): - form = data - domain = [] - if form['branch_ids']: - domain += [('branch_id','in',form['branch_ids'])] - if form['report_type']: - domain += [('state','in',['draft','confirm'])] if form['report_type'] == 'to_maintains' else [('state','in',['approve','paid'])] - if form['date_from'] and form['date_to']: - domain += [('date', '>=', form['date_from']), ('date', '<=', form['date_to'])] - if form['department_ids']: - domain += [('vehicle_id.department_id.name', 'in', form['department_ids'])] - request = self.env['fleet.maintenance'].sudo().search(domain,order="id desc") - return request - - - @api.model - def _get_report_values(self, docids, data=None): - record = self.get_result(data) - date_to, date_from = ' / ', ' / ' - if data['date_from'] and data['date_to']: - date_from = data['date_from'] - date_to = data['date_to'] - return { - 'date_from': date_from, - 'date_to': date_to, - 'report_type': data['report_type'], - 'docs': record, - } - diff --git a/odex25_fleet/odex_fleet/reports/maintains_template.xml b/odex25_fleet/odex_fleet/reports/maintains_template.xml deleted file mode 100644 index 3d4a5fe88..000000000 --- a/odex25_fleet/odex_fleet/reports/maintains_template.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/reports/renew_report.py b/odex25_fleet/odex_fleet/reports/renew_report.py deleted file mode 100644 index 0df2344d5..000000000 --- a/odex25_fleet/odex_fleet/reports/renew_report.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- coding: utf-8 -*- - -import io -import base64 -from odoo import api, fields, models, tools, _ -from odoo.exceptions import ValidationError, UserError - -from datetime import datetime,timedelta,date -from odoo.tools import DEFAULT_SERVER_DATE_FORMAT -import arabic_reshaper -from bidi.algorithm import get_display -import io -import base64 - -# Form Renew -# renew -class Renew(models.AbstractModel): - _name = 'report.odex_fleet.renew_report_pdf' - _description = 'Report Renew' - - def get_result(self, data=None): - form = data - domain = [('state','=', 'approve')] - if form['date_from'] and form['date_to']: - domain += [('date', '>=', form['date_from']), ('date', '<=', form['date_to'])] - form = self.env['form.renew'].sudo().search(domain) - return form - - - @api.model - def _get_report_values(self, docids, data=None): - record = self.get_result(data) - date_to, date_from = ' / ', ' / ' - if data['date_from'] and data['date_to']: - date_from = data['date_from'] - date_to = data['date_to'] - return { - 'date_from': date_from, - 'date_to': date_to, - 'docs': record, - } -# To renew -class ToRenew(models.AbstractModel): - _name = 'report.odex_fleet.to_renew_report_pdf' - _description = 'Report To Renew' - - def get_result(self, data=None): - form = data - domain = [] - if form['date_from'] and form['date_to']: - domain = [('form_end', '>=', form['date_from']), ('form_end', '<=', form['date_to'])] - form = self.env['fleet.vehicle'].sudo().search(domain) - return form - - - @api.model - def _get_report_values(self, docids, data=None): - record = self.get_result(data) - date_to, date_from = ' / ', ' / ' - if data['date_from'] and data['date_to']: - date_from = data['date_from'] - date_to = data['date_to'] - return { - 'date_from': date_from, - 'date_to': date_to, - 'docs': record, - } \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/reports/renew_template.xml b/odex25_fleet/odex_fleet/reports/renew_template.xml deleted file mode 100644 index 0d85f25d4..000000000 --- a/odex25_fleet/odex_fleet/reports/renew_template.xml +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/reports/service_purchase_request.xml b/odex25_fleet/odex_fleet/reports/service_purchase_request.xml deleted file mode 100644 index ea6188d5d..000000000 --- a/odex25_fleet/odex_fleet/reports/service_purchase_request.xml +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/reports/service_report.py b/odex25_fleet/odex_fleet/reports/service_report.py deleted file mode 100644 index 199fa781b..000000000 --- a/odex25_fleet/odex_fleet/reports/service_report.py +++ /dev/null @@ -1,259 +0,0 @@ -# -*- coding: utf-8 -*- - -import io -import base64 -from odoo import api, fields, models, tools, _ -from odoo.exceptions import ValidationError, UserError - -from datetime import datetime,timedelta,date -from odoo.tools import DEFAULT_SERVER_DATE_FORMAT -import arabic_reshaper -from bidi.algorithm import get_display -import io -import base64 - -# consumption -class FleetConsumptionReport(models.AbstractModel): - _name = 'report.odex_fleet.car_consumption_cost_report_pdf' - _description = 'Report Consumption' - - def get_result(self, data=None): - form = data - domain = [] - if form['vehicle_ids']: - domain += [('vehicle_id','in',form['vehicle_ids'])] - if form['type_ids']: - domain += [('vehicle_id.fleet_type_id','in',form['type_ids'])] - if form['branch_ids']: - domain += [('branch_id','in',form['branch_ids'])] - if form['date_from'] and form['date_to']: - domain += [('date', '>=', form['date_from']), ('date', '<=', form['date_to'])] - if form['department_ids']: - domain += [('vehicle_id.department_id.name', 'in', form['department_ids'])] - man = self.env['fleet.maintenance'].sudo().search(domain) - domain += [('invoice_id','!=', False)] - service = self.env['fleet.vehicle.log.services'].sudo().search(domain) - fuel = self.env['fleet.vehicle.log.fuel'].sudo().search(domain) - branch = self.env['res.branch'].browse(form['branch_ids']) if form['branch_ids'] else set(service.mapped('branch_id') + fuel.mapped('branch_id')+man.mapped('branch_id')+ man.mapped('branch_id')+man.mapped('branch_id')) - types = self.env['fleet.type'].browse(form['type_ids']) if form['type_ids'] else set(service.mapped('vehicle_id.fleet_type_id') + fuel.mapped('vehicle_id.fleet_type_id')+man.mapped('vehicle_id.fleet_type_id')) - data = {} - li = [] - for b in branch: - b_service = service.filtered(lambda r:r.branch_id == b) - b_fuel = fuel.filtered(lambda r:r.branch_id == b) - b_man = man.filtered(lambda r: r.branch_id == b) - service_total = sum (b_service.mapped('amount')) - fuel_total = sum (b_fuel.mapped('amount')) - man_total = sum (b_man.mapped('total_cost')) - totals = service_total+fuel_total+man_total - service_total_per =service_total/totals*100 if totals>0 else 0 - fuel_total_per =fuel_total/totals*100 if totals>0 else 0 - man_total_per =man_total/totals*100 if totals>0 else 0 - total_per = man_total_per+fuel_total_per+service_total_per - total_values = [[service_total,fuel_total,man_total,totals],[service_total_per,fuel_total_per,man_total_per,total_per]] - vehicle_ids = list(set(b_service.mapped('vehicle_id') + b_fuel.mapped('vehicle_id') + b_man.mapped('vehicle_id'))) - rec = [] - for t in types: - l =[] - value = {} - fuel_total_b = sum(b_fuel.filtered(lambda r: r.vehicle_id.fleet_type_id == t).mapped('amount')) - man_total_b = sum(b_man.filtered(lambda r: r.vehicle_id.fleet_type_id == t).mapped('total_cost')) - service_total_b = sum(b_service.filtered(lambda r: r.vehicle_id.fleet_type_id == t).mapped('amount')) - total_total = fuel_total_b+man_total_b+service_total_b - total_total_per = 0 - for c in vehicle_ids: - if c.fleet_type_id == t: - z = {} - z['name'] = c.name - z['model'] = c.model_id.name - z['driver'] = c.employee_id.name - z['plate'] = c.license_plate - z['job'] = c.employee_id.job_id.name - z['fuel'] = sum(b_fuel.filtered(lambda r:r.vehicle_id == c and r.vehicle_id.fleet_type_id == t).mapped('amount')) - z['man'] = sum(b_man.filtered(lambda r:r.vehicle_id == c and r.vehicle_id.fleet_type_id == t).mapped('total_cost')) - z['service'] = sum(b_service.filtered(lambda r:r.vehicle_id == c and r.vehicle_id.fleet_type_id == t).mapped('amount')) - z['total'] = z['fuel'] + z['man'] + z['service'] - z['all_tot_per'] = z['total']/total_total*100 if total_total>0 else 0 - total_total_per += z['all_tot_per'] - l.append(z) - value['data'] = sorted(l, key=lambda d: d['total'], reverse=True) - value['type'] = t.name - value['total'] = [fuel_total_b,service_total_b,man_total_b,total_total,total_total_per] - rec.append(value) - li.append({'branch':b.name,'data':rec,'total':total_values}) - return li - - - @api.model - def _get_report_values(self, docids, data=None): - record = self.get_result(data) - date_to, date_from = ' / ', ' / ' - if data['date_from'] and data['date_to']: - date_from = data['date_from'] - date_to = data['date_to'] - return { - 'date_from': date_from, - 'date_to': date_to, - 'docs': record, - } -# Service -class AllStateServiceReport(models.AbstractModel): - _name = 'report.odex_fleet.service_report_pdf' - _description = 'Report Fleet Service' - - def get_result(self, data=None): - form = data - fleet_fuel = self.env['fleet.vehicle.log.fuel'].sudo().search([], limit=1) - if fleet_fuel.integration_with_accounting == True: - domain = [('invoice_id', '!=', False)] - elif fleet_fuel.integration_with_accounting == False: - domain = [] - if form['state_ids']: - domain += [('branch_id.state_id','in',form['state_ids'])] - if form['type_ids']: - domain += [('vehicle_id.fleet_type_id','in',form['type_ids'])] - if form['date_from'] and form['date_to']: - domain += [('date', '>=', form['date_from']), ('date', '<=', form['date_to'])] - if form['state_ids']: - domain += [('branch_id.state_id','in',form['state_ids'])] - if form['cost_subtype_ids']: - print("==================",form['cost_subtype_ids']) - domain += [('cost_subtype_id','in',form['cost_subtype_ids'])] - if form['department_ids']: - domain += [('vehicle_id.department_id.name', 'in', form['department_ids'])] - - service = self.env['fleet.vehicle.log.services'].sudo().search(domain) - print("=================",service) - branch = service.mapped('branch_id') - state = self.env['res.country.state'].browse(form['state_ids']) if form['state_ids'] else service.mapped('branch_id.state_id') - last = [] - for s in state: - data = {} - li = [] - for b in branch: - if b.state_id == s: - b_service = service.filtered(lambda r:r.branch_id == b) - rec = [] - for z in b_service: - - for t in z.cost_ids: - value = {} - value['name'] = z.vehicle_id.employee_id.name - value['cost'] = t.total - value['service'] = t.cost_subtype_id.name - value['vehicle'] = z.vehicle_id.fleet_type_id.name - value['license_number'] = z.vehicle_id.license_plate - value['date'] = z.date - rec.append(value) - li.append({'branch':b.name,'data':rec,'total':sum(b_service.mapped('amount')) or 0}) - data['branch'] = li - data['state'] = s.name - last.append(data) - return last - - - @api.model - def _get_report_values(self, docids, data=None): - record = self.get_result(data) - date_to, date_from = ' / ', ' / ' - if data['date_from'] and data['date_to']: - date_from = data['date_from'] - date_to = data['date_to'] - return { - 'date_from': date_from, - 'date_to': date_to, - 'docs': record, - } - # Invoice -class Invoice(models.AbstractModel): - _name = 'report.odex_fleet.invoice_report_pdf' - _description = 'Report Invoice' - - def get_result(self, data=None): - form = data - domain = [] - fleet_fuel = self.env['fleet.vehicle.log.fuel'].sudo().search([],limit=1) - if fleet_fuel.integration_with_accounting == True: - domain = [('invoice_id','!=', False)] - elif fleet_fuel.integration_with_accounting == False: - domain = [] - if form['vehicle_ids']: - domain += [('vehicle_id','in',form['vehicle_ids'])] - date = 0 - if form['date_from'] and form['date_to']: - date = fields.Datetime.from_string(form['date_to']) - fields.Datetime.from_string(form['date_from']) - date = date.days - domain += [('date', '>=', form['date_from']), ('date', '<=', form['date_to'])] - service = self.env['fleet.vehicle.log.fuel'].sudo().search(domain) - # service_types = self.env['fleet.service.type'].browse(form['service_ids']) if form['service_ids'] else service.mapped('vehicle_id.fleet_type_id') - vehicle_ids = self.env['fleet.vehicle'].browse(form['vehicle_ids']) if form['vehicle_ids'] else service.mapped('vehicle_id') - li = [] - for v in vehicle_ids: - b_service = service.filtered(lambda r:r.vehicle_id == v) - if fleet_fuel.integration_with_accounting == True: - invoice = b_service.mapped('invoice_id') - if invoice: - rec = {} - rec['service'] = "Fuel" - rec['car'] = v.name - rec['driver'] = v.employee_id.name - rec['type'] = v.fleet_type_id.name - price = v.fuel_type.price - print("fffffffff",price) - l = [] - total = 0 - for t in invoice: - value = {} - value['date'] = t.invoice_date - value['number'] = t.ref - value['amount'] = t.amount_total - total += t.amount_total - l.append(value) - rec['data'] = l - rec['total'] = total - rec['date'] = date - liter = round(total/date if date>0 else 0,2) - rec['liter'] = liter - rec['liter_price'] = round(liter/price if price>0 else 0,2) - # rec['liter_price'] = round(total/liter if liter>0 else 0,2) - li.append(rec) - else: - rec = {} - rec['service'] = "Fuel" - rec['car'] = v.name - rec['driver'] = v.employee_id.name - rec['type'] = v.fleet_type_id.name - price = v.fuel_type.price - l = [] - total = 0 - for b in b_service: - value = {} - value['date'] = b.date - value['amount'] = b.amount - total += b.amount - l.append(value) - rec['data'] = l - rec['total'] = total - rec['date'] = date - liter = round(total / date if date > 0 else 0, 2) - rec['liter'] = liter - rec['liter_price'] = round(liter / price if price > 0 else 0, 2) - # rec['liter_price'] = round(total/liter if liter>0 else 0,2) - li.append(rec) - return li - - - - @api.model - def _get_report_values(self, docids, data=None): - record = self.get_result(data) - print("OOOOOOOOOOOOOOOOOO",record) - date_to, date_from = ' / ', ' / ' - if data['date_from'] and data['date_to']: - date_from = data['date_from'] - date_to = data['date_to'] - return { - 'date_from': date_from, - 'date_to': date_to, - 'docs': record, - } \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/reports/service_template.xml b/odex25_fleet/odex_fleet/reports/service_template.xml deleted file mode 100644 index 4fbc70bfe..000000000 --- a/odex25_fleet/odex_fleet/reports/service_template.xml +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/security/ir.model.access.csv b/odex25_fleet/odex_fleet/security/ir.model.access.csv deleted file mode 100644 index 494ad18a0..000000000 --- a/odex25_fleet/odex_fleet/security/ir.model.access.csv +++ /dev/null @@ -1,93 +0,0 @@ -id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink -fleet_vehicle_delegation_access_right,fleet_delegation_model_access_right,model_vehicle_delegation,fleet.fleet_group_user,1,0,0,0 -fleet_vehicle_delegation_access_right_super,fleet_delegation_model_access_right_hr_office,model_vehicle_delegation,fleet_group_supervisor,1,0,1,0 -fleet_vehicle_delegation_access_right_hr_office,fleet_delegation_model_access_right_hr_office,model_vehicle_delegation,fleet_group_hr_officer,1,0,1,0 -fleet_vehicle_delegation_access_right_hr_man,fleet_delegation_model_access_right_hr_man,model_vehicle_delegation,fleet_group_hr,1,1,1,1 -fleet_vehicle_delegation_access_right_vice,fleet_delegation_model_access_right_vice,model_vehicle_delegation,fleet_group_vice_gm,1,1,0,1 -fleet_vehicle_form_access_right_emp,fleet_form_model_access_emp,model_form_renew,fleet.fleet_group_user,1,0,1,0 -fleet_vehicle_form_access_right_emp_super,fleet_form_model_access_emp_super,model_form_renew,fleet_group_supervisor,1,1,1,1 -fleet_vehicle_form_access_right_acc,fleet_form_model_access_acc,model_form_renew,fleet_group_account,1,1,0,1 -fleet_vehicle_acc_access_right_acc,fleet_acc_model_access_acc,model_fleet_account_config,fleet_group_account,1,1,1,1 -fleet_vehicle_acc_access_right_emp,fleet_acc_model_access_emp,model_fleet_account_config,fleet.fleet_group_user,1,0,1,0 -fleet_vehicle_type_access_right_emp,fleet_type_model_access_emp,model_fleet_type,fleet.fleet_group_user,1,0,1,0 -fleet_vehicle_type_access_right_super,fleet_type_model_access_super,model_fleet_type,fleet_group_supervisor,1,1,1,1 -fleet_vehicle_price_access_right_emp,fleet_price_model_access_emp,model_fuel_price,fleet.fleet_group_user,1,0,0,0 -fleet_vehicle_price_access_right_super,fleet_price_model_access_super,model_fuel_price,fleet_group_supervisor,1,0,1,0 -fleet_vehicle_price_access_right_acc,fleet_price_model_access_super,model_fuel_price,fleet_group_account,1,1,1,1 -fleet_vehicle_state_access_right_super,fleet_state_model_access_super,base.model_res_country_state,fleet_group_supervisor,1,1,1,1 -fleet_vehicle_state_access_right_hr,fleet_state_model_access_hr,base.model_res_country_state,fleet_group_hr_officer,1,0,1,0 -fleet_vehicle_state_access_right_hr_man,fleet_state_model_access_hr_man,base.model_res_country_state,fleet_group_hr,1,1,1,1 -fleet_vehicle_branch_access_right_emp,fleet_branch_model_access_emp,branch.model_res_branch,fleet.fleet_group_user,1,0,1,0 -fleet_vehicle_branch_access_right_super,fleet_branch_model_access_super,branch.model_res_branch,fleet_group_supervisor,1,1,1,1 -fleet_vehicle_owner_access_right_emp,fleet_owner_model_access_emp,base.model_res_partner,fleet.fleet_group_user,1,0,1,0 -fleet_vehicle_owner_access_right_super,fleet_owner_model_access_super,base.model_res_partner,fleet_group_supervisor,1,1,1,1 -fleet_vehicle_mainten_access_right_emp,fleet_mainten_model_access_emp,model_fleet_maintenance,fleet.fleet_group_user,1,0,0,0 -fleet_vehicle_mainten_access_right_vice,fleet_mainten_model_access_vice,model_fleet_maintenance,fleet_group_vice_gm,1,0,0,0 -fleet_vehicle_mainten_access_right_hr,fleet_mainten_model_access_super,model_fleet_maintenance,fleet_group_hr,1,0,0,0 -fleet_vehicle_mainten_access_right_super,fleet_mainten_model_access_acc,model_fleet_maintenance,fleet_group_supervisor,1,1,1,0 -fleet_vehicle_mainten_access_right_acc,fleet_mainten_model_access_acc,model_fleet_maintenance,fleet_group_account,1,1,1,1 -fleet.fleet_vehicle_model_brand_access_right_user,fleet_vehicle_model_brand_access_right_user,fleet.model_fleet_vehicle_model_brand,fleet.fleet_group_user,1,1,1,0 -fleet_vehicle_model_brand_access_right_super,fleet_vehicle_model_brand_access_right_super,fleet.model_fleet_vehicle_model_brand,fleet_group_supervisor,1,1,1,1 -fleet.fleet_vehicle_model_access_right_user,fleet_vehicle_model_access_right,fleet.model_fleet_vehicle_model,fleet.fleet_group_user,1,1,1,0 -fleet_vehicle_model_access_right_user_super,fleet_vehicle_model_access_right_super,fleet.model_fleet_vehicle_model,fleet_group_supervisor,1,1,1,1 -fleet.fleet_service_type_access_right_user,fleet_service_type_access_right,fleet.model_fleet_service_type,fleet.fleet_group_user,1,0,1,0 -fleet_service_type_access_right_super,fleet_service_type_access_right_super,fleet.model_fleet_service_type,fleet_group_supervisor,1,1,1,1 -fleet_vehicle_tag_access_right_super,fleet_vehicle_tag_access_right_super,fleet.model_fleet_vehicle_tag,fleet_group_supervisor,1,1,1,1 -fleet.fleet_vehicle_tag_access_right_user,fleet_vehicle_tag_access_right_user,fleet.model_fleet_vehicle_tag,fleet.fleet_group_user,1,0,1,0 -fleet.fleet_vehicle_access_right_user,fleet_vehicle_access_right,fleet.model_fleet_vehicle,fleet.fleet_group_user,1,0,1,0 -fleet_vehicle_access_right_super,fleet_vehicle_access_right_super,fleet.model_fleet_vehicle,fleet_group_supervisor,1,1,1,1 -fleet_vehicle_access_installment_right_user,fleet_vehicle_installment_access_right,model_insurance_installment,fleet.fleet_group_user,1,0,1,0 -fleet_vehicle_access_installment_right_super,fleet_vehicle_installment_access_right_super,model_insurance_installment,fleet_group_supervisor,1,1,1,1 -fleet.fleet_vehicle_odometer_access_right,fleet_vehicle_odometer_access_right,fleet.model_fleet_vehicle_odometer,fleet.fleet_group_user,1,0,1,0 -fleet_vehicle_odometer_access_right_super,fleet_vehicle_odometer_access_right_super,fleet.model_fleet_vehicle_odometer,fleet_group_supervisor,1,1,1,1 -access_fleet_vehicle_cost_user,access_fleet_vehicle_cost,model_fleet_vehicle_cost,fleet.fleet_group_user,1,0,1,0 -access_fleet_vehicle_cost_super,access_fleet_cost_vehicle_super,model_fleet_vehicle_cost,fleet_group_supervisor,1,1,1,0 -access_fleet_vehicle_cost_acc,access_fleet_cost_vehicle_acc,model_fleet_vehicle_cost,fleet_group_account,1,1,1,1 -fleet_vehicle_log_fuel_access_right,fleet_vehicle_log_fuel_access_right,model_fleet_vehicle_log_fuel,fleet.fleet_group_user,1,0,0,0 -fleet_vehicle_log_fuel_access_right_super,fleet_vehicle_log_fuel_access_right_super,model_fleet_vehicle_log_fuel,fleet_group_supervisor,1,0,1,0 -fleet_vehicle_log_fuel_access_right_acc,fleet_vehicle_log_fuel_access_right_acc,model_fleet_vehicle_log_fuel,fleet_group_account,1,1,1,1 -fleet.fleet_vehicle_log_services_access_right_user,fleet_vehicle_log_services_access_right_user,fleet.model_fleet_vehicle_log_services,fleet.fleet_group_user,1,0,0,0 -fleet_vehicle_log_services_access_right_super,fleet_vehicle_log_services_access_right_super,fleet.model_fleet_vehicle_log_services,fleet_group_supervisor,1,0,1,0 -fleet_vehicle_log_services_access_right_acc,fleet_vehicle_log_services_access_right_acc,fleet.model_fleet_vehicle_log_services,fleet_group_account,1,1,1,1 -fleet.fleet_vehicle_log_contract_access_right_user,fleet_vehicle_log_contract_access_right,fleet.model_fleet_vehicle_log_contract,fleet.fleet_group_user,1,0,1,0 -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,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 -fleet_vehicle_access_right_hr_model,fleet_vehicle_access_right_hr,fleet.model_fleet_vehicle_model,fleet_group_hr_officer,1,1,0,0 -fleet_vehicle_access_right_acc_model,fleet_vehicle_access_right_hr,fleet.model_fleet_vehicle_model,fleet_group_account,1,1,0,0 -fleet_vehicle_access_right_brand,fleet_vehicle_access_right_hr,fleet.model_fleet_vehicle_model_brand,fleet_group_hr_officer,1,1,0,0 -fleet_vehicle_access_right_brand_acc,fleet_vehicle_access_right_hr,fleet.model_fleet_vehicle_model_brand,fleet_group_account,1,1,0,0 -fleet_service_type_access_right_hr,fleet_service_type_access_right,fleet.model_fleet_service_type,fleet_group_hr_officer,1,0,1,0 -fleet_service_type_access_right_acc,fleet_service_type_access_right,fleet.model_fleet_service_type,fleet_group_account,1,0,0,0 -fleet_odometer_access_right_acc,fleet_service_type_access_right,fleet.model_fleet_vehicle_odometer,fleet_group_account,1,0,1,0 -access_fleet_vehicle_cost_hr,access_fleet_vehicle_cost,model_fleet_vehicle_cost,fleet_group_hr_officer,1,1,1,0 -fleet.fleet_vehicle_state_access_right_user,fleet_vehicle_state_access_right,fleet.model_fleet_vehicle_state,,1,1,1,0 -fleet.fleet_vehicle_hr_access_right_user,fleet_vehicle_state_access_right,hr.model_hr_employee,fleet.fleet_group_user,1,1,0,0 -fleet_vehicle_hr_access_right_hr,fleet_vehicle_state_access_right,hr.model_hr_employee,fleet_group_hr_officer,1,1,0,0 - -fleet_car_category_access_right_emp,car_category_model_access_emp,model_car_category,fleet.fleet_group_user,1,0,1,0 -fleet_car_category_access_right_super,car_category_model_access_super,model_car_category,fleet_group_supervisor,1,1,1,1 -fleet_car_category_access_right_hr,car_category_access_right,model_car_category,fleet_group_hr_officer,1,0,1,0 -fleet_car_category_access_right_acc,car_category_access_right,model_car_category,fleet_group_account,1,0,0,0 - -fleet_transmission_setting_access_right_emp,transmission_setting_model_access_emp,model_transmission_setting,fleet.fleet_group_user,1,0,1,0 -fleet_transmission_setting_right_super,transmission_setting_model_access_super,model_transmission_setting,fleet_group_supervisor,1,1,1,1 -fleet_transmission_setting_access_right_hr,transmission_setting_access_right,model_transmission_setting,fleet_group_hr_officer,1,0,1,0 -fleet_transmission_setting_access_right_acc,transmission_setting_access_right,model_transmission_setting,fleet_group_account,1,0,0,0 - -fleet_manufacture_company_access_right_emp,manufacture_company_model_access_emp,model_manufacture_company,fleet.fleet_group_user,1,0,1,0 -fleet_manufacture_company_access_right_super,manufacture_company_model_access_super,model_manufacture_company,fleet_group_supervisor,1,1,1,1 -fleet_manufacture_company_access_right_hr,fleet_manufacture_company_access_right,model_manufacture_company,fleet_group_hr_officer,1,0,1,0 -fleet_manufacture_company_access_right_acc,fleet_manufacture_company_access_right,model_manufacture_company,fleet_group_account,1,0,0,0 -access_fleet_wiz,fleet_wiz,model_fleet_wiz,,1,1,1,1 -access_reject_reason_fleet_wiz,reject_reason_fleet_wiz,model_reject_reason_fleet_wiz,,1,1,1,1 -access_reject_reason_infraction_wiz,reject_reason_infraction_wiz,model_reject_reason_infraction_wiz,,1,1,1,1 -access_insurance_companies,insurance_companies,model_insurance_companies,,1,1,1,1 -access_vehicle_infraction,vehicle_infraction,model_vehicle_infraction,,1,1,1,1 -access_driver_department,driver_department,model_driver_department,,1,1,1,1 -access_fleet_vehicle_assignation_log_fleet_group_user,fleet_vehicle_assignation_log fleet_group_user,fleet.model_fleet_vehicle_assignation_log,base.group_user,1,1,1,1 diff --git a/odex25_fleet/odex_fleet/security/security_view.xml b/odex25_fleet/odex_fleet/security/security_view.xml deleted file mode 100644 index ddb581d35..000000000 --- a/odex25_fleet/odex_fleet/security/security_view.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - Fleet Supervisor - - - - - Manager - - - - - - Hr Officer - - - - - Hr Manager - - - - - Fleet Account Manager - - - - - - GM Vice - - - - - - Set To Draft - - - - GM - - - - - - Fleet Hr - - [('driver','=',True)] - - - - \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/static/css/chartjs/Chart.css b/odex25_fleet/odex_fleet/static/css/chartjs/Chart.css deleted file mode 100644 index 5e749593e..000000000 --- a/odex25_fleet/odex_fleet/static/css/chartjs/Chart.css +++ /dev/null @@ -1,47 +0,0 @@ -/* - * DOM element rendering detection - * https://davidwalsh.name/detect-node-insertion - */ -@keyframes chartjs-render-animation { - from { opacity: 0.99; } - to { opacity: 1; } -} - -.chartjs-render-monitor { - animation: chartjs-render-animation 0.001s; -} - -/* - * DOM element resizing detection - * https://github.com/marcj/css-element-queries - */ -.chartjs-size-monitor, -.chartjs-size-monitor-expand, -.chartjs-size-monitor-shrink { - position: absolute; - direction: ltr; - left: 0; - top: 0; - right: 0; - bottom: 0; - overflow: hidden; - pointer-events: none; - visibility: hidden; - z-index: -1; -} - -.chartjs-size-monitor-expand > div { - position: absolute; - width: 1000000px; - height: 1000000px; - left: 0; - top: 0; -} - -.chartjs-size-monitor-shrink > div { - position: absolute; - width: 200%; - height: 200%; - left: 0; - top: 0; -} diff --git a/odex25_fleet/odex_fleet/static/css/chartjs/Chart.min.css b/odex25_fleet/odex_fleet/static/css/chartjs/Chart.min.css deleted file mode 100644 index 9dc5ac2e5..000000000 --- a/odex25_fleet/odex_fleet/static/css/chartjs/Chart.min.css +++ /dev/null @@ -1 +0,0 @@ -@keyframes chartjs-render-animation{from{opacity:.99}to{opacity:1}}.chartjs-render-monitor{animation:chartjs-render-animation 1ms}.chartjs-size-monitor,.chartjs-size-monitor-expand,.chartjs-size-monitor-shrink{position:absolute;direction:ltr;left:0;top:0;right:0;bottom:0;overflow:hidden;pointer-events:none;visibility:hidden;z-index:-1}.chartjs-size-monitor-expand>div{position:absolute;width:1000000px;height:1000000px;left:0;top:0}.chartjs-size-monitor-shrink>div{position:absolute;width:200%;height:200%;left:0;top:0} \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/views/account_config_view.xml b/odex25_fleet/odex_fleet/views/account_config_view.xml deleted file mode 100644 index 8e69ce875..000000000 --- a/odex25_fleet/odex_fleet/views/account_config_view.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - odex.fleet.account.form - fleet.account.config - -
-
-
- -
-
- - - - - -
-
-
-
- - odex.fleet.account.tree - fleet.account.config - - - - - - - - - - odex.fleet.account.serach - fleet.account.config - - - - - - - - - - Fleet Account Settings - fleet.account.config - - tree,form - - - -
-
\ No newline at end of file diff --git a/odex25_fleet/odex_fleet/views/config_view.xml b/odex25_fleet/odex_fleet/views/config_view.xml deleted file mode 100644 index cf2ceeae1..000000000 --- a/odex25_fleet/odex_fleet/views/config_view.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - odex.res.config.settings.view.form - res.config.settings - - - -
-

Fleet Notification Before

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
- -
-
-
-
\ No newline at end of file diff --git a/odex25_fleet/odex_fleet/views/driver_departments.xml b/odex25_fleet/odex_fleet/views/driver_departments.xml deleted file mode 100644 index ee5b98024..000000000 --- a/odex25_fleet/odex_fleet/views/driver_departments.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - driver.department.form - driver.department - -
- - - - - - - -
-
-
- - driver.department.tree - driver.department - - - - - - - - - - - driver.department.search - driver.department - - - - - - - - - - Driver Department - driver.department - tree,form - -

- Click to create a new Department. -

-
-
- - -
-
\ No newline at end of file diff --git a/odex25_fleet/odex_fleet/views/driver_view.xml b/odex25_fleet/odex_fleet/views/driver_view.xml deleted file mode 100644 index 88b31eaac..000000000 --- a/odex25_fleet/odex_fleet/views/driver_view.xml +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - hr.drive.inherit - hr.employee - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - res.hr.kanban.inherit - hr.employee - - - - - - - - - - -
  • License Type - -
  • -
  • License Number - -
  • -
  • License Start - -
  • -
  • License End - -
  • -
  • Delegation Start Date - -
  • -
  • Delegation End Date - -
  • -
  • Vehicle - -
  • -
    - -
    - -
    -
    - - - - Drivers - hr.employee - - kanban,tree,form - [('driver','=',True)] - {'default_driver':True} - - - -
    -
    diff --git a/odex25_fleet/odex_fleet/views/infractions.xml b/odex25_fleet/odex_fleet/views/infractions.xml deleted file mode 100644 index cfe4fcbf0..000000000 --- a/odex25_fleet/odex_fleet/views/infractions.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - vehicle.infraction.form - vehicle.infraction - -
    -
    -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    - - vehicle.infraction.tree - vehicle.infraction - - - - - - - - - - - - vehicle.infraction.search - vehicle.infraction - - - - - - - - - - - - - - - - - Vehicle Infractions - vehicle.infraction - tree,form - -

    - Click to create a new Infraction. -

    -
    -
    - - -
    -
    \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/views/insurance_companies.xml b/odex25_fleet/odex_fleet/views/insurance_companies.xml deleted file mode 100644 index e61e304d0..000000000 --- a/odex25_fleet/odex_fleet/views/insurance_companies.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - insurance.companies.form - insurance.companies - -
    - - - - - - - -
    -
    -
    - - insurance.companies.tree - insurance.companies - - - - - - - - - Form Insurance Companies - insurance.companies - tree,form - -

    - Click to create a new Form Renew. -

    - -
    -
    - -
    -
    diff --git a/odex25_fleet/odex_fleet/views/mail_template.xml b/odex25_fleet/odex_fleet/views/mail_template.xml deleted file mode 100644 index 4b2bfdcf8..000000000 --- a/odex25_fleet/odex_fleet/views/mail_template.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - Driver Expiration e-mail template - Driver License - - ${object.email} - ${object.lang} - - - - عزيزي العميل

    - نود تذكيركم بقرب انتهاء رخصة السائق ${(object.name)} رقم ${(object.license_number)} القائد ${(object.employee_id.name)} والتي تنتهي بتاريخ ${(object.license_end)} - -

    - ]]> -
    -
    - - - Delegation Expiration e-mail template - Delegation End - - ${object.email} - ${object.lang} - - - - عزيزي العميل

    - نود تذكيركم بقرب انتهاء تفويض سيارة رقم ${(object.vehicle_id.license_plate)} القائد ${(object.employee_id.name)} النوع ${(object.vehicle_id.fleet_type_id.name)} والتي تنتهي بتاريخ ${(object.end_date)} - -

    - ]]> -
    -
    - - - Expiration e-mail template - Car License - - ${object.driver_id.email} - ${object.lang} - - - - عزيزي العميل

    - نود تذكيركم بقرب انتهاء رخصة السير للسيارة رقم ${(object.license_plate)} القائد ${(object.employee_id.name)} النوع ${(object.fleet_type_id.name)} والتي تنتهي بتاريخ ${(object.license_end)} - -

    - ]]> -
    -
    - - - Form Expiration e-mail template - Car Form - - ${object.driver_id.email} - ${object.lang} - - - - عزيزي العميل

    - نود تذكيركم بقرب انتهاء الاستمارة للسيارة رقم ${(object.license_plate)} القائد ${(object.employee_id.name)} النوع ${(object.fleet_type_id.name)} والتي تنتهي بتاريخ ${(object.form_end)} - -

    - ]]> -
    -
    - - - Check Expiration e-mail template - Car Check - - ${object.driver_id.email} - ${object.lang} - - - - عزيزي العميل

    - نود تذكيركم بقرب موعد الفحص للسيارة رقم ${(object.license_plate)} القائد ${(object.employee_id.name)} النوع ${(object.fleet_type_id.name)} والتي تنتهي بتاريخ ${(object.check_end)} - -

    - ]]> -
    -
    - - - - - Insurance Expiration e-mail template - Car Insurance - - ${object.driver_id.email} - ${object.lang} - - - - عزيزي العميل

    - نود تذكيركم بقرب موعد انتهاء بوليصة التامين رقم ${(object.insurance_number)} للسيارة رقم ${(object.license_plate)} والتي تنتهي بتاريخ ${(object.insurance_end_date)} - -

    - ]]> -
    -
    - - - - - Operation Number Expiration e-mail template - Car Operation Number - - ${object.driver_id.email} - ${object.lang} - - - - عزيزي العميل

    - نود تذكيركم بقرب انتهاء كرت التشغيل رقم ${(object.operation_card_number)} للسيارة رقم ${(object.license_plate)} القائد ${(object.employee_id.name)} النوع ${(object.fleet_type_id.name)} والتي تنتهي بتاريخ ${(object.operation_card_number)} - -

    - ]]> -
    -
    - - - Installment e-mail template - Car Installment - - ${object.driver_id.email} - ${object.lang} - - - - عزيزي العميل

    - نود تذكيركم بقرب موعد سداد قسط التامين بوليصة رقم ${(object.fleet_id.insurance_number)} بتاريخ ${(object.date)} - -

    - ]]> -
    -
    -
    -
    \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/views/maintenance_request_view.xml b/odex25_fleet/odex_fleet/views/maintenance_request_view.xml deleted file mode 100644 index dc1993bb0..000000000 --- a/odex25_fleet/odex_fleet/views/maintenance_request_view.xml +++ /dev/null @@ -1,136 +0,0 @@ - - - - - fleet.maintenance.vehicle.form - fleet.maintenance - -
    -
    -
    - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - -
    -
    - - - fleet.vehicle.type.model.form - fleet.type - -
    - -
    -
    - - - -
    -
    -
    -
    - - - fleet.vehicle.type.tree - fleet.type - - - - - - - - - - Vehicle Type - fleet.type - - tree,form - -

    - Click to create a new type. -

    -

    -

    -
    -
    - - - - - - - - - - fleet.vehicle.fuel.price.model.form - fuel.price - -
    - -
    -
    - - - - -
    -
    -
    -
    - - - fleet.vehicle.fuel.price.model.tree - fuel.price - - - - - - - - - - Fuel Price - fuel.price - - tree,form - -

    - Click to create a new Fuel Price. -

    -

    -

    -
    -
    - - - - - - fleet.vehicle.car.category.model.form - car.category - -
    - - - - - - - -
    -
    -
    - - - fleet.vehicle.car.category.model.tree - car.category - - - - - - - - - - Car Category - car.category - - tree,form - -

    - Click to create a new Car Category. -

    -

    -

    -
    -
    - - - - - - fleet.vehicle.manufacture.company.model.form - manufacture.company - -
    - - - - - - - - -
    -
    -
    - - - fleet.vehicle.manufacture.company.model.tree - manufacture.company - - - - - - - - - - Manufacture Company - manufacture.company - - tree,form - -

    - Click to create a new Manufacture Company. -

    -

    -

    -
    -
    - - - - - fleet.vehicle.transmission.setting.model.form - transmission.setting - -
    - - - - - - - -
    -
    -
    - - - fleet.vehicle.transmission.setting.model.tree - transmission.setting - - - - - - - - - - Transmission Type - transmission.setting - - tree,form - -

    - Click to create a new transmission . -

    -

    -

    -
    -
    - - - - - - odex.fleet.vehicle.model.brand.form - fleet.vehicle.model.brand - - - - - - - - - - - - odex.fleet.vehicle.model.form - fleet.vehicle.model - - - - - - - - - - - - - - - - - - - fleet.branch.inherit - res.branch - - - - - - - - - - - - - - Car Owner - ir.actions.act_window - res.partner - - [] - kanban,tree,form - [('car_owner','=',True)] - {'default_car_owner':True} - - - - - - - - - - - - - - odex.fleet.vehicle.log.form - fleet.vehicle.log.fuel - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - -
    - - - - fleet.vehicle.log.fuel.tree - fleet.vehicle.log.fuel - - - - - - - - - - - - - - - - - - - Vehicles Fuel Logs - fleet.vehicle.log.fuel - - tree,kanban,form,graph - {"search_default_groupby_vehicle" : True} - -

    - Click to create a new fuel log. -

    -

    - Here you can add refuelling entries for all vehicles. You can - also filter logs of a particular vehicle using the search - field. -

    -
    -
    - - - - - - - odex.fleet.vehicle.log.services.form - fleet.vehicle.log.services - - - -
    - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    - - - odex.vehicle.log.services.tree - fleet.vehicle.log.services - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    diff --git a/odex25_fleet/odex_fleet/wizards/__init__.py b/odex25_fleet/odex_fleet/wizards/__init__.py deleted file mode 100644 index 38a3605ec..000000000 --- a/odex25_fleet/odex_fleet/wizards/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- coding: utf-8 -*- -from . import fleet_wiz -from . import reject_reason -from . import reject_reason_infraction \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/wizards/fleet_view.xml b/odex25_fleet/odex_fleet/wizards/fleet_view.xml deleted file mode 100644 index 0145fab19..000000000 --- a/odex25_fleet/odex_fleet/wizards/fleet_view.xml +++ /dev/null @@ -1,267 +0,0 @@ - - - - - fleet.report.form - fleet.wiz - -
    - - - - - - - - - - - - - - - - - - -
    -
    -
    -
    -
    - - - Fleet Report - ir.actions.act_window - fleet.wiz - - form - new - - - - - - - - - - - - Fleet State Expense Report - ir.actions.act_window - fleet.wiz - - form - {'default_report_type':'state_cost'} - new - - - - - - - - - - Fleet Branch Expense Report - ir.actions.act_window - fleet.wiz - - form - {'default_report_type':'branch_cost'} - new - - - - - - Fleet All Branch Expense Report - ir.actions.act_window - fleet.wiz - - form - {'default_report_type':'all_branch_cost'} - new - - - - - - Fleet Maintains Report - ir.actions.act_window - fleet.wiz - - form - {'default_report_type':'maintains'} - new - - - - - - Fleet Need Maintains Report - ir.actions.act_window - fleet.wiz - - form - {'default_report_type':'to_maintains'} - new - - - - - - - Fleet Need Renew Report - ir.actions.act_window - fleet.wiz - - form - {'default_report_type':'to_renew'} - new - - - - - Fleet Renew Report - ir.actions.act_window - fleet.wiz - - form - {'default_report_type':'renew'} - new - - - - - - - Fleet Consumption Report - ir.actions.act_window - fleet.wiz - - form - {'default_report_type':'car_consumption'} - new - - - - - - Fleet Service Report - ir.actions.act_window - fleet.wiz - - form - {'default_report_type':'service'} - new - - - - - - Fleet Expense Report - ir.actions.act_window - fleet.wiz - - form - {'default_report_type':'invoice'} - new - - - - - - - Fleet Driver Report - ir.actions.act_window - fleet.wiz - - form - {'default_report_type':'driver'} - new - - - - - Fleet Delegation Report - ir.actions.act_window - fleet.wiz - - form - {'default_report_type':'delegation'} - new - - - -
    - -
    \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/wizards/fleet_wiz.py b/odex25_fleet/odex_fleet/wizards/fleet_wiz.py deleted file mode 100644 index 004021e92..000000000 --- a/odex25_fleet/odex_fleet/wizards/fleet_wiz.py +++ /dev/null @@ -1,82 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# Expert (LCT, Life Connection Technology) -# Copyright (C) 2020-2021 LCT -# -############################################################################## -from dateutil.relativedelta import relativedelta -from odoo.exceptions import ValidationError -from odoo import models, fields, api, _ - - -class FleettWiz(models.TransientModel): - _name = 'fleet.wiz' - _description = "Fleet Wizard Report" - - date_from = fields.Date(string='Date From') - date_to = fields.Date(string='Date To') - service_ids = fields.Many2many('fleet.service.type','fleet_service_wiz_rel', 'service_id', 'wiz_id', string='Service', ) - branch_ids = fields.Many2many('res.branch', string='Branch', ) - type_ids = fields.Many2many('fleet.type', string='Fleet Type', ) - vehicle_ids = fields.Many2many('fleet.vehicle', string='Vehicle', ) - state_ids = fields.Many2many('res.country.state', string=' States') - cost_subtype_ids = fields.Many2many('fleet.service.type', string='Service Type') - vehicle_del_type = fields.Selection(selection=[('department', 'Department'), - ('project', 'Project')]) - department_ids = fields.Many2many('hr.department',string='Departments') - project_ids = fields.Many2many('project.project',string='projects') - report_type = fields.Selection(selection=[('branch_cost','Branch Cost'), - ('state_cost','State Cost'), - ('all_branch_cost', 'All Branch Cost'), - ('car_consumption','Car Consumption'), - ('driver','Driver'), - ('delegation','Delegation'), - ('renew','Renew'), - ('to_renew','To Renew'), - ('service','Service'), - ('invoice','Invoice'), - ('maintains','Maintenance'), - ('to_maintains','To Maintenance'), - ]) - - - - @api.constrains('date_from','date_to') - def check_date(self): - for rec in self: - if rec.date_from and rec.date_to: - if rec.date_from>rec.date_to: - raise ValidationError(_("Date To Should Be Greater Than Date From")) - - def print_report(self): - data ={'state_ids':self.state_ids.ids if self.state_ids else False,'date_from':self.date_from,'date_to':self.date_to,'report_type':self.report_type, - 'type_ids':self.type_ids.ids if self.type_ids else False,'branch_ids':self.branch_ids.ids if self.branch_ids else False , - 'vehicle_ids':self.vehicle_ids.ids if self.vehicle_ids else False,'cost_subtype_ids': self.cost_subtype_ids.ids if self.cost_subtype_ids else False, - 'vehicle_del_type' : self.vehicle_del_type if self.vehicle_del_type else False , - 'department_ids':self.department_ids.mapped('name'), - 'project_ids':self.project_ids.mapped('name')} - if self.report_type == 'branch_cost': - return self.env.ref('odex_fleet.fleet_branch_report_pdf_act').report_action(self, data=data) - elif self.report_type == 'state_cost': - return self.env.ref('odex_fleet.state_cost_report_pdf_act').report_action(self, data=data) - elif self.report_type == 'all_branch_cost': - return self.env.ref('odex_fleet.all_branch_cost_report_pdf_act').report_action(self, data=data) - elif self.report_type == 'car_consumption': - return self.env.ref('odex_fleet.car_consumption_cost_report_pdf_act').report_action(self, data=data) - elif self.report_type == 'to_renew': - return self.env.ref('odex_fleet.to_renew_report_pdf_act').report_action(self, data=data) - elif self.report_type == 'renew': - return self.env.ref('odex_fleet.renew_report_pdf_act').report_action(self, data=data) - elif self.report_type == 'driver': - return self.env.ref('odex_fleet.driver_report_pdf_act').report_action(self, data=data) - elif self.report_type == 'delegation': - return self.env.ref('odex_fleet.driver_delegation_report_pdf_act').report_action(self, data=data) - elif self.report_type == 'service': - return self.env.ref('odex_fleet.service_report_pdf_act').report_action(self, data=data) - elif self.report_type == 'service': - return self.env.ref('odex_fleet.service_report_pdf_act').report_action(self, data=data) - elif self.report_type == 'invoice': - return self.env.ref('odex_fleet.invoice_report_pdf_act').report_action(self, data=data) - elif self.report_type in ['to_maintains','maintains']: - return self.env.ref('odex_fleet.maintains_report_pdf_act').report_action(self, data=data) diff --git a/odex25_fleet/odex_fleet/wizards/reject_reason.py b/odex25_fleet/odex_fleet/wizards/reject_reason.py deleted file mode 100644 index 4d1e1245f..000000000 --- a/odex25_fleet/odex_fleet/wizards/reject_reason.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from odoo import models, fields, api, _ - - -class RejectReasonFleet(models.TransientModel): - _name = 'reject.reason.fleet.wiz' - _description = 'Reject Wiz' - - reason = fields.Text() - delegation_id = fields.Many2one('vehicle.delegation') - maintenance_id = fields.Many2one('fleet.maintenance') - request_id = fields.Many2one('fleet.quotation') - - def action_reject(self): - if self.delegation_id: - self.delegation_id.sudo().write({ - 'state': 'refused', - 'reason': self.reason - }) - elif self.request_id: - self.request_id.sudo().write({ - 'approve': False, - 'reason': self.reason - }) diff --git a/odex25_fleet/odex_fleet/wizards/reject_reason.xml b/odex25_fleet/odex_fleet/wizards/reject_reason.xml deleted file mode 100644 index c292223bc..000000000 --- a/odex25_fleet/odex_fleet/wizards/reject_reason.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - Reject Reason - reject.reason.fleet.wiz - form - -
    - - - - - - - - - -
    -
    -
    -
    -
    - -
    -
    \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/wizards/reject_reason_infraction.py b/odex25_fleet/odex_fleet/wizards/reject_reason_infraction.py deleted file mode 100644 index be230a59c..000000000 --- a/odex25_fleet/odex_fleet/wizards/reject_reason_infraction.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -from odoo import models, fields, api, _ - - -class RejectReasonInfraction(models.TransientModel): - _name = 'reject.reason.infraction.wiz' - - reason = fields.Text() - infraction_id = fields.Many2one('vehicle.infraction') - - def action_reject(self): - if self.infraction_id: - self.infraction_id.sudo().write({ - 'state': 'refused', - 'reason': self.reason - }) \ No newline at end of file diff --git a/odex25_fleet/odex_fleet/wizards/reject_reason_infraction.xml b/odex25_fleet/odex_fleet/wizards/reject_reason_infraction.xml deleted file mode 100644 index 70c67a172..000000000 --- a/odex25_fleet/odex_fleet/wizards/reject_reason_infraction.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - Reject Reason Infraction - reject.reason.infraction.wiz - form - -
    - - - - - - - -
    -
    -
    -
    -
    \ No newline at end of file