Repository
OCA/stock-logistics-transport · module folder · Try on Runboat
Module version
Category
TMS
Folder size
0.15 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/stock-logistics-transport
Last tracking update
2026-08-12 23:26:23
Authors
Odoo Community Association (OCA), Open Source Integrators
Maintainers
Odoo Community Association (OCA), Open Source Integrators
Committers
Maxime Chambreuil, Weblate, OCA-git-bot, oca-ci, Volkan TAŞCI
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
tms_account
Description
This module extends sales orders to sell transportation management services.
It allows selling trips and passenger seats, automatically generating transport
orders from sale order lines, and managing seat tickets for passenger vehicles.

Code Analysis

Views touched (8)
XML IDNameModelTypeStatus
fleet_vehicle_view_form_tms_sale fleet.vehicle.form.inherit.tms.sale fleet.vehicle form Inherits tms.fleet_vehicle_inherit_view_form
product_template_form_view product.template.common.form.inherit.tms.product product.template form Inherits product.product_template_form_view
sale_order_line_seat_ticket_view_form trip.sale.order.line.seat.ticket.view.form seat.ticket.line form New
sale_order_line_trip_view_form trip.sale.order.line.trip.view.form sale.order.line.trip form New
sale_order_view_form sale.order.view.form.tms.sale sale.order form Inherits sale.view_order_form
seat_ticket_view_form seat.ticket.view.form.tms.sale seat.ticket form New
tms_order_view_form tms.order.view.form.inherit.tms.sale tms.order form Inherits tms.tms_order_view_form
view_tms_driver_form_inherit_sale tms.driver.form.inherit.sale tms.driver form Inherits tms.view_tms_driver_form_inherit
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (8)

New fields (2)
  • tms_service_filter_type Char
    compute='_compute_tms_service_filter_type'
  • tms_service_product_id Many2one → product.product
    domain="[('type', '=', 'service'), ('product_tmpl_id.tms_trip', '=', True)]" string='TMS Service' args: 'product.product'
Public methods (0)

No public methods.

New fields (3)
  • has_tms_order Boolean
    compute='_compute_has_tms_order'
  • tms_order_count Integer
    compute='_compute_tms_order_ids' string='Transport Orders'
  • tms_order_ids Many2many → tms.order
    compute='_compute_tms_order_ids' copy=False string='Transport orders associated to this sale' args: 'tms.order'
Public methods (5)
  • action_view_tms_order(self)
  • action_view_trip_sale_order_line(self)
  • create(self, vals_list)
    @api.model_create_multi
  • remove_lines_with_trips(self, initial_trips, initial_line_ids, initial_quantities)
  • write(self, vals)
    @api.model

New fields (14)
  • has_trip_product Boolean
    compute='_compute_sale_order_line_tms' default=False precompute=True readonly=True store=True
  • seat_ticket Boolean
    compute='_compute_sale_order_line_tms' default=False precompute=True readonly=True store=True
  • tms_destination_id Many2one → res.partner
    context={'default_tms_location': True} domain="[('tms_location', '=', 'True')]" string='Destination' args: 'res.partner'
  • tms_factor Float
    compute='_compute_sale_order_line_tms' default=1 precompute=True readonly=False store=True
  • tms_factor_uom Char
    compute='_compute_sale_order_line_tms' precompute=True readonly=False store=True
  • tms_order_ids One2many → tms.order
    copy=False help='Transport Order generated by the sales order item' index=True args: 'tms.order', 'sale_line_id'
  • tms_origin_id Many2one → res.partner
    context={'default_tms_location': True} domain="[('tms_location', '=', 'True')]" string='Origin' args: 'res.partner'
  • tms_route_flag Boolean
    default=False string='Use Routes'
  • tms_route_id Many2one → tms.route
    string='Routes' args: 'tms.route'
  • tms_scheduled_date_end Datetime
    string='Scheduled End'
  • tms_scheduled_date_start Datetime
    string='Scheduled Start'
  • tms_ticket_ids One2many → seat.ticket
    args: 'seat.ticket', 'sale_line_id'
  • tms_trip_ticket_id Many2one → tms.order
    args: 'tms.order'
  • trip_line_ids One2many → sale.order.line.trip
    args: 'sale.order.line.trip', 'order_line_id'
Public methods (1)
  • write(self, vals)
    @api.model

New fields (8)
  • destination Many2one → res.partner
    context={'default_tms_location': True} domain="[('tms_location', '=', 'True')]" args: 'res.partner'
  • end Datetime
    string='Scheduled end'
  • has_route Boolean
    string='Use Routes'
  • order_confirmed Boolean
    readonly=True
  • order_line_id Many2one → sale.order.line
    args: 'sale.order.line'
  • origin Many2one → res.partner
    context={'default_tms_location': True} domain="[('tms_location', '=', 'True')]" args: 'res.partner'
  • route Many2one → tms.route
    args: 'tms.route'
  • start Datetime
    string='Scheduled start'
Public methods (0)

No public methods.

New fields (8)
  • available Selection
    default='available' readonly=True args: [('available', 'Available'), ('not_available', 'Not available')]
  • customer_id Many2one → res.partner
    related='sale_line_id.order_id.partner_id' args: 'res.partner'
  • name Char
    copy=False default=<expr> index='trigram' readonly=False
  • price Float
  • product_id Many2one → product.product
    domain="[('type', '=', 'service'), ('product_tmpl_id.tms_trip', '=', True), ('product_tmpl_id.trip_product_type', '=', 'seat')]" string='Seat Service' args: 'product.product'
  • sale_line_id Many2one → sale.order.line
    args: 'sale.order.line'
  • sale_order_id Many2one → sale.order
    related='sale_line_id.order_id' args: 'sale.order'
  • tms_order_id Many2one → tms.order
    store=True args: 'tms.order'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)
    @api.model

New fields (4)
  • order_confirmed Boolean
    readonly=True
  • order_line_id Many2one → sale.order.line
    args: 'sale.order.line'
  • ticket_ids Many2many → seat.ticket
    args: 'seat.ticket'
  • trip_id Many2one → tms.order
    args: 'tms.order'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • action_view_sale_orders(self)

New fields (6)
  • sale_id Many2one → sale.order
    copy=False args: 'sale.order'
  • sale_line_id Many2one → sale.order.line
    copy=False args: 'sale.order.line'
  • seat_sale_order_count Integer
    compute='_compute_seat_sale_orders' string='Sales Orders'
  • seat_sale_order_ids Many2many → sale.order
    compute='_compute_seat_sale_orders' args: 'sale.order'
  • seat_ticket_ids One2many → seat.ticket
    args: 'seat.ticket', 'tms_order_id'
  • vehicle_operation Selection
    related='vehicle_id.operation'
Public methods (4)
  • action_view_sales(self)
  • action_view_seat_sale_orders(self)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

Loading…