odex25_standard/odex25_fleet/odex_fleet/wizards/fleet_wiz.py

83 lines
4.9 KiB
Python

# -*- 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,
'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)