19.0 vanilla

This commit is contained in:
Ernad Husremovic 2026-03-09 09:31:21 +01:00
parent 7dc55599c6
commit 7f43bbbfcc
650 changed files with 45260 additions and 33436 deletions

View file

@ -1,9 +1,3 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, SUPERUSER_ID
from . import models
def load_translations(cr, registry):
env = api.Environment(cr, SUPERUSER_ID, {})
env.ref('l10n_id.l10n_id_chart').process_coa_translations()
from . import controllers

View file

@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Indonesian - Accounting',
'version': '1.2',
'icon': '/account/static/description/l10n.png',
'countries': ['id'],
'version': '1.3',
'category': 'Accounting/Localizations/Account Charts',
'description': """
This is the latest Indonesian Odoo localisation necessary to run Odoo accounting for SMEs with:
@ -11,19 +11,21 @@ This is the latest Indonesian Odoo localisation necessary to run Odoo accounting
- generic Indonesian chart of accounts
- tax structure""",
'author': 'vitraining.com',
'website': 'http://www.vitraining.com',
'depends': ['account', 'base_iban', 'base_vat', 'l10n_multilang'],
'website': 'https://www.odoo.com/documentation/latest/applications/finance/fiscal_localizations/indonesia.html',
'depends': [
'account',
'base_iban',
'base_vat',
],
'auto_install': ['account'],
'data': [
'data/account_tax_group.xml',
'data/account_chart_template_data.xml',
'data/account.account.template.csv',
'data/account_chart_template_post_data.xml',
'data/account_tax_template_data.xml',
'data/account_chart_template_configuration_data.xml',
'security/ir.model.access.csv',
'data/ir_cron.xml',
'views/account_move_views.xml',
'views/res_bank.xml',
],
'demo': [
'demo/demo_company.xml',
],
'post_init_hook': 'load_translations',
'license': 'LGPL-3',
}

View file

@ -0,0 +1 @@
from . import portal

View file

@ -0,0 +1,13 @@
from odoo.addons.account.controllers.portal import PortalAccount
from odoo import http
from odoo.http import request
class Portal(PortalAccount):
@http.route()
def portal_my_invoice_detail(self, *args, **kw):
""" Override
force QR code generation from QRIS to come only from portal"""
request.update_context(is_online_qr=True)
return super().portal_my_invoice_detail(*args, **kw)

View file

@ -1,108 +0,0 @@
id,code,name,account_type,reconcile,chart_template_id:id
l10n_id_11110001,11110001,Cash,asset_cash,FALSE,l10n_id.l10n_id_chart
l10n_id_11110010,11110010,Petty Cash,asset_cash,FALSE,l10n_id.l10n_id_chart
l10n_id_11110020,11110020,Cash in Hand,asset_cash,FALSE,l10n_id.l10n_id_chart
l10n_id_11120001,11120001,Bank Suspense,liability_current,TRUE,l10n_id.l10n_id_chart
l10n_id_11120002,11120002,Outstanding Receipts,asset_current,TRUE,l10n_id.l10n_id_chart
l10n_id_11120003,11120003,Outstanding Payments,asset_current,TRUE,l10n_id.l10n_id_chart
l10n_id_11120004,11120004,Bank,asset_cash,FALSE,l10n_id.l10n_id_chart
l10n_id_11210010,11210010,Account Receivable,asset_receivable,TRUE,l10n_id.l10n_id_chart
l10n_id_11210011,11210011,Account Receivable (PoS),asset_receivable,TRUE,l10n_id.l10n_id_chart
l10n_id_11210020,11210020,Employee Liabilities,asset_current,TRUE,l10n_id.l10n_id_chart
l10n_id_11300180,11300180,Other Inventory,asset_current,FALSE,l10n_id.l10n_id_chart
l10n_id_11410010,11410010,Building Rent,asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_11410020,11410020,Prepaid Insurance,asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_11410030,11410030,Prepaid Advertisement-Free,asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_11510010,11510010,Prepaid Tax PPh 21,asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_11510020,11510020,Prepaid Tax Pph 22,asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_11510030,11510030,Prepaid Tax Pph 23,asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_11510040,11510040,Prepaid Tax Pph 25,asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_11510050,11510050,Prepaid Tax Pph 28A,asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_11510060,11510060,Prepaid Tax 4 (2),asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_11800000,11800000,Down Payment,asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_12210010,12210010,Office Building,asset_fixed,FALSE,l10n_id.l10n_id_chart
l10n_id_12210020,12210020,Vehicle,asset_fixed,FALSE,l10n_id.l10n_id_chart
l10n_id_12210030,12210030,Office Supplies,asset_fixed,FALSE,l10n_id.l10n_id_chart
l10n_id_12281010,12281010,Accumulation Building Depreciation,asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_12281020,12281020,Accumulation Vehicle Depreciation,asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_12281030,12281030,Accumulation Office Supplies Depreciation,asset_prepayments,FALSE,l10n_id.l10n_id_chart
l10n_id_21100010,21100010,Trade Receivable,liability_payable,TRUE,l10n_id.l10n_id_chart
l10n_id_21100020,21100020,Shareholder Deposit,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_21100030,21100030,Third-Party Deposit,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_21100040,21100040,Salary Deposit,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_21210010,21210010,Tax Payable Pph 21,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_21210020,21210020,Tax Payable Pph 23,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_21210030,21210030,Tax Payable Pph 25,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_21210040,21210040,Tax Payable 4 (2),liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_21210050,21210050,Tax Payable Pph 29,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_21221010,21221010,VAT Purchase,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_21221020,21221020,VAT Sales,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_22110010,22110010,Bank Loan,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_22110020,22110020,Leasing Deposit,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_25110010,25110010,Accrued Payable Electricity,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_25110020,25110020,Accrued Payable Jamsostek,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_25110030,25110030,Accrued Payable Water,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_25110040,25110040,Accrued Payable Telp & Internet,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_25110050,25110050,Accrued Payable Security Management,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_25110060,25110060,Accrued Payable Bank,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_25110070,25110070,Accrued Payable PBB,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_25110080,25110080,Accrued Payable Business License,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_25110090,25110090,Accrued Payable Insurance,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_25110100,25110100,Accrued Payable Education,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_25110110,25110110,Accrued Payable Health Insurance/BPJS,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_28110010,28110010,Advance Sales,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_28110020,28110020,Customer Deposit,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_29000000,29000000,Interim Stock,liability_current,FALSE,l10n_id.l10n_id_chart
l10n_id_31100010,31100010,Authorized Capital,equity,FALSE,l10n_id.l10n_id_chart
l10n_id_31100020,31100020,Paid Capital,equity,FALSE,l10n_id.l10n_id_chart
l10n_id_31100030,31100030,Unpaid Capital,equity,FALSE,l10n_id.l10n_id_chart
l10n_id_31100040,31100040,Prive (Personal Retrieval),equity,FALSE,l10n_id.l10n_id_chart
l10n_id_31210010,31210010,Capital Reserves,equity,FALSE,l10n_id.l10n_id_chart
l10n_id_31510010,31510010,Past Profit & Loss,equity,FALSE,l10n_id.l10n_id_chart
l10n_id_31510020,31510020,Ongoing Profit & Loss,equity,FALSE,l10n_id.l10n_id_chart
l10n_id_39000000,39000000,Historical Balance,equity,TRUE,l10n_id.l10n_id_chart
l10n_id_41000010,41000010,Sales,income,FALSE,l10n_id.l10n_id_chart
l10n_id_42000060,42000060,Sales Refund,income,FALSE,l10n_id.l10n_id_chart
l10n_id_42000070,42000070,Sales Discount,income,FALSE,l10n_id.l10n_id_chart
l10n_id_51000010,51000010,Cost of Goods Sold,expense_direct_cost,FALSE,l10n_id.l10n_id_chart
l10n_id_61100010,61100010,Employee Salary,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_61100020,61100020,Employee Bonus / Benefits,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_61100030,61100030,Employee Overtime Pay,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_61100100,61100100,Pph 21 Benefit,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_63110060,63110060,Phone,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_63110080,63110080,Electricity,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_63110100,63110100,Research & Development,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_63110120,63110120,Office Equipment,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_64110020,64110020,Post Necessities,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_63110140,63110140,Other Necessities,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_65110010,65110010,Licensing Fees,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_65110020,65110020,Bank Administration Fees,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_65110030,65110030,Consultant Fees,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_65110040,65110040,Rental Costs,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_65110050,65110050,Insurance Costs,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_65110060,65110060,Building Maintenance Costs,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_65110070,65110070,Taxes,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_65110080,65110080,Asset Maintenance Costs,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_65110090,65110090,Shipping Costs,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_66110010,66110010,Vehicle Fuel,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_66110020,66110020,Vehicle Service,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_66110030,66110030,Vehicle Parking & Toll Fee,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_66110040,66110040,Vehicle Taxes,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_66110050,66110050,Vehicle Insurance,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_67100010,67100010,Office Building,expense_depreciation,FALSE,l10n_id.l10n_id_chart
l10n_id_67100020,67100020,Vehicle,expense_depreciation,FALSE,l10n_id.l10n_id_chart
l10n_id_67100030,67100030,Office Supplies,expense_depreciation,FALSE,l10n_id.l10n_id_chart
l10n_id_69000000,69000000,Other Expenses,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_81100010,81100010,Interest Income,income_other,FALSE,l10n_id.l10n_id_chart
l10n_id_81100020,81100020,Deposit Income,income_other,FALSE,l10n_id.l10n_id_chart
l10n_id_81100030,81100030,Foreign Exchange Gain,income_other,FALSE,l10n_id.l10n_id_chart
l10n_id_81100040,81100040,Other Income,income_other,FALSE,l10n_id.l10n_id_chart
l10n_id_81100050,81100050,Gain on Sale of Fixed Assets,income_other,FALSE,l10n_id.l10n_id_chart
l10n_id_91100010,91100010,Interest Expense,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_91100020,91100020,Foreign Exchange Loss,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_91100030,91100030,Loss on Sale of Fixed Assets,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_99900001,99900001,Cash Difference Loss,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_99900002,99900002,Cash Difference Gain,income,FALSE,l10n_id.l10n_id_chart
l10n_id_99900003,99900003,Cash Discount Loss,expense,FALSE,l10n_id.l10n_id_chart
l10n_id_99900004,99900004,Cash Discount Gain,income_other,FALSE,l10n_id.l10n_id_chart
l10n_id_999999,999999,Undistributed Profits/Losses,equity_unaffected,FALSE,l10n_id.l10n_id_chart
1 id code name account_type reconcile chart_template_id:id
2 l10n_id_11110001 11110001 Cash asset_cash FALSE l10n_id.l10n_id_chart
3 l10n_id_11110010 11110010 Petty Cash asset_cash FALSE l10n_id.l10n_id_chart
4 l10n_id_11110020 11110020 Cash in Hand asset_cash FALSE l10n_id.l10n_id_chart
5 l10n_id_11120001 11120001 Bank Suspense liability_current TRUE l10n_id.l10n_id_chart
6 l10n_id_11120002 11120002 Outstanding Receipts asset_current TRUE l10n_id.l10n_id_chart
7 l10n_id_11120003 11120003 Outstanding Payments asset_current TRUE l10n_id.l10n_id_chart
8 l10n_id_11120004 11120004 Bank asset_cash FALSE l10n_id.l10n_id_chart
9 l10n_id_11210010 11210010 Account Receivable asset_receivable TRUE l10n_id.l10n_id_chart
10 l10n_id_11210011 11210011 Account Receivable (PoS) asset_receivable TRUE l10n_id.l10n_id_chart
11 l10n_id_11210020 11210020 Employee Liabilities asset_current TRUE l10n_id.l10n_id_chart
12 l10n_id_11300180 11300180 Other Inventory asset_current FALSE l10n_id.l10n_id_chart
13 l10n_id_11410010 11410010 Building Rent asset_prepayments FALSE l10n_id.l10n_id_chart
14 l10n_id_11410020 11410020 Prepaid Insurance asset_prepayments FALSE l10n_id.l10n_id_chart
15 l10n_id_11410030 11410030 Prepaid Advertisement-Free asset_prepayments FALSE l10n_id.l10n_id_chart
16 l10n_id_11510010 11510010 Prepaid Tax PPh 21 asset_prepayments FALSE l10n_id.l10n_id_chart
17 l10n_id_11510020 11510020 Prepaid Tax Pph 22 asset_prepayments FALSE l10n_id.l10n_id_chart
18 l10n_id_11510030 11510030 Prepaid Tax Pph 23 asset_prepayments FALSE l10n_id.l10n_id_chart
19 l10n_id_11510040 11510040 Prepaid Tax Pph 25 asset_prepayments FALSE l10n_id.l10n_id_chart
20 l10n_id_11510050 11510050 Prepaid Tax Pph 28A asset_prepayments FALSE l10n_id.l10n_id_chart
21 l10n_id_11510060 11510060 Prepaid Tax 4 (2) asset_prepayments FALSE l10n_id.l10n_id_chart
22 l10n_id_11800000 11800000 Down Payment asset_prepayments FALSE l10n_id.l10n_id_chart
23 l10n_id_12210010 12210010 Office Building asset_fixed FALSE l10n_id.l10n_id_chart
24 l10n_id_12210020 12210020 Vehicle asset_fixed FALSE l10n_id.l10n_id_chart
25 l10n_id_12210030 12210030 Office Supplies asset_fixed FALSE l10n_id.l10n_id_chart
26 l10n_id_12281010 12281010 Accumulation Building Depreciation asset_prepayments FALSE l10n_id.l10n_id_chart
27 l10n_id_12281020 12281020 Accumulation Vehicle Depreciation asset_prepayments FALSE l10n_id.l10n_id_chart
28 l10n_id_12281030 12281030 Accumulation Office Supplies Depreciation asset_prepayments FALSE l10n_id.l10n_id_chart
29 l10n_id_21100010 21100010 Trade Receivable liability_payable TRUE l10n_id.l10n_id_chart
30 l10n_id_21100020 21100020 Shareholder Deposit liability_current FALSE l10n_id.l10n_id_chart
31 l10n_id_21100030 21100030 Third-Party Deposit liability_current FALSE l10n_id.l10n_id_chart
32 l10n_id_21100040 21100040 Salary Deposit liability_current FALSE l10n_id.l10n_id_chart
33 l10n_id_21210010 21210010 Tax Payable Pph 21 liability_current FALSE l10n_id.l10n_id_chart
34 l10n_id_21210020 21210020 Tax Payable Pph 23 liability_current FALSE l10n_id.l10n_id_chart
35 l10n_id_21210030 21210030 Tax Payable Pph 25 liability_current FALSE l10n_id.l10n_id_chart
36 l10n_id_21210040 21210040 Tax Payable 4 (2) liability_current FALSE l10n_id.l10n_id_chart
37 l10n_id_21210050 21210050 Tax Payable Pph 29 liability_current FALSE l10n_id.l10n_id_chart
38 l10n_id_21221010 21221010 VAT Purchase liability_current FALSE l10n_id.l10n_id_chart
39 l10n_id_21221020 21221020 VAT Sales liability_current FALSE l10n_id.l10n_id_chart
40 l10n_id_22110010 22110010 Bank Loan liability_current FALSE l10n_id.l10n_id_chart
41 l10n_id_22110020 22110020 Leasing Deposit liability_current FALSE l10n_id.l10n_id_chart
42 l10n_id_25110010 25110010 Accrued Payable Electricity liability_current FALSE l10n_id.l10n_id_chart
43 l10n_id_25110020 25110020 Accrued Payable Jamsostek liability_current FALSE l10n_id.l10n_id_chart
44 l10n_id_25110030 25110030 Accrued Payable Water liability_current FALSE l10n_id.l10n_id_chart
45 l10n_id_25110040 25110040 Accrued Payable Telp & Internet liability_current FALSE l10n_id.l10n_id_chart
46 l10n_id_25110050 25110050 Accrued Payable Security Management liability_current FALSE l10n_id.l10n_id_chart
47 l10n_id_25110060 25110060 Accrued Payable Bank liability_current FALSE l10n_id.l10n_id_chart
48 l10n_id_25110070 25110070 Accrued Payable PBB liability_current FALSE l10n_id.l10n_id_chart
49 l10n_id_25110080 25110080 Accrued Payable Business License liability_current FALSE l10n_id.l10n_id_chart
50 l10n_id_25110090 25110090 Accrued Payable Insurance liability_current FALSE l10n_id.l10n_id_chart
51 l10n_id_25110100 25110100 Accrued Payable Education liability_current FALSE l10n_id.l10n_id_chart
52 l10n_id_25110110 25110110 Accrued Payable Health Insurance/BPJS liability_current FALSE l10n_id.l10n_id_chart
53 l10n_id_28110010 28110010 Advance Sales liability_current FALSE l10n_id.l10n_id_chart
54 l10n_id_28110020 28110020 Customer Deposit liability_current FALSE l10n_id.l10n_id_chart
55 l10n_id_29000000 29000000 Interim Stock liability_current FALSE l10n_id.l10n_id_chart
56 l10n_id_31100010 31100010 Authorized Capital equity FALSE l10n_id.l10n_id_chart
57 l10n_id_31100020 31100020 Paid Capital equity FALSE l10n_id.l10n_id_chart
58 l10n_id_31100030 31100030 Unpaid Capital equity FALSE l10n_id.l10n_id_chart
59 l10n_id_31100040 31100040 Prive (Personal Retrieval) equity FALSE l10n_id.l10n_id_chart
60 l10n_id_31210010 31210010 Capital Reserves equity FALSE l10n_id.l10n_id_chart
61 l10n_id_31510010 31510010 Past Profit & Loss equity FALSE l10n_id.l10n_id_chart
62 l10n_id_31510020 31510020 Ongoing Profit & Loss equity FALSE l10n_id.l10n_id_chart
63 l10n_id_39000000 39000000 Historical Balance equity TRUE l10n_id.l10n_id_chart
64 l10n_id_41000010 41000010 Sales income FALSE l10n_id.l10n_id_chart
65 l10n_id_42000060 42000060 Sales Refund income FALSE l10n_id.l10n_id_chart
66 l10n_id_42000070 42000070 Sales Discount income FALSE l10n_id.l10n_id_chart
67 l10n_id_51000010 51000010 Cost of Goods Sold expense_direct_cost FALSE l10n_id.l10n_id_chart
68 l10n_id_61100010 61100010 Employee Salary expense FALSE l10n_id.l10n_id_chart
69 l10n_id_61100020 61100020 Employee Bonus / Benefits expense FALSE l10n_id.l10n_id_chart
70 l10n_id_61100030 61100030 Employee Overtime Pay expense FALSE l10n_id.l10n_id_chart
71 l10n_id_61100100 61100100 Pph 21 Benefit expense FALSE l10n_id.l10n_id_chart
72 l10n_id_63110060 63110060 Phone expense FALSE l10n_id.l10n_id_chart
73 l10n_id_63110080 63110080 Electricity expense FALSE l10n_id.l10n_id_chart
74 l10n_id_63110100 63110100 Research & Development expense FALSE l10n_id.l10n_id_chart
75 l10n_id_63110120 63110120 Office Equipment expense FALSE l10n_id.l10n_id_chart
76 l10n_id_64110020 64110020 Post Necessities expense FALSE l10n_id.l10n_id_chart
77 l10n_id_63110140 63110140 Other Necessities expense FALSE l10n_id.l10n_id_chart
78 l10n_id_65110010 65110010 Licensing Fees expense FALSE l10n_id.l10n_id_chart
79 l10n_id_65110020 65110020 Bank Administration Fees expense FALSE l10n_id.l10n_id_chart
80 l10n_id_65110030 65110030 Consultant Fees expense FALSE l10n_id.l10n_id_chart
81 l10n_id_65110040 65110040 Rental Costs expense FALSE l10n_id.l10n_id_chart
82 l10n_id_65110050 65110050 Insurance Costs expense FALSE l10n_id.l10n_id_chart
83 l10n_id_65110060 65110060 Building Maintenance Costs expense FALSE l10n_id.l10n_id_chart
84 l10n_id_65110070 65110070 Taxes expense FALSE l10n_id.l10n_id_chart
85 l10n_id_65110080 65110080 Asset Maintenance Costs expense FALSE l10n_id.l10n_id_chart
86 l10n_id_65110090 65110090 Shipping Costs expense FALSE l10n_id.l10n_id_chart
87 l10n_id_66110010 66110010 Vehicle Fuel expense FALSE l10n_id.l10n_id_chart
88 l10n_id_66110020 66110020 Vehicle Service expense FALSE l10n_id.l10n_id_chart
89 l10n_id_66110030 66110030 Vehicle Parking & Toll Fee expense FALSE l10n_id.l10n_id_chart
90 l10n_id_66110040 66110040 Vehicle Taxes expense FALSE l10n_id.l10n_id_chart
91 l10n_id_66110050 66110050 Vehicle Insurance expense FALSE l10n_id.l10n_id_chart
92 l10n_id_67100010 67100010 Office Building expense_depreciation FALSE l10n_id.l10n_id_chart
93 l10n_id_67100020 67100020 Vehicle expense_depreciation FALSE l10n_id.l10n_id_chart
94 l10n_id_67100030 67100030 Office Supplies expense_depreciation FALSE l10n_id.l10n_id_chart
95 l10n_id_69000000 69000000 Other Expenses expense FALSE l10n_id.l10n_id_chart
96 l10n_id_81100010 81100010 Interest Income income_other FALSE l10n_id.l10n_id_chart
97 l10n_id_81100020 81100020 Deposit Income income_other FALSE l10n_id.l10n_id_chart
98 l10n_id_81100030 81100030 Foreign Exchange Gain income_other FALSE l10n_id.l10n_id_chart
99 l10n_id_81100040 81100040 Other Income income_other FALSE l10n_id.l10n_id_chart
100 l10n_id_81100050 81100050 Gain on Sale of Fixed Assets income_other FALSE l10n_id.l10n_id_chart
101 l10n_id_91100010 91100010 Interest Expense expense FALSE l10n_id.l10n_id_chart
102 l10n_id_91100020 91100020 Foreign Exchange Loss expense FALSE l10n_id.l10n_id_chart
103 l10n_id_91100030 91100030 Loss on Sale of Fixed Assets expense FALSE l10n_id.l10n_id_chart
104 l10n_id_99900001 99900001 Cash Difference Loss expense FALSE l10n_id.l10n_id_chart
105 l10n_id_99900002 99900002 Cash Difference Gain income FALSE l10n_id.l10n_id_chart
106 l10n_id_99900003 99900003 Cash Discount Loss expense FALSE l10n_id.l10n_id_chart
107 l10n_id_99900004 99900004 Cash Discount Gain income_other FALSE l10n_id.l10n_id_chart
108 l10n_id_999999 999999 Undistributed Profits/Losses equity_unaffected FALSE l10n_id.l10n_id_chart

