diff --git a/addons/fleet/fleet.py b/addons/fleet/fleet.py index 162e2bada36..da3ecec63a7 100644 --- a/addons/fleet/fleet.py +++ b/addons/fleet/fleet.py @@ -78,6 +78,7 @@ class fleet_vehicle(osv.Model): 'model_id' : fields.many2one('fleet.vehicle.model', 'Model', required=True, help='Model of the vehicle'), 'log_ids' : fields.one2many('fleet.vehicle.log', 'vehicle_id', 'Logs'), 'log_fuel' : fields.one2many('fleet.vehicle.log.fuel','vehicle_id', 'Fuel Logs'), + 'log_services' : fields.one2many('fleet.vehicle.log.services','vehicle_id', 'Services Logs'), 'acquisition_date' : fields.date('Acquisition date', required=False, help='Date when the vehicle has been bought'), 'acquisition_price' : fields.integer('Price', help='Price of the bought vehicle'), 'color' : fields.char('Color',size=32, help='Color of the vehicle'), @@ -85,8 +86,6 @@ class fleet_vehicle(osv.Model): 'location' : fields.char('Location',size=32, help='Location of the vehicle (garage, ...)'), 'doors' : fields.integer('Number of doors', help='Number of doors of the vehicle'), - 'next_repair_km' : fields.integer('Next Repair Km'), - 'transmission' : fields.selection([('manual', 'Manual'),('automatic','Automatic')], 'Transmission', help='Transmission Used by the vehicle',required=False), 'fuel_type' : fields.selection([('gasoline', 'Gasoline'),('diesel','Diesel'),('electric','Electric'),('hybrid','Hybrid')], 'Fuel Type', help='Fuel Used by the vehicle',required=False), 'horsepower' : fields.integer('Horsepower',required=False), @@ -179,17 +178,33 @@ class fleet_vehicle_log_insurance(osv.Model): 'description' : fields.text('Description'), } +class service_type(osv.Model): + _name = 'fleet.service.type' + _columns = { + 'name': fields.char('Name', required=True, translate=True), + } + class fleet_vehicle_log_services(osv.Model): + def _compute_complete_service(self, cr, uid, ids, field, arg, context=None): + return dict( + (record.id, " ".join(service.name for service in record.service_ids)) + for record in self.browse(cr, uid, ids, context=context) + ) _inherit = 'fleet.vehicle.log' _name = 'fleet.vehicle.log.services' _columns = { - 'description' : fields.text('Description'), + 'vehicle_id' :fields.many2one('fleet.vehicle', 'Vehicle', required=True), + 'vendor_id' :fields.many2one('res.partner', 'Vendor', domain="[('supplier','=',True)]"), + 'amount' :fields.float('Amount', help="Total cost of the service"), + 'reference' :fields.char('Reference',size=128), + 'service_ids' :fields.many2many('fleet.service.type','vehicle_service_type_rel','vehicle_service_type_id','service_id','Services completed'), + 'complete_service': fields.function(_compute_complete_service, type="char", string='Services completed'), } class hr_employee(osv.Model): _inherit = 'hr.employee' _columns = { - 'vehicle_id' : fields.many2one('fleet.vehicle', 'Vehicle', required=True), + 'vehicle_id' : fields.one2many('fleet.vehicle','driver', 'Vehicle',type="char"), 'log_ids' : fields.one2many('fleet.vehicle.log', 'employee_id', 'Logs'), } \ No newline at end of file diff --git a/addons/fleet/fleet_view.xml b/addons/fleet/fleet_view.xml index f9b63fc4fbe..330c4b61d62 100644 --- a/addons/fleet/fleet_view.xml +++ b/addons/fleet/fleet_view.xml @@ -89,8 +89,31 @@ - - + + + + + + + + + + + +
+ + + + + + + + + + + +
+
@@ -169,6 +192,7 @@ + @@ -236,7 +260,7 @@ - +