Repository
OCA/sale-workflow · module folder · Try on Runboat
Module version
1.0.0
Category
Appointments
Folder size
0.11 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/sale-workflow
Last tracking update
2026-08-13 17:32:48
Authors
Odoo Community Association (OCA), Tecnativa
Maintainers
Odoo Community Association (OCA), Tecnativa
Committers
Carlos Roca, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
cssselect
System dependencies
None
Required by
None
Description
This module extends the functionality of sale and resource bookings to
support creating pending resource bookings automatically when confirming
a sale order and to allow you to generate those sale orders easily from
a resource booking type.

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
product_template_form_view Display resource booking info in form product.template form Inherits product.product_template_form_view
resource_booking_form Display sale order info in booking form resource.booking form Inherits resource_booking.resource_booking_view_form
resource_booking_sale_view_form resource.booking.sale.view.form resource.booking.sale form New
resource_booking_type_form Sale order generator from booking type form resource.booking.type form Inherits resource_booking.resource_booking_type_view_form
sale_order_booking_confirm_view_form sale.order.booking.confirm.view.form sale.order.booking.confirm form New
view_order_form Display resource booking info in form sale.order form Inherits sale.view_order_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (7)

New fields (2)
  • resource_booking_type_combination_rel_id Many2one → resource.booking.type.combination.rel
    domain="[('type_id', '=', resource_booking_type_id)]" help='If set, the booking will be created with this resource combination. Otherwise, the combination will be assigned automatically later, when the requester schedules the booking.' index=True ondelete='restrict' string='Resource combination' args: 'resource.booking.type.combination.rel'
  • resource_booking_type_id Many2one → resource.booking.type
    help='If set, one pending booking will be generated when sold.' index=True ondelete='restrict' string='Booking type' args: 'resource.booking.type'
Public methods (0)

No public methods.

New fields (3)
  • sale_order_id Many2one
    help='Sale order that origins this booking.' readonly=True related='sale_order_line_id.order_id'
  • sale_order_line_id Many2one → sale.order.line
    copy=False index=True ondelete='cascade' string='Sale order line' tracking=True args: 'sale.order.line'
  • sale_order_state Selection
    help='If there is a related quotation and it is not confirmed, the booking will not be able to become confirmed.' readonly=True related='sale_order_id.state' string='Sale order state'
Public methods (0)

No public methods.

New fields (4)
  • partner_id Many2one → res.partner
    ondelete='cascade' required=True string='Customer' args: 'res.partner'
  • product_id Many2one → product.product
    domain="[('resource_booking_type_id', '=', type_id)]" ondelete='cascade' required=True args: 'product.product', 'Product'
  • product_uom_qty Integer
    default=1 required=True string='Quantity'
  • type_id Many2one → resource.booking.type
    index=True ondelete='cascade' required=True string='Booking type' args: 'resource.booking.type'
Public methods (1)
  • action_generate(self)

New fields (0)

No new fields.

Public methods (1)
  • action_sale_order_wizard(self)
    Help user creating a sale order for this RBT.

New fields (2)
  • resource_booking_count Integer
    compute='_compute_resource_bookings' args: 'Resource bookings count'
  • resource_booking_ids Many2many → resource.booking
    compute='_compute_resource_bookings' args: 'resource.booking'
Public methods (5)
  • action_bookings_resync(self)
    User-forced bookings resync.
  • action_confirm(self)
    Ask to fill booking values, if necessary.
  • action_open_resource_bookings(self)
    Open related bookings.
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (2)
  • order_id Many2one → sale.order
    index=True ondelete='cascade' readonly=True required=True string='Order' args: 'sale.order'
  • resource_booking_ids Many2many → resource.booking
    default=<expr> string='Bookings' args: 'resource.booking', 'sale_order_booking_confirm_rel', 'sale_order_booking_confirm_id', 'booking_id'
Public methods (2)
  • action_invite(self)
    Invite booking requesters without using odoo.tests.Form.
  • action_noop(self)

New fields (1)
  • resource_booking_ids One2many → resource.booking
    copy=False string='Resource bookings' args: 'resource.booking', 'sale_order_line_id'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…