View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<function model="account.chart.template" name="try_loading">
<value eval="[ref('l10n_id_chart')]"/>
</function>
</odoo>

View file

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="l10n_id_chart" model="account.chart.template">
<field name="name">Indonesian Account Chart Template</field>
<field name="bank_account_code_prefix">1112</field>
<field name="cash_account_code_prefix">1111</field>
<field name="transfer_account_code_prefix">1999999</field>
<field name="code_digits">8</field>
<field name="currency_id" ref="base.IDR"/>
<field name="spoken_languages" eval="'id_ID'"/>
<field name="country_id" ref="base.id"/>
</record>
</odoo>

View file

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="l10n_id_chart" model="account.chart.template">
<field name="property_account_receivable_id" ref="l10n_id_11210010"/>
<field name="property_account_payable_id" ref="l10n_id_21100010"/>
<field name="property_account_expense_categ_id" ref="l10n_id_51000010"/>
<field name="property_account_income_categ_id" ref="l10n_id_41000010"/>
<field name="property_stock_account_input_categ_id" ref="l10n_id_29000000"/>
<field name="property_stock_account_output_categ_id" ref="l10n_id_29000000"/>
<field name="property_stock_valuation_account_id" ref="l10n_id_11300180"/>
<field name="income_currency_exchange_account_id" ref="l10n_id_81100010"/>
<field name="expense_currency_exchange_account_id" ref="l10n_id_91100010"/>
<field name="default_pos_receivable_account_id" ref="l10n_id_11210011"/>
<field name="account_journal_early_pay_discount_loss_account_id" ref="l10n_id_99900003"/>
<field name="account_journal_early_pay_discount_gain_account_id" ref="l10n_id_99900004"/>
<field name="use_anglo_saxon" eval="1"/>
</record>
</odoo>

View file

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="l10n_id_tax_group_luxury_goods" model="account.tax.group">
<field name="name">Luxury Good Taxes</field>
<field name="sequence">1</field>
<field name="country_id" ref="base.id"/>
</record>
<record id="l10n_id_tax_group_non_luxury_goods" model="account.tax.group">
<field name="name">Non-luxury Good Taxes</field>
<field name="sequence">2</field>
<field name="country_id" ref="base.id"/>
</record>
<record id="l10n_id_tax_group_0" model="account.tax.group">
<field name="name">Zero-rated Taxes</field>
<field name="sequence">3</field>
<field name="country_id" ref="base.id"/>
</record>
<record id="l10n_id_tax_group_exempt" model="account.tax.group">
<field name="name">Tax Exempted</field>
<field name="sequence">4</field>
<field name="country_id" ref="base.id"/>
</record>
</odoo>

View file

@ -1,239 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="ppn_tag" model="account.account.tag">
<field name="name">PPN - 08</field>
<field name="applicability">taxes</field>
<field name="country_id" ref="base.id"/>
</record>
<record id="tax_ST1" model="account.tax.template">
<field name="description">12%</field>
<field name="tax_group_id" ref="l10n_id.l10n_id_tax_group_non_luxury_goods"/>
<field name="chart_template_id" ref="l10n_id_chart"/>
<field name="type_tax_use">sale</field>
<field name="name">11%</field>
<field name="amount_type">percent</field>
<field name="amount">11.0</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'repartition_type': 'base',
'tag_ids': [(4, ref('ppn_tag'))],
}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221020'),
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'repartition_type': 'base',
'tag_ids': [(4, ref('ppn_tag'))],
}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221020'),
}),
]"/>
</record>
<record id="tax_PT1" model="account.tax.template">
<field name="description">12%</field>
<field name="chart_template_id" ref="l10n_id_chart"/>
<field name="tax_group_id" ref="l10n_id.l10n_id_tax_group_non_luxury_goods"/>
<field name="type_tax_use">purchase</field>
<field name="name">11%</field>
<field name="amount_type">percent</field>
<field name="amount">11.0</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'repartition_type': 'base',
'tag_ids': [(4, ref('ppn_tag'))],
}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221010'),
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'repartition_type': 'base',
'tag_ids': [(4, ref('ppn_tag'))],
}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221010'),
}),
]"/>
</record>
<record id="tax_ST0" model="account.tax.template">
<field name="description">0%</field>
<field name="chart_template_id" ref="l10n_id_chart"/>
<field name="tax_group_id" ref="l10n_id.l10n_id_tax_group_0"/>
<field name="type_tax_use">sale</field>
<field name="name">0%</field>
<field name="amount_type">percent</field>
<field name="amount">0</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {'repartition_type': 'base'}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221020'),
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {'repartition_type': 'base'}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221020'),
}),
]"/>
</record>
<record id="tax_ST2" model="account.tax.template">
<field name="description">0%</field>
<field name="chart_template_id" ref="l10n_id_chart"/>
<field name="tax_group_id" ref="l10n_id.l10n_id_tax_group_exempt"/>
<field name="type_tax_use">sale</field>
<field name="name">Exempt</field>
<field name="amount_type">percent</field>
<field name="amount">0</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {'repartition_type': 'base'}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221020'),
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {'repartition_type': 'base'}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221020'),
}),
]"/>
</record>
<record id="tax_PT2" model="account.tax.template">
<field name="description">0%</field>
<field name="chart_template_id" ref="l10n_id_chart"/>
<field name="tax_group_id" ref="l10n_id.l10n_id_tax_group_exempt"/>
<field name="type_tax_use">purchase</field>
<field name="name">Exempt</field>
<field name="amount_type">percent</field>
<field name="amount">0</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {'repartition_type': 'base'}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221010'),
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {'repartition_type': 'base'}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221010'),
}),
]"/>
</record>
<record id="tax_PT0" model="account.tax.template">
<field name="description">0%</field>
<field name="chart_template_id" ref="l10n_id_chart"/>
<field name="tax_group_id" ref="l10n_id.l10n_id_tax_group_0"/>
<field name="type_tax_use">purchase</field>
<field name="name">0%</field>
<field name="amount_type">percent</field>
<field name="amount">0</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {'repartition_type': 'base'}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221010'),
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {'repartition_type': 'base'}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221010'),
}),
]"/>
</record>
<record id="tax_ST3" model="account.tax.template">
<field name="description">12%</field>
<field name="chart_template_id" ref="l10n_id_chart"/>
<field name="tax_group_id" ref="l10n_id.l10n_id_tax_group_luxury_goods"/>
<field name="type_tax_use">sale</field>
<field name="name">12%</field>
<field name="amount_type">percent</field>
<field name="amount">12.0</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'repartition_type': 'base',
'tag_ids': [(4, ref('ppn_tag'))],
}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221020'),
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'repartition_type': 'base',
'tag_ids': [(4, ref('ppn_tag'))],
}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221020'),
}),
]"/>
</record>
<record id="tax_PT3" model="account.tax.template">
<field name="description">12%</field>
<field name="chart_template_id" ref="l10n_id_chart"/>
<field name="tax_group_id" ref="l10n_id.l10n_id_tax_group_luxury_goods"/>
<field name="type_tax_use">purchase</field>
<field name="name">12%</field>
<field name="amount_type">percent</field>
<field name="amount">12.0</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'repartition_type': 'base',
'tag_ids': [(4, ref('ppn_tag'))],
}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221010'),
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {
'repartition_type': 'base',
'tag_ids': [(4, ref('ppn_tag'))],
}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221010'),
}),
]"/>
</record>
<record id="tax_luxury_sales" model="account.tax.template">
<field name="description">20% (Luxury Goods)</field>
<field name="chart_template_id" ref="l10n_id_chart"/>
<field name="type_tax_use">sale</field>
<field name="name">20%</field>
<field name="amount_type">percent</field>
<field name="tax_group_id" ref="l10n_id.l10n_id_tax_group_luxury_goods"/>
<field name="amount">20.0</field>
<field name="invoice_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {'repartition_type': 'base'}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221020'),
}),
]"/>
<field name="refund_repartition_line_ids" eval="[(5, 0, 0),
(0,0, {'repartition_type': 'base'}),
(0,0, {
'repartition_type': 'tax',
'account_id': ref('l10n_id_21221020'),
}),
]"/>
</record>
</odoo>

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">
<record id="qris_fetch_cron" model="ir.cron">
<field name="name">QRIS Fetch Status</field>
<field name="model_id" ref="account.model_account_move"/>
<field name="interval_number">1</field>
<field name="interval_type">hours</field>
<field name="user_id" ref="base.user_root"/>
<field name="state">code</field>
<field name="code">model._l10n_id_cron_update_payment_status()</field>
</record>
</odoo>

View file

