| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/19.0/sale_pdf_quote_builder |
| VERSION | |
| VERSION | 0.1.0 |
| CATEGORY | |
| CATEGORY | Sales/Sales |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | Odoo S.A. |
| MAINTAINERS | |
| MAINTAINERS | Odoo S.A. |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Xavier Morel, GitHub, Julien Castiaux, Victor Feyens, Alvaro Fuentes, Tiffany Chang (tic), Gorash, Demesmaeker, Valentin Chevalier, Moises Lopez - https://www.vauxoo.com/, Mylyna Hy, Mahamadasif Ansari, Levi Siuzdak (sile), Dylan Kiss (dyki), Emanuele, 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 |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:51:44 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale_management - sale - sales_team - base - base_setup - web - bus - web_tour - html_editor - account_payment - account - onboarding - product - uom - analytic - portal - http_routing - auth_signup - digest - resource - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Build nice quotations |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_document_form |
product.document.form.sale | product.document | field | 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 | div | Inherits sale_management.res_config_settings_view_form |
sale_order_form_inherit_sale_pdf_quote_builder |
sale.order.form.pdf.quote.builder | sale.order | xpath | Inherits sale_management.sale_order_form_quote |
sale_order_template_form |
sale.order.template.form | sale.order.template | notebook | Inherits sale_management.sale_order_template_view_form |
sale_pdf_form_field_list |
sale.pdf.form.field.list | sale.pdf.form.field | list | New |
No new fields.
Public methods (0)No public methods.
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'
action_open_pdf_form_fields(self)
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
action_open_pdf_form_fields(self)
create(self, vals_list)
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'
get_update_included_pdf_params(self)
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'
No public methods.
quotation_document_ids
Many2many → quotation.document
check_company=True
comodel_name='quotation.document'
relation='header_footer_quotation_template_rel'
string='Headers and footers'
No public methods.
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'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/18.0/sale_pdf_quote_builder |
| VERSION | |
| VERSION | 0.1.0 |
| CATEGORY | |
| CATEGORY | Sales/Sales |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Xavier Morel, GitHub, Odoo Online, Christophe Monniez, Julien Castiaux, Victor Feyens, Alvaro Fuentes, Tiffany Chang (tic), Gorash, Demesmaeker, Valentin Chevalier, Mylyna Hy, Mahamadasif Ansari, Pieter Claeys (clpi), Levi Siuzdak (sile), Dylan Kiss (dyki), Martin Maes, omra-odoo, Adam Heinz, Ethan Vincent, Louis (loti), vava-odoo, kcv-odoo, Lina (liew), sami odoo, Louis (wil), aamo-odoo, Manushi Shah, Pierre Lamotte (pila), Bastien PIERRE, Matias Peralta, krip-odoo, utma-odoo, bhna-odoo, Lionel Piraux (lipi), Mazen, Hoan Hoang |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:25:58 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale_management - sale - sales_team - base - base_setup - web - bus - web_tour - html_editor - account_payment - account - onboarding - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Build nice quotations |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
product_document_form |
product.document.form.sale | product.document | field | 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 | div | Inherits sale_management.res_config_settings_view_form |
sale_order_form_inherit_sale_pdf_quote_builder |
sale.order.form.pdf.quote.builder | sale.order | xpath | Inherits sale_management.sale_order_form_quote |
sale_order_template_form |
sale.order.template.form | sale.order.template | notebook | Inherits sale_management.sale_order_template_view_form |
sale_pdf_form_field_list |
sale.pdf.form.field.list | sale.pdf.form.field | list | New |
No new fields.
Public methods (0)No public methods.
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'
action_open_pdf_form_fields(self)
active
Boolean
default=True
help='If unchecked, it will allow you to hide the header or footer without removing it.'
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'
relation='header_footer_quotation_template_rel'
string='Quotation Templates'
sequence
Integer
default=10
action_open_pdf_form_fields(self)
create(self, vals_list)
available_product_document_ids
Many2many → quotation.document
comodel_name='quotation.document'
compute='_compute_available_product_document_ids'
string='Available Product 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'
readonly=False
string='Headers/Footers'
get_update_included_pdf_params(self)
save_included_pdf(self, selected_pdf)
save_new_custom_content(self, document_type, form_field, content)
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'
No public methods.
quotation_document_ids
Many2many → quotation.document
check_company=True
comodel_name='quotation.document'
relation='header_footer_quotation_template_rel'
string='Headers and footers'
No public methods.
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'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/17.0/sale_pdf_quote_builder |
| VERSION | |
| VERSION | 0.1.0 |
| CATEGORY | |
| CATEGORY | Sales/Sales |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Odoo Translation Bot, Odoo Online, Christophe Monniez, Tiffany Chang (tic), Demesmaeker, niyasraphy, Dylan Kiss (dyki), Ethan Vincent, vava-odoo, kcv-odoo, Louis (wil), Ryan Cen, Manushi Shah |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 01:02:08 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale_management - sale - sales_team - base - base_setup - web - bus - web_tour - account_payment - account - onboarding - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Build nice quotations |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
res_config_settings_view_form |
res.config.settings.view.form.inherit.sale.pdf.quote.builder | res.config.settings | setting | Inherits sale_management.res_config_settings_view_form |
sale_order_template_form |
sale.order.template.form | sale.order.template | notebook | Inherits sale_management.sale_order_template_view_form |
No new fields.
Public methods (0)No public methods.
attached_on
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.\nQuotation: 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.\nConfirmed order: 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 \nand sale order between the header pages and the quote table. "
selection_add=[('inside', 'Inside quote')]
No public methods.
sale_footer
Binary
string='Footer pages'
sale_footer_name
Char
sale_header
Binary
string='Header pages'
sale_header_name
Char
No public methods.
sale_footer
Binary
readonly=False
related='company_id.sale_footer'
sale_footer_name
Char
readonly=False
related='company_id.sale_footer_name'
sale_header
Binary
readonly=False
related='company_id.sale_header'
sale_header_name
Char
readonly=False
related='company_id.sale_header_name'
No public methods.
No new fields.
Public methods (0)No public methods.
sale_footer
Binary
default=<expr>
string='Footer pages'
sale_footer_name
Char
default=<expr>
sale_header
Binary
default=<expr>
string='Header pages'
sale_header_name
Char
default=<expr>
No public methods.