TIP: You can type at any time to perform a new search.
Purchase Invoice Plan
purchase_invoice_plan · OCA/purchase-workflow
- Repository
- OCA/purchase-workflow · module folder · Try on Runboat
- Module version
- 1.0.2
- Category
- Purchase
- Folder size
- 0.15 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/purchase-workflow
- Last tracking update
- 2026-08-07 08:42:58
- Authors
- Odoo Community Association (OCA), Ecosoft
- Maintainers
- Odoo Community Association (OCA), Ecosoft
- Committers
- Ricardoalso, Saran440, Weblate, OCA-git-bot, oca-ci, Rafael Lima
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- purchase_work_acceptance_invoice_plan
- Description
By standard feature, user can gradually create partial invoices, one by one and in step create invoice the standard call invoice. This module add ability to create invoices based on the predefined invoice plan, either all at once, or one by one.
Code Analysis ⓘ
Views touched (7)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
purchase_order_form |
purchase_order_form | purchase.order | form | Inherits purchase.purchase_order_form |
view_purchase_create_invoice_plan |
Create Invoice Plan | purchase.create.invoice.plan | form | New |
view_purchase_invoice_plan_filter |
view.purchase.invoice.plan.filter | purchase.invoice.plan | search | New |
view_purchase_invoice_plan_form |
view.purchase.invoice.plan.form | purchase.invoice.plan | form | New |
view_purchase_invoice_plan_tree |
view.purchase.invoice.plan.tree | purchase.invoice.plan | list | New |
view_purchase_invoice_plan_tree_readonly |
view.purchase.invoice.plan.tree | purchase.invoice.plan | list | New |
view_purchase_make_planned_invoice |
view.purchase.make.planned.invoice | purchase.make.planned.invoice | form | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (4)
New fields (4)
-
installment_dateDatedefault=fields.Date.context_todayrequired=True -
intervalIntegerdefault=1required=True -
interval_typeSelectiondefault='month'required=True args: [('day', 'Day'), ('month', 'Month'), ('year', 'Year')] -
num_installmentIntegerdefault=0required=Truestring='Number of Installment'
-
purchase_create_invoice_plan(self)
New fields (14)
-
amountFloatcompute='_compute_amount'digits='Product Price'help='This amount will be used to calculate the percent'inverse='_inverse_amount' -
amount_invoicedFloatcompute='_compute_invoiced'readonly=Falsestore=True -
installmentInteger -
invoice_idsMany2many → account.movecolumn1='plan_id'column2='move_id'comodel_name='account.move'readonly=Truerelation='purchase_invoice_plan_invoice_rel'string='Invoices' -
invoice_typeSelectiondefault='installment'required=Trueselection=[('installment', 'Installment')]string='Type' -
invoicedBooleancompute='_compute_invoiced'help='If this line already invoiced'store=Truestring='Invoice Created' -
lastBooleancompute='_compute_last'help='Last installment will create invoice use remaining amount'string='Last Installment' -
no_editBooleancompute='_compute_no_edit' -
partner_idMany2one → res.partnercomodel_name='res.partner'index=Truerelated='purchase_id.partner_id'store=Truestring='Supplier' -
percentFloatdigits='Purchase Invoice Plan Percent'help='This percent will be used to calculate new quantity' -
plan_dateDaterequired=True -
purchase_idMany2one → purchase.ordercomodel_name='purchase.order'index=Trueondelete='cascade'readonly=Truestring='Purchases Order' -
stateSelectionindex=Truerelated='purchase_id.state'store=Truestring='Status' -
to_invoiceBooleancompute='_compute_to_invoice'help='If this line is ready to create new invoice'store=Truestring='Next Invoice'
No public methods.
New fields (0)
No new fields.
Public methods (1)-
create_invoices_by_plan(self)
New fields (5)
-
invoice_plan_idsOne2many → purchase.invoice.plancomodel_name='purchase.invoice.plan'copy=Falseinverse_name='purchase_id'string='Invoice Plan' -
ip_invoice_planBooleancompute='_compute_ip_invoice_plan'help='At least one invoice plan line pending to create invoice'string='Invoice Plan In Process' -
ip_total_amountMonetarycompute='_compute_ip_total'string='Total Amount' -
ip_total_percentFloatcompute='_compute_ip_total'string='Percent' -
use_invoice_planBooleancopy=Falsedefault=False
-
action_view_invoice(self, invoices=False) -
button_confirm(self) -
create_invoice_plan(self, num_installment, installment_date, interval, interval_type) -
remove_invoice_plan(self)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…