@ -0,0 +1,115 @@
"id","code","name","account_type","reconcile","name@id","non_trade"
"l10n_id_11110001","11110001","Cash","asset_cash","False","",""
"l10n_id_11110010","11110010","Petty Cash","asset_cash","False","Kas Kecil",""
"l10n_id_11120001","11120001","Bank","asset_cash","False","",""
"l10n_id_11210010","11210010","Account Receivable","asset_receivable","True","Piutang Usaha",""
"l10n_id_11210011","11210011","Account Receivable (PoS)","asset_receivable","True","Piutang Usaha (PoS)",""
"l10n_id_11210012","11210012","VAT Receivable","asset_receivable","True","","True"
"l10n_id_11210013","11210013","STLG Receivable","asset_receivable","True","","True"
"l10n_id_11210014","11210014","PPh 28A Prepaid","asset_receivable","True","","True"
"l10n_id_11210030","11210030","VAT Purchase","asset_current","False","",""
"l10n_id_11210040","11210040","Prepaid Expense","asset_current","False","",""
"l10n_id_11300180","11300180","Inventory","asset_current","False","Persediaan Lainnya",""
"l10n_id_11410010","11410010","Building Rent","asset_prepayments","False","Sewa Bangunan",""
"l10n_id_11410020","11410020","Prepaid Insurance","asset_prepayments","False","Asuransi Dibayar Dimuka",""
"l10n_id_11410030","11410030","Prepaid Advertisement-Free","asset_prepayments","False","Beban Iklan Dibayar Dimuka",""
"l10n_id_11510010","11510010","Prepaid Tax PPh 21","asset_prepayments","False","",""
"l10n_id_11510020","11510020","Prepaid Tax Pph 22","asset_prepayments","False","Pajak Dibayar Dimuka PPH 22",""
"l10n_id_11510030","11510030","Prepaid Tax Pph 23","asset_prepayments","False","Pajak Dibayar Dimuka PPH 23",""
"l10n_id_11510040","11510040","Prepaid Tax Pph 25","asset_prepayments","False","Pajak Dibayar Dimuka PPH 25",""
"l10n_id_11800000","11800000","Down Payment","asset_prepayments","False","Uang Muka Pembelian",""
"l10n_id_12210010","12210010","Office Building","asset_fixed","False","Bangunan Kantor",""
"l10n_id_12210020","12210020","Vehicle","asset_fixed","False","Kendaraan",""
"l10n_id_12210030","12210030","Office Supplies","asset_fixed","False","Peralatan Kantor",""
"l10n_id_12281010","12281010","Accumulation Building Depreciation","asset_fixed","False","Akumulasi Penyusutan Bangunan Kantor",""
"l10n_id_12281020","12281020","Accumulation Vehicle Depreciation","asset_fixed","False","Akumulasi Penyusutan Kendaraan",""
"l10n_id_12281030","12281030","Accumulation Office Supplies Depreciation","asset_fixed","False","Akumulasi Penyusutan Peralatan Kantor",""
"l10n_id_21100010","21100010","Account Payable","liability_payable","True","Hutang Usaha",""
"l10n_id_21100011","21100011","VAT Payable","liability_payable","True","","True"
"l10n_id_21100012","21100012","STLG Payable","liability_payable","True","","True"
"l10n_id_21100013","21100013","Employee Liabilities","liability_current","True","Piutang Karyawan",""
"l10n_id_21100014","21100014","Tax Payable PPh 29","liability_payable","True","","True"
"l10n_id_21100020","21100020","Shareholder Deposit","liability_current","False","Hutang Pemegang Saham",""
"l10n_id_21100030","21100030","Third-Party Deposit","liability_current","False","Hutang Pihak Ketiga",""
"l10n_id_21100040","21100040","Salary Deposit","liability_current","False","Hutang Gaji",""
"l10n_id_21210010","21210010","Tax Payable PPh 21","liability_current","True","Hutang Pajak PPh 21",""
"l10n_id_21210020","21210020","Tax Payable PPh 22","liability_current","True","Hutang Pajak PPh 22",""
"l10n_id_21210030","21210030","Tax Payable PPh 23","liability_current","True","Hutang Pajak PPh 23",""
"l10n_id_21210040","21210040","Tax Payable PPh 25","liability_current","True","Hutang Pajak PPh 25",""
"l10n_id_21210050","21210050","Tax Payable 4(2)","liability_current","True","Hutang Pajak Pasal 4 (2)",""
"l10n_id_21210060","21210060","Tax Payable PPh 26","liability_current","True","Hutang Pajak PPh 26",""
"l10n_id_21221010","21221010","VAT Sales","liability_current","False","PPN Pembelian",""
"l10n_id_22110010","22110010","Bank Loan","liability_current","False","Hutang Bank",""
"l10n_id_22110020","22110020","Leasing Deposit","liability_current","False","Hutang Leasing",""
"l10n_id_25110010","25110010","Accrued Payable Electricity","liability_current","False","BYMHD Listrik",""
"l10n_id_25110020","25110020","Accrued Payable Jamsostek","liability_current","False","BYMHD Jamsostek",""
"l10n_id_25110030","25110030","Accrued Payable Water","liability_current","False","BYMHD Air",""
"l10n_id_25110040","25110040","Accrued Payable Telp & Internet","liability_current","False","BYMHD Telepon",""
"l10n_id_25110050","25110050","Accrued Payable Security Management","liability_current","False","BYMHD Jasa Pengelola Keamanan",""
"l10n_id_25110060","25110060","Accrued Payable Bank","liability_current","False","BYMHD Bank",""
"l10n_id_25110070","25110070","Accrued Payable PBB","liability_current","False","BYMHD PBB",""
"l10n_id_25110080","25110080","Accrued Payable Business License","liability_current","False","BYMHD Izin Usaha",""
"l10n_id_25110090","25110090","Accrued Payable Insurance","liability_current","False","BYMHD Asuransi",""
"l10n_id_25110100","25110100","Accrued Payable Education","liability_current","False","BYMHD Pendidikan dan Latihan",""
"l10n_id_25110110","25110110","Accrued Payable Health Insurance/BPJS","liability_current","False","BYMHD Jaminan Kesehatan/BPJS",""
"l10n_id_28110010","28110010","Advance Sales","liability_current","False","Uang Muka Penjualan",""
"l10n_id_28110020","28110020","Customer Deposit","liability_current","False","Deposit Customer",""
"l10n_id_28110030","28110030","Deferred Revenue","liability_current","False","",""
"l10n_id_29000000","29000000","Interim Stock","liability_current","False","Stok Interim",""
"l10n_id_31100010","31100010","Authorized Capital","equity","False","Modal Dasar",""
"l10n_id_31100020","31100020","Paid Capital","equity","False","Modal Yang Disetor",""
"l10n_id_31100030","31100030","Unpaid Capital","equity","False","Modal Yang Belum Disetor",""
"l10n_id_31100040","31100040","Prive (Personal Retrieval)","equity","False","Prive (Pengambilan Pribadi)",""
"l10n_id_31210010","31210010","Capital Reserves","equity","False","Cadangan Modal",""
"l10n_id_31510010","31510010","Past Profit & Loss","equity","False","Laba Rugi Tahun Lalu",""
"l10n_id_31510020","31510020","Ongoing Profit & Loss","equity","False","Laba Rugi Tahun Berjalan",""
"l10n_id_39000000","39000000","Historical Balance","equity","True","Historical Balance",""
"l10n_id_41000010","41000010","Sales","income","False","Penjualan",""
"l10n_id_42000060","42000060","Sales Refund","income","False","Retur Penjualan",""
"l10n_id_42000070","42000070","Sales Discount","income","False","Discount Penjualan",""
"l10n_id_42500010","42500010","Change in Inventory","expense","False","Perubahan Persediaan",""
"l10n_id_51000010","51000010","Cost of Goods Sold","expense_direct_cost","False","Harga Pokok Penjualan",""
"l10n_id_51000020","51000020","Purchases - Raw Materials","expense","False","Pembelian Bahan Baku",""
"l10n_id_61100010","61100010","Employee Salary","expense","False","Gaji Karyawan",""
"l10n_id_61100020","61100020","Employee Bonus / Benefits","expense","False","Tunjangan/ Bonus Karyawan",""
"l10n_id_61100030","61100030","Employee Overtime Pay","expense","False","Lembur Karyawan",""
"l10n_id_61100100","61100100","Pph 21 Benefit","expense","False","Tunjangan PPH Pasal 21",""
"l10n_id_61100110","61100110","PPh 22 Final","expense","False","",""
"l10n_id_61100120","61100120","PPh 4(2) Final","expense","False","",""
"l10n_id_63110060","63110060","Phone","expense","False","Telepon",""
"l10n_id_63110080","63110080","Electricity","expense","False","Listrik",""
"l10n_id_63110100","63110100","Research & Development","expense","False","Research & Development",""
"l10n_id_63110120","63110120","Office Equipment","expense","False","Perlengkapan Kantor",""
"l10n_id_64110020","64110020","Post Necessities","expense","False","Keperluan Pos",""
"l10n_id_63110140","63110140","Other Necessities","expense","False","Keperluan Lain-lain",""
"l10n_id_65110010","65110010","Licensing Fees","expense","False","Biaya Perizinan",""
"l10n_id_65110020","65110020","Bank Administration Fees","expense","False","Biaya Administrasi Bank",""
"l10n_id_65110030","65110030","Consultant Fees","expense","False","Biaya Konsultan",""
"l10n_id_65110040","65110040","Rental Costs","expense","False","Biaya Sewa",""
"l10n_id_65110050","65110050","Insurance Costs","expense","False","",""
"l10n_id_65110060","65110060","Building Maintenance Costs","expense","False","Biaya Pemeliharaan & Perawatan Gedung",""
"l10n_id_65110070","65110070","Income Tax Expenses (CIT)","expense","False","Pajak",""
"l10n_id_65110080","65110080","Asset Maintenance Costs","expense","False","Biaya Pemeliharaan & Perawatan Aset",""
"l10n_id_65110090","65110090","Shipping Costs","expense","False","Biaya Pengiriman Dokumen/Barang",""
"l10n_id_66110010","66110010","Vehicle Fuel","expense","False","BBM kendaraan",""
"l10n_id_66110020","66110020","Vehicle Service","expense","False","Service kendaraan",""
"l10n_id_66110030","66110030","Vehicle Parking & Toll Fee","expense","False","Parkir & tol kendaraan",""
"l10n_id_66110040","66110040","Vehicle Taxes","expense","False","Pajak Kendaraan",""
"l10n_id_66110050","66110050","Vehicle Insurance","expense","False","Asuransi Kendaraan",""
"l10n_id_67100010","67100010","Office Building","expense_depreciation","False","Bangunan Kantor",""
"l10n_id_67100020","67100020","Vehicle","expense_depreciation","False","Kendaraan",""
"l10n_id_67100030","67100030","Office Supplies","expense_depreciation","False","Peralatan Kantor",""
"l10n_id_69000000","69000000","Other Expenses","expense","False","Biaya Lain-lain",""
"l10n_id_81100010","81100010","Interest Income","income_other","False","Pendapatan Bunga",""
"l10n_id_81100020","81100020","Deposit Income","income_other","False","Pendapatan Deposit",""
"l10n_id_81100030","81100030","Foreign Exchange Gain","income_other","False","Keuntungan Selisih Kurs",""
"l10n_id_81100040","81100040","Other Income","income_other","False","Pendapatan lainnya",""
"l10n_id_81100050","81100050","Gain on Sale of Fixed Assets","income_other","False","Keuntungan Atas Penjualan Aktiva Tetap",""
"l10n_id_91100010","91100010","Interest Expense","expense","False","Beban Bunga",""
"l10n_id_91100020","91100020","Foreign Exchange Loss","expense","False","Kerugian Selisih Kurs",""
"l10n_id_91100030","91100030","Loss on Sale of Fixed Assets","expense","False","Kerugian Atas Penjualan Aktiva Tetap",""
"l10n_id_99900001","99900001","Cash Difference Loss","expense","False","",""
"l10n_id_99900002","99900002","Cash Difference Gain","income","False","",""
"l10n_id_99900003","99900003","Cash Discount Loss","expense","False","",""
"l10n_id_99900004","99900004","Cash Discount Gain","income_other","False","",""
"l10n_id_999999","999999","Undistributed Profits/Losses","equity_unaffected","False","",""
1 id code name account_type reconcile name@id non_trade
2 l10n_id_11110001 11110001 Cash asset_cash False
3 l10n_id_11110010 11110010 Petty Cash asset_cash False Kas Kecil
4 l10n_id_11120001 11120001 Bank asset_cash False
5 l10n_id_11210010 11210010 Account Receivable asset_receivable True Piutang Usaha
6 l10n_id_11210011 11210011 Account Receivable (PoS) asset_receivable True Piutang Usaha (PoS)
7 l10n_id_11210012 11210012 VAT Receivable asset_receivable True True
8 l10n_id_11210013 11210013 STLG Receivable asset_receivable True True
9 l10n_id_11210014 11210014 PPh 28A Prepaid asset_receivable True True
10 l10n_id_11210030 11210030 VAT Purchase asset_current False
11 l10n_id_11210040 11210040 Prepaid Expense asset_current False
12 l10n_id_11300180 11300180 Inventory asset_current False Persediaan Lainnya
13 l10n_id_11410010 11410010 Building Rent asset_prepayments False Sewa Bangunan
14 l10n_id_11410020 11410020 Prepaid Insurance asset_prepayments False Asuransi Dibayar Dimuka
15 l10n_id_11410030 11410030 Prepaid Advertisement-Free asset_prepayments False Beban Iklan Dibayar Dimuka
16 l10n_id_11510010 11510010 Prepaid Tax PPh 21 asset_prepayments False
17 l10n_id_11510020 11510020 Prepaid Tax Pph 22 asset_prepayments False Pajak Dibayar Dimuka PPH 22
18 l10n_id_11510030 11510030 Prepaid Tax Pph 23 asset_prepayments False Pajak Dibayar Dimuka PPH 23
19 l10n_id_11510040 11510040 Prepaid Tax Pph 25 asset_prepayments False Pajak Dibayar Dimuka PPH 25
20 l10n_id_11800000 11800000 Down Payment asset_prepayments False Uang Muka Pembelian
21 l10n_id_12210010 12210010 Office Building asset_fixed False Bangunan Kantor
22 l10n_id_12210020 12210020 Vehicle asset_fixed False Kendaraan
23 l10n_id_12210030 12210030 Office Supplies asset_fixed False Peralatan Kantor
24 l10n_id_12281010 12281010 Accumulation Building Depreciation asset_fixed False Akumulasi Penyusutan Bangunan Kantor
25 l10n_id_12281020 12281020 Accumulation Vehicle Depreciation asset_fixed False Akumulasi Penyusutan Kendaraan
26 l10n_id_12281030 12281030 Accumulation Office Supplies Depreciation asset_fixed False Akumulasi Penyusutan Peralatan Kantor
27 l10n_id_21100010 21100010 Account Payable liability_payable True Hutang Usaha
28 l10n_id_21100011 21100011 VAT Payable liability_payable True True
29 l10n_id_21100012 21100012 STLG Payable liability_payable True True
30 l10n_id_21100013 21100013 Employee Liabilities liability_current True Piutang Karyawan
31 l10n_id_21100014 21100014 Tax Payable PPh 29 liability_payable True True
32 l10n_id_21100020 21100020 Shareholder Deposit liability_current False Hutang Pemegang Saham
33 l10n_id_21100030 21100030 Third-Party Deposit liability_current False Hutang Pihak Ketiga
34 l10n_id_21100040 21100040 Salary Deposit liability_current False Hutang Gaji
35 l10n_id_21210010 21210010 Tax Payable PPh 21 liability_current True Hutang Pajak PPh 21
36 l10n_id_21210020 21210020 Tax Payable PPh 22 liability_current True Hutang Pajak PPh 22
37 l10n_id_21210030 21210030 Tax Payable PPh 23 liability_current True Hutang Pajak PPh 23
38 l10n_id_21210040 21210040 Tax Payable PPh 25 liability_current True Hutang Pajak PPh 25
39 l10n_id_21210050 21210050 Tax Payable 4(2) liability_current True Hutang Pajak Pasal 4 (2)
40 l10n_id_21210060 21210060 Tax Payable PPh 26 liability_current True Hutang Pajak PPh 26
41 l10n_id_21221010 21221010 VAT Sales liability_current False PPN Pembelian
42 l10n_id_22110010 22110010 Bank Loan liability_current False Hutang Bank
43 l10n_id_22110020 22110020 Leasing Deposit liability_current False Hutang Leasing
44 l10n_id_25110010 25110010 Accrued Payable Electricity liability_current False BYMHD Listrik
45 l10n_id_25110020 25110020 Accrued Payable Jamsostek liability_current False BYMHD Jamsostek
46 l10n_id_25110030 25110030 Accrued Payable Water liability_current False BYMHD Air
47 l10n_id_25110040 25110040 Accrued Payable Telp & Internet liability_current False BYMHD Telepon
48 l10n_id_25110050 25110050 Accrued Payable Security Management liability_current False BYMHD Jasa Pengelola Keamanan
49 l10n_id_25110060 25110060 Accrued Payable Bank liability_current False BYMHD Bank
50 l10n_id_25110070 25110070 Accrued Payable PBB liability_current False BYMHD PBB
51 l10n_id_25110080 25110080 Accrued Payable Business License liability_current False BYMHD Izin Usaha
52 l10n_id_25110090 25110090 Accrued Payable Insurance liability_current False BYMHD Asuransi
53 l10n_id_25110100 25110100 Accrued Payable Education liability_current False BYMHD Pendidikan dan Latihan
54 l10n_id_25110110 25110110 Accrued Payable Health Insurance/BPJS liability_current False BYMHD Jaminan Kesehatan/BPJS
55 l10n_id_28110010 28110010 Advance Sales liability_current False Uang Muka Penjualan
56 l10n_id_28110020 28110020 Customer Deposit liability_current False Deposit Customer
57 l10n_id_28110030 28110030 Deferred Revenue liability_current False
58 l10n_id_29000000 29000000 Interim Stock liability_current False Stok Interim
59 l10n_id_31100010 31100010 Authorized Capital equity False Modal Dasar
60 l10n_id_31100020 31100020 Paid Capital equity False Modal Yang Disetor
61 l10n_id_31100030 31100030 Unpaid Capital equity False Modal Yang Belum Disetor
62 l10n_id_31100040 31100040 Prive (Personal Retrieval) equity False Prive (Pengambilan Pribadi)
63 l10n_id_31210010 31210010 Capital Reserves equity False Cadangan Modal
64 l10n_id_31510010 31510010 Past Profit & Loss equity False Laba Rugi Tahun Lalu
65 l10n_id_31510020 31510020 Ongoing Profit & Loss equity False Laba Rugi Tahun Berjalan
66 l10n_id_39000000 39000000 Historical Balance equity True Historical Balance
67 l10n_id_41000010 41000010 Sales income False Penjualan
68 l10n_id_42000060 42000060 Sales Refund income False Retur Penjualan
69 l10n_id_42000070 42000070 Sales Discount income False Discount Penjualan
70 l10n_id_42500010 42500010 Change in Inventory expense False Perubahan Persediaan
71 l10n_id_51000010 51000010 Cost of Goods Sold expense_direct_cost False Harga Pokok Penjualan
72 l10n_id_51000020 51000020 Purchases - Raw Materials expense False Pembelian Bahan Baku
73 l10n_id_61100010 61100010 Employee Salary expense False Gaji Karyawan
74 l10n_id_61100020 61100020 Employee Bonus / Benefits expense False Tunjangan/ Bonus Karyawan
75 l10n_id_61100030 61100030 Employee Overtime Pay expense False Lembur Karyawan
76 l10n_id_61100100 61100100 Pph 21 Benefit expense False Tunjangan PPH Pasal 21
77 l10n_id_61100110 61100110 PPh 22 Final expense False
78 l10n_id_61100120 61100120 PPh 4(2) Final expense False
79 l10n_id_63110060 63110060 Phone expense False Telepon
80 l10n_id_63110080 63110080 Electricity expense False Listrik
81 l10n_id_63110100 63110100 Research & Development expense False Research & Development
82 l10n_id_63110120 63110120 Office Equipment expense False Perlengkapan Kantor
83 l10n_id_64110020 64110020 Post Necessities expense False Keperluan Pos
84 l10n_id_63110140 63110140 Other Necessities expense False Keperluan Lain-lain
85 l10n_id_65110010 65110010 Licensing Fees expense False Biaya Perizinan
86 l10n_id_65110020 65110020 Bank Administration Fees expense False Biaya Administrasi Bank
87 l10n_id_65110030 65110030 Consultant Fees expense False Biaya Konsultan
88 l10n_id_65110040 65110040 Rental Costs expense False Biaya Sewa
89 l10n_id_65110050 65110050 Insurance Costs expense False
90 l10n_id_65110060 65110060 Building Maintenance Costs expense False Biaya Pemeliharaan & Perawatan Gedung
91 l10n_id_65110070 65110070 Income Tax Expenses (CIT) expense False Pajak
92 l10n_id_65110080 65110080 Asset Maintenance Costs expense False Biaya Pemeliharaan & Perawatan Aset
93 l10n_id_65110090 65110090 Shipping Costs expense False Biaya Pengiriman Dokumen/Barang
94 l10n_id_66110010 66110010 Vehicle Fuel expense False BBM kendaraan
95 l10n_id_66110020 66110020 Vehicle Service expense False Service kendaraan
96 l10n_id_66110030 66110030 Vehicle Parking & Toll Fee expense False Parkir & tol kendaraan
97 l10n_id_66110040 66110040 Vehicle Taxes expense False Pajak Kendaraan
98 l10n_id_66110050 66110050 Vehicle Insurance expense False Asuransi Kendaraan
99 l10n_id_67100010 67100010 Office Building expense_depreciation False Bangunan Kantor
100 l10n_id_67100020 67100020 Vehicle expense_depreciation False Kendaraan
101 l10n_id_67100030 67100030 Office Supplies expense_depreciation False Peralatan Kantor
102 l10n_id_69000000 69000000 Other Expenses expense False Biaya Lain-lain
103 l10n_id_81100010 81100010 Interest Income income_other False Pendapatan Bunga
104 l10n_id_81100020 81100020 Deposit Income income_other False Pendapatan Deposit
105 l10n_id_81100030 81100030 Foreign Exchange Gain income_other False Keuntungan Selisih Kurs
106 l10n_id_81100040 81100040 Other Income income_other False Pendapatan lainnya
107 l10n_id_81100050 81100050 Gain on Sale of Fixed Assets income_other False Keuntungan Atas Penjualan Aktiva Tetap
108 l10n_id_91100010 91100010 Interest Expense expense False Beban Bunga
109 l10n_id_91100020 91100020 Foreign Exchange Loss expense False Kerugian Selisih Kurs
110 l10n_id_91100030 91100030 Loss on Sale of Fixed Assets expense False Kerugian Atas Penjualan Aktiva Tetap
111 l10n_id_99900001 99900001 Cash Difference Loss expense False
112 l10n_id_99900002 99900002 Cash Difference Gain income False
113 l10n_id_99900003 99900003 Cash Discount Loss expense False
114 l10n_id_99900004 99900004 Cash Discount Gain income_other False
115 l10n_id_999999 999999 Undistributed Profits/Losses equity_unaffected False

View file

