You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							92 lines
						
					
					
						
							4.5 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							92 lines
						
					
					
						
							4.5 KiB
						
					
					
				
								# -*- coding: utf-8 -*-
							 | 
						|
								##############################################################################
							 | 
						|
								#
							 | 
						|
								#    Cybrosys Technologies Pvt. Ltd.
							 | 
						|
								#    Copyright (C) 2009-TODAY Cybrosys Technologies(<http://www.cybrosys.com>).
							 | 
						|
								#
							 | 
						|
								#    you can modify it under the terms of the GNU LESSER
							 | 
						|
								#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
							 | 
						|
								#
							 | 
						|
								#    It is forbidden to publish, distribute, sublicense, or sell copies
							 | 
						|
								#    of the Software or modified copies of the Software.
							 | 
						|
								#
							 | 
						|
								#    This program is distributed in the hope that it will be useful,
							 | 
						|
								#    but WITHOUT ANY WARRANTY; without even the implied warranty of
							 | 
						|
								#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
							 | 
						|
								#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
							 | 
						|
								#
							 | 
						|
								#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
							 | 
						|
								#    GENERAL PUBLIC LICENSE (LGPL v3) along with this program.
							 | 
						|
								#    If not, see <http://www.gnu.org/licenses/>.
							 | 
						|
								#
							 | 
						|
								##############################################################################
							 | 
						|
								
							 | 
						|
								from odoo import models, fields, api
							 | 
						|
								from odoo.exceptions import UserError,ValidationError
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								class CabManagement(models.Model):
							 | 
						|
								    _name = 'cab.management'
							 | 
						|
								
							 | 
						|
								    name = fields.Char(compute="complete_name_compute", string="Cab Name")
							 | 
						|
								    ref_name = fields.Char(string="Cab Name", required=True)
							 | 
						|
								    cab_image = fields.Binary(string='Image', store=True, attachment=True)
							 | 
						|
								    licence_plate = fields.Char(string="Licence Plate", required=True)
							 | 
						|
								    activity_period_from = fields.Date(string="Activity Period")
							 | 
						|
								    activity_period_to = fields.Date(string="To")
							 | 
						|
								    driver_plot = fields.Char(string="Driver Ploted")
							 | 
						|
								    cab_value = fields.Float(string="Cab Value")
							 | 
						|
								    cab_model = fields.Char(string="Cab Model")
							 | 
						|
								    cab_color = fields.Char(string="Cab Color")
							 | 
						|
								    aq_date = fields.Date(string="Aquisition Date")
							 | 
						|
								    chas_no = fields.Char(string="Chasis No")
							 | 
						|
								    odo_reading = fields.Float(string="Odometre Reading")
							 | 
						|
								    seating_capacity = fields.Integer(string="Seating Capacity", required=True)
							 | 
						|
								    fuel_type = fields.Char(string="Fuel Type")
							 | 
						|
								    related_log_details = fields.One2many('cab.log', string="Log Details", compute="auto_fetch_log_details")
							 | 
						|
								    total_log_details = fields.One2many('cab.maintanence', string='Total Expenses', compute="auto_fetch_total_details")
							 | 
						|
								    location_log_details = fields.One2many('cab.log', string="Location", compute="auto_fetch_location_details")
							 | 
						|
								
							 | 
						|
								    @api.onchange('licence_plate')
							 | 
						|
								    def check_unique_constraint(self):
							 | 
						|
								        for records in self.env['cab.management'].search([]):
							 | 
						|
								            if self.licence_plate == records.licence_plate:
							 | 
						|
								                raise ValidationError("Record already exists and violates unique field constraint")
							 | 
						|
								
							 | 
						|
								    @api.one
							 | 
						|
								    def complete_name_compute(self):
							 | 
						|
								        self.name = self.ref_name
							 | 
						|
								        if self.licence_plate:
							 | 
						|
								            self.name = str(self.licence_plate) + ' / ' + str(self.ref_name)
							 | 
						|
								
							 | 
						|
								    @api.onchange('activity_period_from', 'activity_period_to')
							 | 
						|
								    def auto_fetch_log_details(self):
							 | 
						|
								        if self.activity_period_from and self.activity_period_to:
							 | 
						|
								            if self.activity_period_from <= self.activity_period_to:
							 | 
						|
								                data = self.env['cab.log'].search([("cab_log_date", ">=", self.activity_period_from),
							 | 
						|
								                                                   ("cab_log_date", "<=", self.activity_period_to)])
							 | 
						|
								                self.related_log_details = data
							 | 
						|
								            else:
							 | 
						|
								                self.activity_period_to = 0
							 | 
						|
								                raise UserError("Enter Valid Dates")
							 | 
						|
								
							 | 
						|
								    @api.onchange('activity_period_from', 'activity_period_to')
							 | 
						|
								    def auto_fetch_total_details(self):
							 | 
						|
								        if self.activity_period_from and self.activity_period_to:
							 | 
						|
								            if self.activity_period_from <= self.activity_period_to:
							 | 
						|
								                data = self.env['cab.maintanence'].search([("cab_log_date", ">=", self.activity_period_from),
							 | 
						|
								                                                           ("cab_log_date", "<=", self.activity_period_to)])
							 | 
						|
								                self.total_log_details = data
							 | 
						|
								            else:
							 | 
						|
								                raise UserError("Enter Valid Dates")
							 | 
						|
								
							 | 
						|
								    @api.onchange('activity_period_from', 'activity_period_to')
							 | 
						|
								    def auto_fetch_location_details(self):
							 | 
						|
								        if self.activity_period_from and self.activity_period_to:
							 | 
						|
								            if self.activity_period_from <= self.activity_period_to:
							 | 
						|
								                data = self.env['cab.log'].search([("cab_log_date", ">=", self.activity_period_from),
							 | 
						|
								                                                   ("cab_log_date", "<=", self.activity_period_to)])
							 | 
						|
								                self.location_log_details = data
							 | 
						|
								            else:
							 | 
						|
								                raise UserError("Enter Valid Dates")
							 | 
						|
								
							 | 
						|
								
							 |