TIP: You can type at any time to perform a new search.
Sale & Purchase Vouchers
account_voucher · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.0
- Category
- Accounting
- Folder size
- 1.86 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- None
- Last tracking update
- 2026-08-07 05:07:18
- Authors
- Maintainers
- None
- Committers
- Xavier Morel, Olivier Dony, Fabien Pinckaers, Raphael Collet, Christophe Simonis, Martin Trigaux, Odoo Translation Bot, Denis Ledoux, Goffin Simon, qdp-odoo, Lucas Perais (lpe), Yannick Tivisse, qsm-odoo, Alexandre Kühn, De Paoli Quentin, Jorge Pinna Puissant, Adrian Torres, mreficent, Xavier-Do, Swapnesh Shah
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- account_banking_reconciliation, account_voucher_print, partner_aging
- Description
TODO old description: Invoicing & Payments by Accounting Voucher & Receipts ===================================================== The specific and easy-to-use Invoicing system in Odoo allows you to keep track of your accounting, even when you are not an accountant. It provides an easy way to follow up on your vendors and customers. You could use this simplified accounting in case you work with an (external) account to keep your books, and you still want to keep track of payments. The Invoicing system includes receipts and vouchers (an easy way to keep track of sales and purchases). It also offers you an easy method of registering payments, without having to encode complete abstracts of account. This module manages: * Voucher Entry * Voucher Receipt [Sales & Purchase] * Voucher Payment [Customer & Vendors]
Code Analysis ⓘ
Views touched (11)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_cash_statement_graph |
account.voucher.graph | account.voucher | graph | New |
view_purchase_receipt_form |
account.voucher.purchase.form | account.voucher | form | New |
view_sale_receipt_form |
account.voucher.sale.form | account.voucher | form | New |
view_voucher_filter |
account.voucher.select | account.voucher | search | New |
view_voucher_filter_sale |
account.voucher.sale.select | account.voucher | search | New |
view_voucher_filter_vendor |
account.voucher.purchase.select | account.voucher | search | New |
view_voucher_kanban |
account.voucher.kanban | account.voucher | kanban | New |
view_voucher_line_form |
account.voucher.line.form | account.voucher.line | form | New |
view_voucher_line_tree |
account.voucher.line.tree | account.voucher.line | tree | New |
view_voucher_tree |
account.voucher.tree | account.voucher | tree | New |
view_voucher_tree_purchase |
account.voucher.tree.supplier | account.voucher | tree | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (3)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (22)
-
account_dateDatecopy=Falsedefault=fields.Date.context_todayhelp='Effective date for accounting entries'index=Truereadonly=Truestates={'draft': [('readonly', False)]} args: 'Accounting Date' -
account_idMany2one → account.accountdomain="[('deprecated', '=', False), ('internal_type','=', (voucher_type == 'purchase' and 'payable' or 'receivable'))]"readonly=Truerequired=Truestates={'draft': [('readonly', False)]} args: 'account.account', 'Account' -
amountMonetarycompute='_compute_total'readonly=Truestore=Truestring='Total' -
company_idMany2one → res.companydefault=<expr>readonly=Truerelated='journal_id.company_id'states={'draft': [('readonly', False)]}store=True args: 'res.company', 'Company' -
currency_idMany2one → res.currencycompute='_get_journal_currency'default=<expr>readonly=Truestore=Truestring='Currency' args: 'res.currency' -
dateDatecopy=Falsedefault=fields.Date.context_todayindex=Truereadonly=Truestates={'draft': [('readonly', False)]} args: 'Bill Date' -
date_dueDateindex=Truereadonly=Truestates={'draft': [('readonly', False)]} args: 'Due Date' -
journal_idMany2one → account.journaldefault=_default_journalreadonly=Truerequired=Truestates={'draft': [('readonly', False)]} args: 'account.journal', 'Journal' -
line_idsOne2many → account.voucher.linecopy=Truereadonly=Truestates={'draft': [('readonly', False)]} args: 'account.voucher.line', 'voucher_id', 'Voucher Lines' -
move_idMany2one → account.movecopy=False args: 'account.move', 'Journal Entry' -
nameCharcopy=Falsedefault=''readonly=Truestates={'draft': [('readonly', False)]} args: 'Payment Memo' -
narrationTextreadonly=Truestates={'draft': [('readonly', False)]} args: 'Notes' -
numberCharcopy=Falsereadonly=True -
paidBooleancompute='_check_paid'help='The Voucher has been totally paid.' -
partner_idMany2one → res.partnerchange_default=1readonly=Truestates={'draft': [('readonly', False)]} args: 'res.partner', 'Partner' -
pay_nowSelectiondefault='pay_later'index=Truereadonly=Truestates={'draft': [('readonly', False)]} args: [('pay_now', 'Pay Directly'), ('pay_later', 'Pay Later')], 'Payment' -
payment_journal_idMany2one → account.journaldefault=_default_payment_journaldomain="[('type', 'in', ['cash', 'bank'])]"readonly=Truestates={'draft': [('readonly', False)]}string='Payment Method' args: 'account.journal' -
referenceCharcopy=Falsehelp='The partner reference of this document.'readonly=Truestates={'draft': [('readonly', False)]} args: 'Bill Reference' -
stateSelectioncopy=Falsedefault='draft'help=" * The 'Draft' status is used when a user is encoding a new and unconfirmed Voucher.\n * The 'Pro-forma' status is used when the voucher does not have a voucher number.\n * The 'Posted' status is used when user create voucher,a voucher number is generated and voucher entries are created in account.\n * The 'Cancelled' status is used when user cancel voucher."readonly=Truetrack_visibility='onchange' args: [('draft', 'Draft'), ('cancel', 'Cancelled'), ('proforma', 'Pro-forma'), ('posted', 'Posted')], 'Status' -
tax_amountMonetarycompute='_compute_total'readonly=Truestore=True -
tax_correctionMonetaryhelp='In case we have a rounding problem in the tax, use this field to correct it'readonly=Truestates={'draft': [('readonly', False)]} -
voucher_typeSelectionoldname='type'readonly=Truestates={'draft': [('readonly', False)]}string='Type' args: [('sale', 'Sale'), ('purchase', 'Purchase')]
-
account_move_get(self)@api.multi -
action_cancel_draft(self)@api.multi -
action_move_line_create(self)@api.multiConfirm the vouchers given in ids and create the journal entries for each of them -
cancel_voucher(self)@api.multi -
first_move_line_get(self, move_id, company_currency, current_currency)@api.multi -
name_get(self)@api.multi@api.depends('name', 'number') -
onchange_date(self)@api.onchange('date') -
onchange_partner_id(self)@api.onchange('partner_id', 'pay_now') -
proforma_voucher(self)@api.multi -
unlink(self)@api.multi -
voucher_move_line_create(self, line_total, move_id, company_currency, current_currency)@api.multiCreate one account move line, on the given account move, per voucher line where amount is not 0.0. It returns Tuple with tot_line what is total of difference between debit and credit and a list of lists with ids to be reconciled with this format (total_deb_cred,list_of_lists). :param voucher_id: Voucher id what we are working with :param line_total: Amount of the first line, which correspond to the amount we should totally split among all voucher lines. :param move_id: Account move wher those lines will be joined. :param company_currency: id of currency of the company to which the voucher belong :param current_currency: id of currency of the voucher :return: Tuple build as (remaining amount not allocated on voucher lines, list of account_move_line created in this method) :rtype: tuple(float, list of int) -
voucher_pay_now_payment_create(self)@api.multi
New fields (13)
-
account_analytic_idMany2one → account.analytic.accountargs: 'account.analytic.account', 'Analytic Account' -
account_idMany2one → account.accountdomain=[('deprecated', '=', False)]help='The income or expense account related to the selected product.'required=Truestring='Account' args: 'account.account' -
analytic_tag_idsMany2many → account.analytic.tagstring='Analytic Tags' args: 'account.analytic.tag' -
company_idMany2one → res.companyreadonly=Truerelated='voucher_id.company_id'store=Truestring='Company' args: 'res.company' -
currency_idMany2one → res.currencyreadonly=Falserelated='voucher_id.currency_id' args: 'res.currency' -
nameTextrequired=Truestring='Description' -
price_subtotalMonetarycompute='_compute_subtotal'readonly=Truestore=Truestring='Amount' -
price_unitFloatdigits=dp.get_precision('Product Price')oldname='amount'required=Truestring='Unit Price' -
product_idMany2one → product.productindex=Trueondelete='set null'string='Product' args: 'product.product' -
quantityFloatdefault=1digits=dp.get_precision('Product Unit of Measure')required=True -
sequenceIntegerdefault=10help='Gives the sequence of this line when displaying the voucher.' -
tax_idsMany2many → account.taxhelp='Only for tax excluded from price'string='Tax' args: 'account.tax' -
voucher_idMany2one → account.voucherondelete='cascade'required=1 args: 'account.voucher', 'Voucher'
-
product_id_change(self, product_id, partner_id=False, price_unit=False, company_id=None, currency_id=None, type=None)@api.multi
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…