Repository
odoo/odoo · module folder
Module version
0.1.0
Category
Sales/Sales
Folder size
5.97 MB
License
LGPL-3
Application
No
Auto-installable
Yes
Website
None
Last tracking update
2026-08-15 22:44:19
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Xavier Morel, Raphael Collet, Odoo Translation Bot, GitHub, Julien Castiaux, Victor Feyens, Alvaro Fuentes, Tiffany Chang (tic), Gorash, Demesmaeker, Valentin Chevalier, Mylyna Hy, Mahamadasif Ansari, Levi Siuzdak (sile), Dylan Kiss (dyki), Emanuele, Moises Lopez - https://www.vauxoo.com/, Adam Heinz, Louis (loti), Maxime de Neuville, kcv-odoo, aamo-odoo, Victor Miguel Armenta Carrillo, Pierre Lamotte (pila), Pierre Pulinckx, Bastien PIERRE, jeep-odoo, Shrey Mehta, Krzysztof Magusiak (krma), krip-odoo, utma-odoo, bhna-odoo, Nisarg (nipl), Lionel Piraux (lipi), saurabh, Hoan Hoang
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
Build nice quotations

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
product_document_form product.document.form.sale product.document form Inherits product.product_document_form
quotation_document_form quotation.document.form quotation.document form New
quotation_document_kanban quotation.document.kanban quotation.document kanban New
quotation_document_list quotation.document.list quotation.document list New
quotation_document_search sale.pdf.form.field.search sale.pdf.form.field search New
quotation_document_search_view quotation.document.search quotation.document search New
res_config_settings_view_form res.config.settings.view.form.inherit.sale.pdf.quote.builder res.config.settings form Inherits sale_management.res_config_settings_view_form
sale_order_form_inherit_sale_pdf_quote_builder sale.order.form.pdf.quote.builder sale.order form Inherits sale_management.sale_order_form_quote
sale_order_template_form sale.order.template.form sale.order.template form Inherits sale_management.sale_order_template_view_form
sale_pdf_form_field_list sale.pdf.form.field.list sale.pdf.form.field list New
HTTP endpoints (1)
Route(s)HandlerAuthTypeMethodsFlags
/sale_pdf_quote_builder/quotation_document/upload QuotationDocumentController.upload_document user http POST
Models touched (7)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • attached_on_sale Selection
    help="Allows you to share the document with your customers within a sale.\nLeave it empty if you don't want to share this document with sales customer.\nOn quote: the document will be sent to and accessible by customers at any time.\ne.g. this option can be useful to share Product description files.\nOn order confirmation: the document will be sent to and accessible by customers.\ne.g. this option can be useful to share User Manual or digital content bought on ecommerce. \nInside quote: The document will be included in the pdf of the quotation and sale order between the header pages and the quote table. " ondelete={'inside': 'set default'} selection_add=[('inside', 'Inside quote pdf')]
  • form_field_ids Many2many → sale.pdf.form.field
    comodel_name='sale.pdf.form.field' compute='_compute_form_field_ids' domain=[('document_type', '=', 'product_document')] store=True string='Form Fields Included'
Public methods (1)
  • action_open_pdf_form_fields(self)

New fields (7)
  • active Boolean
    default=True help='If unchecked, it will allow you to hide the header or footer without removing it.'
  • add_by_default Boolean
    default=False help='If checked, this header or footer will be added by default on new quotes.' string='Add By Default'
  • document_type Selection
    default='header' required=True selection=[('header', 'Header'), ('footer', 'Footer')] string='Document Type'
  • form_field_ids Many2many → sale.pdf.form.field
    comodel_name='sale.pdf.form.field' compute='_compute_form_field_ids' domain=[('document_type', '=', 'quotation_document')] store=True string='Form Fields Included'
  • ir_attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Related attachment'
  • quotation_template_ids Many2many → sale.order.template
    check_company=True comodel_name='sale.order.template' groups='sales_team.group_sale_salesman' relation='header_footer_quotation_template_rel' string='Quotation Templates'
  • sequence Integer
    default=10
Public methods (2)
  • action_open_pdf_form_fields(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (4)
  • available_quotation_document_ids Many2many → quotation.document
    comodel_name='quotation.document' compute='_compute_available_quotation_document_ids' string='Available Quotation Documents'
  • customizable_pdf_form_fields Json
    readonly=False string='Customizable PDF Form Fields'
  • is_pdf_quote_builder_available Boolean
    compute='_compute_is_pdf_quote_builder_available'
  • quotation_document_ids Many2many → quotation.document
    check_company=True comodel_name='quotation.document' default=_default_quotation_document_ids readonly=False string='Headers/Footers'
Public methods (1)
  • get_update_included_pdf_params(self)

New fields (2)
  • available_product_document_ids Many2many → product.document
    comodel_name='product.document' compute='_compute_available_product_document_ids' compute_sudo=True relation='available_sale_order_line_product_document_rel' string='Available Product Documents'
  • product_document_ids Many2many → product.document
    comodel_name='product.document' domain="[('id', 'in', available_product_document_ids)]" help='The product documents for this order line that will be merged in the PDF quote.' readonly=False relation='sale_order_line_product_document_rel' string='Product Documents'
Public methods (0)

No public methods.

New fields (1)
  • quotation_document_ids Many2many → quotation.document
    check_company=True comodel_name='quotation.document' relation='header_footer_quotation_template_rel' string='Headers and footers'
Public methods (0)

No public methods.

New fields (5)
  • document_type Selection
    readonly=True required=True selection=[('quotation_document', 'Header/Footer'), ('product_document', 'Product Document')] string='Document Type'
  • name Char
    help='The form field name as written in the PDF.' readonly=True required=True string='Form Field Name'
  • path Char
    help='The path to follow to dynamically fill the form field. \nLeave empty to be able to customized it in the quotation form.' string='Path'
  • product_document_ids Many2many → product.document
    comodel_name='product.document' string='Product Documents'
  • quotation_document_ids Many2many → quotation.document
    comodel_name='quotation.document' string='Quotation Documents'
Public methods (0)

No public methods.

Loading…

Loading…