@ -0,0 +1,79 @@
"id","active","description","is_base_affected","invoice_label","type_tax_use","tax_group_id","name","amount_type","amount","repartition_line_ids/repartition_type","repartition_line_ids/tag_ids","repartition_line_ids/factor_percent","repartition_line_ids/document_type","repartition_line_ids/account_id"
"tax_ST4","","Taxable Goods Other Than Luxury Goods","","12%","sale","l10n_id_tax_group_non_luxury_goods","12% (Non-Luxury Good)","percent","11.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_21221010"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_21221010"
"tax_PT4","","Standard Rate for Non-Luxury Goods & Services","","12%","purchase","l10n_id_tax_group_non_luxury_goods","12% (Non-Luxury Good)","percent","11.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_11210030"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_11210030"
"tax_ST3","","Taxable Luxury Goods","","12%","sale","l10n_id_tax_group_luxury_goods","12%","percent","12.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_21221010"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_21221010"
"tax_PT3","","Standard Rate for Luxury Goods & Services","","12%","purchase","l10n_id_tax_group_luxury_goods","12%","percent","12.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_11210030"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_11210030"
"tax_luxury_sales","","Sales Tax on Luxury Goods (STLG)","False","20%","sale","l10n_id_tax_group_stlg","20% (STLG)","percent","20.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_21221010"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_21221010"
"tax_ST5","","Taxable Goods Other Than Luxury Goods to Collectors","","12%","sale","l10n_id_tax_group_non_luxury_goods","12% Pemungut PPN (Non-Luxury Good)","percent","11.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_21221010"
"","","","","","","","","","","tax","","-100","invoice","l10n_id_21221010"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_21221010"
"","","","","","","","","","","tax","","-100","refund","l10n_id_21221010"
"tax_ST6","","Luxury Goods to Collectors","","12%","sale","l10n_id_tax_group_luxury_goods","12% Pemungut PPN","percent","12.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_21221010"
"","","","","","","","","","","tax","","-100","invoice","l10n_id_21221010"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_21221010"
"","","","","","","","","","","tax","","-100","refund","l10n_id_21221010"
"tax_luxury_sales_pemungut_ppn","","Sales Tax on Luxury Goods (STLG) to Collectors","False","20%","sale","l10n_id_tax_group_stlg","20% Pemungut PPN (STLG)","percent","20.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_21221010"
"","","","","","","","","","","tax","","-100","invoice","l10n_id_21221010"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_21221010"
"","","","","","","","","","","tax","","-100","refund","l10n_id_21221010"
"tax_ST0","","VAT Not Collected","","0%","sale","l10n_id_tax_group_0","0%","percent","0.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_21221010"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_21221010"
"tax_ST7","","Export","","0%","sale","l10n_id_tax_group_0","0% EXPORT","percent","0.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_21221010"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_21221010"
"tax_ST2","","Exempt","","0%","sale","l10n_id_tax_group_exempt","0% EXEMPT","percent","0.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_21221010"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_21221010"
"tax_PT0","","Zero-Rated","","0%","purchase","l10n_id_tax_group_0","0%","percent","0.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_11210030"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_11210030"
"tax_PT2","","Exempt","","0%","purchase","l10n_id_tax_group_exempt","0% EXEMPT","percent","0.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_11210030"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_11210030"
"tax_PT5","","Sales Tax on Luxury Goods (STLG)","False","20%","purchase","l10n_id_tax_group_stlg","20% (STLG)","percent","20.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_11210030"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_11210030"
"tax_PT6","","Non-Creditable Standard Rate Input VAT","","12%","purchase","l10n_id_tax_group_non_luxury_goods","12% NCR","percent","0.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_11210030"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_11210030"
"tax_PT7","","Creditable Input VAT from Imports and Foreign Sources","","12%","purchase","l10n_id_tax_group_non_luxury_goods","12% IM","percent","11.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_11210030"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_11210030"
"tax_ST1","False","ST1","","12%","sale","l10n_id_tax_group_non_luxury_goods","11%","percent","11.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_21221010"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_21221010"
"tax_PT1","False","PT1","","12%","purchase","l10n_id_tax_group_non_luxury_goods","11%","percent","11.0","base","","","invoice",""
"","","","","","","","","","","tax","","","invoice","l10n_id_11210030"
"","","","","","","","","","","base","","","refund",""
"","","","","","","","","","","tax","","","refund","l10n_id_11210030"
1 id active description is_base_affected invoice_label type_tax_use tax_group_id name amount_type amount repartition_line_ids/repartition_type repartition_line_ids/tag_ids repartition_line_ids/factor_percent repartition_line_ids/document_type repartition_line_ids/account_id
2 tax_ST4 Taxable Goods Other Than Luxury Goods 12% sale l10n_id_tax_group_non_luxury_goods 12% (Non-Luxury Good) percent 11.0 base invoice
3 tax invoice l10n_id_21221010
4 base refund
5 tax refund l10n_id_21221010
6 tax_PT4 Standard Rate for Non-Luxury Goods & Services 12% purchase l10n_id_tax_group_non_luxury_goods 12% (Non-Luxury Good) percent 11.0 base invoice
7 tax invoice l10n_id_11210030
8 base refund
9 tax refund l10n_id_11210030
10 tax_ST3 Taxable Luxury Goods 12% sale l10n_id_tax_group_luxury_goods 12% percent 12.0 base invoice
11 tax invoice l10n_id_21221010
12 base refund
13 tax refund l10n_id_21221010
14 tax_PT3 Standard Rate for Luxury Goods & Services 12% purchase l10n_id_tax_group_luxury_goods 12% percent 12.0 base invoice
15 tax invoice l10n_id_11210030
16 base refund
17 tax refund l10n_id_11210030
18 tax_luxury_sales Sales Tax on Luxury Goods (STLG) False 20% sale l10n_id_tax_group_stlg 20% (STLG) percent 20.0 base invoice
19 tax invoice l10n_id_21221010
20 base refund
21 tax refund l10n_id_21221010
22 tax_ST5 Taxable Goods Other Than Luxury Goods to Collectors 12% sale l10n_id_tax_group_non_luxury_goods 12% Pemungut PPN (Non-Luxury Good) percent 11.0 base invoice
23 tax invoice l10n_id_21221010
24 tax -100 invoice l10n_id_21221010
25 base refund
26 tax refund l10n_id_21221010
27 tax -100 refund l10n_id_21221010
28 tax_ST6 Luxury Goods to Collectors 12% sale l10n_id_tax_group_luxury_goods 12% Pemungut PPN percent 12.0 base invoice
29 tax invoice l10n_id_21221010
30 tax -100 invoice l10n_id_21221010
31 base refund
32 tax refund l10n_id_21221010
33 tax -100 refund l10n_id_21221010
34 tax_luxury_sales_pemungut_ppn Sales Tax on Luxury Goods (STLG) to Collectors False 20% sale l10n_id_tax_group_stlg 20% Pemungut PPN (STLG) percent 20.0 base invoice
35 tax invoice l10n_id_21221010
36 tax -100 invoice l10n_id_21221010
37 base refund
38 tax refund l10n_id_21221010
39 tax -100 refund l10n_id_21221010
40 tax_ST0 VAT Not Collected 0% sale l10n_id_tax_group_0 0% percent 0.0 base invoice
41 tax invoice l10n_id_21221010
42 base refund
43 tax refund l10n_id_21221010
44 tax_ST7 Export 0% sale l10n_id_tax_group_0 0% EXPORT percent 0.0 base invoice
45 tax invoice l10n_id_21221010
46 base refund
47 tax refund l10n_id_21221010
48 tax_ST2 Exempt 0% sale l10n_id_tax_group_exempt 0% EXEMPT percent 0.0 base invoice
49 tax invoice l10n_id_21221010
50 base refund
51 tax refund l10n_id_21221010
52 tax_PT0 Zero-Rated 0% purchase l10n_id_tax_group_0 0% percent 0.0 base invoice
53 tax invoice l10n_id_11210030
54 base refund
55 tax refund l10n_id_11210030
56 tax_PT2 Exempt 0% purchase l10n_id_tax_group_exempt 0% EXEMPT percent 0.0 base invoice
57 tax invoice l10n_id_11210030
58 base refund
59 tax refund l10n_id_11210030
60 tax_PT5 Sales Tax on Luxury Goods (STLG) False 20% purchase l10n_id_tax_group_stlg 20% (STLG) percent 20.0 base invoice
61 tax invoice l10n_id_11210030
62 base refund
63 tax refund l10n_id_11210030
64 tax_PT6 Non-Creditable Standard Rate Input VAT 12% purchase l10n_id_tax_group_non_luxury_goods 12% NCR percent 0.0 base invoice
65 tax invoice l10n_id_11210030
66 base refund
67 tax refund l10n_id_11210030
68 tax_PT7 Creditable Input VAT from Imports and Foreign Sources 12% purchase l10n_id_tax_group_non_luxury_goods 12% IM percent 11.0 base invoice
69 tax invoice l10n_id_11210030
70 base refund
71 tax refund l10n_id_11210030
72 tax_ST1 False ST1 12% sale l10n_id_tax_group_non_luxury_goods 11% percent 11.0 base invoice
73 tax invoice l10n_id_21221010
74 base refund
75 tax refund l10n_id_21221010
76 tax_PT1 False PT1 12% purchase l10n_id_tax_group_non_luxury_goods 11% percent 11.0 base invoice
77 tax invoice l10n_id_11210030
78 base refund
79 tax refund l10n_id_11210030

View file

@ -0,0 +1,7 @@
"id","country_id","name","name@id","tax_payable_account_id","tax_receivable_account_id"
"default_tax_group","base.id","Taxes","Pajak","l10n_id_21100011","l10n_id_11210012"
"l10n_id_tax_group_luxury_goods","base.id","Luxury Good Taxes","Pajak Barang Mewah","l10n_id_21100011","l10n_id_11210012"
"l10n_id_tax_group_non_luxury_goods","base.id","Non-luxury Good Taxes","Pajak Barang","l10n_id_21100011","l10n_id_11210012"
"l10n_id_tax_group_0","base.id","Zero-rated Taxes","Pajak Nol","l10n_id_21100011","l10n_id_11210012"
"l10n_id_tax_group_exempt","base.id","Tax Exempted","Bebas Pajak","l10n_id_21100011","l10n_id_11210012"
"l10n_id_tax_group_stlg","base.id","SLTG","Pajak Barang Mewah","l10n_id_21100012","l10n_id_11210013"
1 id country_id name name@id tax_payable_account_id tax_receivable_account_id
2 default_tax_group base.id Taxes Pajak l10n_id_21100011 l10n_id_11210012
3 l10n_id_tax_group_luxury_goods base.id Luxury Good Taxes Pajak Barang Mewah l10n_id_21100011 l10n_id_11210012
4 l10n_id_tax_group_non_luxury_goods base.id Non-luxury Good Taxes Pajak Barang l10n_id_21100011 l10n_id_11210012
5 l10n_id_tax_group_0 base.id Zero-rated Taxes Pajak Nol l10n_id_21100011 l10n_id_11210012
6 l10n_id_tax_group_exempt base.id Tax Exempted Bebas Pajak l10n_id_21100011 l10n_id_11210012
7 l10n_id_tax_group_stlg base.id SLTG Pajak Barang Mewah l10n_id_21100012 l10n_id_11210013

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="partner_demo_company_id" model="res.partner">
<record id="base.partner_demo_company_id" model="res.partner" forcecreate="1">
<field name="name">ID Company</field>
<field name="vat">1234567890123456</field>
<field name="street">AE</field>
@ -11,24 +11,27 @@
<field name="phone">+62 812-345-678</field>
<field name="email">info@company.idexample.com</field>
<field name="website">www.idexample.com</field>
<field name="is_company" eval="True"/>
</record>
<record id="demo_company_id" model="res.company">
<record id="base.demo_company_id" model="res.company" forcecreate="1">
<field name="name">ID Company</field>
<field name="partner_id" ref="partner_demo_company_id"/>
<field name="partner_id" ref="base.partner_demo_company_id"/>
</record>
<function model="res.company" name="_onchange_country_id">
<value eval="[ref('demo_company_id')]"/>
<value eval="[ref('base.demo_company_id')]"/>
</function>
<function model="res.users" name="write">
<value eval="[ref('base.user_root'), ref('base.user_admin'), ref('base.user_demo')]"/>
<value eval="{'company_ids': [(4, ref('l10n_id.demo_company_id'))]}"/>
<value eval="{'company_ids': [(4, ref('base.demo_company_id'))]}"/>
</function>
<function model="account.chart.template" name="try_loading">
<value eval="[ref('l10n_id.l10n_id_chart')]"/>
<value model="res.company" eval="obj().env.ref('l10n_id.demo_company_id')"/>
<value eval="[]"/>
<value>id</value>
<value model="res.company" eval="obj().env.ref('base.demo_company_id')"/>
<value name="install_demo" eval="True"/>
</function>
</odoo>

View file

@ -0,0 +1,229 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_id
#
# Weblate <noreply-mt-weblate@weblate.org>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.1alpha1+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-13 19:02+0000\n"
"PO-Revision-Date: 2025-11-17 03:12+0000\n"
"Last-Translator: Weblate <noreply-mt-weblate@weblate.org>\n"
"Language-Team: Indonesian <https://translate.odoo.com/projects/odoo-19-l10n/"
"l10n_id/id/>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.12.2\n"
#. module: l10n_id
#: model:ir.model,name:l10n_id.model_account_chart_template
msgid "Account Chart Template"
msgstr "Templat Bagan Akun"
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__bank_id
msgid "Bank"
msgstr "Bank"
#. module: l10n_id
#: model:ir.model,name:l10n_id.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Rekening Bank"
#. module: l10n_id
#: model:ir.model.fields,help:l10n_id.field_l10n_id_qris_transaction__bank_id
msgid "Bank used to generate the current QRIS transaction"
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/template_id.py:0
msgid "Cash"
msgstr ""
#. module: l10n_id
#: model:ir.actions.server,name:l10n_id.action_fetch_qris_status
msgid "Check QRIS Payment Status"
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid ""
"Communication with QRIS failed. QRIS returned with the following error: %s"
msgstr "Komunikasi dengan QRIS gagal. QRIS kembali dengan error berikut: %s"
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid "Could not establish a connection to the QRIS API."
msgstr "Gagal membuat sambungan ke API"
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__create_uid
msgid "Created by"
msgstr "Dibuat oleh"
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__create_date
msgid "Created on"
msgstr "Dibuat pada"
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_account_chart_template__display_name
#: model:ir.model.fields,field_description:l10n_id.field_account_move__display_name
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__display_name
#: model:ir.model.fields,field_description:l10n_id.field_res_partner_bank__display_name
msgid "Display Name"
msgstr "Nama Tampilan"
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_account_chart_template__id
#: model:ir.model.fields,field_description:l10n_id.field_account_move__id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__id
#: model:ir.model.fields,field_description:l10n_id.field_res_partner_bank__id
msgid "ID"
msgstr "ID"
#. module: l10n_id
#: model:ir.model,name:l10n_id.model_account_move
msgid "Journal Entry"
msgstr "Entri Jurnal"
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_account_bank_statement_line__l10n_id_qris_transaction_ids
#: model:ir.model.fields,field_description:l10n_id.field_account_move__l10n_id_qris_transaction_ids
msgid "L10N Id Qris Transaction"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__write_uid
msgid "Last Updated by"
msgstr "Terakhir Diperbarui oleh"
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__write_date
msgid "Last Updated on"
msgstr "Terakhir Diperbarui pada"
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__model
msgid "Model"
msgstr "Model"
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__model_id
msgid "Model ID"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__paid
msgid "Paid"
msgstr "Lunas"
#. module: l10n_id
#: model:ir.model.fields,help:l10n_id.field_l10n_id_qris_transaction__paid
msgid "Payment Status of QRIS"
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid "QRIS"
msgstr "QRIS"
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_account_setup_bank_manual_config__l10n_id_qris_api_key
#: model:ir.model.fields,field_description:l10n_id.field_res_partner_bank__l10n_id_qris_api_key
msgid "QRIS API Key"
msgstr ""
#. module: l10n_id
#: model:ir.actions.server,name:l10n_id.qris_fetch_cron_ir_actions_server
msgid "QRIS Fetch Status"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_account_setup_bank_manual_config__l10n_id_qris_mid
#: model:ir.model.fields,field_description:l10n_id.field_res_partner_bank__l10n_id_qris_mid
msgid "QRIS Merchant ID"
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/qris_transaction.py:0
msgid "QRIS capability is not extended to model %s yet!"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__qris_amount
msgid "Qris Amount"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__qris_content
msgid "Qris Content"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__qris_creation_datetime
msgid "Qris Creation Datetime"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__qris_invoice_id
msgid "Qris Invoice"
msgstr ""
#. module: l10n_id
#: model:ir.model,name:l10n_id.model_l10n_id_qris_transaction
msgid "Record of QRIS transactions"
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid "The amount must be set to generate a QR code."
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/account_move.py:0
msgid ""
"This invoice was paid by %(customer)s using QRIS with the payment method %"
"(method)s."
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/account_move.py:0
msgid "This invoice was paid using QRIS."
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid ""
"To use QRIS QR code, Please setup the QRIS API Key and Merchant ID on the "
"bank's configuration"
msgstr ""
"Untuk menggunakan QRIS QR, dipersilahkan untuk menyelesaikan setup QRIS di "
"halaman konfigurasi bank"
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid ""
"You cannot generate a QRIS QR code with a bank account that is not in "
"Indonesia."
msgstr "Anda tidak boleh membuat kode QR QRIS dari Bank di luar Indonesia."
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid "You cannot generate a QRIS QR code with a currency other than IDR"
msgstr "Kode QRIS hanya berlaku untuk mata uang Rupiah"

View file

@ -0,0 +1,223 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_id
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 19.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-13 19:02+0000\n"
"PO-Revision-Date: 2026-02-13 19:02+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: l10n_id
#: model:ir.model,name:l10n_id.model_account_chart_template
msgid "Account Chart Template"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__bank_id
msgid "Bank"
msgstr ""
#. module: l10n_id
#: model:ir.model,name:l10n_id.model_res_partner_bank
msgid "Bank Accounts"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,help:l10n_id.field_l10n_id_qris_transaction__bank_id
msgid "Bank used to generate the current QRIS transaction"
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/template_id.py:0
msgid "Cash"
msgstr ""
#. module: l10n_id
#: model:ir.actions.server,name:l10n_id.action_fetch_qris_status
msgid "Check QRIS Payment Status"
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid ""
"Communication with QRIS failed. QRIS returned with the following error: %s"
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid "Could not establish a connection to the QRIS API."
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__create_uid
msgid "Created by"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__create_date
msgid "Created on"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_account_chart_template__display_name
#: model:ir.model.fields,field_description:l10n_id.field_account_move__display_name
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__display_name
#: model:ir.model.fields,field_description:l10n_id.field_res_partner_bank__display_name
msgid "Display Name"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_account_chart_template__id
#: model:ir.model.fields,field_description:l10n_id.field_account_move__id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__id
#: model:ir.model.fields,field_description:l10n_id.field_res_partner_bank__id
msgid "ID"
msgstr ""
#. module: l10n_id
#: model:ir.model,name:l10n_id.model_account_move
msgid "Journal Entry"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_account_bank_statement_line__l10n_id_qris_transaction_ids
#: model:ir.model.fields,field_description:l10n_id.field_account_move__l10n_id_qris_transaction_ids
msgid "L10N Id Qris Transaction"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__write_uid
msgid "Last Updated by"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__write_date
msgid "Last Updated on"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__model
msgid "Model"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__model_id
msgid "Model ID"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__paid
msgid "Paid"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,help:l10n_id.field_l10n_id_qris_transaction__paid
msgid "Payment Status of QRIS"
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid "QRIS"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_account_setup_bank_manual_config__l10n_id_qris_api_key
#: model:ir.model.fields,field_description:l10n_id.field_res_partner_bank__l10n_id_qris_api_key
msgid "QRIS API Key"
msgstr ""
#. module: l10n_id
#: model:ir.actions.server,name:l10n_id.qris_fetch_cron_ir_actions_server
msgid "QRIS Fetch Status"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_account_setup_bank_manual_config__l10n_id_qris_mid
#: model:ir.model.fields,field_description:l10n_id.field_res_partner_bank__l10n_id_qris_mid
msgid "QRIS Merchant ID"
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/qris_transaction.py:0
msgid "QRIS capability is not extended to model %s yet!"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__qris_amount
msgid "Qris Amount"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__qris_content
msgid "Qris Content"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__qris_creation_datetime
msgid "Qris Creation Datetime"
msgstr ""
#. module: l10n_id
#: model:ir.model.fields,field_description:l10n_id.field_l10n_id_qris_transaction__qris_invoice_id
msgid "Qris Invoice"
msgstr ""
#. module: l10n_id
#: model:ir.model,name:l10n_id.model_l10n_id_qris_transaction
msgid "Record of QRIS transactions"
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid "The amount must be set to generate a QR code."
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/account_move.py:0
msgid ""
"This invoice was paid by %(customer)s using QRIS with the payment method "
"%(method)s."
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/account_move.py:0
msgid "This invoice was paid using QRIS."
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid ""
"To use QRIS QR code, Please setup the QRIS API Key and Merchant ID on the "
"bank's configuration"
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid ""
"You cannot generate a QRIS QR code with a bank account that is not in "
"Indonesia."
msgstr ""
#. module: l10n_id
#. odoo-python
#: code:addons/l10n_id/models/res_bank.py:0
msgid "You cannot generate a QRIS QR code with a currency other than IDR"
msgstr ""

