open-synergy/opensynid-fleet

View on GitHub
fleet_work_order_multiple_route/models/fleet_route.py

Summary

Maintainability
A
1 hr
Test Coverage
# Copyright 2016 OpenSynergy Indonesia
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

from openerp import api, fields, models


class FleetRoute(models.Model):
    _name = "fleet.route"
    _description = "Fleet Route"
    _order = "sequence"

    name = fields.Char(
        string="Route",
        required=True,
    )
    order_id = fields.Many2one(
        string="# Order",
        comodel_name="fleet.work.order",
        required=True,
    )
    sequence = fields.Integer(
        string="Sequence",
        default=5,
    )
    route_template_id = fields.Many2one(
        string="Route Template",
        comodel_name="fleet.route.template",
        required=False,
    )
    start_location_id = fields.Many2one(
        string="From",
        comodel_name="res.partner",
        required=True,
    )
    end_location_id = fields.Many2one(
        string="To",
        comodel_name="res.partner",
        required=True,
    )
    distance = fields.Float(
        string="Distance",
    )

    @api.onchange("route_template_id")
    def onchange_route_template_id(self):
        if self.route_template_id:
            route_template = self.route_template_id
            self.start_location_id = route_template.start_location_id.id
            self.end_location_id = route_template.end_location_id.id
            self.distance = route_template.distance
            self.name = route_template.name
        else:
            self.start_location_id = False
            self.end_location_id = False
            self.distance = 0.0