TIP: You can type at any time to perform a new search.
Indonesia E-faktur
l10n_id_efaktur · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.0
- Category
- Accounting/Localizations/EDI
- Folder size
- 0.15 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- Yes
- Website
- None
- Last tracking update
- 2026-08-07 06:23:36
- Authors
- Maintainers
- None
- Committers
- Xavier Morel, Xavier ALT, odoo, Odoo Translation Bot, Brice bib Bartoletti, Gorash, Jigar Vaghela, Ruben Gomes, nni-odoo, Habib (ayh), alsh-odoo, Gauthier Wala (gawa), Claire Bretton (clbr), Dylan Kiss (dyki), Sarah Bellefroid, Nicolas Viseur (vin), mega, nni@odoo.com, kaju-odoo
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- l10n_id_efaktur_coretax
- Description
E-Faktur Menu(Indonesia) Format: 010.000-16.00000001 * 2 (dua) digit pertama adalah Kode Transaksi * 1 (satu) digit berikutnya adalah Kode Status * 3 (tiga) digit berikutnya adalah Kode Cabang * 2 (dua) digit pertama adalah Tahun Penerbitan * 8 (delapan) digit berikutnya adalah Nomor Urut To be able to export customer invoices as e-Faktur, you need to put the ranges of numbers you were assigned by the government in Accounting > Customers > e-Faktur When you validate an invoice, where the partner has the ID PKP field checked, a tax number will be assigned to that invoice. Afterwards, you can filter the invoices still to export in the invoices list and click on Action > Download e-Faktur to download the csv and upload it to the site of the government. You can replace an already sent invoice by another by indicating the replaced invoice and the new one and you can reset an invoice you have not already sent to the government to reuse its number.
Code Analysis ⓘ
Views touched (9)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_move_efaktur_form_view |
account.move.efaktur.form.view | account.move | form | Inherits account.view_move_form |
account_move_efaktur_tree_view |
account.move.efaktur.list.view | account.move | list | Inherits account.view_invoice_tree |
efaktur_tree_view |
l10n_id_efaktur.efaktur.range.list.view | l10n_id_efaktur.efaktur.range | list | New |
l10n_id_efaktur_document_filter_view |
l10n_id.efaktur.document.filter.view | l10n_id_efaktur.document | search | New |
l10n_id_efaktur_document_form_view |
l10n_id.efaktur.document.form.view | l10n_id_efaktur.document | form | New |
l10n_id_efaktur_document_list_view |
l10n_id.efaktur.document.list.view | l10n_id_efaktur.document | list | New |
res_config_settings_view_form |
res.config.settings.view.form.chilean.loc | res.config.settings | form | Inherits account.res_config_settings_view_form |
res_partner_tax_form_view |
res.partner.tax.form.view | res.partner | form | Inherits base.view_partner_form |
view_account_invoice_filter |
account.move.select.l10n_id.inherit | account.move | Inherits account.view_account_invoice_filter |
HTTP endpoints (1)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/l10n_id_efaktur/download_attachments/<models("ir.attachment"):attachments> |
EfakturDownloadController.download_invoice_attachments |
user | http | ALL |
Models touched (5)
New fields (8)
-
l10n_id_available_range_countIntegercompute='_compute_available_range_count'compute_sudo=True -
l10n_id_efaktur_documentMany2one → l10n_id_efaktur.documentcopy=Falsereadonly=Truestring='e-Faktur Document' args: 'l10n_id_efaktur.document' -
l10n_id_efaktur_rangeMany2one → l10n_id_efaktur.efaktur.rangecopy=Falsedomain="[('company_id', '=', company_id), ('available', '>', 0)]"string='E-faktur Range' args: 'l10n_id_efaktur.efaktur.range' -
l10n_id_kode_transaksiSelectioncompute='_compute_kode_transaksi'copy=Falsehelp='Dua digit pertama nomor pajak'readonly=Falsestore=Truestring='Kode Transaksi' args: [('01', '01 To the Parties that is not VAT Collector (Regular Customers)'), ('02', '02 To the Treasurer'), ('03', '03 To other VAT Collectors other than the Treasurer'), ('04', '04 Other Value of VAT Imposition Base'), ('05', '05 Specified Amount (Article 9A Paragraph (1) VAT Law)'), ('06', '06 to individuals holding foreign passports'), ('07', '07 Deliveries that the VAT is not Collected'), ('08', '08 Deliveries that the VAT is Exempted'), ('09', '09 Deliveries of Assets (Article 16D of VAT Law)')] -
l10n_id_need_kode_transaksiBooleancompute='_compute_need_kode_transaksi' -
l10n_id_replace_invoice_idMany2one → account.movecopy=Falsedomain="['|', '&', '&', ('state', '=', 'posted'), ('partner_id', '=', partner_id), ('reversal_move_ids', '!=', False), ('state', '=', 'cancel')]"index='btree_not_null'string='Replace Invoice' args: 'account.move' -
l10n_id_show_kode_transaksiBooleancompute='_compute_show_kode_transaksi' -
l10n_id_tax_numberCharcopy=Falsestring='Tax Number'
-
button_draft(self) -
download_csv(self) -
download_efaktur(self)Collect the data and execute function _generate_efaktur. -
reset_efaktur(self)Reset E-Faktur, so it can be use for other invoice.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (5)
-
activeBooleandefault=Truestring='Active' -
attachment_idMany2one → ir.attachmentcomodel_name='ir.attachment'readonly=True -
company_idMany2one → res.companydefault=<expr>readonly=Truerequired=True args: 'res.company' -
invoice_idsOne2many → account.movecomodel_name='account.move'domain="[('move_type', 'in', ['out_invoice', 'out_refund']), ('company_id', '=', company_id), ('l10n_id_efaktur_document', '=', False), ('l10n_id_tax_number', '!=', False), ('state', '=', 'posted')]"inverse_name='l10n_id_efaktur_document'tracking=True -
nameCharcompute='_compute_name'precompute=Truereadonly=Falserequired=Truestore=True
-
action_download(self)Download the e-faktur related attachment -
action_regenerate(self)Regenerate the e-faktur csv file, based on the invoice in the document. All new file generation will log a copy of the attachment to keep track of past generations.
New fields (5)
-
availableIntegerreadonly=True -
company_idMany2one → res.companydefault=<expr>required=True args: 'res.company' -
maxCharrequired=True -
minCharrequired=True -
next_numIntegercompute='_compute_next_num'
-
create(self, vals_list)@api.model_create_multi -
pop_number(self)Consume the availability of a specific range to generate the eTax number for an invoice -
push_number(self, company_id, number)@api.modelRestoring the eTax number that got released after doing reset eFaktur on an invoice so that it can be reused :param company_id (int): company ID :param number (str): number to be restored -
write(self, vals)Override to determine behaviour of changing min and max of an e-Faktur range For unused ranges, availability lowers when minimum is increased or maximum is decreased. Vice versa applies. For used ranges, minimum is fixed while maximum can only be udpated to a value above the used number. Availability decreases when the maximum is decreased and vice versa.
New fields (3)
-
l10n_id_kode_transaksiSelectiondefault='01'help='Dua digit pertama nomor pajak'string='Invoice Transaction Code'tracking=True args: [('01', '01 To the Parties that is not VAT Collector (Regular Customers)'), ('02', '02 To the Treasurer'), ('03', '03 To other VAT Collectors other than the Treasurer'), ('04', '04 Other Value of VAT Imposition Base'), ('05', '05 Specified Amount (Article 9A Paragraph (1) VAT Law)'), ('06', '06 to individuals holding foreign passports'), ('07', '07 Deliveries that the VAT is not Collected'), ('08', '08 Deliveries that the VAT is Exempted'), ('09', '09 Deliveries of Assets (Article 16D of VAT Law)')] -
l10n_id_nikCharstring='NIK' -
l10n_id_pkpBooleancompute='_compute_l10n_id_pkp'help='Denoting whether the following partner is taxable'readonly=Falsestore=Truestring='Is PKP'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…