View file

@ -1,849 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_id
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-12-03 12:38+0000\n"
"PO-Revision-Date: 2019-12-03 12:38+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: id_ID\n"
"Plural-Forms: \n"
#. module: l10n_id
#: model:account.tax.template,name:l10n_id.tax_PT1
#: model:account.tax.template,name:l10n_id.tax_ST1
msgid "11%"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_121001
msgid "Account Receivable"
msgstr "Piutang Usaha"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_1210011
msgid "Account Receivable (PoS)"
msgstr "Piutang Usaha (PoS)"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511006
msgid "Accrued Payable Bank"
msgstr "BYMHD Bank"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511008
msgid "Accrued Payable Business License"
msgstr "BYMHD Izin Usaha"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511010
msgid "Accrued Payable Education"
msgstr "BYMHD Pendidikan dan Latihan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511001
msgid "Accrued Payable Electricity"
msgstr "BYMHD Listrik"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511011
msgid "Accrued Payable Health Insurance/BPJS"
msgstr "BYMHD Jaminan Kesehatan/BPJS"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511009
msgid "Accrued Payable Insurance"
msgstr "BYMHD Asuransi"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511002
msgid "Accrued Payable Jamsostek"
msgstr "BYMHD Jamsostek"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511007
msgid "Accrued Payable PBB"
msgstr "BYMHD PBB"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511005
msgid "Accrued Payable Security Management"
msgstr "BYMHD Jasa Pengelola Keamanan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511004
msgid "Accrued Payable Telp & Internet"
msgstr "BYMHD Telepon"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511003
msgid "Accrued Payable Water"
msgstr "BYMHD Air"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_228101
msgid "Accumulation Building Depreciation"
msgstr "Akumulasi Penyusutan Bangunan Kantor"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_228105
msgid "Accumulation Office Furniture Depreciation"
msgstr "Akumulasi Penyusutan Furnitur Kantor"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_228103
msgid "Accumulation Office Supplies Depreciation"
msgstr "Akumulasi Penyusutan Peralatan Kantor"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_228104
msgid "Accumulation Software Depreciation"
msgstr "Akumulasi Penyusutan Software"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_228102
msgid "Accumulation Vehicle Depreciation"
msgstr "Akumulasi Penyusutan Kendaraan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_811001
msgid "Advance Sales"
msgstr "Uang Muka Penjualan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_211003
msgid "Advertising"
msgstr "Advertising"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511010
msgid "Asset Maintenance Costs"
msgstr "Biaya Pemeliharaan & Perawatan Aset"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_110001
msgid "Authorized Capital"
msgstr "Modal Dasar"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112005
msgid "BCA"
msgstr "BCA"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112004
msgid "BNI"
msgstr "BNI"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112006
msgid "BNI Giro"
msgstr "BNI Giro"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_9_110002
msgid "Bank Administration Expense"
msgstr "Beban Administrasi Bank"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511002
msgid "Bank Administration Fees"
msgstr "Biaya Administrasi Bank"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_211001
msgid "Bank Loan"
msgstr "Hutang Bank"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_811003
msgid "Bonus Point"
msgstr "Poin Bonus"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130012
msgid "Book, Office Stationery, Accessories Inventory"
msgstr "Persediaan Buku, ATK, Asesoris"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511006
msgid "Building Maintenance Costs"
msgstr "Biaya Pemeliharaan & Perawatan Gedung"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_141001
msgid "Building Rent"
msgstr "Sewa Bangunan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112002
msgid "Business Mandiri"
msgstr "Mandiri Bisnis"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_121001
msgid "Capital Reserves"
msgstr "Cadangan Modal"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_111002
msgid "Cash in Hand"
msgstr "Kas Belum Disetor"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130007
msgid "Cigarette Inventory"
msgstr "Persediaan Rokok"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311016
msgid "Cleaning Equipment"
msgstr "Perlengkapan Kebersihan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130014
msgid "Cleaning Supplies Inventory"
msgstr "Persediaan Perlengkapan Kebersihan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511003
msgid "Consultant Fees"
msgstr "Biaya Konsultan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_5_100001
msgid "Cost of Goods Sold"
msgstr "Harga Pokok Penjualan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_811002
msgid "Customer Deposit"
msgstr "Deposit Customer"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_8_110002
msgid "Deposit Income"
msgstr "Pendapatan Deposit"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311004
msgid "Donation"
msgstr "Sumbangan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_180000
msgid "Down Payment"
msgstr "Uang Muka Pembelian"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130004
msgid "Dried Goods Inventory"
msgstr "Persediaan Keringan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130009
msgid "Drink Inventory"
msgstr "Persediaan Minuman"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311001
msgid "Drinking Water"
msgstr "Air Minum"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311008
msgid "Electricity"
msgstr "Listrik"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511007
msgid "Electricity, Telephone, and Internet Installation Maintenance Costs"
msgstr "Biaya Perawatan Instalasi Listrik, telepon, internet"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130016
msgid "Electronic Inventory"
msgstr "Persediaan Elektronik"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110008
msgid "Employee Birthday Benefit"
msgstr "Tunjangan Ulang Tahun Karyawan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110002
msgid "Employee Bonus / Benefits"
msgstr "Tunjangan/ Bonus Karyawan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110003
msgid "Employee Health Benefits"
msgstr "Tunjangan Kesehatan Karyawan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_121002
msgid "Employee Liabilities"
msgstr "Piutang Karyawan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110004
msgid "Employee Meal (Catering)"
msgstr "Pangan karyawan (catering)"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110005
msgid "Employee Overtime Pay"
msgstr "Lembur Karyawan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110001
msgid "Employee Salary"
msgstr "Gaji Karyawan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_211002
msgid "Event"
msgstr "Event"
#. module: l10n_id
#: model:account.tax.template,name:l10n_id.tax_PT2
#: model:account.tax.template,name:l10n_id.tax_ST2
msgid "Exempt"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311002
msgid "Exercise Necessities"
msgstr "Keperluan Olahraga"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130013
msgid "Fashion & Textile Inventory"
msgstr "Persediaan Fashion & Textil"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311013
msgid "First Aid Kit"
msgstr "P3K"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130002
msgid "Fish Inventory"
msgstr "Persediaan Ikan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130008
msgid "Food Inventory"
msgstr "Persediaan Makanan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_8_110003
msgid "Foreign Exchange Gain"
msgstr "Keuntungan Selisih Kurs"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_9_110003
msgid "Foreign Exchange Loss"
msgstr "Kerugian Selisih Kurs"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_211001
msgid "Free Gift"
msgstr "Free Gift"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130006
msgid "Fresh Drink Inventory"
msgstr "Persediaan Minuman Segar"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130005
msgid "Fruit Inventory"
msgstr "Persediaan Buah"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_8_110009
msgid "Gain on Sale of Fixed Assets"
msgstr "Keuntungan Atas Penjualan Aktiva Tetap"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511009
msgid "Guest Accomodation"
msgstr "Akomodasi Tamu"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_900000
msgid "Historical Balance"
msgstr "Historical Balance"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130015
msgid "House Supplies Inventory"
msgstr "Persediaan Perlengkapan Rumah Tangga"
#. module: l10n_id
#: model:account.chart.template,name:l10n_id.l10n_id_chart
msgid "Indonesian Account Chart Template"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_9_110001
msgid "Interest Expense"
msgstr "Beban Bunga"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_8_110001
msgid "Interest Income"
msgstr "Pendapatan Bunga"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_900000
msgid "Interim Stock"
msgstr "Stok Interim"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311005
msgid "Internet"
msgstr "Internet"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_411003
msgid "Jilid & Photocopy"
msgstr "Jilid & Photocopy"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_411004
msgid "Job Recruitment Advertisement"
msgstr "Iklan Lowongan Kerja"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311015
msgid "K3 (Fire Extinguisher)"
msgstr "K3 (Pemadam Kebakaran)"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311011
msgid "Kitchen Necessities"
msgstr "Keperluan Dapur"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_221001
#: model:account.account.template,name:l10n_id.a_6_710001
msgid "Land"
msgstr "Tanah"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_211002
msgid "Leasing Deposit"
msgstr "Hutang Leasing"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511001
msgid "Licensing Fees"
msgstr "Biaya Perizinan"
#. module: l10n_id
msgid "Liquidity Transfer"
msgstr "Liquidity Transfer"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_9_110009
msgid "Loss on Sale of Fixed Assets"
msgstr "Kerugian Atas Penjualan Aktiva Tetap"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112007
msgid "Mandiri Giro"
msgstr "Mandiri Giro"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110009
msgid "Maternity Benefit"
msgstr "Tunjangan Melahirkan Karyawan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130001
msgid "Meat Inventory"
msgstr "Persediaan Daging"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311003
msgid "Monthly Fee"
msgstr "Iuran Bulanan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112003
msgid "Muamalat"
msgstr "Muamalat"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_221002
#: model:account.account.template,name:l10n_id.a_6_710002
msgid "Office Building"
msgstr "Bangunan Kantor"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311012
msgid "Office Equipment"
msgstr "Perlengkapan Kantor"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_221006
#: model:account.account.template,name:l10n_id.a_6_710006
msgid "Office Furniture"
msgstr "Furnitur Kantor"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_411001
msgid "Office Stationery"
msgstr "Alat Tulis Kantor"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_221004
#: model:account.account.template,name:l10n_id.a_6_710004
msgid "Office Supplies"
msgstr "Peralatan Kantor"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_151002
msgid "Ongoing Profit & Loss"
msgstr "Laba Rugi Tahun Berjalan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_900000
msgid "Other Expenses"
msgstr "Biaya Lain-lain"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_8_110004
msgid "Other Income"
msgstr "Pendapatan lainnya"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130018
msgid "Other Inventory"
msgstr "Persediaan Lainnya"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311014
msgid "Other Necessities"
msgstr "Keperluan Lain-lain"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_211004
msgid "Other Receivable"
msgstr "Piutang lainnya"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311018
msgid "Owner Necessities"
msgstr "Keperluan Owner"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_211003
msgid "Owner Receivable"
msgstr "Piutang Owner"
#. module: l10n_id
#: model:account.tax.template,description:l10n_id.tax_PT0
msgid "0%"
msgstr ""
#. module: l10n_id
#: model:account.tax.template,description:l10n_id.tax_PT1
msgid "11%"
msgstr ""
#. module: l10n_id
#: model:account.tax.template,description:l10n_id.tax_PT2
msgid "0%"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_110002
msgid "Paid Capital"
msgstr "Modal Yang Disetor"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_151001
msgid "Past Profit & Loss"
msgstr "Laba Rugi Tahun Lalu"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112001
msgid "Personal Mandiri"
msgstr "Mandiri Personal"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_111001
msgid "Petty Cash"
msgstr "Kas Kecil"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311006
msgid "Phone"
msgstr "Telepon"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_411002
msgid "Post Necessities"
msgstr "Keperluan Pos"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110010
msgid "Pph 21 Benefit"
msgstr "Tunjangan PPH Pasal 21"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_141003
msgid "Prepaid Advertisement-Free"
msgstr "Beban Iklan Dibayar Dimuka"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_141002
msgid "Prepaid Insurance"
msgstr "Asuransi Dibayar Dimuka"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311007
msgid "Prepaid Phone Bills"
msgstr "Pulsa"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_151001
msgid "Prepaid Tax Pph 22"
msgstr "Pajak Dibayar Dimuka PPH 22"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_151002
msgid "Prepaid Tax Pph 23"
msgstr "Pajak Dibayar Dimuka PPH 23"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_151003
msgid "Prepaid Tax Pph 25"
msgstr "Pajak Dibayar Dimuka PPH 25"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_110004
msgid "Prive (Personal Retrieval)"
msgstr "Prive (Pengambilan Pribadi)"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130010
msgid "Processed Food Inventory"
msgstr "Persediaan Makanan Olahan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511004
msgid "Rental Costs"
msgstr "Biaya Sewa"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311010
msgid "Research & Development"
msgstr "Research & Development"
#. module: l10n_id
#: model:account.tax.template,description:l10n_id.tax_ST0
msgid "0%"
msgstr ""
#. module: l10n_id
#: model:account.tax.template,description:l10n_id.tax_ST1
msgid "ST1"
msgstr ""
#. module: l10n_id
#: model:account.tax.template,description:l10n_id.tax_ST2
msgid "0%"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_110004
msgid "Salary Deposit"
msgstr "Hutang Gaji"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_4_100001
msgid "Sales"
msgstr "Penjualan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_4_200007
msgid "Sales Discount"
msgstr "Discount Penjualan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_4_200006
msgid "Sales Refund"
msgstr "Retur Penjualan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110006
msgid "Security Service Fee"
msgstr "Fee Jasa Keamanan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_110002
msgid "Shareholder Deposit"
msgstr "Hutang Pemegang Saham"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511011
msgid "Shipping Costs"
msgstr "Biaya Pengiriman Dokumen/Barang"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_211004
msgid "Shipping Merchandise"
msgstr "Pengiriman Barang Dagang"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_221005
#: model:account.account.template,name:l10n_id.a_6_710005
msgid "Software"
msgstr "Software"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_411005
msgid "Stamp"
msgstr "Materai"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_121004
msgid "Tax Payable 4 (2)"
msgstr "Hutang Pajak Pasal 4 (2)"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_121001
msgid "Tax Payable Pph 21"
msgstr "Hutang Pajak PPh 21"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_121002
msgid "Tax Payable Pph 23"
msgstr "Hutang Pajak PPh 23"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_121003
msgid "Tax Payable Pph 25"
msgstr "Hutang Pajak PPh 25"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_121005
msgid "Tax Payable Pph 29"
msgstr "Hutang Pajak PPh 29"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511008
msgid "Taxes"
msgstr "Pajak"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_110003
msgid "Third-Party Deposit"
msgstr "Hutang Pihak Ketiga"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130011
msgid "Toiletries Inventory"
msgstr "Persediaan Toiletries"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130017
msgid "Toys Inventory"
msgstr "Persediaan Mainan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_110001
msgid "Trade Receivable"
msgstr "Hutang Usaha"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_110003
msgid "Unpaid Capital"
msgstr "Modal Yang Belum Disetor"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_122101
msgid "VAT Purchase"
msgstr "PPN Pembelian"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_122102
msgid "VAT Sales"
msgstr "PPN Penjualan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130003
msgid "Vegetables Inventory"
msgstr "Persediaan Sayuran"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_221003
#: model:account.account.template,name:l10n_id.a_6_710003
msgid "Vehicle"
msgstr "Kendaraan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_611001
msgid "Vehicle Fuel"
msgstr "BBM kendaraan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_611005
msgid "Vehicle Insurance"
msgstr "Asuransi Kendaraan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_611003
msgid "Vehicle Parking & Toll Fee"
msgstr "Parkir & tol kendaraan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_611002
msgid "Vehicle Service"
msgstr "Service kendaraan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_611004
msgid "Vehicle Taxes"
msgstr "Pajak Kendaraan"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311009
msgid "Water (PDAM)"
msgstr "PDAM"
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110007
msgid "Work Uniform"
msgstr "Pakaian Kerja"
#. module: l10n_id
#: model:account.tax.group,name:l10n_id.l10n_id_tax_group_luxury_goods
msgid "Luxury Good Taxes"
msgstr "Pajak Barang Mewah"
#. module: l10n_id
#: model:account.tax.group,name:l10n_id.l10n_id_tax_group_non_luxury_goods
msgid "Non-luxury Good Taxes"
msgstr "Pajak Barang"
#. module: l10n_id
#: model:account.tax.group,name:l10n_id.l10n_id_tax_group_exempt
msgid "Tax Exempted"
msgstr "Bebas Pajak"
#. module: l10n_id
#: model:account.tax.group,name:l10n_id.l10n_id_tax_group_0
msgid "Zero-rated Taxes"
msgstr "Pajak Nol"

View file

