TIP: You can type at any time to perform a new search.
Sale Service Project
sale_service_project · OCA/sale-workflow
- Repository
- OCA/sale-workflow · module folder · Try on Runboat
- Module version
- 1.1.1
- Category
- Sales
- Folder size
- 1.07 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- http://www.tecnativa.com
- Last tracking update
- 2026-08-07 07:03:04
- Authors
- Odoo Community Association (OCA), Tecnativa
- Maintainers
- Odoo Community Association (OCA), Tecnativa
- Committers
- Stéphane Bidoul (ACSONE), Weblate, OCA Transbot, Sergio Teruel, oca-travis, Antonio Espinosa, sergio-incaser, Sergio Incaser, sergio, Carlos Incaser
Code Analysis ⓘ
Views touched (16)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
invoice_form |
account.invoice.form | account.invoice | form | Inherits account.invoice_form |
product_task_materials_form_view |
product.task.materials.form | product.task.materials | form | New |
product_task_materials_tree_view |
product.task.materials.tree | product.task.materials | tree | New |
product_task_work_form_view |
product.task.work.form | product.task.work | form | New |
product_task_work_tree_view |
product.task.work.tree | product.task.work | tree | New |
report_invoice_document |
report_invoice_document | ir.ui.view | qweb | Inherits account.report_invoice_document |
report_saleorder_document |
report_saleorder_document | ir.ui.view | qweb | Inherits sale.report_saleorder_document |
view_order_form_service_project |
sale.order.form.service.project | sale.order | form | Inherits sale.view_order_form |
view_order_line_tree_task |
sale.order.line.tree.task | sale.order.line | tree | Inherits sale.view_order_line_tree |
view_product_task_form |
product.form.view.inherit | product.template | form | Inherits sale_service.view_product_task_form |
view_project_kanban_task_hours |
project.project.kanban.inherited | project.project | kanban | Inherits project_timesheet.view_project_kanban_inherited |
view_sale_order_line_form |
sale.order.form.inherit | sale.order | form | Inherits sale.view_order_form |
view_sale_service_inherit_form2 |
sale.service.form.view.inherit | project.task | form | Inherits project.view_task_form2 |
view_sale_service_project_order_filter |
sale.order.task.filter.inherit | sale.order | Inherits sale.view_sales_order_filter | |
view_task_search_form_project_parent |
project.task.search.form.project.parent | project.task | form | Inherits project.view_task_search_form |
wiz_compute_task_price |
product.price.service.wizard.form | product.price.service.wizard | form | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (16)
New fields (0)
No new fields.
Public methods (1)-
invoice_cost_create(self, data=None)@api.multi
New fields (1)
-
print_worksBooleandefault=Truestring='Print materials and works'
No public methods.
New fields (3)
-
sale_order_linesMany2many → sale.order.linecolumn1='invoice_id'column2='order_line_id'comodel_name='sale.order.line'readonly=Truerelation='sale_order_line_invoice_rel'string='Sale Order Lines' -
task_materials_idsMany2many → project.task.materialscolumn1='invoice_line_id'column2='material_line_id'comodel_name='project.task.materials'readonly=Truestring='Materials' -
task_work_idsMany2many → project.task.workcolumn1='invoice_line_id'column2='work_line_id'comodel_name='project.task.work'readonly=Truestring='Works'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
product_idMany2one → product.productcomodel_name='product.product'domain=[('type', '=', 'service')]string='Product' -
uom_idMany2one → product.uomstring='Unit of measure' args: 'product.uom'
-
action_compute_price(self)@api.multi
New fields (0)
No new fields.
Public methods (1)-
action_compute_price(self)@api.multi
New fields (4)
-
material_idMany2one → product.productcomodel_name='product.product'required=Truestring='Material' -
product_idMany2one → product.templatecomodel_name='product.template'ondelete='restrict'string='Product' -
quantityFloatdigits=dp.get_precision('Product Unit of Measure')string='Quantity' -
sequenceInteger
No public methods.
New fields (4)
-
hoursFloatdigits=dp.get_precision('Product Unit of Measure')string='Hours' -
nameCharstring='Name' -
product_idMany2one → product.templatecomodel_name='product.template'ondelete='restrict'string='Product' -
sequenceInteger
No public methods.
New fields (2)
-
task_materials_idsOne2many → product.task.materialscomodel_name='product.task.materials'inverse_name='product_id'string='Materials' -
task_work_idsOne2many → product.task.workcomodel_name='product.task.work'inverse_name='product_id'string='Task Works'
-
action_compute_price(self)@api.multi
New fields (1)
-
task_hoursFloatcompute='_compute_task_hours'store=True
No public methods.
New fields (7)
-
all_invoicedBooleancompute='_compute_analytic_line_ids' -
analytic_line_idsOne2many → account.analytic.linecomodel_name='account.analytic.line'compute='_compute_analytic_line_ids' -
invoice_existsBooleancompute='_compute_analytic_line_ids' -
invoice_idsOne2many → account.invoicecomodel_name='account.invoice'compute='_compute_analytic_line_ids' -
is_closedBooleancompute='_compute_analytic_line_ids' -
project_parent_idMany2onerelated='project_id.parent_id'store=Truestring='Project Parent' -
sale_line_idMany2oneindex=True
-
action_create_invoice(self)@api.multi -
action_view_invoice(self)@api.multi
New fields (5)
-
has_taskBooleancompute='_compute_tasks' -
invoice_on_timesheetsBooleanreadonly=Truestates={'draft': [('readonly', False)], 'sent': [('readonly', False)]} -
print_worksBooleandefault=Truestring='Print materials and works' -
task_closedBooleancompute='_compute_tasks' -
task_idsOne2many → project.taskcomodel_name='project.task'compute='_compute_tasks'string='Tasks'
-
action_view_task(self)@api.multi -
test_no_product(self, order)@api.model
New fields (13)
-
auto_create_taskBooleanreadonly=Truerelated='product_id.auto_create_task' -
compute_priceBoolean -
detailed_materialsBooleanstring='Print Material Prices' -
detailed_timeBooleanstring='Print Works Times' -
task_closedBooleancompute='_compute_task_closed'store=True -
task_idsOne2many → project.taskcomodel_name='project.task'inverse_name='sale_line_id'string='Tasks' -
task_materials_amountFloatcompute='_compute_task_materials_amount'digits=dp.get_precision('Account')string='Material Amount' -
task_materials_idsOne2many → sale.order.line.task.materialscomodel_name='sale.order.line.task.materials'copy=Trueinverse_name='order_line_id'string='Materials' -
task_work_amountFloatcompute='_compute_task_work_values'digits=dp.get_precision('Account')string='Work Amount' -
task_work_hoursFloatcompute='_compute_task_work_values'digits=dp.get_precision('Product Unit of Measure')string='Total Hours' -
task_work_idsOne2many → sale.order.line.task.workcomodel_name='sale.order.line.task.work'copy=Trueinverse_name='order_line_id'string='Works' -
task_work_product_idMany2one → product.productcomodel_name='product.product'domain=[('type', '=', 'service')]string='Work Price Product' -
task_work_product_priceFloatcompute='_compute_task_work_values'digits=dp.get_precision('Product Price')readonly=True
-
product_id_change(self, pricelist, product, qty=0, uom=False, qty_uos=0, uos=False, name='', partner_id=False, lang=False, update_tax=True, date_order=False, packaging=False, fiscal_position=False, flag=False)@api.multi
New fields (5)
-
order_line_idMany2one → sale.order.linecomodel_name='sale.order.line'string='Order Line' -
priceFloatdigits=dp.get_precision('Product Price') -
product_idMany2one → product.productcomodel_name='product.product'string='Material' -
quantityFloatdefault=1.0digits=dp.get_precision('Product Unit of Measure')string='Quantity' -
sequenceIntegerdefault=10
No public methods.
New fields (4)
-
hoursFloatdigits=dp.get_precision('Product Unit of Measure')string='Hours' -
nameCharstring='Name' -
order_line_idMany2one → sale.order.linecomodel_name='sale.order.line'string='Order Line' -
sequenceIntegerdefault=10
No public methods.