@ -1,848 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * l10n_id
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 13.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-12-03 12:38+0000\n"
"PO-Revision-Date: 2019-12-03 12:38+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: l10n_id
#: model:account.tax.template,name:l10n_id.tax_PT1
#: model:account.tax.template,name:l10n_id.tax_ST1
msgid "11%"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_121001
msgid "Account Receivable"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_1210011
msgid "Account Receivable (PoS)"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511006
msgid "Accrued Payable Bank"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511008
msgid "Accrued Payable Business License"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511010
msgid "Accrued Payable Education"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511001
msgid "Accrued Payable Electricity"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511011
msgid "Accrued Payable Health Insurance/BPJS"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511009
msgid "Accrued Payable Insurance"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511002
msgid "Accrued Payable Jamsostek"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511007
msgid "Accrued Payable PBB"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511005
msgid "Accrued Payable Security Management"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511004
msgid "Accrued Payable Telp & Internet"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_511003
msgid "Accrued Payable Water"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_228101
msgid "Accumulation Building Depreciation"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_228105
msgid "Accumulation Office Furniture Depreciation"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_228103
msgid "Accumulation Office Supplies Depreciation"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_228104
msgid "Accumulation Software Depreciation"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_228102
msgid "Accumulation Vehicle Depreciation"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_811001
msgid "Advance Sales"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_211003
msgid "Advertising"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511010
msgid "Asset Maintenance Costs"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_110001
msgid "Authorized Capital"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112005
msgid "BCA"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112004
msgid "BNI"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112006
msgid "BNI Giro"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_9_110002
msgid "Bank Administration Expense"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511002
msgid "Bank Administration Fees"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_211001
msgid "Bank Loan"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_811003
msgid "Bonus Point"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130012
msgid "Book, Office Stationery, Accessories Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511006
msgid "Building Maintenance Costs"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_141001
msgid "Building Rent"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112002
msgid "Business Mandiri"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_121001
msgid "Capital Reserves"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_111002
msgid "Cash in Hand"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130007
msgid "Cigarette Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311016
msgid "Cleaning Equipment"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130014
msgid "Cleaning Supplies Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511003
msgid "Consultant Fees"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_5_100001
msgid "Cost of Goods Sold"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_811002
msgid "Customer Deposit"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_8_110002
msgid "Deposit Income"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311004
msgid "Donation"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_180000
msgid "Down Payment"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130004
msgid "Dried Goods Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130009
msgid "Drink Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311001
msgid "Drinking Water"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311008
msgid "Electricity"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511007
msgid "Electricity, Telephone, and Internet Installation Maintenance Costs"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130016
msgid "Electronic Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110008
msgid "Employee Birthday Benefit"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110002
msgid "Employee Bonus / Benefits"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110003
msgid "Employee Health Benefits"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_121002
msgid "Employee Liabilities"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110004
msgid "Employee Meal (Catering)"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110005
msgid "Employee Overtime Pay"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110001
msgid "Employee Salary"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_211002
msgid "Event"
msgstr ""
#. module: l10n_id
#: model:account.tax.template,name:l10n_id.tax_PT2
#: model:account.tax.template,name:l10n_id.tax_ST2
msgid "Exempt"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311002
msgid "Exercise Necessities"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130013
msgid "Fashion & Textile Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311013
msgid "First Aid Kit"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130002
msgid "Fish Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130008
msgid "Food Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_8_110003
msgid "Foreign Exchange Gain"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_9_110003
msgid "Foreign Exchange Loss"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_211001
msgid "Free Gift"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130006
msgid "Fresh Drink Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130005
msgid "Fruit Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_8_110009
msgid "Gain on Sale of Fixed Assets"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511009
msgid "Guest Accomodation"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_900000
msgid "Historical Balance"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130015
msgid "House Supplies Inventory"
msgstr ""
#. module: l10n_id
#: model:account.chart.template,name:l10n_id.l10n_id_chart
msgid "Indonesian Account Chart Template"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_9_110001
msgid "Interest Expense"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_8_110001
msgid "Interest Income"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_900000
msgid "Interim Stock"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311005
msgid "Internet"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_411003
msgid "Jilid & Photocopy"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_411004
msgid "Job Recruitment Advertisement"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311015
msgid "K3 (Fire Extinguisher)"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311011
msgid "Kitchen Necessities"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_221001
#: model:account.account.template,name:l10n_id.a_6_710001
msgid "Land"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_211002
msgid "Leasing Deposit"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511001
msgid "Licensing Fees"
msgstr ""
#. module: l10n_id
msgid "Liquidity Transfer"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_9_110009
msgid "Loss on Sale of Fixed Assets"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112007
msgid "Mandiri Giro"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110009
msgid "Maternity Benefit"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130001
msgid "Meat Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311003
msgid "Monthly Fee"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112003
msgid "Muamalat"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_221002
#: model:account.account.template,name:l10n_id.a_6_710002
msgid "Office Building"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311012
msgid "Office Equipment"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_221006
#: model:account.account.template,name:l10n_id.a_6_710006
msgid "Office Furniture"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_411001
msgid "Office Stationery"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_221004
#: model:account.account.template,name:l10n_id.a_6_710004
msgid "Office Supplies"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_151002
msgid "Ongoing Profit & Loss"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_900000
msgid "Other Expenses"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_8_110004
msgid "Other Income"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130018
msgid "Other Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311014
msgid "Other Necessities"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_211004
msgid "Other Receivable"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311018
msgid "Owner Necessities"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_211003
msgid "Owner Receivable"
msgstr ""
#. module: l10n_id
#: model:account.tax.template,description:l10n_id.tax_PT0
msgid "0%"
msgstr ""
#. module: l10n_id
#: model:account.tax.template,description:l10n_id.tax_PT1
msgid "11%"
msgstr ""
#. module: l10n_id
#: model:account.tax.template,description:l10n_id.tax_PT2
msgid "0%"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_110002
msgid "Paid Capital"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_151001
msgid "Past Profit & Loss"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_112001
msgid "Personal Mandiri"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_111001
msgid "Petty Cash"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311006
msgid "Phone"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_411002
msgid "Post Necessities"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110010
msgid "Pph 21 Benefit"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_141003
msgid "Prepaid Advertisement-Free"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_141002
msgid "Prepaid Insurance"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311007
msgid "Prepaid Phone Bills"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_151001
msgid "Prepaid Tax Pph 22"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_151002
msgid "Prepaid Tax Pph 23"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_151003
msgid "Prepaid Tax Pph 25"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_110004
msgid "Prive (Personal Retrieval)"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130010
msgid "Processed Food Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511004
msgid "Rental Costs"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311010
msgid "Research & Development"
msgstr ""
#. module: l10n_id
#: model:account.tax.template,description:l10n_id.tax_ST0
msgid "0%"
msgstr ""
#. module: l10n_id
#: model:account.tax.template,description:l10n_id.tax_ST1
msgid "11%"
msgstr ""
#. module: l10n_id
#: model:account.tax.template,description:l10n_id.tax_ST2
msgid "0%"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_110004
msgid "Salary Deposit"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_4_100001
msgid "Sales"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_4_200007
msgid "Sales Discount"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_4_200006
msgid "Sales Refund"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110006
msgid "Security Service Fee"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_110002
msgid "Shareholder Deposit"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511011
msgid "Shipping Costs"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_211004
msgid "Shipping Merchandise"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_221005
#: model:account.account.template,name:l10n_id.a_6_710005
msgid "Software"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_411005
msgid "Stamp"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_121004
msgid "Tax Payable 4 (2)"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_121001
msgid "Tax Payable Pph 21"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_121002
msgid "Tax Payable Pph 23"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_121003
msgid "Tax Payable Pph 25"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_121005
msgid "Tax Payable Pph 29"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_511008
msgid "Taxes"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_110003
msgid "Third-Party Deposit"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130011
msgid "Toiletries Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130017
msgid "Toys Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_110001
msgid "Trade Receivable"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_3_110003
msgid "Unpaid Capital"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_122101
msgid "VAT Purchase"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_2_122102
msgid "VAT Sales"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_130003
msgid "Vegetables Inventory"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_1_221003
#: model:account.account.template,name:l10n_id.a_6_710003
msgid "Vehicle"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_611001
msgid "Vehicle Fuel"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_611005
msgid "Vehicle Insurance"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_611003
msgid "Vehicle Parking & Toll Fee"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_611002
msgid "Vehicle Service"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_611004
msgid "Vehicle Taxes"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_311009
msgid "Water (PDAM)"
msgstr ""
#. module: l10n_id
#: model:account.account.template,name:l10n_id.a_6_110007
msgid "Work Uniform"
msgstr ""
#. module: l10n_id
#: model:account.tax.group,name:l10n_id.l10n_id_tax_group_luxury_goods
msgid "Luxury Good Taxes"
msgstr ""
#. module: l10n_id
#: model:account.tax.group,name:l10n_id.l10n_id_tax_group_non_luxury_goods
msgid "Non-luxury Good Taxes"
msgstr ""
#. module: l10n_id
#: model:account.tax.group,name:l10n_id.l10n_id_tax_group_exempt
msgid "Tax Exempted"
msgstr ""
#. module: l10n_id
#: model:account.tax.group,name:l10n_id.l10n_id_tax_group_0
msgid "Zero-rated Taxes"
msgstr ""

View file

@ -1,6 +1,8 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.addons.account.models.chart_template import update_taxes_from_templates
from odoo import api, SUPERUSER_ID
def migrate(cr, version):
update_taxes_from_templates(cr, 'l10n_id.l10n_id_chart')
env = api.Environment(cr, SUPERUSER_ID, {})
for company in env['res.company'].search([('chart_template', '=', 'id')], order="parent_path"):
env['account.chart.template'].try_loading('id', company, force_create=False)

View file

@ -5,39 +5,36 @@ from odoo import api, SUPERUSER_ID
def migrate(cr, version):
env = api.Environment(cr, SUPERUSER_ID, {})
# Tax groups to create in format of [(xml_id, name)]
tax_group_info = [
("l10n_id_tax_group_non_luxury_goods", "Non-luxury Good Taxes"),
("l10n_id_tax_group_0", "Zero-rated Taxes"),
("l10n_id_tax_group_exempt", "Tax Exempted"),
]
# Load the new tax groups if it doesn't exist yet
ChartTemplate = env["account.chart.template"]
companies = env['res.company'].search([('chart_template', '=', 'id')], order="parent_path")
for xmlid, name in tax_group_info:
if not env.ref(f"l10n_id.{xmlid}", raise_if_not_found=False):
env['ir.model.data'].create({
"name": xmlid,
"module": "l10n_id",
"model": "account.tax.group",
"res_id": env['account.tax.group'].create({'name': name, 'country_id': env.ref('base.id').id}).id,
'noupdate': True
})
new_tax_groups = ["l10n_id_tax_group_non_luxury_goods", "l10n_id_tax_group_0", "l10n_id_tax_group_exempt"]
# For all taxes linked to the tax_ST1 and tax_PT1, set the tax group to non-luxury goods
# if no changes to amount and tax group yet
tax_group_id = env.ref("l10n_id.l10n_id_tax_group_non_luxury_goods")
default_group = env['account.tax']._default_tax_group()
id_chart = env.ref("l10n_id.l10n_id_chart", raise_if_not_found=False)
tax_group_data = {
xmlid: data
for xmlid, data in ChartTemplate._get_account_tax_group('id').items()
if xmlid in new_tax_groups
}
if not id_chart:
return
companies = env['res.company'].search([('chart_template_id', 'child_of', id_chart.id)])
# For taxes: tax_ST1 and tax_PT1 which are non-luxury tax, if the amount and tax group
# has not been changed yet by user, we update the tax group and description
for company in companies:
tax_xml_ids = [
f"l10n_id.{company.id}_tax_ST1",
f"l10n_id.{company.id}_tax_PT1",
]
for tax_xml_id in tax_xml_ids:
tax = env.ref(tax_xml_id, raise_if_not_found=False)
if tax and tax.amount == 11.0 and tax.tax_group_id == default_group:
tax.update({"tax_group_id": tax_group_id.id, "description": "12%"})
ChartTemplate.with_company(company)._load_data({
"account.tax.group": tax_group_data,
})
tax_ST1 = ChartTemplate.with_company(company).ref("tax_ST1", raise_if_not_found=False)
tax_PT1 = ChartTemplate.with_company(company).ref("tax_PT1", raise_if_not_found=False)
old_group = ChartTemplate.with_company(company).ref("default_tax_group", raise_if_not_found=False)
new_group = ChartTemplate.with_company(company).ref("l10n_id_tax_group_non_luxury_goods")
if not old_group:
continue
for tax in [tax_ST1, tax_PT1]:
if tax and tax.amount == 11.0 and tax.tax_group_id == old_group:
tax.write({
"tax_group_id": new_group.id,
"description": "12%",
})

View file

@ -0,0 +1,117 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, SUPERUSER_ID
def migrate(cr, version):
env = api.Environment(cr, SUPERUSER_ID, {"lang": "en_US"})
companies = env["res.company"].search([("chart_template", "=", "id"), ("parent_id", "=", False)])
new_tax_groups = ["l10n_id_tax_group_stlg", "l10n_id_tax_group_non_luxury_goods", "l10n_id_tax_group_luxury_goods", "l10n_id_tax_group_0"]
new_taxes = [
"tax_ST4", "tax_PT4",
"tax_ST5", "tax_PT5",
"tax_ST6", "tax_ST7",
"tax_luxury_sales_pemungut_ppn",
"tax_PT6", "tax_PT7",
]
for company in companies:
ChartTemplate = env["account.chart.template"].with_company(company)
# =============================
# Load new tax data
tax_group_data = {
xmlid: data
for xmlid, data in ChartTemplate._get_account_tax_group("id").items()
if xmlid in new_tax_groups
}
tax_data = {
xmlid: data
for xmlid, data in ChartTemplate._get_account_tax("id").items()
if xmlid in new_taxes
}
new_tax_group_data = {}
if (tax_group_data):
new_tax_group_data = {
g: data
for g, data in tax_group_data.items()
if not ChartTemplate.ref(g, raise_if_not_found=False)
}
if new_tax_group_data:
data = {"account.tax.group": new_tax_group_data}
ChartTemplate._pre_reload_data(company, {}, data)
ChartTemplate._load_data(data)
if tax_data:
data = {"account.tax": tax_data}
ChartTemplate._pre_reload_data(company, {}, data)
ChartTemplate._load_data(data)
# =============================
# Update existing tax description
tax_map = {
"tax_ST0": "VAT Not Collected",
"tax_PT0": "Zero-Rated",
"tax_ST2": "Exempt",
"tax_PT2": "Exempt",
"tax_ST3": "Taxable Luxury Goods",
"tax_PT3": "Standard Rate for Luxury Goods & Services",
}
for xmlid, new_description in tax_map.items():
tax = ChartTemplate.ref(xmlid, raise_if_not_found=False)
if not tax:
continue
# Only update description if it hasn't been manually changed
if tax.description == xmlid.replace("tax_", "").upper():
tax.description = new_description
# =============================
# Archive ST1 and PT1
for xmlid in ["tax_ST1", "tax_PT1"]:
tax = ChartTemplate.ref(xmlid, raise_if_not_found=False)
if tax and not tax.active:
continue
if tax:
tax.active = False
# =============================
# Remove l10n_id.ppn_tag from specific taxes
taxes_to_clean = [
"tax_ST1", "tax_PT1",
"tax_ST3", "tax_PT3",
"tax_luxury_sales",
]
ppn_tag = env.ref("l10n_id.ppn_tag", raise_if_not_found=False)
if ppn_tag:
tax_records = env["account.tax"].browse([])
for xmlid in taxes_to_clean:
rec = ChartTemplate.ref(xmlid, raise_if_not_found=False)
if rec:
tax_records |= rec
if tax_records:
repartition_lines = env["account.tax.repartition.line"].sudo().search([
("tax_id", "in", tax_records.ids),
("tag_ids", "in", [ppn_tag.id]),
])
if repartition_lines:
repartition_lines.write({"tag_ids": [(3, ppn_tag.id)]})
# =============================
# Update tax_luxury_sales group, description and invoice_label
old_group = ChartTemplate.ref("l10n_id_tax_group_luxury_goods", raise_if_not_found=False)
new_group = ChartTemplate.ref("l10n_id_tax_group_stlg", raise_if_not_found=False)
tax_luxury_sales = ChartTemplate.ref("tax_luxury_sales", raise_if_not_found=False)
if not (old_group and new_group and tax_luxury_sales):
continue
tax_luxury_sales_vals = {}
if tax_luxury_sales.tax_group_id == old_group:
tax_luxury_sales_vals['tax_group_id'] = new_group.id
if tax_luxury_sales.description == "Luxury":
tax_luxury_sales_vals['description'] = "Sales Tax on Luxury Goods (STLG)"
if tax_luxury_sales.invoice_label == "Luxury Goods (ID)":
tax_luxury_sales_vals['invoice_label'] = "20%"
if tax_luxury_sales.name == "20%":
tax_luxury_sales_vals['name'] = "20% (STLG)"
if tax_luxury_sales.is_base_affected:
tax_luxury_sales['is_base_affected'] = False
tax_luxury_sales.write(tax_luxury_sales_vals)

View file

@ -1,3 +1,6 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import account_move
from . import template_id
from . import res_bank
from . import qris_transaction

View file

@ -1,36 +1,137 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
from odoo.tools.misc import formatLang
from odoo import fields, models, _
class AccountMove(models.Model):
_inherit = "account.move"
_inherit = 'account.move'
l10n_id_qris_transaction_ids = fields.Many2many('l10n_id.qris.transaction', groups='account.group_account_invoice')
def _generate_qr_code(self, silent_errors=False):
"""
Adds information about which invoice is triggering the creation of the QR-Code, so that we can link both together.
"""
# EXTENDS account
return super(
AccountMove,
self.with_context(qris_model="account.move", qris_model_id=str(self.id)),
)._generate_qr_code(silent_errors)
def _l10n_id_cron_update_payment_status(self):
"""
This cron will:
- Get all invoices that are not paid, and have details about QRIS qr codes.
- For each invoices, get information about the payment state of the QR using the API.
- If the QR is not paid and it has been more than 30m, we discard that qr id (no longer valid)
- If it is paid, we will register the payment on the invoices.
"""
invoices = self.search([
('payment_state', '=', 'not_paid'),
('l10n_id_qris_transaction_ids', '!=', False)
])
return invoices._l10n_id_update_payment_status()
def action_l10n_id_update_payment_status(self):
"""
This action will:
- Get all invoices that are not paid, and have details about QRIS qr codes.
- For each invoices, get information about the payment state of the QR using the API.
- If the QR is not paid and it has been more than 30m, we discard that qr id (no longer valid)
- If it is paid, we will register the payment on the invoices.
"""
invoices = self.filtered_domain([
('payment_state', '=', 'not_paid'),
('l10n_id_qris_transaction_ids', '!=', False)
])
return invoices._l10n_id_update_payment_status()
def _l10n_id_update_payment_status(self):
""" Starts by fetching the QR statuses for the invoices in self, then update said invoices based on the statuses """
qr_statuses = self._l10n_id_get_qris_qr_statuses()
return self._l10n_id_process_invoices(qr_statuses)
def _l10n_id_get_qris_qr_statuses(self):
"""
Query the API in order to get updated information on the status of each QR codes linked to the invoices in self.
If the QR has been paid, only the paid information is returned.
:return: a list with the format:
{
invoice: {
'paid': True,
'qr_statuses': [],
},
invoice: {
'paid': False,
'qr_statuses': [],
}
}
"""
result = {}
for invoice in self:
result[invoice.id] = invoice.l10n_id_qris_transaction_ids._l10n_id_get_qris_qr_statuses()
return result
def _l10n_id_process_invoices(self, invoices_statuses):
"""
Receives the list of invoices and their statuses, and update them using it.
For paid invoices we will register the payment and log a note, while for unpaid ones we will discard expired
QR data and keep the non-expired ones for the next run.
"""
paid_invoices = self.env['account.move']
paid_messages = {}
for invoice in self:
statuses = invoices_statuses.get(invoice.id)
# Paid invoice: we simply prepare a message to notify of the payment with details if possible.
if statuses['paid']:
paid_status = statuses['qr_statuses'][0]
if 'qris_payment_customername' in paid_status and 'qris_payment_methodby' in paid_status:
message = _(
"This invoice was paid by %(customer)s using QRIS with the payment method %(method)s.",
customer=paid_status['qris_payment_customername'],
method=paid_status['qris_payment_methodby'],
)
else:
message = _("This invoice was paid using QRIS.")
paid_invoices |= invoice
paid_messages[invoice.id] = message
# Update paid invoices
if paid_invoices:
paid_invoices._message_log_batch(bodies=paid_messages)
# Finally, register the payment:
return self.env['account.payment.register'].with_context(
active_model='account.move', active_ids=paid_invoices.ids
).create({'group_payment': False}).action_create_payments()
def _compute_tax_totals(self):
""" OVERRIDE
For invoices based on ID company as of January 2025, there is a separate tax base computation for nun-luxury goods.
For invoices based on ID company as of January 2025, there is a separate tax base computation for non-luxury goods.
Tax base is supposed to be 11/12 of original while tax amount is increased from 11% to 12% hence effectively
maintaining 11% tax amount.
We change tax totals section to display adjusted base amount on invoice PDF for special non-luxury goods tax group.
"""
super()._compute_tax_totals()
non_luxury_tax_group = self.env.ref('l10n_id.l10n_id_tax_group_non_luxury_goods', raise_if_not_found=False)
if not non_luxury_tax_group:
return
for move in self.filtered(lambda m: m.is_sale_document()):
if move.invoice_date and move.invoice_date < fields.Date.to_date('2025-01-01'):
# invoice might be coming from different companies, each tax group with unique XML ID
non_luxury_tax_group = self.env['account.chart.template'].with_company(move.company_id.id).ref("l10n_id_tax_group_non_luxury_goods", raise_if_not_found=False)
if not non_luxury_tax_group or move.invoice_date and move.invoice_date < fields.Date.to_date('2025-01-01'):
continue
for subtotal_group in move.tax_totals['groups_by_subtotal'].values():
for group in subtotal_group:
if group['tax_group_id'] == non_luxury_tax_group.id:
dpp = group['tax_group_base_amount'] * (11 / 12)
# adding (DPP) information to make it clearer for users why the number is different from the Untaxed Amount
group.update({
'tax_group_base_amount': dpp,
'formatted_tax_group_base_amount': formatLang(self.env, dpp, currency_obj=move.currency_id),
'tax_group_name': group['tax_group_name'] + ' (on DPP)',
# for every tax group component with non-luxury tax group, we adjust the base amount and adjust the display to
# show base amount
change_tax_base = False
for subtotal in move.tax_totals["subtotals"]:
for tax_group in subtotal["tax_groups"]:
if tax_group["id"] == non_luxury_tax_group.id:
tax_group.update({
"display_base_amount": tax_group["display_base_amount"] * (11 / 12),
"display_base_amount_currency": tax_group["display_base_amount_currency"] * (11 / 12),
"group_name": tax_group["group_name"] + " (on DPP)",
})
move.tax_totals['display_tax_base'] = True
change_tax_base = True
if change_tax_base:
move.tax_totals["same_tax_base"] = False

View file

@ -0,0 +1,83 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import timedelta
from odoo import api, fields, models, _
from odoo.exceptions import ValidationError
class L10n_IdQrisTransaction(models.Model):
"""QRIS Transaction
General table to store a certian unique transaction with QRIS details attached
"""
_name = 'l10n_id.qris.transaction'
_description = "Record of QRIS transactions"
model = fields.Char(string="Model") # payment in respond to which model
model_id = fields.Char(string="Model ID") # id/uuid
# Fields that store the QRIS details coming from API request
qris_invoice_id = fields.Char(readonly=True)
qris_amount = fields.Integer(readonly=True)
qris_content = fields.Char(readonly=True)
qris_creation_datetime = fields.Datetime(readonly=True)
bank_id = fields.Many2one("res.partner.bank", help="Bank used to generate the current QRIS transaction")
paid = fields.Boolean(help="Payment Status of QRIS")
def _get_supported_models(self):
return ['account.move']
@api.constrains('model')
def _constraint_model(self):
# only allow supported models
if self.model not in self._get_supported_models():
raise ValidationError(_("QRIS capability is not extended to model %s yet!", self.model))
def _get_record(self):
""" Get the backend invoice record that the qris transaction is handling
To be overriden in other modules"""
self.ensure_one()
if self.model != 'account.move':
return
return self.env['account.move'].browse(int(self.model_id)).exists()
@api.model
def _get_latest_transaction(self, model, model_id):
""" Find latest transaction associated to the model and model_id """
return self.search([('model', '=', model), ('model_id', '=', model_id)], order='qris_creation_datetime desc', limit=1)
def _l10n_id_get_qris_qr_statuses(self):
""" Fetch the result of the transaction
:param invoice_bank_id (Model <res.partner.bank>): bank (with QRIS configuration)
:returns tuple(bool, dict): paid/unpaid status and status_response from QRIS
"""
# storing all failure transactions in case final result is unpaid
unpaid_status_data = []
# Looping to make requests is far from ideal, but we have no choices as they don't allow getting multiple QR result at once.
# Ensure to loop in reverse and check from the most recent QR code.
for transaction in self.sorted(lambda t: t.qris_creation_datetime):
status_response = self.sudo().bank_id._l10n_id_qris_fetch_status(transaction)
if status_response['data'].get('qris_status') == 'paid':
transaction.paid = True
return {
'paid': True,
'qr_statuses': [status_response['data']]
}
else:
unpaid_status_data.append(status_response['data'])
return {
'paid': False,
'qr_statuses': unpaid_status_data
}
@api.autovacuum
def _gc_remove_pointless_qris_transactions(self):
""" Removes unpaid transactions that have been for more than 35 minutes.
These can no longer be paid and status will no longer change
"""
time_limit = fields.Datetime.now() - timedelta(seconds=2100)
transactions = self.env['l10n_id.qris.transaction'].search([('qris_creation_datetime', '<=', time_limit), ('paid', '=', False)])
transactions.unlink()

View file

@ -0,0 +1,149 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import datetime
import requests
import pytz
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
from odoo.tools.urls import urljoin
QRIS_TIMEOUT = 35 # They say that the time to get a response vary between 6 to 30s
def _l10n_id_make_qris_request(endpoint, params):
""" Make an API request to QRIS, using the given path and params. """
url = urljoin('https://qris.online/restapi/qris/', endpoint)
try:
response = requests.get(url, params=params, timeout=QRIS_TIMEOUT)
response.raise_for_status()
response = response.json()
except requests.exceptions.HTTPError as err:
raise ValidationError(_("Communication with QRIS failed. QRIS returned with the following error: %s", err))
except (requests.RequestException, ValueError):
raise ValidationError(_("Could not establish a connection to the QRIS API."))
return response
class ResPartnerBank(models.Model):
_inherit = "res.partner.bank"
l10n_id_qris_api_key = fields.Char("QRIS API Key", groups="base.group_system")
l10n_id_qris_mid = fields.Char("QRIS Merchant ID", groups="base.group_system")
@api.model
def _get_available_qr_methods(self):
# EXTENDS account
rslt = super()._get_available_qr_methods()
rslt.append(('id_qr', _("QRIS"), 40))
return rslt
def _get_error_messages_for_qr(self, qr_method, debtor_partner, currency):
# EXTENDS account
if qr_method == 'id_qr':
if self.country_code != 'ID':
return _("You cannot generate a QRIS QR code with a bank account that is not in Indonesia.")
if currency.name not in ['IDR']:
return _("You cannot generate a QRIS QR code with a currency other than IDR")
if not (self.sudo().l10n_id_qris_api_key and self.sudo().l10n_id_qris_mid):
return _("To use QRIS QR code, Please setup the QRIS API Key and Merchant ID on the bank's configuration")
return None
return super()._get_error_messages_for_qr(qr_method, debtor_partner, currency)
def _check_for_qr_code_errors(self, qr_method, amount, currency, debtor_partner, free_communication, structured_communication):
# EXTENDS account
if qr_method == 'id_qr':
if not amount:
return _("The amount must be set to generate a QR code.")
return super()._check_for_qr_code_errors(qr_method, amount, currency, debtor_partner, free_communication, structured_communication)
def _get_qr_vals(self, qr_method, amount, currency, debtor_partner, free_communication, structured_communication):
""" Getting content for the QR through calling QRIS API and storing the QRIS transaction as a record"""
# EXTENDS account
if qr_method == "id_qr":
model = self.env.context.get('qris_model')
model_id = self.env.context.get('qris_model_id')
# qris_trx is to help us fetch the backend record associated to the model and model_id.
# we are using model and model_id instead of model.browse(id) because while executing this method
# not all backend records are created already. For example, pos.order record isn't created until
# payment is completed on the PoS interace.
qris_trx = self.env['l10n_id.qris.transaction']._get_latest_transaction(model, model_id)
# QRIS codes are valid for 30 minutes. To leave some margin, we will return the same QR code we already
# generated if the invoice is re-accessed before 25m. Otherwise, a new QR code is generated
# Additionally, we want to check that it's requesting for the same amount as it's possible to change
# amount in apps like PoS.
if qris_trx and qris_trx.qris_amount == int(amount):
now = fields.Datetime.now()
latest_qr_date = qris_trx.qris_creation_datetime
if (now - latest_qr_date).total_seconds() < 1500:
return qris_trx['qris_content']
params = {
"do": "create-invoice",
"apikey": self.sudo().l10n_id_qris_api_key,
"mID": self.sudo().l10n_id_qris_mid,
"cliTrxNumber": free_communication or structured_communication,
"cliTrxAmount": int(amount)
}
response = _l10n_id_make_qris_request('show_qris.php', params)
if response.get("status") == "failed":
raise ValidationError(response.get("data"))
data = response.get('data')
# create a new transaction line while also converting the qris_request_date to UTC time
if model and model_id:
new_trx = self.env['l10n_id.qris.transaction'].create({
'model': model,
'model_id': model_id,
'qris_invoice_id': data.get('qris_invoiceid'),
'qris_amount': int(amount),
# Since the QRIS response is always returned with "Asia/Jakarta" timezone which is UTC+07:00
'qris_creation_datetime': fields.Datetime.to_datetime(data.get('qris_request_date')) - datetime.timedelta(hours=7),
'qris_content': data.get('qris_content'),
'bank_id': self.id
})
# Search the backend record and attach the qris transaction to the record if it exists.
trx_record = new_trx._get_record()
if trx_record:
trx_record.l10n_id_qris_transaction_ids |= new_trx
return data.get('qris_content')
return super()._get_qr_vals(qr_method, amount, currency, debtor_partner, free_communication, structured_communication)
def _get_qr_code_generation_params(self, qr_method, amount, currency, debtor_partner, free_communication, structured_communication):
# EXTENDS account
if qr_method == 'id_qr':
if not self.env.context.get('is_online_qr'):
return {}
return {
'barcode_type': 'QR',
'quiet': 0,
'width': 120,
'height': 120,
'value': self._get_qr_vals(qr_method, amount, currency, debtor_partner, free_communication, structured_communication),
}
return super()._get_qr_code_generation_params(qr_method, amount, currency, debtor_partner, free_communication, structured_communication)
def _l10n_id_qris_fetch_status(self, qr_data):
"""
using self and the given data, fetches the status of a specific QR code generated by QRIS
Expected values in the qr_data dict are:
- invoice_id returned when generating a QR code
- the amount present in the qr code
- the datetime at which the QR code was generated
"""
return _l10n_id_make_qris_request('checkpaid_qris.php', {
'do': 'checkStatus',
'apikey': self.l10n_id_qris_api_key,
'mID': self.l10n_id_qris_mid,
'invid': qr_data['qris_invoice_id'],
'trxvalue': qr_data['qris_amount'],
'trxdate': qr_data['qris_creation_datetime'],
})

View file

@ -0,0 +1,63 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
from odoo.addons.account.models.chart_template import template
class AccountChartTemplate(models.AbstractModel):
_inherit = 'account.chart.template'
@template('id')
def _get_id_template_data(self):
return {
'property_account_receivable_id': 'l10n_id_11210010',
'property_account_payable_id': 'l10n_id_21100010',
'property_stock_valuation_account_id': 'l10n_id_11300180',
'code_digits': '8',
}
@template('id', 'res.company')
def _get_id_res_company(self):
return {
self.env.company.id: {
'anglo_saxon_accounting': True,
'account_fiscal_country_id': 'base.id',
'bank_account_code_prefix': '1112',
'cash_account_code_prefix': '1111',
'transfer_account_code_prefix': '1999999',
'default_cash_difference_income_account_id': 'l10n_id_99900002',
'default_cash_difference_expense_account_id': 'l10n_id_99900001',
'account_default_pos_receivable_account_id': 'l10n_id_11210011',
'income_currency_exchange_account_id': 'l10n_id_81100030',
'expense_currency_exchange_account_id': 'l10n_id_91100020',
'account_journal_early_pay_discount_loss_account_id': 'l10n_id_99900003',
'account_journal_early_pay_discount_gain_account_id': 'l10n_id_99900004',
'account_sale_tax_id': 'tax_ST4',
'account_purchase_tax_id': 'tax_PT4',
'expense_account_id': 'l10n_id_51000010',
'income_account_id': 'l10n_id_41000010',
'account_stock_journal_id': 'inventory_valuation',
'account_stock_valuation_id': 'l10n_id_11300180',
'deferred_expense_account_id': 'l10n_id_11210040',
'deferred_revenue_account_id': 'l10n_id_28110030',
},
}
@template('id', 'account.account')
def _get_id_account_account(self):
return {
'l10n_id_11300180': {
'account_stock_expense_id': 'l10n_id_51000020',
'account_stock_variation_id': 'l10n_id_42500010',
},
}
@template('id', 'account.journal')
def _get_id_account_journal(self):
return {
'bank': {'default_account_id': 'l10n_id_11120001'},
'cash': {
'name': self.env._("Cash"),
'type': 'cash',
'default_account_id': 'l10n_id_11110001',
},
}

View file

@ -0,0 +1,2 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_l10n_id_qris_transaction,access_l10n_id_qris_transaction,model_l10n_id_qris_transaction,account.group_account_invoice,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_l10n_id_qris_transaction access_l10n_id_qris_transaction model_l10n_id_qris_transaction account.group_account_invoice 1 1 1 1

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -1,51 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 106 106">
<defs>
<mask id="a" x="0" y="0" width="106" height="106" maskUnits="userSpaceOnUse">
<path d="M6.06,0H98.43C104.49,0,106,1.51,106,7.57V98.43c0,6.06-1.51,7.57-7.57,7.57H6.06C1.51,106,0,104.49,0,98.43V7.57C0,1.51,1.51,0,6.06,0Z" style="fill: #fff;fill-rule: evenodd"/>
</mask>
<mask id="b" x="4.8" y="7.25" width="50.4" height="32.5" maskUnits="userSpaceOnUse">
<rect x="6.29" y="7.53" width="48.45" height="31.57" rx="1" style="fill: #fff"/>
</mask>
<symbol id="c" data-name="account icon" viewBox="0 0 106 106">
<g style="mask: url(#a)">
<g>
<path d="M0,0H106V106H0Z" style="fill: #5a5a64;fill-rule: evenodd"/>
<path d="M6.06,1.51H98.43q6.06,0,7.57,3V0H0V4.54Q1.52,1.51,6.06,1.51Z" style="fill: #fff;fill-opacity: 0.382999986410141;fill-rule: evenodd"/>
<path d="M6.06,104.49H98.43q6.06,0,7.57-4.55V106H0V99.94Q1.52,104.49,6.06,104.49Z" style="fill-opacity: 0.382999986410141;fill-rule: evenodd"/>
<g>
<path d="M70.38,104.49H6.06C3,104.49,0,103,0,98.43V61.28L28.77,19.69H59.06a77.33,77.33,0,0,0,21.2,13.87c.07,11.31.07,4.86,0,16.17h3.12l.21,36.82Z" style="fill: #393939;fill-rule: evenodd;opacity: 0.324000000953674;isolation: isolate"/>
<g style="opacity: 0.30000000000000004">
<g>
<path d="M68.77,58.54H76c.76,0,1,.12,1,.46v2.45c0,.31-.24.43-.93.43H61.44c-.66,0-.92-.12-.92-.42,0-.83,0-1.67,0-2.51,0-.29.26-.4.92-.41Z"/>
<path d="M64.33,77.42c.42.39.76.66,1,1a.89.89,0,0,1,0,1.31.92.92,0,0,1-1.32,0,4.25,4.25,0,0,1-.48-.47c-.14-.15-.26-.31-.49-.6-.32.37-.54.66-.79.91-.53.53-1.08.58-1.5.15s-.36-.94.15-1.45c.26-.26.54-.5.91-.83-.38-.34-.72-.61-1-.91a.9.9,0,0,1,0-1.36.91.91,0,0,1,1.36,0c.29.28.54.6.93,1A12.1,12.1,0,0,1,64,75.18a.91.91,0,0,1,1.36,0,.87.87,0,0,1,0,1.31C65.07,76.79,64.73,77.06,64.33,77.42Z"/>
<path d="M62.13,66.9c0-.47,0-.88,0-1.28a.92.92,0,0,1,.92-1,.91.91,0,0,1,1,1c0,.41,0,.81,0,1.3h1.14a1.16,1.16,0,0,1,1.22,1c0,.55-.42.85-1.18.86H64.12c0,.49,0,.91,0,1.34a.94.94,0,1,1-1.88,0c0-.41,0-.81,0-1.3H60.92a.94.94,0,1,1,0-1.88C61.3,66.89,61.68,66.9,62.13,66.9Z"/>
<path d="M74.31,76H72.23c-.67,0-1-.34-1-.93a.89.89,0,0,1,1-1q2.18,0,4.35,0a1,1,0,1,1,0,1.91c-.74,0-1.47,0-2.21,0Z"/>
<path d="M74.28,68.61c-.71,0-1.43,0-2.14,0a.86.86,0,0,1-1-.9.85.85,0,0,1,.92-1c1.5,0,3,0,4.48,0a.93.93,0,0,1,1,1,.91.91,0,0,1-1,.91c-.75,0-1.51,0-2.27,0Z"/>
<path d="M74.36,78.09c.72,0,1.44,0,2.15,0a1,1,0,0,1,1,1c0,.57-.38.93-1,.94H72.28c-.75,0-1.09-.32-1.09-.94s.37-1,1.09-1,1.39,0,2.08,0Z"/>
<path d="M81.29,90.55H56.14a4,4,0,0,1-4-4V53.73a4,4,0,0,1,4-4H81.29a4,4,0,0,1,4,4V86.55A4,4,0,0,1,81.29,90.55ZM56.14,53.73V86.55H81.29V53.73Z"/>
</g>
<path d="M43.49,83.26H31.8V25.71H56v10.6q0,4.55,4.54,4.55H75.71v5.78h4.55V34.8c-4.55-3-16.66-12.11-19.69-13.63H30.29a2.68,2.68,0,0,0-3,3V84.77a2.68,2.68,0,0,0,3,3H48.45V83.26ZM60.57,25.71l15.14,10.6H60.57Z"/>
</g>
<path d="M60.57,18.68H30.29a2.68,2.68,0,0,0-3,3V82.28a2.68,2.68,0,0,0,3,3H48.45V80.77H31.8V23.22H56v10.6q0,4.55,4.54,4.55H75.71v5.78h4.55V32.31C75.71,29.28,63.6,20.2,60.57,18.68Zm0,15.14V23.22l15.14,10.6Z" style="fill: #a8a9ab"/>
<g>
<path d="M68.77,55.78H76c.76,0,1,.13,1,.53v2.85c0,.37-.24.5-.93.5q-7.3,0-14.61,0c-.66,0-.92-.14-.92-.48,0-1,0-2,0-2.93,0-.34.26-.47.92-.47Z" style="fill: #a8a9ab"/>
<path d="M64.33,76.53c.42.38.76.65,1,1a.89.89,0,0,1,0,1.31.92.92,0,0,1-1.32,0,5.44,5.44,0,0,1-.48-.48c-.14-.14-.26-.31-.49-.59-.32.36-.54.65-.79.91-.53.53-1.08.57-1.5.14s-.36-.94.15-1.45c.26-.26.54-.49.91-.82-.38-.35-.72-.61-1-.92a.9.9,0,0,1,0-1.36.92.92,0,0,1,1.36,0c.29.28.54.61.93,1A13.78,13.78,0,0,1,64,74.28a.91.91,0,0,1,1.36,0,.88.88,0,0,1,0,1.32C65.07,75.89,64.73,76.16,64.33,76.53Z" style="fill: #a8a9ab"/>
<path d="M62.13,65.88c0-.48,0-.88,0-1.29a1,1,0,1,1,1.91,0c0,.4,0,.81,0,1.3h1.14a1.15,1.15,0,0,1,1.22,1c0,.54-.42.85-1.18.85H64.12c0,.49,0,.92,0,1.34a.94.94,0,1,1-1.88,0c0-.4,0-.81,0-1.3H60.92a.94.94,0,1,1,0-1.88Z" style="fill: #a8a9ab"/>
<path d="M74.31,75.11c-.69,0-1.38,0-2.08,0s-1-.35-1-.94a.89.89,0,0,1,1-1q2.18,0,4.35,0a.91.91,0,0,1,1,1,.93.93,0,0,1-1,1c-.74,0-1.47,0-2.21,0Z" style="fill: #a8a9ab"/>
<path d="M74.28,67.76H72.14a.87.87,0,0,1-1-.9.84.84,0,0,1,.92-1c1.5,0,3,0,4.48,0a.94.94,0,0,1,1,1,.91.91,0,0,1-1,.91H74.28Z" style="fill: #a8a9ab"/>
<path d="M74.36,77.2c.72,0,1.44,0,2.15,0a1,1,0,0,1,1,1c0,.56-.38.93-1,.93q-2.12,0-4.23,0c-.75,0-1.09-.32-1.09-.94s.37-.94,1.09-1,1.39,0,2.08,0Z" style="fill: #a8a9ab"/>
<path d="M81.29,88.06H56.14a4,4,0,0,1-4-4V51.24a4,4,0,0,1,4-4H81.29a4,4,0,0,1,4,4V84.06A4,4,0,0,1,81.29,88.06ZM56.14,51.24V84.06H81.29V51.24Z" style="fill: #a8a9ab"/>
</g>
</g>
</g>
</g>
</symbol>
</defs>
<g>
<use width="106" height="106" transform="translate(-0.07 0)" xlink:href="#c"/>
<rect x="6.2" y="10.57" width="48.45" height="31.57" rx="1" style="fill: #393939;opacity: 0.44;isolation: isolate"/>
<g style="mask: url(#b)">
<image width="255" height="170" transform="translate(4.8 7.25) scale(0.2 0.19)" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAP8AAAClCAYAAACTHStbAAAACXBIWXMAADf6AAA3+gH8300lAAACA0lEQVR4Xu3VsQ3AMBADsU/gxTO5M4J7H1mrPejZM3uAnPc0AO4kfogSP0SJH6LED1HihyjxQ5T4IUr8ECV+iBI/RIkfosQPUeKHKPFDlPghSvwQJX6IEj9EiR+ixA9R4oco8UOU+CFK/BAlfogSP0SJH6LED1HihyjxQ5T4IUr8ECV+iBI/RIkfosQPUeKHKPFDlPghSvwQJX6IEj9EiR+ixA9R4oco8UOU+CFK/BAlfogSP0SJH6LED1HihyjxQ5T4IUr8ECV+iBI/RIkfosQPUeKHKPFDlPghSvwQJX6IEj9EiR+ixA9R4oco8UOU+CFK/BAlfogSP0SJH6LED1HihyjxQ5T4IUr8ELVm79MGuJDnhyjxQ5T4IUr8ECV+iBI/RIkfosQPUeKHKPFDlPghSvwQJX6IEj9EiR+ixA9R4oco8UOU+CFK/BAlfogSP0SJH6LED1HihyjxQ5T4IUr8ECV+iBI/RIkfosQPUeKHKPFDlPghSvwQJX6IEj9EiR+ixA9R4oco8UOU+CFK/BAlfogSP0SJH6LED1HihyjxQ5T4IUr8ECV+iBI/RIkfosQPUeKHKPFDlPghSvwQJX6IEj9EiR+ixA9R4oco8UOU+CFK/BAlfogSP0SJH6LED1HihyjxQ5T4IUr8ECV+iBI/RIkfosQPUeKHqDUz32kE3OcHTh8Fy0pWvJgAAAAASUVORK5CYII="/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.1 KiB

View file

@ -0,0 +1,2 @@
from . import test_qris_transaction
from . import test_qris

View file

@ -0,0 +1,196 @@
from markupsafe import Markup
from odoo.fields import Command
from odoo.addons.account.tests.common import AccountTestInvoicingCommon
from odoo.tests import tagged
from unittest.mock import patch
from freezegun import freeze_time
@tagged('post_install_l10n', 'post_install', '-at_install')
class TestQris(AccountTestInvoicingCommon):
""" Test QRIS QR generation on invoices and auto-payment registration"""
@classmethod
@AccountTestInvoicingCommon.setup_chart_template('id')
def setUpClass(cls):
super().setUpClass()
cls.company_data['company'].qr_code = True
cls.company_data['company'].partner_id.update({
'country_id': cls.env.ref('base.id').id,
'city': 'Jakarta',
})
cls.acc_qris_id = cls.env['res.partner.bank'].create({
'acc_number': '123456789012345678',
'partner_id': cls.company_data['company'].partner_id.id,
'l10n_id_qris_api_key': 'apikey',
'l10n_id_qris_mid': 'mid',
'allow_out_payment': True,
})
cls.qris_qr_invoice = cls.env['account.move'].create({
'move_type': 'out_invoice',
'partner_id': cls.partner_a.id,
'currency_id': cls.env.ref('base.IDR').id,
'partner_bank_id': cls.acc_qris_id.id,
'company_id': cls.company_data['company'].id,
'invoice_line_ids': [Command.create({'quantity': 1, 'price_unit': 100})],
'qr_code_method': 'id_qr',
})._post()
cls.success_qris_get = {
"status": "success",
"data": {
"qris_content": "Test Content",
"qris_request_date": "2024-02-27 11:13:42",
"qris_invoiceid": "413255111",
"qris_nmid": "ID1020021181745"
}
}
cls.success_qris_get_second = {
"status": "success",
"data": {
"qris_content": "Test Content Second",
"qris_request_date": "2024-02-27 11:13:42",
"qris_invoiceid": "413255111",
"qris_nmid": "ID1020021181745"
}
}
cls.qris_status_fail = {
"status": "failed",
"data": {
"qris_status": "unpaid"
}
}
cls.qris_status_success = {
"status": "success",
"data": {
"qris_status": "paid",
"qris_payment_customername": "Zainal Arief",
"qris_payment_methodby": "Sakuku"
},
"qris_api_version_code": "2206091709"
}
@freeze_time("2024-02-27 04:15:00")
def test_qris_qr_code_generation(self):
""" QR-Code generation conditions:
- should only come from portal side
- only call the API when the QRIS transaction not found or lasted for > 30 minutes
- if transaction found and < 30 minutes, no API call needed
"""
with patch(
'odoo.addons.l10n_id.models.res_bank._l10n_id_make_qris_request', return_value=self.success_qris_get
) as patched:
# QR code shouldn't be generated without the context.
result = self.qris_qr_invoice._generate_qr_code()
self.assertIsNone(result)
# But of course, should be with it.
result = self.qris_qr_invoice.with_context({'is_online_qr': True})._generate_qr_code()
self.assertIsNotNone(result)
# Confirm that a transaction should be registered on the invoice
qr_details = self.qris_qr_invoice.l10n_id_qris_transaction_ids
self.assertEqual(len(qr_details), 1)
qris_data = self.success_qris_get['data']
self.assertEqual(qr_details.qris_invoice_id, qris_data['qris_invoiceid'])
self.assertEqual(qr_details.qris_content, qris_data['qris_content'])
patched.assert_called_once()
with patch(
'odoo.addons.l10n_id.models.res_bank._l10n_id_make_qris_request', return_value=self.success_qris_get
) as patched:
# Check the API is not called again, as it should reuse the existing QR until it is expired
self.qris_qr_invoice.with_context({'is_online_qr': True})._generate_qr_code()
patched.assert_not_called()
# Check that if the qr code has expired, we correctly generate a new one.
qr_details.qris_creation_datetime = '2024-02-27 03:00:00'
self.qris_qr_invoice.with_context({'is_online_qr': True})._generate_qr_code()
patched.assert_called_once()
self.assertEqual(len(self.qris_qr_invoice.l10n_id_qris_transaction_ids), 2)
with patch(
'odoo.addons.l10n_id.models.res_bank._l10n_id_make_qris_request', return_value=self.success_qris_get_second
):
self.qris_qr_invoice.l10n_id_qris_transaction_ids[-1]['qris_creation_datetime'] = '2024-02-27 03:00:00'
self.qris_qr_invoice.with_context({'is_online_qr': True})._generate_qr_code()
# Ensure that the l10n_id_latest_qris_content is the new one, while now there are 3 qris transactions linked to the inovice
qr_details = self.qris_qr_invoice.l10n_id_qris_transaction_ids
qris_data = self.success_qris_get_second['data']
self.assertEqual(qr_details[-1].qris_invoice_id, qris_data['qris_invoiceid'])
self.assertEqual(qr_details[-1].qris_content, qris_data['qris_content'])
self.assertEqual(len(self.qris_qr_invoice.l10n_id_qris_transaction_ids), 3)
@freeze_time("2024-02-27 04:15:00")
def test_fetch_payment_status_fail(self):
""" If API return unpaid status """
with patch(
'odoo.addons.l10n_id.models.res_bank._l10n_id_make_qris_request', return_value=self.success_qris_get
):
self.qris_qr_invoice.with_context({'is_online_qr': True})._generate_qr_code()
with patch(
'odoo.addons.l10n_id.models.res_bank._l10n_id_make_qris_request', return_value=self.qris_status_fail
):
self.qris_qr_invoice.action_l10n_id_update_payment_status()
self.assertEqual(self.qris_qr_invoice.payment_state, 'not_paid')
@freeze_time("2024-02-27 04:15:00")
def test_fetch_payment_status_success(self):
""" If API returns 'paid' status """
with patch(
'odoo.addons.l10n_id.models.res_bank._l10n_id_make_qris_request', return_value=self.success_qris_get
):
self.qris_qr_invoice.with_context({'is_online_qr': True})._generate_qr_code()
with patch(
'odoo.addons.l10n_id.models.res_bank._l10n_id_make_qris_request', return_value=self.qris_status_success
):
self.qris_qr_invoice.action_l10n_id_update_payment_status()
self.assertEqual(self.qris_qr_invoice.payment_state, self.env['account.move']._get_invoice_in_payment_state())
# Ensure that the message is logged as expected.
self.assertEqual(
self.qris_qr_invoice.message_ids[0].body,
Markup('<p>This invoice was paid by Zainal Arief using QRIS with the payment method Sakuku.</p>')
)
# One of the QRIS transactions linked to the invoice should be paid already
self.assertTrue(any(self.qris_qr_invoice.l10n_id_qris_transaction_ids.mapped('paid')))
@freeze_time("2024-02-27 04:15:00")
def test_gc_no_remove_transactions_unpaid_within_30(self):
# Case 2: Unsuccessful, latest transaction is < 30 minutes, should avoid garbage-collection
with patch(
'odoo.addons.l10n_id.models.res_bank._l10n_id_make_qris_request', return_value=self.success_qris_get
):
self.qris_qr_invoice.with_context({'is_online_qr': True})._generate_qr_code()
with patch(
'odoo.addons.l10n_id.models.res_bank._l10n_id_make_qris_request', return_value=self.qris_status_fail
):
self.qris_qr_invoice.action_l10n_id_update_payment_status()
self.assertEqual(self.env['l10n_id.qris.transaction'].search_count([]), 1)
self.env['l10n_id.qris.transaction']._gc_remove_pointless_qris_transactions()
self.assertEqual(self.env['l10n_id.qris.transaction'].search_count([]), 1)
@freeze_time("2024-02-27 05:15:00")
def test_gc_remove_transactions_unpaid_after_30(self):
# Case 3: Unsuccessful, latest transaction is > 30 minutes, should be garbage-collected
with patch(
'odoo.addons.l10n_id.models.res_bank._l10n_id_make_qris_request', return_value=self.success_qris_get
):
self.qris_qr_invoice.with_context({'is_online_qr': True})._generate_qr_code()
self.assertEqual(self.env['l10n_id.qris.transaction'].search_count([]), 1)
self.env['l10n_id.qris.transaction']._gc_remove_pointless_qris_transactions()
self.assertEqual(self.env['l10n_id.qris.transaction'].search_count([]), 0)

View file

@ -0,0 +1,111 @@
from odoo.fields import Command
from odoo.addons.account.tests.common import AccountTestInvoicingCommon
from odoo.tests import tagged
from unittest.mock import patch
@tagged('post_install_l10n', 'post_install', '-at_install')
class TestQrisTransaction(AccountTestInvoicingCommon):
""" Testing the behaviours of QRIS Transaction """
@classmethod
@AccountTestInvoicingCommon.setup_chart_template('id')
def setUpClass(cls):
super().setUpClass()
cls.invoice = cls.env['account.move'].create({
'move_type': 'out_invoice',
'partner_id': cls.partner_a.id,
'invoice_date': '2019-05-01',
'date': '2019-05-01',
'invoice_line_ids': [
Command.create({'name': 'line1', 'price_unit': 110.0}),
],
})
cls.qris_status_success = {
"status": "success",
"data": {
"qris_status": "paid",
"qris_payment_customername": "Zainal Arief",
"qris_payment_methodby": "Sakuku"
},
"qris_api_version_code": "2206091709"
}
cls.qris_status_fail = {
"status": "failed",
"data": {
"qris_status": "unpaid"
}
}
cls.acc_qris_id = cls.env['res.partner.bank'].create({
'acc_number': '123456789012345678',
'partner_id': cls.company_data['company'].partner_id.id,
'l10n_id_qris_api_key': 'apikey',
'l10n_id_qris_mid': 'mid',
})
# Utility method to help create QRIS transactions
def _create_sample_transaction(self, model, model_id, qris_id, amount, create_at, content):
return self.env['l10n_id.qris.transaction'].create({
'model': model,
'model_id': model_id,
'qris_invoice_id': qris_id,
'qris_amount': amount,
'qris_creation_datetime': create_at,
'qris_content': content,
})
def test_retrieve_backend_record(self):
""" Test the _get_record method to retrieve original record accordingly """
trx = self._create_sample_transaction(
"account.move", str(self.invoice.id), "11254", 11000, "2024-08-01", "qris_content_sample"
)
invoice = trx._get_record()
self.assertEqual(invoice, self.invoice)
def test_latest_transaction(self):
""" Test method _get_latest_transaction"""
self._create_sample_transaction(
"account.move", "1", "11254", 11000, "2024-08-01 03:00:00", "qris_content_sample"
)
self._create_sample_transaction(
"account.move", "1", "11254", 11000, "2024-08-01 03:00:15", "qris_content_sample_latest"
)
trx = self.env['l10n_id.qris.transaction']._get_latest_transaction('account.move', '1')
self.assertTrue(
trx['qris_amount'] == 11000 and trx['qris_content'] == "qris_content_sample_latest"
)
def test_l10n_id_get_qris_qr_statuses(self):
""" Test the method _l10n_id_get_qris_qr_statuses """
# Create QRIS transaction with 2 entries in invoice details
trx = self._create_sample_transaction(
"account.move", "1", "11253", 11000, "2024-08-01", "qris_content_sample"
)
trx |= self._create_sample_transaction(
"account.move", "1", "11254", 11000, "2024-08-01", "qris_content_sample"
)
# if QRIS returns success, _l10n_id_make_request should only be called once and
# status returned is {'paid': True, 'qr_statuses': [{self.qris_status_success}]}
# and check that the transaction is also paid
with patch(
'odoo.addons.l10n_id.models.res_bank._l10n_id_make_qris_request', return_value=self.qris_status_success
) as patched:
res = trx._l10n_id_get_qris_qr_statuses()
patched.assert_called_once()
self.assertEqual(len(res['qr_statuses']), 1)
success_response = res['qr_statuses'][0]
self.assertTrue(res['paid'] and success_response['qris_payment_customername'] == 'Zainal Arief' and trx[0].paid)
# if QRIS returns fail for all, _l10n_id_make-request should be called twice and
# status returned is {'paid': False, 'qr_statuses': [{self.qris_status}, {self.qris_status_fail}]}
with patch(
'odoo.addons.l10n_id.models.res_bank._l10n_id_make_qris_request', return_value=self.qris_status_fail
) as patched:
res = trx._l10n_id_get_qris_qr_statuses()
self.assertEqual(patched.call_count, 2)
self.assertEqual(len(res['qr_statuses']), 2)

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="action_fetch_qris_status" model="ir.actions.server">
<field name="name">Check QRIS Payment Status</field>
<field name="group_ids" eval="[(4, ref('account.group_account_invoice'))]"/>
<field name="model_id" ref="account.model_account_move"/>
<field name="binding_model_id" ref="account.model_account_move"/>
<field name="binding_view_types">list,kanban,form</field>
<field name="state">code</field>
<field name="code">
if records:
action = records.action_l10n_id_update_payment_status()
</field>
</record>
</odoo>

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_partner_bank_form_inherit_account" model="ir.ui.view">
<field name="name">res.partner.bank.form.inherit.account</field>
<field name="model">res.partner.bank</field>
<field name="inherit_id" ref="base.view_partner_bank_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='allow_out_payment']/parent::group" position="inside">
<field name="l10n_id_qris_api_key" invisible="country_code != 'ID'"/>
<field name="l10n_id_qris_mid" invisible="country_code != 'ID'" />
</xpath>
</field>
</record>
</odoo>