From 54c86b612c23a3d62cc85f7b8ef9902188c2e500 Mon Sep 17 00:00:00 2001 From: Ernad Husremovic Date: Fri, 29 Aug 2025 15:20:52 +0200 Subject: [PATCH] Initial commit: L10N_Asia Pacific packages --- README.md | 34 + odoo-bringout-oca-ocb-l10n_au/README.md | 53 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 5 + odoo-bringout-oca-ocb-l10n_au/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_au/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_au/doc/MODELS.md | 13 + odoo-bringout-oca-ocb-l10n_au/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_au/doc/REPORTS.md | 3 + odoo-bringout-oca-ocb-l10n_au/doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_au/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_au/doc/WIZARDS.md | 3 + .../l10n_au/__init__.py | 3 + .../l10n_au/__manifest__.py | 36 + .../l10n_au/data/account.account.template.csv | 102 + .../l10n_au/data/account.tax.group.csv | 5 + .../account_chart_template_configure_data.xml | 8 + .../data/account_chart_template_data.xml | 20 + ...ount_fiscal_position_tax_template_data.xml | 155 + .../l10n_au/data/account_tax_report_data.xml | 256 ++ .../data/account_tax_template_data.xml | 906 +++++ .../l10n_au/data/l10n_au_chart_data.xml | 12 + .../l10n_au/data/res_currency_data.xml | 26 + .../l10n_au/demo/demo_company.xml | 34 + .../l10n_au/models/__init__.py | 4 + .../l10n_au/models/account_move.py | 11 + .../l10n_au/models/chart_template.py | 19 + .../l10n_au/static/description/icon.png | Bin 0 -> 2309 bytes .../l10n_au/static/description/icon.svg | 51 + .../l10n_au/views/menuitems.xml | 4 + .../l10n_au/views/report_invoice.xml | 30 + .../l10n_au/views/res_company_views.xml | 26 + odoo-bringout-oca-ocb-l10n_au/pyproject.toml | 42 + odoo-bringout-oca-ocb-l10n_cn/README.md | 67 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 7 + odoo-bringout-oca-ocb-l10n_cn/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_cn/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_cn/doc/MODELS.md | 12 + odoo-bringout-oca-ocb-l10n_cn/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_cn/doc/REPORTS.md | 3 + odoo-bringout-oca-ocb-l10n_cn/doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_cn/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_cn/doc/WIZARDS.md | 3 + .../l10n_cn/__init__.py | 12 + .../l10n_cn/__manifest__.py | 56 + .../l10n_cn/data/account.account.template.csv | 77 + .../data/account_chart_template_data.xml | 8 + .../l10n_cn/data/account_tax_group_data.xml | 15 + .../data/account_tax_template_data.xml | 222 ++ .../l10n_cn/data/l10n_cn_chart_data.xml | 30 + .../l10n_cn/data/l10n_cn_chart_post_data.xml | 12 + .../l10n_cn/demo/demo_company.xml | 34 + .../l10n_cn/i18n/fr_BE.po | 664 ++++ .../l10n_cn/i18n/l10n_cn.pot | 568 ++++ .../l10n_cn/i18n_extra/l10n_cn.pot | 698 ++++ .../l10n_cn/i18n_extra/zh_CN.po | 699 ++++ .../l10n_cn/migrations/1.9/pre-migrate.py | 9 + .../l10n_cn/models/__init__.py | 4 + .../l10n_cn/models/account_move.py | 43 + .../l10n_cn/static/description/icon.png | Bin 0 -> 1652 bytes .../l10n_cn/static/description/icon.svg | 51 + .../l10n_cn/views/account_move_view.xml | 17 + .../l10n_cn/views/account_report.xml | 16 + .../l10n_cn/views/report_voucher.xml | 121 + odoo-bringout-oca-ocb-l10n_cn/pyproject.toml | 44 + odoo-bringout-oca-ocb-l10n_din5008/README.md | 44 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 5 + odoo-bringout-oca-ocb-l10n_din5008/doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 14 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 22 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_din5008/__init__.py | 4 + .../l10n_din5008/__manifest__.py | 21 + .../l10n_din5008/data/report_layout.xml | 11 + .../l10n_din5008/i18n/de.po | 311 ++ .../l10n_din5008/i18n/fr.po | 284 ++ .../l10n_din5008/i18n/it.po | 282 ++ .../l10n_din5008/i18n/l10n_din5008.pot | 278 ++ .../l10n_din5008/models/__init__.py | 6 + .../l10n_din5008/models/account_move.py | 58 + .../models/base_document_layout.py | 27 + .../l10n_din5008/models/hr_timesheet.py | 15 + .../l10n_din5008/report/din5008_report.xml | 206 ++ .../static/src/scss/report_din5008.scss | 192 ++ .../pyproject.toml | 42 + .../README.md | 45 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 6 + .../doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 12 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_din5008_repair/__init__.py | 1 + .../l10n_din5008_repair/__manifest__.py | 13 + .../l10n_din5008_repair/i18n/de.po | 71 + .../l10n_din5008_repair/i18n/fr.po | 71 + .../l10n_din5008_repair/i18n/it.po | 71 + .../i18n/l10n_din5008_repair.pot | 69 + .../l10n_din5008_repair/models/__init__.py | 1 + .../l10n_din5008_repair/models/repair.py | 27 + .../pyproject.toml | 43 + .../README.md | 45 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 6 + .../doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 12 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_din5008_sale/__init__.py | 1 + .../l10n_din5008_sale/__manifest__.py | 13 + .../l10n_din5008_sale/i18n/de.po | 132 + .../l10n_din5008_sale/i18n/fr.po | 132 + .../l10n_din5008_sale/i18n/it.po | 132 + .../i18n/l10n_din5008_sale.pot | 130 + .../l10n_din5008_sale/models/__init__.py | 1 + .../l10n_din5008_sale/models/sale.py | 56 + .../pyproject.toml | 43 + .../README.md | 45 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 6 + .../doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 12 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_din5008_stock/__init__.py | 1 + .../l10n_din5008_stock/__manifest__.py | 13 + .../l10n_din5008_stock/i18n/de.po | 49 + .../l10n_din5008_stock/i18n/fr.po | 49 + .../l10n_din5008_stock/i18n/it.po | 49 + .../i18n/l10n_din5008_stock.pot | 47 + .../l10n_din5008_stock/models/__init__.py | 1 + .../l10n_din5008_stock/models/stock.py | 26 + .../pyproject.toml | 43 + .../README.md | 46 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 5 + .../doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 13 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_gcc_invoice/__init__.py | 5 + .../l10n_gcc_invoice/__manifest__.py | 16 + .../l10n_gcc_invoice/models/__init__.py | 4 + .../l10n_gcc_invoice/models/account_move.py | 60 + .../l10n_gcc_invoice/tests/__init__.py | 3 + .../tests/test_gcc_invoice.py | 30 + .../l10n_gcc_invoice/views/report_invoice.xml | 556 +++ .../pyproject.toml | 42 + odoo-bringout-oca-ocb-l10n_gcc_pos/README.md | 48 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 6 + odoo-bringout-oca-ocb-l10n_gcc_pos/doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 11 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_gcc_pos/__init__.py | 0 .../l10n_gcc_pos/__manifest__.py | 21 + .../static/src/css/OrderReceipt.css | 3 + .../static/src/js/OrderReceipt.js | 20 + .../static/src/xml/OrderReceipt.xml | 140 + .../pyproject.toml | 43 + odoo-bringout-oca-ocb-l10n_hk/README.md | 44 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 5 + odoo-bringout-oca-ocb-l10n_hk/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_hk/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_hk/doc/MODELS.md | 11 + odoo-bringout-oca-ocb-l10n_hk/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_hk/doc/REPORTS.md | 3 + odoo-bringout-oca-ocb-l10n_hk/doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_hk/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_hk/doc/WIZARDS.md | 3 + .../l10n_hk/__init__.py | 2 + .../l10n_hk/__manifest__.py | 21 + .../l10n_hk/data/account.account.template.csv | 73 + .../account_chart_template_configure_data.xml | 6 + .../data/account_chart_template_data.xml | 17 + .../l10n_hk/data/l10n_hk_chart_data.xml | 19 + .../l10n_hk/demo/demo_company.xml | 35 + .../l10n_hk/static/description/icon.png | Bin 0 -> 2503 bytes .../l10n_hk/static/description/icon.svg | 59 + odoo-bringout-oca-ocb-l10n_hk/pyproject.toml | 42 + odoo-bringout-oca-ocb-l10n_id/README.md | 51 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 8 + odoo-bringout-oca-ocb-l10n_id/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_id/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_id/doc/MODELS.md | 12 + odoo-bringout-oca-ocb-l10n_id/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_id/doc/REPORTS.md | 3 + odoo-bringout-oca-ocb-l10n_id/doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_id/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_id/doc/WIZARDS.md | 3 + .../l10n_id/__init__.py | 9 + .../l10n_id/__manifest__.py | 29 + .../l10n_id/data/account.account.template.csv | 108 + ...ount_chart_template_configuration_data.xml | 6 + .../data/account_chart_template_data.xml | 13 + .../data/account_chart_template_post_data.xml | 18 + .../l10n_id/data/account_tax_group.xml | 23 + .../data/account_tax_template_data.xml | 239 ++ .../l10n_id/demo/demo_company.xml | 34 + .../l10n_id/i18n_extra/id.po | 849 +++++ .../l10n_id/i18n_extra/l10n_id.pot | 848 +++++ .../1.1/end-migrate_update_taxes.py | 6 + .../1.2/end-migrate_update_taxes.py | 43 + .../l10n_id/models/__init__.py | 3 + .../l10n_id/models/account_move.py | 36 + .../l10n_id/static/description/icon.png | Bin 0 -> 1612 bytes .../l10n_id/static/description/icon.svg | 51 + odoo-bringout-oca-ocb-l10n_id/pyproject.toml | 45 + .../README.md | 66 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 5 + .../doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 15 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 34 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_id_efaktur/__init__.py | 4 + .../l10n_id_efaktur/__manifest__.py | 43 + .../l10n_id_efaktur/i18n/efaktur.pot | 447 +++ .../l10n_id_efaktur/i18n/id.po | 440 +++ .../l10n_id_efaktur/models/__init__.py | 6 + .../l10n_id_efaktur/models/account_move.py | 371 ++ .../l10n_id_efaktur/models/efaktur.py | 111 + .../l10n_id_efaktur/models/res_partner.py | 41 + .../security/ir.model.access.csv | 2 + .../l10n_id_efaktur/tests/__init__.py | 1 + .../tests/test_l10n_id_efaktur.py | 291 ++ .../views/account_move_views.xml | 62 + .../l10n_id_efaktur/views/efaktur_views.xml | 42 + .../views/res_config_settings_views.xml | 37 + .../views/res_partner_views.xml | 27 + .../pyproject.toml | 42 + odoo-bringout-oca-ocb-l10n_in/README.md | 58 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 6 + odoo-bringout-oca-ocb-l10n_in/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_in/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_in/doc/MODELS.md | 24 + odoo-bringout-oca-ocb-l10n_in/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_in/doc/REPORTS.md | 22 + odoo-bringout-oca-ocb-l10n_in/doc/SECURITY.md | 42 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_in/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_in/doc/WIZARDS.md | 3 + .../l10n_in/__init__.py | 5 + .../l10n_in/__manifest__.py | 57 + .../l10n_in/data/account.account.tag.csv | 47 + .../l10n_in/data/account.account.template.csv | 69 + .../data/account_chart_template_data.xml | 8 + .../data/account_fiscal_position_data.xml | 211 ++ .../l10n_in/data/account_tax_group_data.xml | 37 + .../data/account_tax_template_data.xml | 2616 +++++++++++++++ .../l10n_in/data/l10n_in.port.code.csv | 635 ++++ .../l10n_in/data/l10n_in_chart_data.xml | 61 + .../l10n_in/data/l10n_in_chart_post_data.xml | 16 + .../l10n_in/data/res_country_state_data.xml | 135 + .../l10n_in/data/uom_data.xml | 84 + .../l10n_in/demo/__init__.py | 3 + .../l10n_in/demo/account_demo.py | 15 + .../l10n_in/demo/account_invoice_demo.xml | 56 + .../l10n_in/demo/demo_company.xml | 35 + .../l10n_in/demo/product_demo.xml | 128 + .../l10n_in/demo/res_partner_demo.xml | 43 + .../l10n_in/i18n/l10n_in.pot | 977 ++++++ .../pre-set_tags_and_taxes_updatable.py | 8 + .../l10n_in/models/__init__.py | 13 + .../l10n_in/models/account.py | 77 + .../l10n_in/models/account_invoice.py | 142 + .../l10n_in/models/chart_template.py | 37 + .../l10n_in/models/mail_message.py | 56 + .../l10n_in/models/port_code.py | 19 + .../l10n_in/models/product_template.py | 11 + .../l10n_in/models/res_config_settings.py | 10 + .../l10n_in/models/res_country_state.py | 10 + .../l10n_in/models/res_partner.py | 58 + .../l10n_in/models/uom_uom.py | 11 + .../report/audit_trail_report_views.xml | 51 + .../l10n_in/security/ir.model.access.csv | 3 + .../l10n_in/security/l10n_in_security.xml | 7 + .../l10n_in/static/description/icon.png | Bin 0 -> 1647 bytes .../l10n_in/static/description/icon.svg | 51 + .../l10n_in/views/account_invoice_views.xml | 36 + .../l10n_in/views/account_journal_views.xml | 19 + .../l10n_in/views/account_tax_views.xml | 13 + .../l10n_in/views/port_code_views.xml | 48 + .../l10n_in/views/product_template_view.xml | 16 + .../l10n_in/views/report_invoice.xml | 79 + .../l10n_in/views/report_template.xml | 15 + .../views/res_config_settings_views.xml | 26 + .../l10n_in/views/res_country_state_view.xml | 15 + .../l10n_in/views/res_partner_views.xml | 17 + .../l10n_in/views/uom_uom_views.xml | 24 + odoo-bringout-oca-ocb-l10n_in/pyproject.toml | 43 + odoo-bringout-oca-ocb-l10n_in_edi/README.md | 60 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 7 + odoo-bringout-oca-ocb-l10n_in_edi/doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 15 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_in_edi/__init__.py | 4 + .../l10n_in_edi/__manifest__.py | 38 + .../l10n_in_edi/data/account_edi_data.xml | 7 + .../l10n_in_edi/data/neutralize.sql | 7 + .../l10n_in_edi/demo/demo_company.xml | 8 + .../l10n_in_edi/i18n/l10n_in_edi.pot | 411 +++ .../l10n_in_edi/models/__init__.py | 7 + .../l10n_in_edi/models/account_edi_format.py | 736 ++++ .../l10n_in_edi/models/account_move.py | 79 + .../l10n_in_edi/models/res_company.py | 24 + .../l10n_in_edi/models/res_config_settings.py | 54 + .../l10n_in_edi/tests/__init__.py | 4 + .../l10n_in_edi/tests/test_edi_json.py | 421 +++ .../l10n_in_edi/views/account_move_views.xml | 15 + .../l10n_in_edi/views/edi_pdf_report.xml | 30 + .../views/res_config_settings_views.xml | 44 + .../pyproject.toml | 44 + .../README.md | 56 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 5 + .../doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 16 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 34 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_in_edi_ewaybill/__init__.py | 5 + .../l10n_in_edi_ewaybill/__manifest__.py | 39 + .../data/account_edi_data.xml | 7 + .../data/ewaybill_type_data.xml | 75 + .../l10n_in_edi_ewaybill/data/neutralize.sql | 5 + .../l10n_in_edi_ewaybill/demo/__init__.py | 4 + .../demo/account_invoice_demo.xml | 66 + .../demo/chart_template.py | 17 + .../demo/demo_company.xml | 34 + .../demo/res_partner_demo.xml | 18 + .../i18n/l10n_in_edi_ewaybill.pot | 2971 +++++++++++++++++ .../l10n_in_edi_ewaybill/models/__init__.py | 8 + .../models/account_edi_format.py | 651 ++++ .../models/account_move.py | 123 + .../models/error_codes.py | 336 ++ .../models/ewaybill_type.py | 32 + .../models/res_company.py | 18 + .../models/res_config_settings.py | 33 + .../security/ir.model.access.csv | 2 + .../l10n_in_edi_ewaybill/tests/__init__.py | 4 + .../tests/test_edi_ewaybill_json.py | 183 + .../views/account_move_views.xml | 52 + .../views/edi_pdf_report.xml | 15 + .../views/res_config_settings_views.xml | 44 + .../pyproject.toml | 42 + odoo-bringout-oca-ocb-l10n_in_pos/README.md | 47 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 6 + odoo-bringout-oca-ocb-l10n_in_pos/doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 14 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_in_pos/__init__.py | 4 + .../l10n_in_pos/__manifest__.py | 25 + .../l10n_in_pos/data/product_demo.xml | 57 + .../l10n_in_pos/i18n/l10n_in_pos.pot | 54 + .../l10n_in_pos/models/__init__.py | 6 + .../l10n_in_pos/models/pos_config.py | 24 + .../l10n_in_pos/models/pos_order.py | 20 + .../l10n_in_pos/models/pos_session.py | 13 + .../l10n_in_pos/static/src/js/receipt.js | 17 + .../static/src/xml/pos_receipt.xml | 30 + .../pyproject.toml | 43 + odoo-bringout-oca-ocb-l10n_in_sale/README.md | 47 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 6 + odoo-bringout-oca-ocb-l10n_in_sale/doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 12 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 8 + .../l10n_in_sale/__init__.py | 5 + .../l10n_in_sale/__manifest__.py | 24 + .../l10n_in_sale/data/product_demo.xml | 9 + .../l10n_in_sale/models/__init__.py | 4 + .../l10n_in_sale/models/sale_order.py | 58 + .../l10n_in_sale/views/report_sale_order.xml | 12 + .../l10n_in_sale/views/sale_views.xml | 20 + .../l10n_in_sale/wizard/__init__.py | 4 + .../wizard/sale_make_invoice_advance.py | 18 + .../pyproject.toml | 43 + .../README.md | 52 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 6 + .../doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 14 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_in_sale_stock/__init__.py | 4 + .../l10n_in_sale_stock/__manifest__.py | 30 + .../l10n_in_sale_stock/models/__init__.py | 6 + .../l10n_in_sale_stock/models/account_move.py | 16 + .../l10n_in_sale_stock/models/sale_order.py | 16 + .../models/stock_warehouse.py | 10 + .../views/stock_warehouse_views.xml | 13 + .../pyproject.toml | 44 + odoo-bringout-oca-ocb-l10n_in_stock/README.md | 47 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 6 + .../doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 12 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_in_stock/__init__.py | 4 + .../l10n_in_stock/__manifest__.py | 23 + .../l10n_in_stock/data/product_demo.xml | 8 + .../l10n_in_stock/models/__init__.py | 4 + .../l10n_in_stock/models/stock_picking.py | 12 + .../views/report_stockpicking_operations.xml | 10 + .../pyproject.toml | 43 + .../README.md | 51 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 5 + .../doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 12 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_in_tcs_tds/__init__.py | 47 + .../l10n_in_tcs_tds/__manifest__.py | 28 + .../data/account.account.template.csv | 3 + .../data/account_tax_group_data.xml | 15 + .../data/account_tax_report_tcs_data.xml | 173 + .../data/account_tax_report_tds_data.xml | 360 ++ .../data/account_tax_template_tcs_data.xml | 932 ++++++ .../data/account_tax_template_tds_data.xml | 2334 +++++++++++++ .../l10n_in_tcs_tds/models/__init__.py | 4 + .../l10n_in_tcs_tds/models/res_partner.py | 17 + .../views/res_partner_views.xml | 14 + .../pyproject.toml | 42 + odoo-bringout-oca-ocb-l10n_in_upi/README.md | 52 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 5 + odoo-bringout-oca-ocb-l10n_in_upi/doc/FAQ.md | 4 + .../doc/INSTALL.md | 7 + .../doc/MODELS.md | 13 + .../doc/OVERVIEW.md | 6 + .../doc/REPORTS.md | 3 + .../doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + .../doc/USAGE.md | 7 + .../doc/WIZARDS.md | 3 + .../l10n_in_upi/__init__.py | 3 + .../l10n_in_upi/__manifest__.py | 18 + .../l10n_in_upi/models/__init__.py | 4 + .../l10n_in_upi/models/account_invoice.py | 23 + .../l10n_in_upi/models/res_company.py | 10 + .../l10n_in_upi/views/res_company_views.xml | 13 + .../pyproject.toml | 42 + odoo-bringout-oca-ocb-l10n_jp/README.md | 62 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 6 + odoo-bringout-oca-ocb-l10n_jp/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_jp/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_jp/doc/MODELS.md | 11 + odoo-bringout-oca-ocb-l10n_jp/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_jp/doc/REPORTS.md | 3 + odoo-bringout-oca-ocb-l10n_jp/doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_jp/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_jp/doc/WIZARDS.md | 3 + .../l10n_jp/__init__.py | 11 + .../l10n_jp/__manifest__.py | 51 + .../l10n_jp/data/account.account.template.csv | 129 + .../data/account.fiscal.position.template.csv | 5 + .../l10n_jp/data/account.tax.group.csv | 4 + .../account_chart_template_configure_data.xml | 6 + .../data/account_chart_template_data.xml | 24 + ...ount_fiscal_position_tax_template_data.xml | 112 + .../l10n_jp/data/account_tax_report_data.xml | 234 ++ .../data/account_tax_template_data.xml | 379 +++ .../l10n_jp/data/l10n_jp_chart_data.xml | 13 + .../l10n_jp/demo/demo_company.xml | 34 + .../l10n_jp/i18n/ja_JP.po | 1512 +++++++++ .../l10n_jp/i18n/l10n_jp.pot | 1512 +++++++++ .../l10n_jp/migrations/2.3/pre-migrate.py | 27 + .../l10n_jp/static/description/icon.png | Bin 0 -> 1663 bytes .../l10n_jp/static/description/icon.svg | 51 + odoo-bringout-oca-ocb-l10n_jp/pyproject.toml | 43 + odoo-bringout-oca-ocb-l10n_my/README.md | 50 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 6 + odoo-bringout-oca-ocb-l10n_my/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_my/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_my/doc/MODELS.md | 11 + odoo-bringout-oca-ocb-l10n_my/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_my/doc/REPORTS.md | 3 + odoo-bringout-oca-ocb-l10n_my/doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_my/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_my/doc/WIZARDS.md | 3 + .../l10n_my/__init__.py | 6 + .../l10n_my/__manifest__.py | 28 + .../l10n_my/data/account.account.template.csv | 76 + .../l10n_my/data/account.tax.group.csv | 2 + .../account_chart_template_configure_data.xml | 6 + .../data/account_chart_template_data.xml | 13 + .../data/account_tax_template_data.xml | 140 + .../l10n_my/data/l10n_my_chart_data.xml | 13 + .../l10n_my/demo/demo_company.xml | 35 + odoo-bringout-oca-ocb-l10n_my/pyproject.toml | 43 + odoo-bringout-oca-ocb-l10n_nz/README.md | 55 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 5 + odoo-bringout-oca-ocb-l10n_nz/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_nz/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_nz/doc/MODELS.md | 11 + odoo-bringout-oca-ocb-l10n_nz/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_nz/doc/REPORTS.md | 3 + odoo-bringout-oca-ocb-l10n_nz/doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_nz/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_nz/doc/WIZARDS.md | 3 + .../l10n_nz/__init__.py | 4 + .../l10n_nz/__manifest__.py | 38 + .../l10n_nz/data/account.account.template.csv | 99 + .../l10n_nz/data/account.tax.group.csv | 5 + .../account_chart_template_configure_data.xml | 8 + .../data/account_chart_template_data.xml | 18 + ...ount_fiscal_position_tax_template_data.xml | 31 + .../l10n_nz/data/account_tax_report_data.xml | 154 + .../data/account_tax_template_data.xml | 225 ++ .../l10n_nz/data/l10n_nz_chart_data.xml | 17 + .../l10n_nz/data/res_currency_data.xml | 26 + .../l10n_nz/demo/demo_company.xml | 35 + .../l10n_nz/migrations/1.2/post-migrate.py | 10 + .../l10n_nz/migrations/1.2/pre-migrate.py | 10 + .../l10n_nz/static/description/icon.png | Bin 0 -> 2122 bytes .../l10n_nz/static/description/icon.svg | 51 + odoo-bringout-oca-ocb-l10n_nz/pyproject.toml | 42 + odoo-bringout-oca-ocb-l10n_ph/README.md | 48 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 7 + odoo-bringout-oca-ocb-l10n_ph/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_ph/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_ph/doc/MODELS.md | 16 + odoo-bringout-oca-ocb-l10n_ph/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_ph/doc/REPORTS.md | 3 + odoo-bringout-oca-ocb-l10n_ph/doc/SECURITY.md | 34 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_ph/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_ph/doc/WIZARDS.md | 8 + .../l10n_ph/__init__.py | 4 + .../l10n_ph/__manifest__.py | 35 + .../l10n_ph/data/account.account.template.csv | 98 + .../account_chart_template_configure_data.xml | 6 + .../data/account_chart_template_data.xml | 13 + .../data/account_chart_template_post_data.xml | 18 + .../account_fiscal_position_tax_template.xml | 24 + .../data/account_fiscal_position_template.xml | 18 + .../l10n_ph/data/account_tax_group.xml | 27 + .../l10n_ph/data/account_tax_template.xml | 1049 ++++++ .../l10n_ph/models/__init__.py | 7 + .../l10n_ph/models/account_move.py | 19 + .../l10n_ph/models/account_payment.py | 19 + .../l10n_ph/models/account_tax.py | 9 + .../l10n_ph/models/account_tax_template.py | 14 + .../l10n_ph/models/res_partner.py | 25 + .../l10n_ph/security/ir.model.access.csv | 2 + .../l10n_ph/tests/__init__.py | 3 + .../l10n_ph/tests/test_bir_2307.py | 135 + .../l10n_ph/views/account_move_views.xml | 12 + .../l10n_ph/views/account_payment_views.xml | 12 + .../l10n_ph/views/account_tax_views.xml | 19 + .../l10n_ph/views/res_partner_views.xml | 16 + .../l10n_ph/wizard/__init__.py | 3 + .../l10n_ph/wizard/generate_2307_wizard.py | 104 + .../wizard/generate_2307_wizard_views.xml | 36 + odoo-bringout-oca-ocb-l10n_ph/pyproject.toml | 46 + odoo-bringout-oca-ocb-l10n_sg/README.md | 56 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 6 + odoo-bringout-oca-ocb-l10n_sg/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_sg/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_sg/doc/MODELS.md | 17 + odoo-bringout-oca-ocb-l10n_sg/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_sg/doc/REPORTS.md | 3 + odoo-bringout-oca-ocb-l10n_sg/doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_sg/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_sg/doc/WIZARDS.md | 3 + .../l10n_sg/__init__.py | 9 + .../l10n_sg/__manifest__.py | 38 + .../data/account_chart_template_data.xml | 8 + .../l10n_sg/data/account_tax_data.xml | 1135 +++++++ .../l10n_sg/data/account_tax_group_data.xml | 18 + .../l10n_sg/data/account_tax_report_data.xml | 145 + .../data/account_tax_template_data_2024.xml | 412 +++ .../l10n_sg/data/l10n_sg_chart_data.xml | 1188 +++++++ .../l10n_sg/demo/demo_company.xml | 34 + .../migrations/2.1/post-migrate_update_tax.py | 6 + .../2.2/end-migrate_update_taxes.py | 6 + .../pre-set_tags_and_taxes_updatable.py | 6 + .../l10n_sg/models/__init__.py | 9 + .../l10n_sg/models/account_move.py | 11 + .../l10n_sg/models/chart_template.py | 15 + .../l10n_sg/models/res_company.py | 18 + .../l10n_sg/models/res_partner.py | 9 + .../l10n_sg/static/description/icon.png | Bin 0 -> 1784 bytes .../l10n_sg/static/description/icon.svg | 51 + .../l10n_sg/views/account_invoice_view.xml | 16 + .../l10n_sg/views/res_company_view.xml | 15 + .../l10n_sg/views/res_partner_view.xml | 15 + odoo-bringout-oca-ocb-l10n_sg/pyproject.toml | 43 + odoo-bringout-oca-ocb-l10n_th/README.md | 51 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 5 + odoo-bringout-oca-ocb-l10n_th/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_th/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_th/doc/MODELS.md | 14 + odoo-bringout-oca-ocb-l10n_th/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_th/doc/REPORTS.md | 3 + odoo-bringout-oca-ocb-l10n_th/doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_th/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_th/doc/WIZARDS.md | 3 + .../l10n_th/__init__.py | 8 + .../l10n_th/__manifest__.py | 32 + .../l10n_th/data/account.account.template.csv | 28 + .../data/account_chart_template_data.xml | 8 + .../l10n_th/data/account_tax_group_data.xml | 26 + .../l10n_th/data/account_tax_report_data.xml | 286 ++ .../data/account_tax_template_data.xml | 507 +++ .../l10n_th/data/l10n_th_chart_data.xml | 13 + .../l10n_th/data/l10n_th_chart_post_data.xml | 12 + .../l10n_th/demo/demo_company.xml | 34 + .../l10n_th/i18n/th.po | 170 + .../l10n_th/models/__init__.py | 5 + .../l10n_th/models/account_move.py | 10 + .../l10n_th/models/ir_actions_report.py | 15 + .../l10n_th/models/res_partner.py | 16 + .../l10n_th/static/description/icon.png | Bin 0 -> 1670 bytes .../l10n_th/static/description/icon.svg | 51 + .../l10n_th/views/report_invoice.xml | 56 + odoo-bringout-oca-ocb-l10n_th/pyproject.toml | 42 + odoo-bringout-oca-ocb-l10n_tw/README.md | 51 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 7 + odoo-bringout-oca-ocb-l10n_tw/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_tw/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_tw/doc/MODELS.md | 11 + odoo-bringout-oca-ocb-l10n_tw/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_tw/doc/REPORTS.md | 3 + odoo-bringout-oca-ocb-l10n_tw/doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_tw/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_tw/doc/WIZARDS.md | 3 + .../l10n_tw/__init__.py | 6 + .../l10n_tw/__manifest__.py | 33 + .../l10n_tw/data/account.account.template.csv | 125 + .../l10n_tw/data/account.tax.group.csv | 2 + .../account_chart_template_configure_data.xml | 8 + .../data/account_chart_template_data.xml | 20 + .../data/account_tax_template_data.xml | 104 + .../l10n_tw/data/l10n_tw_chart_data.xml | 13 + .../l10n_tw/data/res.city.csv | 372 +++ .../l10n_tw/data/res.country.state.csv | 23 + .../l10n_tw/data/res_country_data.xml | 6 + .../l10n_tw/data/res_currency_data.xml | 9 + .../l10n_tw/demo/demo_company.xml | 34 + .../l10n_tw/i18n/fr_BE.po | 2813 ++++++++++++++++ .../l10n_tw/i18n/l10n_tw.pot | 2848 ++++++++++++++++ .../l10n_tw/i18n/zh_TW.po | 932 ++++++ odoo-bringout-oca-ocb-l10n_tw/pyproject.toml | 44 + odoo-bringout-oca-ocb-l10n_vn/README.md | 58 + .../doc/ARCHITECTURE.md | 32 + .../doc/CONFIGURATION.md | 3 + .../doc/CONTROLLERS.md | 3 + .../doc/DEPENDENCIES.md | 7 + odoo-bringout-oca-ocb-l10n_vn/doc/FAQ.md | 4 + odoo-bringout-oca-ocb-l10n_vn/doc/INSTALL.md | 7 + odoo-bringout-oca-ocb-l10n_vn/doc/MODELS.md | 11 + odoo-bringout-oca-ocb-l10n_vn/doc/OVERVIEW.md | 6 + odoo-bringout-oca-ocb-l10n_vn/doc/REPORTS.md | 3 + odoo-bringout-oca-ocb-l10n_vn/doc/SECURITY.md | 8 + .../doc/TROUBLESHOOTING.md | 5 + odoo-bringout-oca-ocb-l10n_vn/doc/USAGE.md | 7 + odoo-bringout-oca-ocb-l10n_vn/doc/WIZARDS.md | 3 + .../l10n_vn/__init__.py | 11 + .../l10n_vn/__manifest__.py | 43 + .../l10n_vn/data/account.account.template.csv | 192 ++ .../data/account_chart_template_data.xml | 8 + .../l10n_vn/data/account_tax_data.xml | 176 + .../l10n_vn/data/account_tax_group_data.xml | 17 + .../l10n_vn/data/account_tax_report_data.xml | 190 ++ .../l10n_vn/data/l10n_vn_chart_data.xml | 16 + .../l10n_vn/data/l10n_vn_chart_post_data.xml | 14 + .../l10n_vn/demo/demo_company.xml | 34 + .../l10n_vn/i18n_extra/l10n_vn.pot | 1287 +++++++ .../l10n_vn/i18n_extra/vi_VN.po | 1292 +++++++ .../migrations/14.0.2.0.1/post-migration.py | 22 + .../l10n_vn/static/description/icon.png | Bin 0 -> 1988 bytes .../l10n_vn/static/description/icon.svg | 51 + odoo-bringout-oca-ocb-l10n_vn/pyproject.toml | 44 + 828 files changed, 58224 insertions(+) create mode 100644 README.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account.tax.group.csv create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_chart_template_configure_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_fiscal_position_tax_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_tax_report_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_tax_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/data/l10n_au_chart_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/data/res_currency_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/models/account_move.py create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/models/chart_template.py create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/static/description/icon.png create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/static/description/icon.svg create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/views/menuitems.xml create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/views/report_invoice.xml create mode 100644 odoo-bringout-oca-ocb-l10n_au/l10n_au/views/res_company_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_au/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_cn/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account_tax_group_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account_tax_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/l10n_cn_chart_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/l10n_cn_chart_post_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n/fr_BE.po create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n/l10n_cn.pot create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n_extra/l10n_cn.pot create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n_extra/zh_CN.po create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/migrations/1.9/pre-migrate.py create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/models/account_move.py create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/static/description/icon.png create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/static/description/icon.svg create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/views/account_move_view.xml create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/views/account_report.xml create mode 100644 odoo-bringout-oca-ocb-l10n_cn/l10n_cn/views/report_voucher.xml create mode 100644 odoo-bringout-oca-ocb-l10n_cn/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/data/report_layout.xml create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/de.po create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/fr.po create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/it.po create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/l10n_din5008.pot create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/account_move.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/base_document_layout.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/hr_timesheet.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/report/din5008_report.xml create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/static/src/scss/report_din5008.scss create mode 100644 odoo-bringout-oca-ocb-l10n_din5008/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/de.po create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/fr.po create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/it.po create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/l10n_din5008_repair.pot create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/models/repair.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_repair/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/de.po create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/fr.po create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/it.po create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/l10n_din5008_sale.pot create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/models/sale.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_sale/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/de.po create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/fr.po create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/it.po create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/l10n_din5008_stock.pot create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/models/stock.py create mode 100644 odoo-bringout-oca-ocb-l10n_din5008_stock/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/models/account_move.py create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/tests/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/tests/test_gcc_invoice.py create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/views/report_invoice.xml create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_invoice/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/static/src/css/OrderReceipt.css create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/static/src/js/OrderReceipt.js create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/static/src/xml/OrderReceipt.xml create mode 100644 odoo-bringout-oca-ocb-l10n_gcc_pos/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_hk/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_hk/l10n_hk/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_hk/l10n_hk/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/account_chart_template_configure_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/l10n_hk_chart_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_hk/l10n_hk/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_hk/l10n_hk/static/description/icon.png create mode 100644 odoo-bringout-oca-ocb-l10n_hk/l10n_hk/static/description/icon.svg create mode 100644 odoo-bringout-oca-ocb-l10n_hk/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_id/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_chart_template_configuration_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_chart_template_post_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_tax_group.xml create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_tax_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/i18n_extra/id.po create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/i18n_extra/l10n_id.pot create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/migrations/1.1/end-migrate_update_taxes.py create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/migrations/1.2/end-migrate_update_taxes.py create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/models/account_move.py create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/static/description/icon.png create mode 100644 odoo-bringout-oca-ocb-l10n_id/l10n_id/static/description/icon.svg create mode 100644 odoo-bringout-oca-ocb-l10n_id/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/i18n/efaktur.pot create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/i18n/id.po create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/account_move.py create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/efaktur.py create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/res_partner.py create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/security/ir.model.access.csv create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/tests/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/tests/test_l10n_id_efaktur.py create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/account_move_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/efaktur_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/res_config_settings_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/res_partner_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_id_efaktur/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_in/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account.account.tag.csv create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_fiscal_position_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_tax_group_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_tax_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/data/l10n_in.port.code.csv create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/data/l10n_in_chart_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/data/l10n_in_chart_post_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/data/res_country_state_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/data/uom_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/account_demo.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/account_invoice_demo.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/product_demo.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/res_partner_demo.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/i18n/l10n_in.pot create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/migrations/9.0.2.0/pre-set_tags_and_taxes_updatable.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/models/account.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/models/account_invoice.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/models/chart_template.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/models/mail_message.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/models/port_code.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/models/product_template.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/models/res_config_settings.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/models/res_country_state.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/models/res_partner.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/models/uom_uom.py create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/report/audit_trail_report_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/security/ir.model.access.csv create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/security/l10n_in_security.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/static/description/icon.png create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/static/description/icon.svg create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/views/account_invoice_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/views/account_journal_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/views/account_tax_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/views/port_code_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/views/product_template_view.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/views/report_invoice.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/views/report_template.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/views/res_config_settings_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/views/res_country_state_view.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/views/res_partner_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/l10n_in/views/uom_uom_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/data/account_edi_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/data/neutralize.sql create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/i18n/l10n_in_edi.pot create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/account_edi_format.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/account_move.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/res_company.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/res_config_settings.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/tests/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/tests/test_edi_json.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/views/account_move_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/views/edi_pdf_report.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/views/res_config_settings_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/WIZARDS.md create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/__init__.py create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/__manifest__.py create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/data/account_edi_data.xml create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/data/ewaybill_type_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/data/neutralize.sql create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/account_invoice_demo.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/chart_template.py create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/demo_company.xml create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/res_partner_demo.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/i18n/l10n_in_edi_ewaybill.pot create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/__init__.py create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/account_edi_format.py create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/account_move.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/error_codes.py create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/ewaybill_type.py create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/res_company.py create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/res_config_settings.py create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/security/ir.model.access.csv create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/tests/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/tests/test_edi_ewaybill_json.py create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/views/account_move_views.xml create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/views/edi_pdf_report.xml create mode 100755 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/views/res_config_settings_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/data/product_demo.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/i18n/l10n_in_pos.pot create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/pos_config.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/pos_order.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/pos_session.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/static/src/js/receipt.js create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/static/src/xml/pos_receipt.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_pos/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/data/product_demo.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/models/sale_order.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/views/report_sale_order.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/views/sale_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/wizard/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/wizard/sale_make_invoice_advance.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/account_move.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/sale_order.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/stock_warehouse.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/views/stock_warehouse_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_sale_stock/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/data/product_demo.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/models/stock_picking.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/views/report_stockpicking_operations.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_stock/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_group_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_report_tcs_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_report_tds_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_template_tcs_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_template_tds_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/models/res_partner.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/views/res_partner_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_tcs_tds/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/models/account_invoice.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/models/res_company.py create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/views/res_company_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_in_upi/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_jp/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account.fiscal.position.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account.tax.group.csv create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_chart_template_configure_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_fiscal_position_tax_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_tax_report_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_tax_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/l10n_jp_chart_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/i18n/ja_JP.po create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/i18n/l10n_jp.pot create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/migrations/2.3/pre-migrate.py create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/static/description/icon.png create mode 100644 odoo-bringout-oca-ocb-l10n_jp/l10n_jp/static/description/icon.svg create mode 100644 odoo-bringout-oca-ocb-l10n_jp/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_my/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_my/l10n_my/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_my/l10n_my/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account.tax.group.csv create mode 100644 odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account_chart_template_configure_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account_tax_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_my/l10n_my/data/l10n_my_chart_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_my/l10n_my/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_my/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_nz/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account.tax.group.csv create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_chart_template_configure_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_fiscal_position_tax_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_tax_report_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_tax_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/l10n_nz_chart_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/res_currency_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/migrations/1.2/post-migrate.py create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/migrations/1.2/pre-migrate.py create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/static/description/icon.png create mode 100644 odoo-bringout-oca-ocb-l10n_nz/l10n_nz/static/description/icon.svg create mode 100644 odoo-bringout-oca-ocb-l10n_nz/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_chart_template_configure_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_chart_template_post_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_fiscal_position_tax_template.xml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_fiscal_position_template.xml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_tax_group.xml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_tax_template.xml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_move.py create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_payment.py create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_tax.py create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_tax_template.py create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/res_partner.py create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/security/ir.model.access.csv create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/tests/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/tests/test_bir_2307.py create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/account_move_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/account_payment_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/account_tax_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/res_partner_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/wizard/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/wizard/generate_2307_wizard.py create mode 100644 odoo-bringout-oca-ocb-l10n_ph/l10n_ph/wizard/generate_2307_wizard_views.xml create mode 100644 odoo-bringout-oca-ocb-l10n_ph/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_sg/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_group_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_report_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_template_data_2024.xml create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/l10n_sg_chart_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/migrations/2.1/post-migrate_update_tax.py create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/migrations/2.2/end-migrate_update_taxes.py create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/migrations/9.0.2.0/pre-set_tags_and_taxes_updatable.py create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/account_move.py create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/chart_template.py create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/res_company.py create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/res_partner.py create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/static/description/icon.png create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/static/description/icon.svg create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/views/account_invoice_view.xml create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/views/res_company_view.xml create mode 100644 odoo-bringout-oca-ocb-l10n_sg/l10n_sg/views/res_partner_view.xml create mode 100644 odoo-bringout-oca-ocb-l10n_sg/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_th/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_tax_group_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_tax_report_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_tax_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/data/l10n_th_chart_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/data/l10n_th_chart_post_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/i18n/th.po create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/models/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/models/account_move.py create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/models/ir_actions_report.py create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/models/res_partner.py create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/static/description/icon.png create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/static/description/icon.svg create mode 100644 odoo-bringout-oca-ocb-l10n_th/l10n_th/views/report_invoice.xml create mode 100644 odoo-bringout-oca-ocb-l10n_th/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_tw/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account.tax.group.csv create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account_chart_template_configure_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account_tax_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/l10n_tw_chart_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res.city.csv create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res.country.state.csv create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res_country_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res_currency_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/i18n/fr_BE.po create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/i18n/l10n_tw.pot create mode 100644 odoo-bringout-oca-ocb-l10n_tw/l10n_tw/i18n/zh_TW.po create mode 100644 odoo-bringout-oca-ocb-l10n_tw/pyproject.toml create mode 100644 odoo-bringout-oca-ocb-l10n_vn/README.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/ARCHITECTURE.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/CONFIGURATION.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/CONTROLLERS.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/DEPENDENCIES.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/FAQ.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/INSTALL.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/MODELS.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/OVERVIEW.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/REPORTS.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/SECURITY.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/TROUBLESHOOTING.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/USAGE.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/doc/WIZARDS.md create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/__init__.py create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/__manifest__.py create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account.account.template.csv create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_chart_template_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_tax_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_tax_group_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_tax_report_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/l10n_vn_chart_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/l10n_vn_chart_post_data.xml create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/demo/demo_company.xml create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/i18n_extra/l10n_vn.pot create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/i18n_extra/vi_VN.po create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/migrations/14.0.2.0.1/post-migration.py create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/static/description/icon.png create mode 100644 odoo-bringout-oca-ocb-l10n_vn/l10n_vn/static/description/icon.svg create mode 100644 odoo-bringout-oca-ocb-l10n_vn/pyproject.toml diff --git a/README.md b/README.md new file mode 100644 index 0000000..9b3844b --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# L10N Asia Pacific + +This repository contains OCA OCB packages for l10n asia pacific. + +## Packages Included + +- odoo-bringout-oca-ocb-l10n_au +- odoo-bringout-oca-ocb-l10n_cn +- odoo-bringout-oca-ocb-l10n_din5008 +- odoo-bringout-oca-ocb-l10n_din5008_repair +- odoo-bringout-oca-ocb-l10n_din5008_sale +- odoo-bringout-oca-ocb-l10n_din5008_stock +- odoo-bringout-oca-ocb-l10n_gcc_invoice +- odoo-bringout-oca-ocb-l10n_gcc_pos +- odoo-bringout-oca-ocb-l10n_hk +- odoo-bringout-oca-ocb-l10n_id +- odoo-bringout-oca-ocb-l10n_id_efaktur +- odoo-bringout-oca-ocb-l10n_in +- odoo-bringout-oca-ocb-l10n_in_edi +- odoo-bringout-oca-ocb-l10n_in_edi_ewaybill +- odoo-bringout-oca-ocb-l10n_in_pos +- odoo-bringout-oca-ocb-l10n_in_sale +- odoo-bringout-oca-ocb-l10n_in_sale_stock +- odoo-bringout-oca-ocb-l10n_in_stock +- odoo-bringout-oca-ocb-l10n_in_tcs_tds +- odoo-bringout-oca-ocb-l10n_in_upi +- odoo-bringout-oca-ocb-l10n_jp +- odoo-bringout-oca-ocb-l10n_my +- odoo-bringout-oca-ocb-l10n_nz +- odoo-bringout-oca-ocb-l10n_ph +- odoo-bringout-oca-ocb-l10n_sg +- odoo-bringout-oca-ocb-l10n_th +- odoo-bringout-oca-ocb-l10n_tw +- odoo-bringout-oca-ocb-l10n_vn diff --git a/odoo-bringout-oca-ocb-l10n_au/README.md b/odoo-bringout-oca-ocb-l10n_au/README.md new file mode 100644 index 0000000..b43e6f3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/README.md @@ -0,0 +1,53 @@ +# Australia - Accounting + + +Australian Accounting Module +============================ + +Australian accounting basic charts and localizations. + +Also: + - activates a number of regional currencies. + - sets up Australian taxes. + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_au +``` + +## Dependencies + +This addon depends on: +- account + +## Manifest Information + +- **Name**: Australia - Accounting +- **Version**: 1.1 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_au`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_au/doc/ARCHITECTURE.md new file mode 100644 index 0000000..cee0cce --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_au Module - l10n_au + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_au/doc/CONFIGURATION.md new file mode 100644 index 0000000..e2d100a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_au. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_au/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_au/doc/DEPENDENCIES.md new file mode 100644 index 0000000..99c6b28 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [account](../../odoo-bringout-oca-ocb-account) diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_au/doc/FAQ.md new file mode 100644 index 0000000..87fcf1e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_au or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_au/doc/INSTALL.md new file mode 100644 index 0000000..2d37d51 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_au" +# or +uv pip install odoo-bringout-oca-ocb-l10n_au" +``` diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_au/doc/MODELS.md new file mode 100644 index 0000000..b7f2bd5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/MODELS.md @@ -0,0 +1,13 @@ +# Models + +Detected core models and extensions in l10n_au. + +```mermaid +classDiagram + class account_chart_template + class account_move +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_au/doc/OVERVIEW.md new file mode 100644 index 0000000..8842b7f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_au. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_au +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_au/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_au/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_au/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_au/doc/USAGE.md new file mode 100644 index 0000000..04491e0 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_au +``` diff --git a/odoo-bringout-oca-ocb-l10n_au/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_au/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/__init__.py b/odoo-bringout-oca-ocb-l10n_au/l10n_au/__init__.py new file mode 100644 index 0000000..d6210b1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/__init__.py @@ -0,0 +1,3 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/__manifest__.py b/odoo-bringout-oca-ocb-l10n_au/l10n_au/__manifest__.py new file mode 100644 index 0000000..fde8f47 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/__manifest__.py @@ -0,0 +1,36 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'Australia - Accounting', + 'version': '1.1', + 'category': 'Accounting/Localizations/Account Charts', + 'description': """ +Australian Accounting Module +============================ + +Australian accounting basic charts and localizations. + +Also: + - activates a number of regional currencies. + - sets up Australian taxes. + """, + 'depends': ['account'], + 'data': [ + 'data/l10n_au_chart_data.xml', + 'data/account.account.template.csv', + 'data/account_chart_template_data.xml', + 'data/account_tax_report_data.xml', + 'data/account.tax.group.csv', + 'data/account_tax_template_data.xml', + 'data/account_fiscal_position_tax_template_data.xml', + 'data/account_chart_template_configure_data.xml', + 'data/res_currency_data.xml', + 'views/menuitems.xml', + 'views/report_invoice.xml', + 'views/res_company_views.xml', + ], + 'demo': [ + 'demo/demo_company.xml', + ], + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account.account.template.csv new file mode 100644 index 0000000..df4dbc2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account.account.template.csv @@ -0,0 +1,102 @@ +id,chart_template_id:id,code,name,account_type,reconcile +au_11110,l10n_au.l10n_au_chart_template,11110,Bank,asset_cash,FALSE +au_11130,l10n_au.l10n_au_chart_template,11130,Petty Cash,asset_cash,FALSE +au_11140,l10n_au.l10n_au_chart_template,11140,Cash Drawer,asset_cash,FALSE +au_11180,l10n_au.l10n_au_chart_template,11180,Undeposited Funds,asset_current,TRUE +au_11190,l10n_au.l10n_au_chart_template,11190,Electronic Clearing,asset_current,TRUE +au_11200,l10n_au.l10n_au_chart_template,11200,Trade Debtors,asset_receivable,TRUE +au_11201,l10n_au.l10n_au_chart_template,11201,Trade Debtors (PoS),asset_receivable,TRUE +au_11210,l10n_au.l10n_au_chart_template,11210,Less Prov'n for Doubtful Debts,asset_current,FALSE +au_11310,l10n_au.l10n_au_chart_template,11310,Raw Materials,asset_current,FALSE +au_11320,l10n_au.l10n_au_chart_template,11320,Finished Goods,asset_current,FALSE +au_11330,l10n_au.l10n_au_chart_template,11330,Trading Stock on Hand,asset_current,FALSE +au_11340,l10n_au.l10n_au_chart_template,11340,Goods Shipped Not Invoiced,asset_current,FALSE +au_12100,l10n_au.l10n_au_chart_template,12100,Deposits Paid,asset_prepayments,FALSE +au_12200,l10n_au.l10n_au_chart_template,12200,Prepaid Insurance,asset_current,FALSE +au_13110,l10n_au.l10n_au_chart_template,13110,Manufacturing Plant at Cost,asset_fixed,FALSE +au_13120,l10n_au.l10n_au_chart_template,13120,Manufac. Plant Accum Dep,asset_fixed,FALSE +au_13130,l10n_au.l10n_au_chart_template,13130,Manufacturing Equipment Cost,asset_fixed,FALSE +au_13140,l10n_au.l10n_au_chart_template,13140,Manufac. Equip Accum Dep,asset_fixed,FALSE +au_13210,l10n_au.l10n_au_chart_template,13210,Furniture & Fixtures at Cost,asset_fixed,FALSE +au_13220,l10n_au.l10n_au_chart_template,13220,Furniture & Fixtures Accum Dep,asset_fixed,FALSE +au_13310,l10n_au.l10n_au_chart_template,13310,Office Equip at Cost,asset_fixed,FALSE +au_13320,l10n_au.l10n_au_chart_template,13320,Office Equip Accum Dep,asset_fixed,FALSE +au_13410,l10n_au.l10n_au_chart_template,13410,Motor Vehicles at Cost,asset_fixed,FALSE +au_13420,l10n_au.l10n_au_chart_template,13420,Motor Vehicles Accum Dep,asset_fixed,FALSE +au_21110,l10n_au.l10n_au_chart_template,21110,Credit Card,liability_current,FALSE +au_21200,l10n_au.l10n_au_chart_template,21200,Trade Creditors,liability_payable,TRUE +au_21210,l10n_au.l10n_au_chart_template,21210,A/P Accrual - Inventory,liability_current,FALSE +au_21310,l10n_au.l10n_au_chart_template,21310,GST Collected,liability_current,FALSE +au_21320,l10n_au.l10n_au_chart_template,21320,BAS Payments,liability_current,FALSE +au_21330,l10n_au.l10n_au_chart_template,21330,GST Paid,asset_current,FALSE +au_21350,l10n_au.l10n_au_chart_template,21350,Fuel Tax Credits Accrued,liability_current,FALSE +au_21355,l10n_au.l10n_au_chart_template,21355,WET Payable,liability_current,FALSE +au_21360,l10n_au.l10n_au_chart_template,21360,Import Duty Payable,liability_current,FALSE +au_21370,l10n_au.l10n_au_chart_template,21370,Voluntary Withholdings Payable,liability_current,FALSE +au_21380,l10n_au.l10n_au_chart_template,21380,ABN Withholdings Payable,liability_current,FALSE +au_21410,l10n_au.l10n_au_chart_template,21410,Payroll Accruals Payable,liability_current,FALSE +au_21420,l10n_au.l10n_au_chart_template,21420,PAYG Withholding Payable,liability_current,FALSE +au_21600,l10n_au.l10n_au_chart_template,21600,Customer Deposits,liability_current,FALSE +au_21700,l10n_au.l10n_au_chart_template,21700,Other Current Liabilities,liability_current,FALSE +au_22100,l10n_au.l10n_au_chart_template,22100,Mortgages Payable,liability_non_current,FALSE +au_22200,l10n_au.l10n_au_chart_template,22200,Notes Payable,liability_non_current,FALSE +au_22300,l10n_au.l10n_au_chart_template,22300,Other Long Term Liabilities,liability_non_current,FALSE +au_31100,l10n_au.l10n_au_chart_template,31100,Capital Investment,equity,FALSE +au_31200,l10n_au.l10n_au_chart_template,31200,Capital Drawings,equity,FALSE +au_38000,l10n_au.l10n_au_chart_template,38000,Retained Earnings,equity,FALSE +au_39000,l10n_au.l10n_au_chart_template,39000,Current Year Earnings,equity_unaffected,FALSE +au_39999,l10n_au.l10n_au_chart_template,39999,Historical Balancing,equity,FALSE +au_41110,l10n_au.l10n_au_chart_template,41110,Sales Product #1,income,FALSE +au_41120,l10n_au.l10n_au_chart_template,41120,Sales Product #2,income,FALSE +au_41130,l10n_au.l10n_au_chart_template,41130,Sales Product #3,income,FALSE +au_42000,l10n_au.l10n_au_chart_template,42000,Wholesale Sales,income,FALSE +au_43000,l10n_au.l10n_au_chart_template,43000,Consignment Sales,income,FALSE +au_44000,l10n_au.l10n_au_chart_template,44000,Freight Income,income,FALSE +au_45000,l10n_au.l10n_au_chart_template,45000,Late Fees Collected,income_other,FALSE +au_46000,l10n_au.l10n_au_chart_template,46000,Miscellaneous Income,income_other,FALSE +au_47000,l10n_au.l10n_au_chart_template,47000,Fuel Tax Credits,income_other,FALSE +au_51110,l10n_au.l10n_au_chart_template,51110,Cost of Goods Sold #1,expense_direct_cost,FALSE +au_51120,l10n_au.l10n_au_chart_template,51120,Cost of Goods Sold # 2,expense_direct_cost,FALSE +au_51130,l10n_au.l10n_au_chart_template,51130,Cost of Goods Sold # 3,expense_direct_cost,FALSE +au_52000,l10n_au.l10n_au_chart_template,52000,Wholesale Cost of Sales,expense_direct_cost,FALSE +au_53000,l10n_au.l10n_au_chart_template,53000,Consignment Cost of Sales,expense_direct_cost,FALSE +au_54000,l10n_au.l10n_au_chart_template,54000,Wages for Production Labour,expense_direct_cost,FALSE +au_55000,l10n_au.l10n_au_chart_template,55000,Materials & Supplies,expense_direct_cost,FALSE +au_56000,l10n_au.l10n_au_chart_template,56000,Freight,expense_direct_cost,FALSE +au_57000,l10n_au.l10n_au_chart_template,57000,Other Costs,expense_direct_cost,FALSE +au_61000,l10n_au.l10n_au_chart_template,61000,Advertising,expense,FALSE +au_61200,l10n_au.l10n_au_chart_template,61200,Car & Truck Expenses,expense,FALSE +au_61300,l10n_au.l10n_au_chart_template,61300,Commissions Paid,expense,FALSE +au_61500,l10n_au.l10n_au_chart_template,61500,Depreciation Expense,expense_depreciation,FALSE +au_61610,l10n_au.l10n_au_chart_template,61610,Discounts Given,expense,FALSE +au_61620,l10n_au.l10n_au_chart_template,61620,Discounts Taken,expense,FALSE +au_61630,l10n_au.l10n_au_chart_template,61630,Exchange Rate Loss,expense,FALSE +au_61640,l10n_au.l10n_au_chart_template,61640,Exchange Rate Gain,income,FALSE +au_61700,l10n_au.l10n_au_chart_template,61700,Freight Paid,expense,FALSE +au_61800,l10n_au.l10n_au_chart_template,61800,Insurance,expense,FALSE +au_61910,l10n_au.l10n_au_chart_template,61910,Overdraft Interest,expense,FALSE +au_61920,l10n_au.l10n_au_chart_template,61920,Mortgage Interest,expense,FALSE +au_61930,l10n_au.l10n_au_chart_template,61930,Other Interest,expense,FALSE +au_62000,l10n_au.l10n_au_chart_template,62000,Late Fees Paid,expense,FALSE +au_62110,l10n_au.l10n_au_chart_template,62110,Machinery & Equipment,expense,FALSE +au_62120,l10n_au.l10n_au_chart_template,62120,Other Business Property,expense,FALSE +au_62200,l10n_au.l10n_au_chart_template,62200,Legal & Professional Services,expense,FALSE +au_62300,l10n_au.l10n_au_chart_template,62300,Office Expenses,expense,FALSE +au_62410,l10n_au.l10n_au_chart_template,62410,Staff Amenities,expense,FALSE +au_62420,l10n_au.l10n_au_chart_template,62420,Superannuation,expense,FALSE +au_62430,l10n_au.l10n_au_chart_template,62430,Wages & Salaries,expense,FALSE +au_62440,l10n_au.l10n_au_chart_template,62440,Workers' Compensation,expense,FALSE +au_62450,l10n_au.l10n_au_chart_template,62450,Other Employer Expenses,expense,FALSE +au_62500,l10n_au.l10n_au_chart_template,62500,Repairs,expense,FALSE +au_62550,l10n_au.l10n_au_chart_template,62550,Shrinkage/Spoilage,expense,FALSE +au_62600,l10n_au.l10n_au_chart_template,62600,Supplies,expense,FALSE +au_62700,l10n_au.l10n_au_chart_template,62700,Taxes,expense,FALSE +au_62800,l10n_au.l10n_au_chart_template,62800,Telephone,expense,FALSE +au_62910,l10n_au.l10n_au_chart_template,62910,Gas,expense,FALSE +au_62920,l10n_au.l10n_au_chart_template,62920,Electricity,expense,FALSE +au_62930,l10n_au.l10n_au_chart_template,62930,Water,expense,FALSE +au_63110,l10n_au.l10n_au_chart_template,63110,Travel,expense,FALSE +au_63120,l10n_au.l10n_au_chart_template,63120,Meals & Entertainment,expense,FALSE +au_81000,l10n_au.l10n_au_chart_template,81000,Interest Income,income_other,FALSE +au_91000,l10n_au.l10n_au_chart_template,91000,Interest Expense,expense,FALSE +au_92000,l10n_au.l10n_au_chart_template,92000,Income Tax Expense,expense,FALSE diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account.tax.group.csv b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account.tax.group.csv new file mode 100644 index 0000000..74f33f0 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account.tax.group.csv @@ -0,0 +1,5 @@ +id,name,country_id/id +tax_group_gst_0,GST 0%,base.au +tax_group_gst_10,GST 10%,base.au +tax_group_gst_100000000,GST 100%,base.au +tax_group_withheld,Withheld,base.au diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_chart_template_configure_data.xml b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_chart_template_configure_data.xml new file mode 100644 index 0000000..e0e45b0 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_chart_template_configure_data.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_chart_template_data.xml new file mode 100644 index 0000000..83b54b7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_chart_template_data.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_fiscal_position_tax_template_data.xml b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_fiscal_position_tax_template_data.xml new file mode 100644 index 0000000..b881145 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_fiscal_position_tax_template_data.xml @@ -0,0 +1,155 @@ + + + + OS Partner + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TPAR + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TPAR without ABN + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_tax_report_data.xml b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_tax_report_data.xml new file mode 100644 index 0000000..fef0ed6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_tax_report_data.xml @@ -0,0 +1,256 @@ + + + + Tax Report + + + + country + + + Balance + balance + + + + + GST amounts you owe the Tax Office from sales + + + G1: Total Sales (including any GST) + G1 + + + balance + tax_tags + G1 + + + + + G2: Export sales + G2 + + + balance + tax_tags + G2 + + + + + G3: Other GST-free sales + G3 + + + balance + tax_tags + G3 + + + + + G4: Input taxed sales + G4 + + + balance + tax_tags + G4 + + + + + + + G5: G2 + G3 + G4 + G5 + G2.balance+G3.balance+G4.balance + + + G6: Total sales subject to GST (G1 minus G5) + G6 + G1.balance-G5.balance + + + G7: Adjustments (if applicable) + G7 + + + balance + tax_tags + G7 + + + + + + + G8: Total sales subject to GST after adjustments (G6 + G7) + G8 + G6.balance+G7.balance + + + G9: GST on sales (G8 divided by eleven) + G9 + G8.balance/11 + + + + + GST amounts the Tax Office owes you from purchases + + + G10: Capital purchases (including any GST) + G10 + + + balance + tax_tags + G10 + + + + + G11: Non-capital purchases (including GST) + G11 + + + balance + tax_tags + G11 + + + + + G12: G10 + G11 + G12 + G10.balance+G11.balance + + + G13: Purchases for making input taxed sales + G13 + + + balance + tax_tags + G13 + + + + + G14: Purchases without GST in the price + G14 + + + balance + tax_tags + G14 + + + + + G15: Estimated purchases for private use or not income tax deductible + G15 + + + balance + tax_tags + G15 + + + + + + + G16: G13 + G14 + G15 + G16 + G13.balance+G14.balance+G15.balance + + + G17: Total purchases subject to GST (G12 minus G16) + G17 + G12.balance-G16.balance + + + G18: Adjustments (if applicable) + G18 + + + balance + tax_tags + G18 + + + + + + + G19: Total purchases subject to GST after adjustments (G17 + G18) + G19 + G17.balance+G18.balance + + + GST on purchases (G19 divided by eleven) + GP + G19.balance/11 + + + GST only purchases + ONLY + + + balance + tax_tags + ONLY + + + + + G20: GST on purchases + G20 + GP.balance+ONLY.balance + + + + + Summary + + + 1A: GST on sales + 1A + G9.balance + + + 1B: GST on purchases + 1B + G20.balance + + + 9: Your payment + 1A.balance-1B.balance + + + + + Comparison + + + GST from worksheet (G20-G9) + G20.balance-G9.balance + + + GST from General Ledger + + + balance + tax_tags + GST from General Ledger + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_tax_template_data.xml b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_tax_template_data.xml new file mode 100644 index 0000000..e136da5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/account_tax_template_data.xml @@ -0,0 +1,906 @@ + + + + Service + taxes + + + + Tax Withheld + taxes + + + + + Tax Withheld + 1000 + Tax Withheld for Partners without ABN + purchase + service + percent + -47.0 + + + + + + + + Sale (10%) + 1 + GST Sales + sale + percent + 10.0 + + + + + + + + GST Inc Sale (10%) + 2 + GST Inclusive Sales + sale + percent + 10.0 + + + + + + + + Zero (Export) Sale + 3 + Zero Rated (Export) Sales + sale + percent + 0 + + + + + + + + Exempt Sale + 4 + Exempt Sales + sale + percent + 0 + + + + + + + + Input Taxed + 5 + Input Taxed Sales + sale + percent + 0 + + + + + + + + Sale Adj (10%) + 6 + Tax Adjustments (Sales) + sale + percent + 10.0 + + + + + + + + Purch (10%) + 1 + GST Purchases + purchase + percent + 10.0 + + + + + + + + Purch (10%) TPAR + 1 + GST Purchases + purchase + service + percent + 10.0 + + + + + + + + Purch (10%) TPAR without ABN + 1 + GST Purchases + purchase + service + 100 + group + + + + + + GST Inc Purch (10%) + 2 + GST Inclusive Purchases + purchase + percent + 10.0 + + + + + + + + GST Inc Purch (10%) TPAR + 2 + GST Inclusive Purchases + purchase + service + percent + 10.0 + + + + + + + + GST Inc Purch (10%) TPAR without ABN + 2 + GST Inclusive Purchases + purchase + service + 100 + group + + + + + + Capital (10.0%) + 3 + Capital Purchases + purchase + percent + 10.0 + + + + + + + + Capital (10.0%) TPAR + 3 + Capital Purchases + purchase + service + percent + 10.0 + + + + + + + + Capital (10%) TPAR without ABN + 3 + Capital Purchases + purchase + service + 100 + group + + + + + + Zero Rated Purch + 4 + Capital Purchases + purchase + percent + 0 + + + + + + + + Zero Rated Purch TPAR + 4 + Capital Purchases + purchase + service + percent + 0 + + + + + + + + Zero Rated Purch TPAR without ABN + 4 + Capital Purchases + purchase + service + 100 + group + + + + + + Purch (Taxable Imports) + 5 + Purchase (Taxable Imports) - Tax Paid Separately + purchase + percent + 100 + + + + + + + + Purch (Taxable Imports) TPAR + 5 + Purchase (Taxable Imports) - Tax Paid Separately + purchase + service + percent + 100 + + + + + + + + Purch (Taxable Imports) TPAR without ABN + 5 + Purchase (Taxable Imports) - Tax Paid Separately + purchase + service + 100 + group + + + + + + Purch for Input Sales + 6 + Purchases for Input Taxed Sales + purchase + percent + 10.0 + + + + + + + + Purch for Input Sales TPAR + 6 + Purchases for Input Taxed Sales + purchase + service + percent + 10.0 + + + + + + + + Purch for Input Sales TPAR without ABN + 6 + Purchases for Input Taxed Sales + purchase + service + 100 + group + + + + + + Purch Private (10%) + 7 + Purchases for Private use or not deductible + purchase + percent + 10.0 + + + + + + + + Purch Private (10%) TPAR + 7 + Purchases for Private use or not deductible + purchase + service + percent + 10.0 + + + + + + + + Purch Private (10%) TPAR without ABN + 7 + Purchases for Private use or not deductible + purchase + service + 100 + group + + + + + + GST Only on Imports + 8 + GST Only on Imports + purchase + percent + 100 + + + + + + + + GST Only on Imports TPAR + 8 + GST Only on Imports + purchase + service + percent + 100 + + + + + + + + GST Only on Imports TPAR without ABN + 8 + GST Only on Imports + purchase + service + 100 + group + + + + + + Purch Adj (10%) + 9 + Tax Adjustments (Purchases) + purchase + percent + 10.0 + + + + + + + + Purch Adj (10%) TPAR + 9 + Tax Adjustments (Purchases) + purchase + service + percent + 10.0 + + + + + + + + Purch Adj (10%) TPAR without ABN + 9 + Tax Adjustments (Purchases) + purchase + service + 100 + group + + + + diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/l10n_au_chart_data.xml b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/l10n_au_chart_data.xml new file mode 100644 index 0000000..5a0716f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/l10n_au_chart_data.xml @@ -0,0 +1,12 @@ + + + + Australia - Chart of Accounts + 1111 + 1113 + 11170 + 5 + + + + diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/res_currency_data.xml b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/res_currency_data.xml new file mode 100644 index 0000000..ab87a3b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/data/res_currency_data.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_au/l10n_au/demo/demo_company.xml new file mode 100644 index 0000000..6e7a85c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/demo/demo_company.xml @@ -0,0 +1,34 @@ + + + + AU Company + 11 225 459 588 + Henry Lawson Drive + Home Rule + + + 2850 + +61 412 345 678 + info@company.auexample.com + www.auexample.com + + + + AU Company + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/models/__init__.py b/odoo-bringout-oca-ocb-l10n_au/l10n_au/models/__init__.py new file mode 100644 index 0000000..4d58e92 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/models/__init__.py @@ -0,0 +1,4 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import account_move +from . import chart_template diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/models/account_move.py b/odoo-bringout-oca-ocb-l10n_au/l10n_au/models/account_move.py new file mode 100644 index 0000000..d18d2b7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/models/account_move.py @@ -0,0 +1,11 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo import models + + +class AccountMove(models.Model): + _inherit = 'account.move' + + def _get_name_invoice_report(self): + if self.company_id.account_fiscal_country_id.code == 'AU': + return 'l10n_au.report_invoice_document' + return super()._get_name_invoice_report() diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/models/chart_template.py b/odoo-bringout-oca-ocb-l10n_au/l10n_au/models/chart_template.py new file mode 100644 index 0000000..487f9cd --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/models/chart_template.py @@ -0,0 +1,19 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, fields + + +class AccountChartTemplate(models.Model): + _inherit = 'account.chart.template' + + def _load(self, company): + res = super()._load(company) + if self == self.env.ref("l10n_au.l10n_au_chart_template"): + company.write({ + 'fiscalyear_last_month': '6', + 'fiscalyear_last_day': 30, + # Changing the opening date to the first day of the fiscal year. + # This way the opening entries will be set to the 30th of June. + 'account_opening_date': fields.Date.context_today(self).replace(month=7, day=1), + }) + return res diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/static/description/icon.png b/odoo-bringout-oca-ocb-l10n_au/l10n_au/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c36cb8d4394d3e0ba3638b5b72849ba2fbe5260d GIT binary patch literal 2309 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Yt4rT@hhUEVyOBooL83KGlTp1a9y1FLX+q=5D zdYYTtn48oj)3W>eCKeQwBqpY3WET4R z25V^+J2<%a^iJ^c3H<;6zoSFezrMbIJ9paKyZ!t3PgON9Jv}cXB5CrJ=>Y-Zk&($^ zVe!t+p3F==QBjG$z9Homm1SjBY^=SDmn?5=>aenMaC7tV^bGiS=+M8}v(wUc2ntLJ z4UG#7jHsz;($Xxct8ZSsWSNQaqRh-(TU+OZgtWhZ{>H~=goh{O<&{}l+C@djCnskw zT(rc)!!IIYTP+O^jtUBj3JHmxGk0D^Wv!Q&|Mcl|JUsem&7SAy7a}Y? zSxj_FVPTn`-u!#_-g9$L$jsd7@4xn6Vc}m{*`neqAD`d}6Q}-*jC6GL2n&zN&Ms{4 z=$SWvQF(cTg8Yn_m?R~|naRo9fBg7;?b>T|^Tq0Fb0oy4w6z`kckiyFzt7_3LlGe*N{{n!O3JoAUGb#Kdeq zbLQDfP2JnK-`1q%ySmo@`}yCIe|YO|dxXZ>#VytBQ$_xru-_j^tD7);W+ zIqhB1_4gm!RqlWMSiS##^(3ATq1s_>9doDl+q67RxSFh(d|uc(+1V-V!2`}(Mzy*{ z#!m0pIK2%$g=+ORj;VNA9Z)&_|B9vi-cKLHcehWz`S;Vgx%vA%Wa~bhi#~5}JI8Qy z?ee()FFw!TGW(YTL*(=oSH+hzFjU{S{&IBpHq#@j=~LECzG)XMUh}iq`!`Q?B<~W< z8=qhOZr^t??@j6ShEI&oUoPDjd|=1d6z|U;zv{15UAb@XZ~pqM+1Hk^FmFov%hY}U zivG!yCvW%7{rR!w8;9rKi+l3>%iNU<3#Z)PaBBI(%e($8TPOYS40qPo!0R_Xw>KUP zoGsT<7i_*NvZ(pD%(4R_0v@lbUiDAhbbQg5_Fr$E(q~>`!E0YYWDSJT78s1eLBbZ zR`fj8^mPx{Y}WZvQK?1jF^oDo0e(CxLivO0H zJXgTiEp@VoCugd!oK^~x;+FdCM-H3|ldD57O<(w!YsGAD@!Y;9lS9g1z8rAl%H*E+ zGS;Dfsim+cm*b&~*Q=7^SLmruPyKI@#lbmey`zAu>HT*f7IgfK-XiAkBDbWBOIO#W z$mm7m-6`rlQuf=E9?n{GTen8@$`YpuN_BT1TCTD#xYMT2d{3lHs-v;>^GiPetSMs0 zmtQlSe)?_Od$)z3*K$mXeYDq_E$CSER+go6ty(umY~VBsJaRzb$h~izb89p?j_Y5~ zIxQvf`_QJ8;+YdCI!#`4ZkzstyKf2}Z`+)D=IhIwt@=9h4rjSam+bIZxL|GNpOtSf z?3g;UDfnHvU6#wy(~(9~%w4C=%MHDHKq`Ihq#G+c1#UE)6gYK7y~rvBq2ukR-2X1&Ny%UGae>Wp ze~YOrl!A^nuX6es{BiQJO>Y}NwQOV3579a`zw7*z;$@R3UpmUM;LuLhN+&t-scl>f zp4=)5;uH?>zxlAqGnwBAn`O9P~Q6jB~l#s)$2X*V&uPBkQgRY`c2Y^XX!{ zpvBJYYWJi?r5|fA{r<)#KSWhabZY-EpRJsWBbN8GZ`G+uICCdN^p*9}PcgxFL|(C{ zeweW4Q6SUxsr4aw>rz6}mbrw~tcdZ;7yNQ;qPCRl{T^e@hB}590^M0l<7y7AyzON8 zb@pYKi)sPRcjkz!3VVJzXoBaFZ6_{xUu&GjskTz%iptFuDtC0}tStSu*CM3dZf{t; zcWhN#RQSzBfu~P28|<<_;eMddb5Y>uPW4x>Ts*Txz2s)ZZk?qQxAxh~vyx?5lTK{a z3Y8QJ?QC3ibxlCqaj(K_R~Iaq|9Z;2&RsDgt2#Q3K38Uo_=vKlxAS_L-!8bjIYeV= zVwI-J2Hxwnlh%uQ%`|B}6OtHcx?Dta#v`e`mL^lniEKIvQ%-hmI4)(WXj&lhu|ed> zw`;OfGA<=HE{PBpKK-vatYM{vkJc)o$z5LEQ@gq@CI$troDmYDswR3ga>aolt2|G3 zucewIZK{oP7(7GcRAQxGTz`)??>gTe~DWM4f(hPX_ literal 0 HcmV?d00001 diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/static/description/icon.svg b/odoo-bringout-oca-ocb-l10n_au/l10n_au/static/description/icon.svg new file mode 100644 index 0000000..b0263ad --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/static/description/icon.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/views/menuitems.xml b/odoo-bringout-oca-ocb-l10n_au/l10n_au/views/menuitems.xml new file mode 100644 index 0000000..4b7e56c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/views/menuitems.xml @@ -0,0 +1,4 @@ + + + + diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/views/report_invoice.xml b/odoo-bringout-oca-ocb-l10n_au/l10n_au/views/report_invoice.xml new file mode 100644 index 0000000..8f5233c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/views/report_invoice.xml @@ -0,0 +1,30 @@ + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_au/l10n_au/views/res_company_views.xml b/odoo-bringout-oca-ocb-l10n_au/l10n_au/views/res_company_views.xml new file mode 100644 index 0000000..5bda46d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/l10n_au/views/res_company_views.xml @@ -0,0 +1,26 @@ + + + + + res.company.form.inherit.l10n_au + res.company + + + + 1 + + + + + 1 + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_au/pyproject.toml b/odoo-bringout-oca-ocb-l10n_au/pyproject.toml new file mode 100644 index 0000000..64acac8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_au/pyproject.toml @@ -0,0 +1,42 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_au" +version = "16.0.0" +description = "Australia - Accounting - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_au"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_cn/README.md b/odoo-bringout-oca-ocb-l10n_cn/README.md new file mode 100644 index 0000000..3271e43 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/README.md @@ -0,0 +1,67 @@ +# China - Accounting + + +Includes the following data for the Chinese localization +======================================================== + +Account Type/科目类型 + +State Data/省份数据 + + 科目类型\会计科目表模板\增值税\辅助核算类别\管理会计凭证簿\财务会计凭证簿 + + 添加中文省份数据 + + 增加小企业会计科目表 + + 修改小企业会计科目表 + + 修改小企业会计税率 + +We added the option to print a voucher which will also +print the amount in words (special Chinese characters for numbers) +correctly when the cn2an library is installed. (e.g. with pip3 install cn2an) + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_cn +``` + +## Dependencies + +This addon depends on: +- base +- account +- l10n_multilang + +## Manifest Information + +- **Name**: China - Accounting +- **Version**: 1.9 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_cn`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_cn/doc/ARCHITECTURE.md new file mode 100644 index 0000000..88574ec --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_cn Module - l10n_cn + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_cn/doc/CONFIGURATION.md new file mode 100644 index 0000000..d557f82 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_cn. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_cn/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_cn/doc/DEPENDENCIES.md new file mode 100644 index 0000000..f42843e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/DEPENDENCIES.md @@ -0,0 +1,7 @@ +# Dependencies + +This addon depends on: + +- base +- [account](../../odoo-bringout-oca-ocb-account) +- [l10n_multilang](../../odoo-bringout-oca-ocb-l10n_multilang) diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_cn/doc/FAQ.md new file mode 100644 index 0000000..0c4f2bc --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_cn or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_cn/doc/INSTALL.md new file mode 100644 index 0000000..c4675a7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_cn" +# or +uv pip install odoo-bringout-oca-ocb-l10n_cn" +``` diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_cn/doc/MODELS.md new file mode 100644 index 0000000..d0fd3c3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/MODELS.md @@ -0,0 +1,12 @@ +# Models + +Detected core models and extensions in l10n_cn. + +```mermaid +classDiagram + class account_move +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_cn/doc/OVERVIEW.md new file mode 100644 index 0000000..c5facf8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_cn. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_cn +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_cn/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_cn/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_cn/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_cn/doc/USAGE.md new file mode 100644 index 0000000..249ca6c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_cn +``` diff --git a/odoo-bringout-oca-ocb-l10n_cn/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_cn/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/__init__.py b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/__init__.py new file mode 100644 index 0000000..9575d89 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/__init__.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +# Copyright (C) 2007-2014 Jeff Wang(). + +from . import models + +from odoo import api, SUPERUSER_ID + +def load_translations(cr, registry): + env = api.Environment(cr, SUPERUSER_ID, {}) + env.ref('l10n_cn.l10n_chart_china_small_business').process_coa_translations() diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/__manifest__.py b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/__manifest__.py new file mode 100644 index 0000000..be2bf7e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/__manifest__.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +# Copyright (C) 2008-2008 凯源吕鑫 lvxin@gmail.com +# 维智众源 oldrev@gmail.com +# Copyright (C) 2012-2012 南京盈通 ccdos@intoerp.com +# Copyright (C) 2008-now 开阖软件 jeff@osbzr.com < PM and LTS > +# Copyright (C) 2018-now jeffery9@gmail.com + +{ + 'name': 'China - Accounting', + 'version': '1.9', + 'category': 'Accounting/Localizations/Account Charts', + 'author': 'www.openerp-china.org', + 'maintainer': 'jeff@osbzr.com', + 'website': 'http://openerp-china.org', + 'description': r""" +Includes the following data for the Chinese localization +======================================================== + +Account Type/科目类型 + +State Data/省份数据 + + 科目类型\会计科目表模板\增值税\辅助核算类别\管理会计凭证簿\财务会计凭证簿 + + 添加中文省份数据 + + 增加小企业会计科目表 + + 修改小企业会计科目表 + + 修改小企业会计税率 + +We added the option to print a voucher which will also +print the amount in words (special Chinese characters for numbers) +correctly when the cn2an library is installed. (e.g. with pip3 install cn2an) + """, + 'depends': ['base', 'account', 'l10n_multilang'], + 'data': [ + 'data/account_tax_group_data.xml', + 'data/l10n_cn_chart_data.xml', + 'data/account.account.template.csv', + 'data/l10n_cn_chart_post_data.xml', + 'data/account_tax_template_data.xml', + 'data/account_chart_template_data.xml', + 'views/account_move_view.xml', + 'views/account_report.xml', + 'views/report_voucher.xml', + ], + 'demo': [ + 'demo/demo_company.xml', + ], + 'post_init_hook': 'load_translations', + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account.account.template.csv new file mode 100644 index 0000000..28fccae --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account.account.template.csv @@ -0,0 +1,77 @@ +"id","name","code","account_type","chart_template_id/id","reconcile" +"l10n_cn_1012","Other Monetary Funds","1012","asset_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1101","Transactional Financial Assets","1101","asset_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1121","Bills Receivable","1121","asset_receivable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_1122","Accounts Receivable","1122","asset_receivable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_1123","Advance Payment","1123","asset_prepayments","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1124","Accounts Receivable (PoS)","1124","asset_receivable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_1131","Divident Receivable","1131","asset_receivable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_1132","Interest Receivable","1132","asset_receivable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_1221","Other Receivable","1221","asset_receivable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_1231","Bad Debt Provisions","1231","asset_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1401","Material Purchasing","1401","asset_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1402","Materials in transit","1402","asset_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1403","Raw Material","1403","asset_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1404","Material Cost Variance","1404","asset_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1405","Merchandise Inventory","1405","asset_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1406","Goods shipped in transit","1406","asset_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1407","Differences between purchasing and selling price","1407","asset_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1408","Consigned processing materials","1408","asset_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1471","Inventory falling price reserves","1471","asset_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1501","Held to maturity Investment","1501","asset_non_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1502","Provision for impairment of investments held to maturity","1502","asset_non_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1503","Available for sale financial assets","1503","asset_non_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1511","Long-term equity investment","1511","asset_non_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1512","Impairment provision for long-term equity investments","1512","asset_non_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1521","Investmental real estate","1521","asset_non_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1531","Long-term receivables","1531","asset_non_current","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_1601","Fixed assets","1601","asset_fixed","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1602","Accumulated depreciation","1602","expense_depreciation","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1603","Fixed assets depreciation reserves","1603","expense_depreciation","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1604","Construction in progress","1604","asset_non_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1605","Engineering materials","1605","asset_non_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1606","Liquidation of fixed assets","1606","expense_depreciation","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1701","Intangible Assets","1701","asset_non_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1702","Accumulated amortization","1702","expense_depreciation","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1703","Intangible Assets Depreciation Reserves","1703","expense_depreciation","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1711","Goodwill","1711","asset_non_current","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_1801","Long-term amortized expenses","1801","expense_depreciation","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_2001","Short-term borrowing","2001","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2201","Bills Payable","2201","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2202","Accounts Payable","2202","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2203","Deposit Received","2203","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2211","Payroll payable","2211","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2221","Tax payable","2221","liability_current","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2231","Interest payable","2231","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2241","Dividents payable","2241","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2501","Other payable","2501","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2502","Bonds Payable","2502","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2701","Long Term payables","2701","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2711","Account payable special funds","2711","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2801","Projected liabilities","2801","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_2901","Deferred Tax Liability","2901","liability_payable","l10n_cn.l10n_chart_china_small_business","True" +"l10n_cn_4001","Paid in capital","4001","equity","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_4002","Capital Surplus","4002","equity","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_4003","Other Comprehensive Income","4003","equity","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_4101","Surplus Reserve","4101","equity","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_4103","Profit for the year","4103","equity","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_4104","Profit distribution","4104","equity","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_5001","Production Costs","5001","expense_direct_cost","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_5101","Manufacturing Expenses","5101","expense_direct_cost","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_5201","Service Cost","5201","expense_direct_cost","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_5301","R & D expenditure","5301","expense_direct_cost","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6001","Main Business Income","6001","income","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6051","Other Business Income","6051","income_other","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6101","Gains and Losses of fair value change","6101","income_other","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6111","Income from investment","6111","income_other","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6301","Non-operating Income","6301","income_other","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6401","Main Business Cost","6401","expense","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6402","Other Operating Costs","6402","expense","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6403","Operating Taxes and Surcharges","6403","expense","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6601","Selling Expenses","6601","expense","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6602","Management Expenses","6602","expense","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6603","Financial Expenses","6603","expense","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6701","Assets impairment Loss","6701","expense","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6711","Non-operating expenses","6711","expense","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6801","Income Tax Expense","6801","expense","l10n_cn.l10n_chart_china_small_business","False" +"l10n_cn_6901","Prior year income adjustment","6901","expense","l10n_cn.l10n_chart_china_small_business","False" diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account_chart_template_data.xml new file mode 100644 index 0000000..9c834e1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account_chart_template_data.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account_tax_group_data.xml b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account_tax_group_data.xml new file mode 100644 index 0000000..e03a804 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account_tax_group_data.xml @@ -0,0 +1,15 @@ + + + + VAT 6% + + + + VAT 9% + + + + VAT 13% + + + diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account_tax_template_data.xml b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account_tax_template_data.xml new file mode 100644 index 0000000..a965b19 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/account_tax_template_data.xml @@ -0,0 +1,222 @@ + + + + + + 税收13%(含) + 税收13% + 13 + percent + sale + + + + + + + + 税收9%(含) + 税收9% + 9 + percent + sale + + + + + + + + 税收6%(含) + 税收6% + 6 + percent + sale + + + + + + + + + 税收13% + 税收13% + 13 + percent + sale + + + + + + + + 税收9% + 税收9% + 9 + percent + sale + + + + + + + + 税收6% + 税收6% + 6 + percent + sale + + + + + + + + + 税收13% + 税收13% + 13 + percent + purchase + + + + + + + + 税收9% + 税收9% + 9 + percent + purchase + + + + + + + + 税收6% + 税收6% + 6 + percent + purchase + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/l10n_cn_chart_data.xml b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/l10n_cn_chart_data.xml new file mode 100644 index 0000000..c997bdb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/l10n_cn_chart_data.xml @@ -0,0 +1,30 @@ + + + + + + + 小企业会计科目表(财会[2011]17号《小企业会计准则》) + + + 1001 + 1002 + 1012 + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/l10n_cn_chart_post_data.xml b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/l10n_cn_chart_post_data.xml new file mode 100644 index 0000000..ceecd58 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/data/l10n_cn_chart_post_data.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/demo/demo_company.xml new file mode 100644 index 0000000..ea35591 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/demo/demo_company.xml @@ -0,0 +1,34 @@ + + + + CN Company + + 德政中路 + 大塘街道 + + + 510375 + +86 131 2345 6789 + info@company.cnexample.com + www.cnexample.com + + + + CN Company + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n/fr_BE.po b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n/fr_BE.po new file mode 100644 index 0000000..099fa52 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n/fr_BE.po @@ -0,0 +1,664 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_cn +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-05 14:50+0000\n" +"PO-Revision-Date: 2022-04-05 14:50+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: l10n_cn +#: model:ir.actions.report,print_report_name:l10n_cn.account_voucher_cn +msgid "'Voucher_%s' % (object.name)" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "借方" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "合计:" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "摘要" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "科目" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "记账凭证" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "贷方" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "凭证号:" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "制单:" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "审核:" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "日期:" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "过账:" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "附件数:" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2711 +#: model:account.account.template,name:l10n_cn.l10n_cn_2711 +msgid "Account payable special funds" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2202 +#: model:account.account.template,name:l10n_cn.l10n_cn_2202 +msgid "Accounts Payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1122 +#: model:account.account.template,name:l10n_cn.l10n_cn_1122 +msgid "Accounts Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1124 +#: model:account.account.template,name:l10n_cn.l10n_cn_1124 +msgid "Accounts Receivable (PoS)" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1702 +#: model:account.account.template,name:l10n_cn.l10n_cn_1702 +msgid "Accumulated amortization" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1602 +#: model:account.account.template,name:l10n_cn.l10n_cn_1602 +msgid "Accumulated depreciation" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1123 +#: model:account.account.template,name:l10n_cn.l10n_cn_1123 +msgid "Advance Payment" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6701 +#: model:account.account.template,name:l10n_cn.l10n_cn_6701 +msgid "Assets impairment Loss" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1503 +#: model:account.account.template,name:l10n_cn.l10n_cn_1503 +msgid "Available for sale financial assets" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1231 +#: model:account.account.template,name:l10n_cn.l10n_cn_1231 +msgid "Bad Debt Provisions" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2201 +#: model:account.account.template,name:l10n_cn.l10n_cn_2201 +msgid "Bills Payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1121 +#: model:account.account.template,name:l10n_cn.l10n_cn_1121 +msgid "Bills Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2502 +#: model:account.account.template,name:l10n_cn.l10n_cn_2502 +msgid "Bonds Payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_4002 +#: model:account.account.template,name:l10n_cn.l10n_cn_4002 +msgid "Capital Surplus" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1408 +#: model:account.account.template,name:l10n_cn.l10n_cn_1408 +msgid "Consigned processing materials" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1604 +#: model:account.account.template,name:l10n_cn.l10n_cn_1604 +msgid "Construction in progress" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2901 +#: model:account.account.template,name:l10n_cn.l10n_cn_2901 +msgid "Deferred Tax Liability" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2203 +#: model:account.account.template,name:l10n_cn.l10n_cn_2203 +msgid "Deposit Received" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1407 +#: model:account.account.template,name:l10n_cn.l10n_cn_1407 +msgid "Differences between purchasing and selling price" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1131 +#: model:account.account.template,name:l10n_cn.l10n_cn_1131 +msgid "Divident Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2241 +#: model:account.account.template,name:l10n_cn.l10n_cn_2241 +msgid "Dividents payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1605 +#: model:account.account.template,name:l10n_cn.l10n_cn_1605 +msgid "Engineering materials" +msgstr "" + +#. module: l10n_cn +#: model:ir.model.fields,field_description:l10n_cn.field_account_bank_statement_line__fapiao +#: model:ir.model.fields,field_description:l10n_cn.field_account_move__fapiao +#: model:ir.model.fields,field_description:l10n_cn.field_account_payment__fapiao +msgid "Fapiao Number" +msgstr "" + +#. module: l10n_cn +#: code:addons/l10n_cn/models/account_move.py:0 +#, python-format +msgid "Fapiao number is an 8-digit number. Please enter a correct one." +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6603 +#: model:account.account.template,name:l10n_cn.l10n_cn_6603 +msgid "Financial Expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1601 +#: model:account.account.template,name:l10n_cn.l10n_cn_1601 +msgid "Fixed assets" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1603 +#: model:account.account.template,name:l10n_cn.l10n_cn_1603 +msgid "Fixed assets depreciation reserves" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6101 +#: model:account.account.template,name:l10n_cn.l10n_cn_6101 +msgid "Gains and Losses of fair value change" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1406 +#: model:account.account.template,name:l10n_cn.l10n_cn_1406 +msgid "Goods shipped in transit" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1711 +#: model:account.account.template,name:l10n_cn.l10n_cn_1711 +msgid "Goodwill" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1501 +#: model:account.account.template,name:l10n_cn.l10n_cn_1501 +msgid "Held to maturity Investment" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1512 +#: model:account.account.template,name:l10n_cn.l10n_cn_1512 +msgid "Impairment provision for long-term equity investments" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6801 +#: model:account.account.template,name:l10n_cn.l10n_cn_6801 +msgid "Income Tax Expense" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6111 +#: model:account.account.template,name:l10n_cn.l10n_cn_6111 +msgid "Income from investment" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1701 +#: model:account.account.template,name:l10n_cn.l10n_cn_1701 +msgid "Intangible Assets" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1703 +#: model:account.account.template,name:l10n_cn.l10n_cn_1703 +msgid "Intangible Assets Depreciation Reserves" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1132 +#: model:account.account.template,name:l10n_cn.l10n_cn_1132 +msgid "Interest Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2231 +#: model:account.account.template,name:l10n_cn.l10n_cn_2231 +msgid "Interest payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1471 +#: model:account.account.template,name:l10n_cn.l10n_cn_1471 +msgid "Inventory falling price reserves" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1521 +#: model:account.account.template,name:l10n_cn.l10n_cn_1521 +msgid "Investmental real estate" +msgstr "" + +#. module: l10n_cn +#: model:ir.model,name:l10n_cn.model_account_move +msgid "Journal Entry" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1606 +#: model:account.account.template,name:l10n_cn.l10n_cn_1606 +msgid "Liquidation of fixed assets" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_chart_china_small_business_liquidity_transfer +#: model:account.account.template,name:l10n_cn.l10n_chart_china_small_business_liquidity_transfer +msgid "Liquidity Transfer" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.external_layout_boxed +msgid "Logo" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2701 +#: model:account.account.template,name:l10n_cn.l10n_cn_2701 +msgid "Long Term payables" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1801 +#: model:account.account.template,name:l10n_cn.l10n_cn_1801 +msgid "Long-term amortized expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1511 +#: model:account.account.template,name:l10n_cn.l10n_cn_1511 +msgid "Long-term equity investment" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1531 +#: model:account.account.template,name:l10n_cn.l10n_cn_1531 +msgid "Long-term receivables" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6401 +#: model:account.account.template,name:l10n_cn.l10n_cn_6401 +msgid "Main Business Cost" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6001 +#: model:account.account.template,name:l10n_cn.l10n_cn_6001 +msgid "Main Business Income" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6602 +#: model:account.account.template,name:l10n_cn.l10n_cn_6602 +msgid "Management Expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_5101 +#: model:account.account.template,name:l10n_cn.l10n_cn_5101 +msgid "Manufacturing Expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1404 +#: model:account.account.template,name:l10n_cn.l10n_cn_1404 +msgid "Material Cost Variance" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1401 +#: model:account.account.template,name:l10n_cn.l10n_cn_1401 +msgid "Material Purchasing" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1402 +#: model:account.account.template,name:l10n_cn.l10n_cn_1402 +msgid "Materials in transit" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1405 +#: model:account.account.template,name:l10n_cn.l10n_cn_1405 +msgid "Merchandise Inventory" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6301 +#: model:account.account.template,name:l10n_cn.l10n_cn_6301 +msgid "Non-operating Income" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6711 +#: model:account.account.template,name:l10n_cn.l10n_cn_6711 +msgid "Non-operating expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6403 +#: model:account.account.template,name:l10n_cn.l10n_cn_6403 +msgid "Operating Taxes and Surcharges" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6051 +#: model:account.account.template,name:l10n_cn.l10n_cn_6051 +msgid "Other Business Income" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_4003 +#: model:account.account.template,name:l10n_cn.l10n_cn_4003 +msgid "Other Comprehensive Income" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1012 +#: model:account.account.template,name:l10n_cn.l10n_cn_1012 +msgid "Other Monetary Funds" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6402 +#: model:account.account.template,name:l10n_cn.l10n_cn_6402 +msgid "Other Operating Costs" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1221 +#: model:account.account.template,name:l10n_cn.l10n_cn_1221 +msgid "Other Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2501 +#: model:account.account.template,name:l10n_cn.l10n_cn_2501 +msgid "Other payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_4001 +#: model:account.account.template,name:l10n_cn.l10n_cn_4001 +msgid "Paid in capital" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2211 +#: model:account.account.template,name:l10n_cn.l10n_cn_2211 +msgid "Payroll payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6901 +#: model:account.account.template,name:l10n_cn.l10n_cn_6901 +msgid "Prior year income adjustment" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_5001 +#: model:account.account.template,name:l10n_cn.l10n_cn_5001 +msgid "Production Costs" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_4104 +#: model:account.account.template,name:l10n_cn.l10n_cn_4104 +msgid "Profit distribution" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_4103 +#: model:account.account.template,name:l10n_cn.l10n_cn_4103 +msgid "Profit for the year" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2801 +#: model:account.account.template,name:l10n_cn.l10n_cn_2801 +msgid "Projected liabilities" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1502 +#: model:account.account.template,name:l10n_cn.l10n_cn_1502 +msgid "Provision for impairment of investments held to maturity" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_5301 +#: model:account.account.template,name:l10n_cn.l10n_cn_5301 +msgid "R & D expenditure" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1403 +#: model:account.account.template,name:l10n_cn.l10n_cn_1403 +msgid "Raw Material" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_6601 +#: model:account.account.template,name:l10n_cn.l10n_cn_6601 +msgid "Selling Expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_5201 +#: model:account.account.template,name:l10n_cn.l10n_cn_5201 +msgid "Service Cost" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2001 +#: model:account.account.template,name:l10n_cn.l10n_cn_2001 +msgid "Short-term borrowing" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_4101 +#: model:account.account.template,name:l10n_cn.l10n_cn_4101 +msgid "Surplus Reserve" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_2221 +#: model:account.account.template,name:l10n_cn.l10n_cn_2221 +msgid "Tax payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.3_l10n_cn_1101 +#: model:account.account.template,name:l10n_cn.l10n_cn_1101 +msgid "Transactional Financial Assets" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.group,name:l10n_cn.l10n_cn_tax_group_vat_13 +msgid "VAT 13%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.group,name:l10n_cn.l10n_cn_tax_group_vat_6 +msgid "VAT 6%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.group,name:l10n_cn.l10n_cn_tax_group_vat_9 +msgid "VAT 9%" +msgstr "" + +#. module: l10n_cn +#: model:ir.actions.report,name:l10n_cn.account_voucher_cn +msgid "Voucher" +msgstr "" + +#. module: l10n_cn +#: model:account.chart.template,name:l10n_cn.l10n_chart_china_small_business +msgid "小企业会计科目表(财会[2011]17号《小企业会计准则》)" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.3_l10n_cn_purchase_excluded_13 +#: model:account.tax,description:l10n_cn.3_l10n_cn_sales_excluded_13 +#: model:account.tax,name:l10n_cn.3_l10n_cn_purchase_excluded_13 +#: model:account.tax,name:l10n_cn.3_l10n_cn_sales_excluded_13 +#: model:account.tax.template,description:l10n_cn.l10n_cn_purchase_excluded_13 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_excluded_13 +#: model:account.tax.template,name:l10n_cn.l10n_cn_purchase_excluded_13 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_excluded_13 +msgid "税收13%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.3_l10n_cn_sales_included_13 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_included_13 +msgid "税收13%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,name:l10n_cn.3_l10n_cn_sales_included_13 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_included_13 +msgid "税收13%(含)" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,name:l10n_cn.3_l10n_cn_purchase_excluded_6 +#: model:account.tax,name:l10n_cn.3_l10n_cn_sales_excluded_6 +#: model:account.tax.template,name:l10n_cn.l10n_cn_purchase_excluded_6 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_excluded_6 +msgid "税收6%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.3_l10n_cn_purchase_excluded_6 +#: model:account.tax,description:l10n_cn.3_l10n_cn_sales_excluded_6 +#: model:account.tax,description:l10n_cn.3_l10n_cn_sales_included_6 +#: model:account.tax.template,description:l10n_cn.l10n_cn_purchase_excluded_6 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_excluded_6 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_included_6 +msgid "税收6%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,name:l10n_cn.3_l10n_cn_sales_included_6 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_included_6 +msgid "税收6%(含)" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.3_l10n_cn_purchase_excluded_9 +#: model:account.tax,description:l10n_cn.3_l10n_cn_sales_excluded_9 +#: model:account.tax,name:l10n_cn.3_l10n_cn_purchase_excluded_9 +#: model:account.tax,name:l10n_cn.3_l10n_cn_sales_excluded_9 +#: model:account.tax.template,description:l10n_cn.l10n_cn_purchase_excluded_9 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_excluded_9 +#: model:account.tax.template,name:l10n_cn.l10n_cn_purchase_excluded_9 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_excluded_9 +msgid "税收9%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.3_l10n_cn_sales_included_9 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_included_9 +msgid "税收9%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,name:l10n_cn.3_l10n_cn_sales_included_9 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_included_9 +msgid "税收9%(含)" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n/l10n_cn.pot b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n/l10n_cn.pot new file mode 100644 index 0000000..dddb141 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n/l10n_cn.pot @@ -0,0 +1,568 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_cn +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server saas~15.2\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-11 08:16+0000\n" +"PO-Revision-Date: 2022-04-11 08:16+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_cn +#: model:ir.actions.report,print_report_name:l10n_cn.account_voucher_cn +msgid "'Voucher_%s' % (object.name)" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "借方" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "合计:" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "摘要" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "科目" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "记账凭证" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "贷方" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "凭证号:" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "制单:" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "审核:" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "日期:" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "过账:" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.report_voucher_document +msgid "附件数:" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2711 +msgid "Account payable special funds" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2202 +msgid "Accounts Payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1122 +msgid "Accounts Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1124 +msgid "Accounts Receivable (PoS)" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1702 +msgid "Accumulated amortization" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1602 +msgid "Accumulated depreciation" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1123 +msgid "Advance Payment" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6701 +msgid "Assets impairment Loss" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1503 +msgid "Available for sale financial assets" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1231 +msgid "Bad Debt Provisions" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2201 +msgid "Bills Payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1121 +msgid "Bills Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2502 +msgid "Bonds Payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_4002 +msgid "Capital Surplus" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1408 +msgid "Consigned processing materials" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1604 +msgid "Construction in progress" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2901 +msgid "Deferred Tax Liability" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2203 +msgid "Deposit Received" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1407 +msgid "Differences between purchasing and selling price" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1131 +msgid "Divident Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2241 +msgid "Dividents payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1605 +msgid "Engineering materials" +msgstr "" + +#. module: l10n_cn +#: model:ir.model.fields,field_description:l10n_cn.field_account_bank_statement_line__fapiao +#: model:ir.model.fields,field_description:l10n_cn.field_account_move__fapiao +#: model:ir.model.fields,field_description:l10n_cn.field_account_payment__fapiao +msgid "Fapiao Number" +msgstr "" + +#. module: l10n_cn +#: code:addons/l10n_cn/models/account_move.py:0 +#, python-format +msgid "Fapiao number is an 8-digit number. Please enter a correct one." +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6603 +msgid "Financial Expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1601 +msgid "Fixed assets" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1603 +msgid "Fixed assets depreciation reserves" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6101 +msgid "Gains and Losses of fair value change" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1406 +msgid "Goods shipped in transit" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1711 +msgid "Goodwill" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1501 +msgid "Held to maturity Investment" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1512 +msgid "Impairment provision for long-term equity investments" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6801 +msgid "Income Tax Expense" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6111 +msgid "Income from investment" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1701 +msgid "Intangible Assets" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1703 +msgid "Intangible Assets Depreciation Reserves" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1132 +msgid "Interest Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2231 +msgid "Interest payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1471 +msgid "Inventory falling price reserves" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1521 +msgid "Investmental real estate" +msgstr "" + +#. module: l10n_cn +#: model:ir.model,name:l10n_cn.model_account_move +msgid "Journal Entry" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1606 +msgid "Liquidation of fixed assets" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_chart_china_small_business_liquidity_transfer +msgid "Liquidity Transfer" +msgstr "" + +#. module: l10n_cn +#: model_terms:ir.ui.view,arch_db:l10n_cn.external_layout_boxed +msgid "Logo" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2701 +msgid "Long Term payables" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1801 +msgid "Long-term amortized expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1511 +msgid "Long-term equity investment" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1531 +msgid "Long-term receivables" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6401 +msgid "Main Business Cost" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6001 +msgid "Main Business Income" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6602 +msgid "Management Expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_5101 +msgid "Manufacturing Expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1404 +msgid "Material Cost Variance" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1401 +msgid "Material Purchasing" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1402 +msgid "Materials in transit" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1405 +msgid "Merchandise Inventory" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6301 +msgid "Non-operating Income" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6711 +msgid "Non-operating expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6403 +msgid "Operating Taxes and Surcharges" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6051 +msgid "Other Business Income" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_4003 +msgid "Other Comprehensive Income" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1012 +msgid "Other Monetary Funds" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6402 +msgid "Other Operating Costs" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1221 +msgid "Other Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2501 +msgid "Other payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_4001 +msgid "Paid in capital" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2211 +msgid "Payroll payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6901 +msgid "Prior year income adjustment" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_5001 +msgid "Production Costs" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_4104 +msgid "Profit distribution" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_4103 +msgid "Profit for the year" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2801 +msgid "Projected liabilities" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1502 +msgid "Provision for impairment of investments held to maturity" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_5301 +msgid "R & D expenditure" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1403 +msgid "Raw Material" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_6601 +msgid "Selling Expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_5201 +msgid "Service Cost" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2001 +msgid "Short-term borrowing" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_4101 +msgid "Surplus Reserve" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_2221 +msgid "Tax payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account.template,name:l10n_cn.l10n_cn_1101 +msgid "Transactional Financial Assets" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.group,name:l10n_cn.l10n_cn_tax_group_vat_13 +msgid "VAT 13%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.group,name:l10n_cn.l10n_cn_tax_group_vat_6 +msgid "VAT 6%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.group,name:l10n_cn.l10n_cn_tax_group_vat_9 +msgid "VAT 9%" +msgstr "" + +#. module: l10n_cn +#: model:ir.actions.report,name:l10n_cn.account_voucher_cn +msgid "Voucher" +msgstr "" + +#. module: l10n_cn +#: model:account.chart.template,name:l10n_cn.l10n_chart_china_small_business +msgid "小企业会计科目表(财会[2011]17号《小企业会计准则》)" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.template,description:l10n_cn.l10n_cn_purchase_excluded_13 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_excluded_13 +#: model:account.tax.template,name:l10n_cn.l10n_cn_purchase_excluded_13 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_excluded_13 +msgid "税收13%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_included_13 +msgid "税收13%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_included_13 +msgid "税收13%(含)" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.template,name:l10n_cn.l10n_cn_purchase_excluded_6 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_excluded_6 +msgid "税收6%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.template,description:l10n_cn.l10n_cn_purchase_excluded_6 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_excluded_6 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_included_6 +msgid "税收6%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_included_6 +msgid "税收6%(含)" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.template,description:l10n_cn.l10n_cn_purchase_excluded_9 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_excluded_9 +#: model:account.tax.template,name:l10n_cn.l10n_cn_purchase_excluded_9 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_excluded_9 +msgid "税收9%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_included_9 +msgid "税收9%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_included_9 +msgid "税收9%(含)" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n_extra/l10n_cn.pot b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n_extra/l10n_cn.pot new file mode 100644 index 0000000..f86b644 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n_extra/l10n_cn.pot @@ -0,0 +1,698 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_cn +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-03-15 12:16+0000\n" +"PO-Revision-Date: 2021-03-15 12:16+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_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2711 +#: model:account.account,name:l10n_cn.2_l10n_cn_2711 +#: model:account.account.template,name:l10n_cn.l10n_cn_2711 +msgid "Account payable special funds" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2202 +#: model:account.account,name:l10n_cn.2_l10n_cn_2202 +#: model:account.account.template,name:l10n_cn.l10n_cn_2202 +msgid "Accounts Payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1122 +#: model:account.account,name:l10n_cn.2_l10n_cn_1122 +#: model:account.account.template,name:l10n_cn.l10n_cn_1122 +msgid "Accounts Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1124 +#: model:account.account,name:l10n_cn.2_l10n_cn_1124 +#: model:account.account.template,name:l10n_cn.l10n_cn_1124 +msgid "Accounts Receivable (PoS)" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1702 +#: model:account.account,name:l10n_cn.2_l10n_cn_1702 +#: model:account.account.template,name:l10n_cn.l10n_cn_1702 +msgid "Accumulated amortization" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1602 +#: model:account.account,name:l10n_cn.2_l10n_cn_1602 +#: model:account.account.template,name:l10n_cn.l10n_cn_1602 +msgid "Accumulated depreciation" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1123 +#: model:account.account,name:l10n_cn.2_l10n_cn_1123 +#: model:account.account.template,name:l10n_cn.l10n_cn_1123 +msgid "Advance Payment" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6701 +#: model:account.account,name:l10n_cn.2_l10n_cn_6701 +#: model:account.account.template,name:l10n_cn.l10n_cn_6701 +msgid "Assets impairment Loss" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1503 +#: model:account.account,name:l10n_cn.2_l10n_cn_1503 +#: model:account.account.template,name:l10n_cn.l10n_cn_1503 +msgid "Available for sale financial assets" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1231 +#: model:account.account,name:l10n_cn.2_l10n_cn_1231 +#: model:account.account.template,name:l10n_cn.l10n_cn_1231 +msgid "Bad Debt Provisions" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2201 +#: model:account.account,name:l10n_cn.2_l10n_cn_2201 +#: model:account.account.template,name:l10n_cn.l10n_cn_2201 +msgid "Bills Payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1121 +#: model:account.account,name:l10n_cn.2_l10n_cn_1121 +#: model:account.account.template,name:l10n_cn.l10n_cn_1121 +msgid "Bills Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2502 +#: model:account.account,name:l10n_cn.2_l10n_cn_2502 +#: model:account.account.template,name:l10n_cn.l10n_cn_2502 +msgid "Bonds Payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_4002 +#: model:account.account,name:l10n_cn.2_l10n_cn_4002 +#: model:account.account.template,name:l10n_cn.l10n_cn_4002 +msgid "Capital Surplus" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1408 +#: model:account.account,name:l10n_cn.2_l10n_cn_1408 +#: model:account.account.template,name:l10n_cn.l10n_cn_1408 +msgid "Consigned processing materials" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1604 +#: model:account.account,name:l10n_cn.2_l10n_cn_1604 +#: model:account.account.template,name:l10n_cn.l10n_cn_1604 +msgid "Construction in progress" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2901 +#: model:account.account,name:l10n_cn.2_l10n_cn_2901 +#: model:account.account.template,name:l10n_cn.l10n_cn_2901 +msgid "Deferred Tax Liability" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2203 +#: model:account.account,name:l10n_cn.2_l10n_cn_2203 +#: model:account.account.template,name:l10n_cn.l10n_cn_2203 +msgid "Deposit Received" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1407 +#: model:account.account,name:l10n_cn.2_l10n_cn_1407 +#: model:account.account.template,name:l10n_cn.l10n_cn_1407 +msgid "Differences between purchasing and selling price" +msgstr "" + +#. module: l10n_cn +#: model:ir.model.fields,field_description:l10n_cn.field_account_move__display_name +msgid "Display Name" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1131 +#: model:account.account,name:l10n_cn.2_l10n_cn_1131 +#: model:account.account.template,name:l10n_cn.l10n_cn_1131 +msgid "Divident Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2241 +#: model:account.account,name:l10n_cn.2_l10n_cn_2241 +#: model:account.account.template,name:l10n_cn.l10n_cn_2241 +msgid "Dividents payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1605 +#: model:account.account,name:l10n_cn.2_l10n_cn_1605 +#: model:account.account.template,name:l10n_cn.l10n_cn_1605 +msgid "Engineering materials" +msgstr "" + +#. module: l10n_cn +#: model:ir.model.fields,field_description:l10n_cn.field_account_bank_statement_line__fapiao +#: model:ir.model.fields,field_description:l10n_cn.field_account_move__fapiao +#: model:ir.model.fields,field_description:l10n_cn.field_account_payment__fapiao +msgid "Fapiao Number" +msgstr "" + +#. module: l10n_cn +#: code:addons/l10n_cn/models/account_move.py:0 +#, python-format +msgid "Fapiao number is an 8-digit number. Please enter a correct one." +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6603 +#: model:account.account,name:l10n_cn.2_l10n_cn_6603 +#: model:account.account.template,name:l10n_cn.l10n_cn_6603 +msgid "Financial Expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1601 +#: model:account.account,name:l10n_cn.2_l10n_cn_1601 +#: model:account.account.template,name:l10n_cn.l10n_cn_1601 +msgid "Fixed assets" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1603 +#: model:account.account,name:l10n_cn.2_l10n_cn_1603 +#: model:account.account.template,name:l10n_cn.l10n_cn_1603 +msgid "Fixed assets depreciation reserves" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6101 +#: model:account.account,name:l10n_cn.2_l10n_cn_6101 +#: model:account.account.template,name:l10n_cn.l10n_cn_6101 +msgid "Gains and Losses of fair value change" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1406 +#: model:account.account,name:l10n_cn.2_l10n_cn_1406 +#: model:account.account.template,name:l10n_cn.l10n_cn_1406 +msgid "Goods shipped in transit" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1711 +#: model:account.account,name:l10n_cn.2_l10n_cn_1711 +#: model:account.account.template,name:l10n_cn.l10n_cn_1711 +msgid "Goodwill" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1501 +#: model:account.account,name:l10n_cn.2_l10n_cn_1501 +#: model:account.account.template,name:l10n_cn.l10n_cn_1501 +msgid "Held to maturity Investment" +msgstr "" + +#. module: l10n_cn +#: model:ir.model.fields,field_description:l10n_cn.field_account_move__id +msgid "ID" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1512 +#: model:account.account,name:l10n_cn.2_l10n_cn_1512 +#: model:account.account.template,name:l10n_cn.l10n_cn_1512 +msgid "Impairment provision for long-term equity investments" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6801 +#: model:account.account,name:l10n_cn.2_l10n_cn_6801 +#: model:account.account.template,name:l10n_cn.l10n_cn_6801 +msgid "Income Tax Expense" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6111 +#: model:account.account,name:l10n_cn.2_l10n_cn_6111 +#: model:account.account.template,name:l10n_cn.l10n_cn_6111 +msgid "Income from investment" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1701 +#: model:account.account,name:l10n_cn.2_l10n_cn_1701 +#: model:account.account.template,name:l10n_cn.l10n_cn_1701 +msgid "Intangible Assets" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1703 +#: model:account.account,name:l10n_cn.2_l10n_cn_1703 +#: model:account.account.template,name:l10n_cn.l10n_cn_1703 +msgid "Intangible Assets Depreciation Reserves" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1132 +#: model:account.account,name:l10n_cn.2_l10n_cn_1132 +#: model:account.account.template,name:l10n_cn.l10n_cn_1132 +msgid "Interest Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2231 +#: model:account.account,name:l10n_cn.2_l10n_cn_2231 +#: model:account.account.template,name:l10n_cn.l10n_cn_2231 +msgid "Interest payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1471 +#: model:account.account,name:l10n_cn.2_l10n_cn_1471 +#: model:account.account.template,name:l10n_cn.l10n_cn_1471 +msgid "Inventory falling price reserves" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1521 +#: model:account.account,name:l10n_cn.2_l10n_cn_1521 +#: model:account.account.template,name:l10n_cn.l10n_cn_1521 +msgid "Investmental real estate" +msgstr "" + +#. module: l10n_cn +#: model:ir.model,name:l10n_cn.model_account_move +msgid "Journal Entry" +msgstr "" + +#. module: l10n_cn +#: model:ir.model.fields,field_description:l10n_cn.field_account_move____last_update +msgid "Last Modified on" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1606 +#: model:account.account,name:l10n_cn.2_l10n_cn_1606 +#: model:account.account.template,name:l10n_cn.l10n_cn_1606 +msgid "Liquidation of fixed assets" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_chart_china_small_business_liquidity_transfer +#: model:account.account,name:l10n_cn.2_l10n_chart_china_small_business_liquidity_transfer +#: model:account.account.template,name:l10n_cn.l10n_chart_china_small_business_liquidity_transfer +msgid "Liquidity Transfer" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2701 +#: model:account.account,name:l10n_cn.2_l10n_cn_2701 +#: model:account.account.template,name:l10n_cn.l10n_cn_2701 +msgid "Long Term payables" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1801 +#: model:account.account,name:l10n_cn.2_l10n_cn_1801 +#: model:account.account.template,name:l10n_cn.l10n_cn_1801 +msgid "Long-term amortized expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1511 +#: model:account.account,name:l10n_cn.2_l10n_cn_1511 +#: model:account.account.template,name:l10n_cn.l10n_cn_1511 +msgid "Long-term equity investment" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1531 +#: model:account.account,name:l10n_cn.2_l10n_cn_1531 +#: model:account.account.template,name:l10n_cn.l10n_cn_1531 +msgid "Long-term receivables" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6401 +#: model:account.account,name:l10n_cn.2_l10n_cn_6401 +#: model:account.account.template,name:l10n_cn.l10n_cn_6401 +msgid "Main Business Cost" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6001 +#: model:account.account,name:l10n_cn.2_l10n_cn_6001 +#: model:account.account.template,name:l10n_cn.l10n_cn_6001 +msgid "Main Business Income" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6602 +#: model:account.account,name:l10n_cn.2_l10n_cn_6602 +#: model:account.account.template,name:l10n_cn.l10n_cn_6602 +msgid "Management Expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_5101 +#: model:account.account,name:l10n_cn.2_l10n_cn_5101 +#: model:account.account.template,name:l10n_cn.l10n_cn_5101 +msgid "Manufacturing Expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1404 +#: model:account.account,name:l10n_cn.2_l10n_cn_1404 +#: model:account.account.template,name:l10n_cn.l10n_cn_1404 +msgid "Material Cost Variance" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1401 +#: model:account.account,name:l10n_cn.2_l10n_cn_1401 +#: model:account.account.template,name:l10n_cn.l10n_cn_1401 +msgid "Material Purchasing" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1402 +#: model:account.account,name:l10n_cn.2_l10n_cn_1402 +#: model:account.account.template,name:l10n_cn.l10n_cn_1402 +msgid "Materials in transit" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1405 +#: model:account.account,name:l10n_cn.2_l10n_cn_1405 +#: model:account.account.template,name:l10n_cn.l10n_cn_1405 +msgid "Merchandise Inventory" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6301 +#: model:account.account,name:l10n_cn.2_l10n_cn_6301 +#: model:account.account.template,name:l10n_cn.l10n_cn_6301 +msgid "Non-operating Income" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6711 +#: model:account.account,name:l10n_cn.2_l10n_cn_6711 +#: model:account.account.template,name:l10n_cn.l10n_cn_6711 +msgid "Non-operating expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6403 +#: model:account.account,name:l10n_cn.2_l10n_cn_6403 +#: model:account.account.template,name:l10n_cn.l10n_cn_6403 +msgid "Operating Taxes and Surcharges" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6051 +#: model:account.account,name:l10n_cn.2_l10n_cn_6051 +#: model:account.account.template,name:l10n_cn.l10n_cn_6051 +msgid "Other Business Income" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_4003 +#: model:account.account,name:l10n_cn.2_l10n_cn_4003 +#: model:account.account.template,name:l10n_cn.l10n_cn_4003 +msgid "Other Comprehensive Income" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1012 +#: model:account.account,name:l10n_cn.2_l10n_cn_1012 +#: model:account.account.template,name:l10n_cn.l10n_cn_1012 +msgid "Other Monetary Funds" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6402 +#: model:account.account,name:l10n_cn.2_l10n_cn_6402 +#: model:account.account.template,name:l10n_cn.l10n_cn_6402 +msgid "Other Operating Costs" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1221 +#: model:account.account,name:l10n_cn.2_l10n_cn_1221 +#: model:account.account.template,name:l10n_cn.l10n_cn_1221 +msgid "Other Receivable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2501 +#: model:account.account,name:l10n_cn.2_l10n_cn_2501 +#: model:account.account.template,name:l10n_cn.l10n_cn_2501 +msgid "Other payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_4001 +#: model:account.account,name:l10n_cn.2_l10n_cn_4001 +#: model:account.account.template,name:l10n_cn.l10n_cn_4001 +msgid "Paid in capital" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2211 +#: model:account.account,name:l10n_cn.2_l10n_cn_2211 +#: model:account.account.template,name:l10n_cn.l10n_cn_2211 +msgid "Payroll payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6901 +#: model:account.account,name:l10n_cn.2_l10n_cn_6901 +#: model:account.account.template,name:l10n_cn.l10n_cn_6901 +msgid "Prior year income adjustment" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_5001 +#: model:account.account,name:l10n_cn.2_l10n_cn_5001 +#: model:account.account.template,name:l10n_cn.l10n_cn_5001 +msgid "Production Costs" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_4104 +#: model:account.account,name:l10n_cn.2_l10n_cn_4104 +#: model:account.account.template,name:l10n_cn.l10n_cn_4104 +msgid "Profit distribution" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_4103 +#: model:account.account,name:l10n_cn.2_l10n_cn_4103 +#: model:account.account.template,name:l10n_cn.l10n_cn_4103 +msgid "Profit for the year" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2801 +#: model:account.account,name:l10n_cn.2_l10n_cn_2801 +#: model:account.account.template,name:l10n_cn.l10n_cn_2801 +msgid "Projected liabilities" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1502 +#: model:account.account,name:l10n_cn.2_l10n_cn_1502 +#: model:account.account.template,name:l10n_cn.l10n_cn_1502 +msgid "Provision for impairment of investments held to maturity" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_5301 +#: model:account.account,name:l10n_cn.2_l10n_cn_5301 +#: model:account.account.template,name:l10n_cn.l10n_cn_5301 +msgid "R & D expenditure" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1403 +#: model:account.account,name:l10n_cn.2_l10n_cn_1403 +#: model:account.account.template,name:l10n_cn.l10n_cn_1403 +msgid "Raw Material" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6601 +#: model:account.account,name:l10n_cn.2_l10n_cn_6601 +#: model:account.account.template,name:l10n_cn.l10n_cn_6601 +msgid "Selling Expenses" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_5201 +#: model:account.account,name:l10n_cn.2_l10n_cn_5201 +#: model:account.account.template,name:l10n_cn.l10n_cn_5201 +msgid "Service Cost" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2001 +#: model:account.account,name:l10n_cn.2_l10n_cn_2001 +#: model:account.account.template,name:l10n_cn.l10n_cn_2001 +msgid "Short-term borrowing" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_4101 +#: model:account.account,name:l10n_cn.2_l10n_cn_4101 +#: model:account.account.template,name:l10n_cn.l10n_cn_4101 +msgid "Surplus Reserve" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2221 +#: model:account.account,name:l10n_cn.2_l10n_cn_2221 +#: model:account.account.template,name:l10n_cn.l10n_cn_2221 +msgid "Tax payable" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1101 +#: model:account.account,name:l10n_cn.2_l10n_cn_1101 +#: model:account.account.template,name:l10n_cn.l10n_cn_1101 +msgid "Transactional Financial Assets" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.group,name:l10n_cn.l10n_cn_tax_group_vat_13 +msgid "VAT 13%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.group,name:l10n_cn.l10n_cn_tax_group_vat_6 +msgid "VAT 6%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.group,name:l10n_cn.l10n_cn_tax_group_vat_9 +msgid "VAT 9%" +msgstr "" + +#. module: l10n_cn +#: model:account.chart.template,name:l10n_cn.l10n_chart_china_small_business +msgid "小企业会计科目表(财会[2011]17号《小企业会计准则》)" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.1_l10n_cn_purchase_excluded_13 +#: model:account.tax,description:l10n_cn.1_l10n_cn_sales_excluded_13 +#: model:account.tax,description:l10n_cn.2_l10n_cn_purchase_excluded_13 +#: model:account.tax,description:l10n_cn.2_l10n_cn_sales_excluded_13 +#: model:account.tax,name:l10n_cn.1_l10n_cn_purchase_excluded_13 +#: model:account.tax,name:l10n_cn.1_l10n_cn_sales_excluded_13 +#: model:account.tax,name:l10n_cn.2_l10n_cn_purchase_excluded_13 +#: model:account.tax,name:l10n_cn.2_l10n_cn_sales_excluded_13 +#: model:account.tax.template,description:l10n_cn.l10n_cn_purchase_excluded_13 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_excluded_13 +#: model:account.tax.template,name:l10n_cn.l10n_cn_purchase_excluded_13 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_excluded_13 +msgid "税收13%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.1_l10n_cn_sales_included_13 +#: model:account.tax,description:l10n_cn.2_l10n_cn_sales_included_13 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_included_13 +msgid "税收13%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,name:l10n_cn.1_l10n_cn_sales_included_13 +#: model:account.tax,name:l10n_cn.2_l10n_cn_sales_included_13 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_included_13 +msgid "税收13%(含)" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,name:l10n_cn.1_l10n_cn_purchase_excluded_6 +#: model:account.tax,name:l10n_cn.1_l10n_cn_sales_excluded_6 +#: model:account.tax,name:l10n_cn.2_l10n_cn_purchase_excluded_6 +#: model:account.tax,name:l10n_cn.2_l10n_cn_sales_excluded_6 +#: model:account.tax.template,name:l10n_cn.l10n_cn_purchase_excluded_6 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_excluded_6 +msgid "税收6%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.1_l10n_cn_purchase_excluded_6 +#: model:account.tax,description:l10n_cn.1_l10n_cn_sales_excluded_6 +#: model:account.tax,description:l10n_cn.1_l10n_cn_sales_included_6 +#: model:account.tax,description:l10n_cn.2_l10n_cn_purchase_excluded_6 +#: model:account.tax,description:l10n_cn.2_l10n_cn_sales_excluded_6 +#: model:account.tax,description:l10n_cn.2_l10n_cn_sales_included_6 +#: model:account.tax.template,description:l10n_cn.l10n_cn_purchase_excluded_6 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_excluded_6 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_included_6 +msgid "税收6%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,name:l10n_cn.1_l10n_cn_sales_included_6 +#: model:account.tax,name:l10n_cn.2_l10n_cn_sales_included_6 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_included_6 +msgid "税收6%(含)" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.1_l10n_cn_purchase_excluded_9 +#: model:account.tax,description:l10n_cn.1_l10n_cn_sales_excluded_9 +#: model:account.tax,description:l10n_cn.2_l10n_cn_purchase_excluded_9 +#: model:account.tax,description:l10n_cn.2_l10n_cn_sales_excluded_9 +#: model:account.tax,name:l10n_cn.1_l10n_cn_purchase_excluded_9 +#: model:account.tax,name:l10n_cn.1_l10n_cn_sales_excluded_9 +#: model:account.tax,name:l10n_cn.2_l10n_cn_purchase_excluded_9 +#: model:account.tax,name:l10n_cn.2_l10n_cn_sales_excluded_9 +#: model:account.tax.template,description:l10n_cn.l10n_cn_purchase_excluded_9 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_excluded_9 +#: model:account.tax.template,name:l10n_cn.l10n_cn_purchase_excluded_9 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_excluded_9 +msgid "税收9%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.1_l10n_cn_sales_included_9 +#: model:account.tax,description:l10n_cn.2_l10n_cn_sales_included_9 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_included_9 +msgid "税收9%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,name:l10n_cn.1_l10n_cn_sales_included_9 +#: model:account.tax,name:l10n_cn.2_l10n_cn_sales_included_9 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_included_9 +msgid "税收9%(含)" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n_extra/zh_CN.po b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n_extra/zh_CN.po new file mode 100644 index 0000000..ea07229 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/i18n_extra/zh_CN.po @@ -0,0 +1,699 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_cn +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-03-15 12:16+0000\n" +"PO-Revision-Date: 2023-04-25 12:28+0800\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"Language: zh_CN\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2711 +#: model:account.account,name:l10n_cn.2_l10n_cn_2711 +#: model:account.account.template,name:l10n_cn.l10n_cn_2711 +msgid "Account payable special funds" +msgstr "专项应付款" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2202 +#: model:account.account,name:l10n_cn.2_l10n_cn_2202 +#: model:account.account.template,name:l10n_cn.l10n_cn_2202 +msgid "Accounts Payable" +msgstr "应付账款" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1122 +#: model:account.account,name:l10n_cn.2_l10n_cn_1122 +#: model:account.account.template,name:l10n_cn.l10n_cn_1122 +msgid "Accounts Receivable" +msgstr "应收账款" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1124 +#: model:account.account,name:l10n_cn.2_l10n_cn_1124 +#: model:account.account.template,name:l10n_cn.l10n_cn_1124 +msgid "Accounts Receivable (PoS)" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1702 +#: model:account.account,name:l10n_cn.2_l10n_cn_1702 +#: model:account.account.template,name:l10n_cn.l10n_cn_1702 +msgid "Accumulated amortization" +msgstr "累计摊销" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1602 +#: model:account.account,name:l10n_cn.2_l10n_cn_1602 +#: model:account.account.template,name:l10n_cn.l10n_cn_1602 +msgid "Accumulated depreciation" +msgstr "累计折旧" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1123 +#: model:account.account,name:l10n_cn.2_l10n_cn_1123 +#: model:account.account.template,name:l10n_cn.l10n_cn_1123 +msgid "Advance Payment" +msgstr "预付账款" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6701 +#: model:account.account,name:l10n_cn.2_l10n_cn_6701 +#: model:account.account.template,name:l10n_cn.l10n_cn_6701 +msgid "Assets impairment Loss" +msgstr "资产减值损失" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1503 +#: model:account.account,name:l10n_cn.2_l10n_cn_1503 +#: model:account.account.template,name:l10n_cn.l10n_cn_1503 +msgid "Available for sale financial assets" +msgstr "可供出售金融资产" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1231 +#: model:account.account,name:l10n_cn.2_l10n_cn_1231 +#: model:account.account.template,name:l10n_cn.l10n_cn_1231 +msgid "Bad Debt Provisions" +msgstr "坏账准备" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2201 +#: model:account.account,name:l10n_cn.2_l10n_cn_2201 +#: model:account.account.template,name:l10n_cn.l10n_cn_2201 +msgid "Bills Payable" +msgstr "应付票据" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1121 +#: model:account.account,name:l10n_cn.2_l10n_cn_1121 +#: model:account.account.template,name:l10n_cn.l10n_cn_1121 +msgid "Bills Receivable" +msgstr "应收票据" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2502 +#: model:account.account,name:l10n_cn.2_l10n_cn_2502 +#: model:account.account.template,name:l10n_cn.l10n_cn_2502 +msgid "Bonds Payable" +msgstr "应付债券" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_4002 +#: model:account.account,name:l10n_cn.2_l10n_cn_4002 +#: model:account.account.template,name:l10n_cn.l10n_cn_4002 +msgid "Capital Surplus" +msgstr "資本公積金" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1408 +#: model:account.account,name:l10n_cn.2_l10n_cn_1408 +#: model:account.account.template,name:l10n_cn.l10n_cn_1408 +msgid "Consigned processing materials" +msgstr "委托加工的材料" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1604 +#: model:account.account,name:l10n_cn.2_l10n_cn_1604 +#: model:account.account.template,name:l10n_cn.l10n_cn_1604 +msgid "Construction in progress" +msgstr "在建工程" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2901 +#: model:account.account,name:l10n_cn.2_l10n_cn_2901 +#: model:account.account.template,name:l10n_cn.l10n_cn_2901 +msgid "Deferred Tax Liability" +msgstr "递延税项负债" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2203 +#: model:account.account,name:l10n_cn.2_l10n_cn_2203 +#: model:account.account.template,name:l10n_cn.l10n_cn_2203 +msgid "Deposit Received" +msgstr "预收账款" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1407 +#: model:account.account,name:l10n_cn.2_l10n_cn_1407 +#: model:account.account.template,name:l10n_cn.l10n_cn_1407 +msgid "Differences between purchasing and selling price" +msgstr "商品进销差价" + +#. module: l10n_cn +#: model:ir.model.fields,field_description:l10n_cn.field_account_move__display_name +msgid "Display Name" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1131 +#: model:account.account,name:l10n_cn.2_l10n_cn_1131 +#: model:account.account.template,name:l10n_cn.l10n_cn_1131 +msgid "Divident Receivable" +msgstr "应收股利" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2241 +#: model:account.account,name:l10n_cn.2_l10n_cn_2241 +#: model:account.account.template,name:l10n_cn.l10n_cn_2241 +msgid "Dividents payable" +msgstr "应付股利" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1605 +#: model:account.account,name:l10n_cn.2_l10n_cn_1605 +#: model:account.account.template,name:l10n_cn.l10n_cn_1605 +msgid "Engineering materials" +msgstr "工程物资" + +#. module: l10n_cn +#: model:ir.model.fields,field_description:l10n_cn.field_account_bank_statement_line__fapiao +#: model:ir.model.fields,field_description:l10n_cn.field_account_move__fapiao +#: model:ir.model.fields,field_description:l10n_cn.field_account_payment__fapiao +msgid "Fapiao Number" +msgstr "" + +#. module: l10n_cn +#: code:addons/l10n_cn/models/account_move.py:0 +#, python-format +msgid "Fapiao number is an 8-digit number. Please enter a correct one." +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6603 +#: model:account.account,name:l10n_cn.2_l10n_cn_6603 +#: model:account.account.template,name:l10n_cn.l10n_cn_6603 +msgid "Financial Expenses" +msgstr "财务费用" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1601 +#: model:account.account,name:l10n_cn.2_l10n_cn_1601 +#: model:account.account.template,name:l10n_cn.l10n_cn_1601 +msgid "Fixed assets" +msgstr "固定资产" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1603 +#: model:account.account,name:l10n_cn.2_l10n_cn_1603 +#: model:account.account.template,name:l10n_cn.l10n_cn_1603 +msgid "Fixed assets depreciation reserves" +msgstr "固定资产减值准备" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6101 +#: model:account.account,name:l10n_cn.2_l10n_cn_6101 +#: model:account.account.template,name:l10n_cn.l10n_cn_6101 +msgid "Gains and Losses of fair value change" +msgstr "公允价值变动损益" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1406 +#: model:account.account,name:l10n_cn.2_l10n_cn_1406 +#: model:account.account.template,name:l10n_cn.l10n_cn_1406 +msgid "Goods shipped in transit" +msgstr "运输中的货物" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1711 +#: model:account.account,name:l10n_cn.2_l10n_cn_1711 +#: model:account.account.template,name:l10n_cn.l10n_cn_1711 +msgid "Goodwill" +msgstr "商誉" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1501 +#: model:account.account,name:l10n_cn.2_l10n_cn_1501 +#: model:account.account.template,name:l10n_cn.l10n_cn_1501 +msgid "Held to maturity Investment" +msgstr "持有至到期的投资" + +#. module: l10n_cn +#: model:ir.model.fields,field_description:l10n_cn.field_account_move__id +msgid "ID" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1512 +#: model:account.account,name:l10n_cn.2_l10n_cn_1512 +#: model:account.account.template,name:l10n_cn.l10n_cn_1512 +msgid "Impairment provision for long-term equity investments" +msgstr "长期股权投资的减值准备" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6801 +#: model:account.account,name:l10n_cn.2_l10n_cn_6801 +#: model:account.account.template,name:l10n_cn.l10n_cn_6801 +msgid "Income Tax Expense" +msgstr "所得税费用" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6111 +#: model:account.account,name:l10n_cn.2_l10n_cn_6111 +#: model:account.account.template,name:l10n_cn.l10n_cn_6111 +msgid "Income from investment" +msgstr "投资收益" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1701 +#: model:account.account,name:l10n_cn.2_l10n_cn_1701 +#: model:account.account.template,name:l10n_cn.l10n_cn_1701 +msgid "Intangible Assets" +msgstr "无形资产" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1703 +#: model:account.account,name:l10n_cn.2_l10n_cn_1703 +#: model:account.account.template,name:l10n_cn.l10n_cn_1703 +msgid "Intangible Assets Depreciation Reserves" +msgstr "无形资产减值准备" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1132 +#: model:account.account,name:l10n_cn.2_l10n_cn_1132 +#: model:account.account.template,name:l10n_cn.l10n_cn_1132 +msgid "Interest Receivable" +msgstr "应收利息" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2231 +#: model:account.account,name:l10n_cn.2_l10n_cn_2231 +#: model:account.account.template,name:l10n_cn.l10n_cn_2231 +msgid "Interest payable" +msgstr "应付利息" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1471 +#: model:account.account,name:l10n_cn.2_l10n_cn_1471 +#: model:account.account.template,name:l10n_cn.l10n_cn_1471 +msgid "Inventory falling price reserves" +msgstr "存货跌价准备" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1521 +#: model:account.account,name:l10n_cn.2_l10n_cn_1521 +#: model:account.account.template,name:l10n_cn.l10n_cn_1521 +msgid "Investmental real estate" +msgstr "投资性房地产" + +#. module: l10n_cn +#: model:ir.model,name:l10n_cn.model_account_move +msgid "Journal Entry" +msgstr "" + +#. module: l10n_cn +#: model:ir.model.fields,field_description:l10n_cn.field_account_move____last_update +msgid "Last Modified on" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1606 +#: model:account.account,name:l10n_cn.2_l10n_cn_1606 +#: model:account.account.template,name:l10n_cn.l10n_cn_1606 +msgid "Liquidation of fixed assets" +msgstr "固定资产情况" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_chart_china_small_business_liquidity_transfer +#: model:account.account,name:l10n_cn.2_l10n_chart_china_small_business_liquidity_transfer +#: model:account.account.template,name:l10n_cn.l10n_chart_china_small_business_liquidity_transfer +msgid "Liquidity Transfer" +msgstr "" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2701 +#: model:account.account,name:l10n_cn.2_l10n_cn_2701 +#: model:account.account.template,name:l10n_cn.l10n_cn_2701 +msgid "Long Term payables" +msgstr "长期应付款" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1801 +#: model:account.account,name:l10n_cn.2_l10n_cn_1801 +#: model:account.account.template,name:l10n_cn.l10n_cn_1801 +msgid "Long-term amortized expenses" +msgstr "长期待摊销费用" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1511 +#: model:account.account,name:l10n_cn.2_l10n_cn_1511 +#: model:account.account.template,name:l10n_cn.l10n_cn_1511 +msgid "Long-term equity investment" +msgstr "长期股权投资" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1531 +#: model:account.account,name:l10n_cn.2_l10n_cn_1531 +#: model:account.account.template,name:l10n_cn.l10n_cn_1531 +msgid "Long-term receivables" +msgstr "长期应收款" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6401 +#: model:account.account,name:l10n_cn.2_l10n_cn_6401 +#: model:account.account.template,name:l10n_cn.l10n_cn_6401 +msgid "Main Business Cost" +msgstr "主营营业成本" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6001 +#: model:account.account,name:l10n_cn.2_l10n_cn_6001 +#: model:account.account.template,name:l10n_cn.l10n_cn_6001 +msgid "Main Business Income" +msgstr "主营营业收入" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6602 +#: model:account.account,name:l10n_cn.2_l10n_cn_6602 +#: model:account.account.template,name:l10n_cn.l10n_cn_6602 +msgid "Management Expenses" +msgstr "管理費用" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_5101 +#: model:account.account,name:l10n_cn.2_l10n_cn_5101 +#: model:account.account.template,name:l10n_cn.l10n_cn_5101 +msgid "Manufacturing Expenses" +msgstr "制造費用" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1404 +#: model:account.account,name:l10n_cn.2_l10n_cn_1404 +#: model:account.account.template,name:l10n_cn.l10n_cn_1404 +msgid "Material Cost Variance" +msgstr "材料成本差异" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1401 +#: model:account.account,name:l10n_cn.2_l10n_cn_1401 +#: model:account.account.template,name:l10n_cn.l10n_cn_1401 +msgid "Material Purchasing" +msgstr "材料采购" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1402 +#: model:account.account,name:l10n_cn.2_l10n_cn_1402 +#: model:account.account.template,name:l10n_cn.l10n_cn_1402 +msgid "Materials in transit" +msgstr "在途物资" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1405 +#: model:account.account,name:l10n_cn.2_l10n_cn_1405 +#: model:account.account.template,name:l10n_cn.l10n_cn_1405 +msgid "Merchandise Inventory" +msgstr "库存商品" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6301 +#: model:account.account,name:l10n_cn.2_l10n_cn_6301 +#: model:account.account.template,name:l10n_cn.l10n_cn_6301 +msgid "Non-operating Income" +msgstr "营业外收入" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6711 +#: model:account.account,name:l10n_cn.2_l10n_cn_6711 +#: model:account.account.template,name:l10n_cn.l10n_cn_6711 +msgid "Non-operating expenses" +msgstr "营业外支出" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6403 +#: model:account.account,name:l10n_cn.2_l10n_cn_6403 +#: model:account.account.template,name:l10n_cn.l10n_cn_6403 +msgid "Operating Taxes and Surcharges" +msgstr "营业税及附加" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6051 +#: model:account.account,name:l10n_cn.2_l10n_cn_6051 +#: model:account.account.template,name:l10n_cn.l10n_cn_6051 +msgid "Other Business Income" +msgstr "其他业务收入" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_4003 +#: model:account.account,name:l10n_cn.2_l10n_cn_4003 +#: model:account.account.template,name:l10n_cn.l10n_cn_4003 +msgid "Other Comprehensive Income" +msgstr "其他综合收益" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1012 +#: model:account.account,name:l10n_cn.2_l10n_cn_1012 +#: model:account.account.template,name:l10n_cn.l10n_cn_1012 +msgid "Other Monetary Funds" +msgstr "其他货币资金" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6402 +#: model:account.account,name:l10n_cn.2_l10n_cn_6402 +#: model:account.account.template,name:l10n_cn.l10n_cn_6402 +msgid "Other Operating Costs" +msgstr "其他业务成本" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1221 +#: model:account.account,name:l10n_cn.2_l10n_cn_1221 +#: model:account.account.template,name:l10n_cn.l10n_cn_1221 +msgid "Other Receivable" +msgstr "其他应收款" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2501 +#: model:account.account,name:l10n_cn.2_l10n_cn_2501 +#: model:account.account.template,name:l10n_cn.l10n_cn_2501 +msgid "Other payable" +msgstr "其他应付款" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_4001 +#: model:account.account,name:l10n_cn.2_l10n_cn_4001 +#: model:account.account.template,name:l10n_cn.l10n_cn_4001 +msgid "Paid in capital" +msgstr "实收资本" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2211 +#: model:account.account,name:l10n_cn.2_l10n_cn_2211 +#: model:account.account.template,name:l10n_cn.l10n_cn_2211 +msgid "Payroll payable" +msgstr "应付职工薪酬" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6901 +#: model:account.account,name:l10n_cn.2_l10n_cn_6901 +#: model:account.account.template,name:l10n_cn.l10n_cn_6901 +msgid "Prior year income adjustment" +msgstr "以前年度损益调整" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_5001 +#: model:account.account,name:l10n_cn.2_l10n_cn_5001 +#: model:account.account.template,name:l10n_cn.l10n_cn_5001 +msgid "Production Costs" +msgstr "生产成本" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_4104 +#: model:account.account,name:l10n_cn.2_l10n_cn_4104 +#: model:account.account.template,name:l10n_cn.l10n_cn_4104 +msgid "Profit distribution" +msgstr "利润分配" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_4103 +#: model:account.account,name:l10n_cn.2_l10n_cn_4103 +#: model:account.account.template,name:l10n_cn.l10n_cn_4103 +msgid "Profit for the year" +msgstr "本年利润" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2801 +#: model:account.account,name:l10n_cn.2_l10n_cn_2801 +#: model:account.account.template,name:l10n_cn.l10n_cn_2801 +msgid "Projected liabilities" +msgstr "预计负债" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1502 +#: model:account.account,name:l10n_cn.2_l10n_cn_1502 +#: model:account.account.template,name:l10n_cn.l10n_cn_1502 +msgid "Provision for impairment of investments held to maturity" +msgstr "持有至到期投资的减值准备" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_5301 +#: model:account.account,name:l10n_cn.2_l10n_cn_5301 +#: model:account.account.template,name:l10n_cn.l10n_cn_5301 +msgid "R & D expenditure" +msgstr "研发支出" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1403 +#: model:account.account,name:l10n_cn.2_l10n_cn_1403 +#: model:account.account.template,name:l10n_cn.l10n_cn_1403 +msgid "Raw Material" +msgstr "原材料" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_6601 +#: model:account.account,name:l10n_cn.2_l10n_cn_6601 +#: model:account.account.template,name:l10n_cn.l10n_cn_6601 +msgid "Selling Expenses" +msgstr "销售费用" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_5201 +#: model:account.account,name:l10n_cn.2_l10n_cn_5201 +#: model:account.account.template,name:l10n_cn.l10n_cn_5201 +msgid "Service Cost" +msgstr "劳务成本" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2001 +#: model:account.account,name:l10n_cn.2_l10n_cn_2001 +#: model:account.account.template,name:l10n_cn.l10n_cn_2001 +msgid "Short-term borrowing" +msgstr "短期借款" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_4101 +#: model:account.account,name:l10n_cn.2_l10n_cn_4101 +#: model:account.account.template,name:l10n_cn.l10n_cn_4101 +msgid "Surplus Reserve" +msgstr "盈余公积" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_2221 +#: model:account.account,name:l10n_cn.2_l10n_cn_2221 +#: model:account.account.template,name:l10n_cn.l10n_cn_2221 +msgid "Tax payable" +msgstr "应交税金" + +#. module: l10n_cn +#: model:account.account,name:l10n_cn.1_l10n_cn_1101 +#: model:account.account,name:l10n_cn.2_l10n_cn_1101 +#: model:account.account.template,name:l10n_cn.l10n_cn_1101 +msgid "Transactional Financial Assets" +msgstr "交易性金融资产" + +#. module: l10n_cn +#: model:account.tax.group,name:l10n_cn.l10n_cn_tax_group_vat_13 +msgid "VAT 13%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.group,name:l10n_cn.l10n_cn_tax_group_vat_6 +msgid "VAT 6%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax.group,name:l10n_cn.l10n_cn_tax_group_vat_9 +msgid "VAT 9%" +msgstr "" + +#. module: l10n_cn +#: model:account.chart.template,name:l10n_cn.l10n_chart_china_small_business +msgid "小企业会计科目表(财会[2011]17号《小企业会计准则》)" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.1_l10n_cn_purchase_excluded_13 +#: model:account.tax,description:l10n_cn.1_l10n_cn_sales_excluded_13 +#: model:account.tax,description:l10n_cn.2_l10n_cn_purchase_excluded_13 +#: model:account.tax,description:l10n_cn.2_l10n_cn_sales_excluded_13 +#: model:account.tax,name:l10n_cn.1_l10n_cn_purchase_excluded_13 +#: model:account.tax,name:l10n_cn.1_l10n_cn_sales_excluded_13 +#: model:account.tax,name:l10n_cn.2_l10n_cn_purchase_excluded_13 +#: model:account.tax,name:l10n_cn.2_l10n_cn_sales_excluded_13 +#: model:account.tax.template,description:l10n_cn.l10n_cn_purchase_excluded_13 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_excluded_13 +#: model:account.tax.template,name:l10n_cn.l10n_cn_purchase_excluded_13 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_excluded_13 +msgid "税收13%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.1_l10n_cn_sales_included_13 +#: model:account.tax,description:l10n_cn.2_l10n_cn_sales_included_13 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_included_13 +msgid "税收13%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,name:l10n_cn.1_l10n_cn_sales_included_13 +#: model:account.tax,name:l10n_cn.2_l10n_cn_sales_included_13 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_included_13 +msgid "税收13%(含)" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,name:l10n_cn.1_l10n_cn_purchase_excluded_6 +#: model:account.tax,name:l10n_cn.1_l10n_cn_sales_excluded_6 +#: model:account.tax,name:l10n_cn.2_l10n_cn_purchase_excluded_6 +#: model:account.tax,name:l10n_cn.2_l10n_cn_sales_excluded_6 +#: model:account.tax.template,name:l10n_cn.l10n_cn_purchase_excluded_6 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_excluded_6 +msgid "税收6%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.1_l10n_cn_purchase_excluded_6 +#: model:account.tax,description:l10n_cn.1_l10n_cn_sales_excluded_6 +#: model:account.tax,description:l10n_cn.1_l10n_cn_sales_included_6 +#: model:account.tax,description:l10n_cn.2_l10n_cn_purchase_excluded_6 +#: model:account.tax,description:l10n_cn.2_l10n_cn_sales_excluded_6 +#: model:account.tax,description:l10n_cn.2_l10n_cn_sales_included_6 +#: model:account.tax.template,description:l10n_cn.l10n_cn_purchase_excluded_6 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_excluded_6 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_included_6 +msgid "税收6%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,name:l10n_cn.1_l10n_cn_sales_included_6 +#: model:account.tax,name:l10n_cn.2_l10n_cn_sales_included_6 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_included_6 +msgid "税收6%(含)" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.1_l10n_cn_purchase_excluded_9 +#: model:account.tax,description:l10n_cn.1_l10n_cn_sales_excluded_9 +#: model:account.tax,description:l10n_cn.2_l10n_cn_purchase_excluded_9 +#: model:account.tax,description:l10n_cn.2_l10n_cn_sales_excluded_9 +#: model:account.tax,name:l10n_cn.1_l10n_cn_purchase_excluded_9 +#: model:account.tax,name:l10n_cn.1_l10n_cn_sales_excluded_9 +#: model:account.tax,name:l10n_cn.2_l10n_cn_purchase_excluded_9 +#: model:account.tax,name:l10n_cn.2_l10n_cn_sales_excluded_9 +#: model:account.tax.template,description:l10n_cn.l10n_cn_purchase_excluded_9 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_excluded_9 +#: model:account.tax.template,name:l10n_cn.l10n_cn_purchase_excluded_9 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_excluded_9 +msgid "税收9%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,description:l10n_cn.1_l10n_cn_sales_included_9 +#: model:account.tax,description:l10n_cn.2_l10n_cn_sales_included_9 +#: model:account.tax.template,description:l10n_cn.l10n_cn_sales_included_9 +msgid "税收9%" +msgstr "" + +#. module: l10n_cn +#: model:account.tax,name:l10n_cn.1_l10n_cn_sales_included_9 +#: model:account.tax,name:l10n_cn.2_l10n_cn_sales_included_9 +#: model:account.tax.template,name:l10n_cn.l10n_cn_sales_included_9 +msgid "税收9%(含)" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/migrations/1.9/pre-migrate.py b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/migrations/1.9/pre-migrate.py new file mode 100644 index 0000000..b1bff8c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/migrations/1.9/pre-migrate.py @@ -0,0 +1,9 @@ +def migrate(cr, version): + # Set noupdate property of "account.tax.template" records to False + cr.execute( + """UPDATE ir_model_data + SET noupdate=false + WHERE module='l10n_cn' + AND model='account.tax.template' + """ + ) diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/models/__init__.py b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/models/__init__.py new file mode 100644 index 0000000..c0124ef --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import account_move diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/models/account_move.py b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/models/account_move.py new file mode 100644 index 0000000..50cde9a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/models/account_move.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models, _ +from odoo.exceptions import ValidationError +from odoo.osv import expression + +try: + from cn2an import an2cn +except ImportError: + an2cn = None + +class AccountMove(models.Model): + _inherit = 'account.move' + + fapiao = fields.Char(string='Fapiao Number', size=8, copy=False, tracking=True) + + @api.constrains('fapiao') + def _check_fapiao(self): + for record in self: + if record.fapiao and (len(record.fapiao) != 8 or not record.fapiao.isdecimal()): + raise ValidationError(_("Fapiao number is an 8-digit number. Please enter a correct one.")) + + @api.model + def check_cn2an(self): + return an2cn + + @api.model + def _convert_to_amount_in_word(self, number): + """Convert number to ``amount in words`` for Chinese financial usage.""" + if not self.check_cn2an(): + return None + return an2cn(number, 'rmb') + + def _count_attachments(self): + domains = [[('res_model', '=', 'account.move'), ('res_id', '=', self.id)]] + statement_ids = self.line_ids.mapped('statement_id') + payment_ids = self.line_ids.mapped('payment_id') + if statement_ids: + domains.append([('res_model', '=', 'account.bank.statement'), ('res_id', 'in', statement_ids.ids)]) + if payment_ids: + domains.append([('res_model', '=', 'account.payment'), ('res_id', 'in', payment_ids.ids)]) + return self.env['ir.attachment'].search_count(expression.OR(domains)) diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/static/description/icon.png b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a38b21c3c03165d2f2d1ce4a983dcfe953718f42 GIT binary patch literal 1652 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Yt4rT@hhUEVyOBom#zXte(xcd8t&78TQt81dY zy{oyojjOAtxw+jZ28O7plocyi2Zu!1+B&7CW%u<>EGQ^ROicIn4bI3cJT55Y;Nb4# z6WG%`;s1Sx@`}n6LL%wud6TD1kBm%qaBw>*ED|1`5D*X^6_x1g8}k4E|Hh_{&%6xr z@fnMkEO&GBad!6f^b9yHDi#(N|5=KmtgOn*%Re(SHz6S{G&C+RugucY?q>@_U47HS zMN91LTp}V8%gd`hJp68{s00T`U6GTUGk0EKV0cha)F*a^sOb1lObkEL8A3v$zZx)v zg~!_4yIEP;FJ7{2`t&)oX3r}uEIT76nVDHwR9qDp7}?W1F*7sE$0zuE9K$yUhQB)) zK8rC-m^jtZ(Zkx>p{Azs?>>g??84;atoDu`KfmCZn56QG`YBUq9OdJmI(24BO70g$ zhKthD^XD%L4vzii$?&U(;qOs~s;aubrxX*^p|!RBXFbFB2!=134Bx{Te&jQJ3t;%7&hXWS;ol90?w*Oimoh{}#sAsN@I8s) z_e_RA>lpTlOYRXB4|VnS_6~mf^m$!f>&=_DckbM~X3eI#^A`5?Pui)#^NfLk#mdvg zF(l*O)f+#frClZ1KbWU^e(TV@#-i%!X_o7eu9yRuSEE@4h@~O#(Gl%B=I^;h^fBz=`pPZYo z>t?-szWd5b*UVi0g_wLivtzO3;4a&DzT9-d#Wz3t) zzm>PF*!-NU^=R9Du2%Uir^5XI7&)(9HPM(iEA9Cy*-wx2s>}_(FIV~-D7n~iR&r>- z3dQW;8;YhCubx~u+Wxw>adBUMc(GOLWU0tAKhNt=bI(Uz^n-|FVp~Ywv7E%H^Z1D8>bnnn znu6G`-(4yGO~G|KQ{d0LZE3t~;C8(oeyS`k-*)YrW zO$^TT^xV(7N`6gn=TpurQW_@bx6cm9O_=NTMsR~=)6%X&rdP3hR3!HIMlW90*dTP~ zQs2T`4O32acgzTIRaoZ2C-`J>#NtJ@Pp+(J>G*X#e8Lrj3Bl0;o4LJB8-24Z0_L_z ziuT@KsuwT4%(?+J*R2I%D2L&*Tk=1X-@dL z71zSjt}ONLS>fU!@I}=r-Xdyc;IG3K{cJC!8xC(-@%Pq2^))ECUh(iLz4Ekq_NFGS^5mc;A!l9$%y68#TXBA^lh?_O ze95bl6NI#T1%r1KIV%}mifAkEog{8iB6f^#+fH{)X%+ofSKj)bcD?7zHM2tGuhr?N zZ=OU3?zPd*vO3k(C0-d8B7MH=)ziqp+Q76BL4DDMN75El*l|zt4%*)t@}_yJ#9LO+ z>ARv6E{U%$Z_GO6?0>xW`h#y>=hZ9cro9P`*;Q+If31p2{{2%wGSn{@sm}bv|AH_6 Vy!E+j0t^fc44$rjF6*2UngAfn5$gZ| literal 0 HcmV?d00001 diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/static/description/icon.svg b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/static/description/icon.svg new file mode 100644 index 0000000..a2b9687 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/static/description/icon.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/views/account_move_view.xml b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/views/account_move_view.xml new file mode 100644 index 0000000..7febad4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/views/account_move_view.xml @@ -0,0 +1,17 @@ + + + + + l10n_cn.account.move.form + account.move + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/views/account_report.xml b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/views/account_report.xml new file mode 100644 index 0000000..501d5c0 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/views/account_report.xml @@ -0,0 +1,16 @@ + + + + + + Voucher + account.move + qweb-pdf + l10n_cn.report_voucher + l10n_cn.report_voucher + 'Voucher_%s' % (object.name) + form + + + + diff --git a/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/views/report_voucher.xml b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/views/report_voucher.xml new file mode 100644 index 0000000..dad31b7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/l10n_cn/views/report_voucher.xml @@ -0,0 +1,121 @@ + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_cn/pyproject.toml b/odoo-bringout-oca-ocb-l10n_cn/pyproject.toml new file mode 100644 index 0000000..dcab757 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_cn/pyproject.toml @@ -0,0 +1,44 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_cn" +version = "16.0.0" +description = "China - Accounting - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-base>=16.0.0", + "odoo-bringout-oca-ocb-account>=16.0.0", + "odoo-bringout-oca-ocb-l10n_multilang>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_cn"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_din5008/README.md b/odoo-bringout-oca-ocb-l10n_din5008/README.md new file mode 100644 index 0000000..3929104 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/README.md @@ -0,0 +1,44 @@ +# DIN 5008 + +This is the base module that defines the DIN 5008 standard in Odoo. + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_din5008 +``` + +## Dependencies + +This addon depends on: +- account + +## Manifest Information + +- **Name**: DIN 5008 +- **Version**: 1.0 +- **Category**: Accounting/Localizations +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_din5008`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/ARCHITECTURE.md new file mode 100644 index 0000000..fd482da --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_din5008 Module - l10n_din5008 + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/CONFIGURATION.md new file mode 100644 index 0000000..367b24b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_din5008. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/DEPENDENCIES.md new file mode 100644 index 0000000..99c6b28 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [account](../../odoo-bringout-oca-ocb-account) diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/FAQ.md new file mode 100644 index 0000000..fc8e9fe --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_din5008 or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/INSTALL.md new file mode 100644 index 0000000..f91977a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_din5008" +# or +uv pip install odoo-bringout-oca-ocb-l10n_din5008" +``` diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/MODELS.md new file mode 100644 index 0000000..3f9512a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/MODELS.md @@ -0,0 +1,14 @@ +# Models + +Detected core models and extensions in l10n_din5008. + +```mermaid +classDiagram + class account_analytic_line + class account_move + class base_document_layout +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/OVERVIEW.md new file mode 100644 index 0000000..d756fa1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_din5008. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_din5008 +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/REPORTS.md new file mode 100644 index 0000000..fa22fab --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/REPORTS.md @@ -0,0 +1,22 @@ +# Reports + +Report definitions and templates in l10n_din5008. + +```mermaid +classDiagram +``` + +## Available Reports + +No named reports found in XML files. + + +## Report Files + +- **din5008_report.xml** (XML template/definition) + +## Notes +- Named reports above are accessible through Odoo's reporting menu +- Python files define report logic and data processing +- XML files contain report templates, definitions, and formatting +- Reports are integrated with Odoo's printing and email systems diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/USAGE.md new file mode 100644 index 0000000..6c6a529 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_din5008 +``` diff --git a/odoo-bringout-oca-ocb-l10n_din5008/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_din5008/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/__init__.py b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/__init__.py new file mode 100644 index 0000000..dc5e6b6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/__manifest__.py b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/__manifest__.py new file mode 100644 index 0000000..b6529e1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/__manifest__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'DIN 5008', + 'version': '1.0', + 'category': 'Accounting/Localizations', + 'description': "This is the base module that defines the DIN 5008 standard in Odoo.", + 'author': 'Odoo SA', + 'depends': ['account'], + 'data': [ + 'report/din5008_report.xml', + 'data/report_layout.xml', + ], + 'assets': { + 'web.report_assets_common': [ + 'l10n_din5008/static/src/**/*', + ], + }, + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/data/report_layout.xml b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/data/report_layout.xml new file mode 100644 index 0000000..5be870b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/data/report_layout.xml @@ -0,0 +1,11 @@ + + + + + + + + DIN 5008 + + + diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/de.po b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/de.po new file mode 100644 index 0000000..e76cb9a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/de.po @@ -0,0 +1,311 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:49+0000\n" +"PO-Revision-Date: 2024-02-14 08:46+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +"&.din_page {\n" +" &.header {\n" +" .company_header {\n" +" .name_container {\n" +" color:" +msgstr "" +"&.din_page {\n" +" &.header {\n" +" .company_header {\n" +" .name_container {\n" +" color:" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +";\n" +" }\n" +" }\n" +" }\n" +" h2 {\n" +" color:" +msgstr "" +";\n" +" }\n" +" }\n" +" }\n" +" h2 {\n" +" color:" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +";\n" +" }\n" +" }\n" +" }\n" +" &.invoice_note {\n" +" td {\n" +" .address {\n" +" > span {\n" +" color:" +msgstr "" +";\n" +" }\n" +" }\n" +" }\n" +" &.invoice_note {\n" +" td {\n" +" .address {\n" +" > span {\n" +" color:" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +";\n" +" }\n" +" .page {\n" +" [name=invoice_line_table], " +"[name=stock_move_table], .o_main_table {\n" +" th {\n" +" color:" +msgstr "" +";\n" +" }\n" +" .page {\n" +" [name=invoice_line_table], " +"[name=stock_move_table], .o_main_table {\n" +" th {\n" +" color:" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "|" +msgstr "|" + +#. module: l10n_din5008 +#: model:ir.model,name:l10n_din5008.model_account_analytic_line +msgid "Analytic Line" +msgstr "Kostenstellenbuchung" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "BIC:" +msgstr "BIC:" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__bank_ids +msgid "Banks" +msgstr "Banken" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Cancelled Invoice" +msgstr "Stornierte Rechnung" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__city +msgid "City" +msgstr "Stadt" + +#. module: l10n_din5008 +#: model:ir.model,name:l10n_din5008.model_base_document_layout +msgid "Company Document Layout" +msgstr "Dokumentlayout des Unternehmens" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__company_registry +msgid "Company ID" +msgstr "Unternehmens-ID" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Credit Note" +msgstr "Gutschrift" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Draft Invoice" +msgstr "Rechnungsentwurf" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Due Date" +msgstr "Fälligkeitsdatum" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__account_fiscal_country_id +msgid "Fiscal Country" +msgstr "Steuerland" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "HRB Nr:" +msgstr "HRB-Nr.:" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "IBAN:" +msgstr "IBAN:" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Invoice" +msgstr "Rechnung" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Invoice Date" +msgstr "Rechnungsdatum" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Invoice No." +msgstr "Rechnungsnr." + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Invoicing Address:" +msgstr "Rechnungsadresse:" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Invoicing and Shipping Address:" +msgstr "Rechnungs- und Lieferadresse:" + +#. module: l10n_din5008 +#: model:ir.model,name:l10n_din5008.model_account_move +msgid "Journal Entry" +msgstr "Journalbuchung" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_addresses +#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_addresses +#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_addresses +msgid "L10N Din5008 Addresses" +msgstr "L10N Din5008 Adressen" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_document_title +msgid "L10N Din5008 Document Title" +msgstr "L10N Din5008 Dokumenttitel" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_template_data +msgid "L10N Din5008 Template Data" +msgstr "L10N Din5008 Vorlagendaten" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "Page: of " +msgstr "Seite: von " + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Reference" +msgstr "Referenz" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Shipping Address:" +msgstr "Lieferadresse:" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Source" +msgstr "Verweis" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street +msgid "Street" +msgstr "Straße" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street2 +msgid "Street2" +msgstr "Straße 2" + +#. module: l10n_din5008 +#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__account_fiscal_country_id +msgid "The country to use the tax reports from for this company" +msgstr "" +"Das Land, aus dem die Steuerberichte für dieses Unternehmen zu verwenden sind" + +#. module: l10n_din5008 +#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__company_registry +msgid "" +"The registry number of the company. Use it if it is different from the Tax " +"ID. It must be unique across all partners of a same country" +msgstr "" +"Die Registernummer des Unternehmens. Verwenden Sie diese, wenn sie sich von " +"der USt-IdNr. unterscheidet. Sie muss für alle Partner desselben Landes " +"eindeutig sein." + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Vendor Bill" +msgstr "Lieferantenrechnung" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Vendor Credit Note" +msgstr "Lieferantengutschrift" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__zip +msgid "Zip" +msgstr "Postleitzahl" diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/fr.po b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/fr.po new file mode 100644 index 0000000..fcd1f18 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/fr.po @@ -0,0 +1,284 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:49+0000\n" +"PO-Revision-Date: 2024-02-14 09:13+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +"&.din_page {\n" +" &.header {\n" +" .company_header {\n" +" .name_container {\n" +" color:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +";\n" +" }\n" +" }\n" +" }\n" +" h2 {\n" +" color:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +";\n" +" }\n" +" }\n" +" }\n" +" &.invoice_note {\n" +" td {\n" +" .address {\n" +" > span {\n" +" color:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +";\n" +" }\n" +" .page {\n" +" [name=invoice_line_table], " +"[name=stock_move_table], .o_main_table {\n" +" th {\n" +" color:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "|" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model,name:l10n_din5008.model_account_analytic_line +msgid "Analytic Line" +msgstr "Ligne analytique" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "BIC:" +msgstr "BIC :" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__bank_ids +msgid "Banks" +msgstr "Banques" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Cancelled Invoice" +msgstr "Facture annulée" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__city +msgid "City" +msgstr "Ville" + +#. module: l10n_din5008 +#: model:ir.model,name:l10n_din5008.model_base_document_layout +msgid "Company Document Layout" +msgstr "Mise en page des documents de votre société" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__company_registry +msgid "Company ID" +msgstr "ID de la société" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Credit Note" +msgstr "Note de crédit" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Draft Invoice" +msgstr "Facture en brouillon" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Due Date" +msgstr "Date d'échéance" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__account_fiscal_country_id +msgid "Fiscal Country" +msgstr "Pays d'imposition" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "HRB Nr:" +msgstr "Numéro HRB :" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "IBAN:" +msgstr "IBAN :" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Invoice" +msgstr "Facture client" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Invoice Date" +msgstr "Date de facturation" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Invoice No." +msgstr "N° de facture" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Invoicing Address:" +msgstr "Adresse de facturation :" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Invoicing and Shipping Address:" +msgstr "Adresse de facturation et d'expédition :" + +#. module: l10n_din5008 +#: model:ir.model,name:l10n_din5008.model_account_move +msgid "Journal Entry" +msgstr "Pièce comptable" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_addresses +#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_addresses +#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_addresses +msgid "L10N Din5008 Addresses" +msgstr "Adresses L10N Din5008" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_document_title +msgid "L10N Din5008 Document Title" +msgstr "Titre du document L10N Din5008" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_template_data +msgid "L10N Din5008 Template Data" +msgstr "Données de modèle L10N Din5008" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "Page: of " +msgstr "Page: sur " + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Reference" +msgstr "Référence" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Shipping Address:" +msgstr "Adresse de livraison :" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Source" +msgstr "Source" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street +msgid "Street" +msgstr "Rue" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street2 +msgid "Street2" +msgstr "Rue 2" + +#. module: l10n_din5008 +#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__account_fiscal_country_id +msgid "The country to use the tax reports from for this company" +msgstr "" +"Le pays à partir duquel utiliser les déclarations fiscales pour cette société" + +#. module: l10n_din5008 +#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__company_registry +msgid "" +"The registry number of the company. Use it if it is different from the Tax " +"ID. It must be unique across all partners of a same country" +msgstr "" +"Le numéro de registre de la société. Utilisez-le s'il est différent du " +"numéro d'identification fiscale. Il doit être unique pour tous les " +"partenaires d'un même pays" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Vendor Bill" +msgstr "Facture fournisseur" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Vendor Credit Note" +msgstr "Avoir fournisseur" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__zip +msgid "Zip" +msgstr "Code postal" diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/it.po b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/it.po new file mode 100644 index 0000000..d352dfa --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/it.po @@ -0,0 +1,282 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:49+0000\n" +"PO-Revision-Date: 2024-02-14 09:14+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +"&.din_page {\n" +" &.header {\n" +" .company_header {\n" +" .name_container {\n" +" color:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +";\n" +" }\n" +" }\n" +" }\n" +" h2 {\n" +" color:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +";\n" +" }\n" +" }\n" +" }\n" +" &.invoice_note {\n" +" td {\n" +" .address {\n" +" > span {\n" +" color:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +";\n" +" }\n" +" .page {\n" +" [name=invoice_line_table], " +"[name=stock_move_table], .o_main_table {\n" +" th {\n" +" color:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "|" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model,name:l10n_din5008.model_account_analytic_line +msgid "Analytic Line" +msgstr "Riga analitica" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "BIC:" +msgstr "BIC:" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__bank_ids +msgid "Banks" +msgstr "Banche" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Cancelled Invoice" +msgstr "Fattura annullata" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__city +msgid "City" +msgstr "Città" + +#. module: l10n_din5008 +#: model:ir.model,name:l10n_din5008.model_base_document_layout +msgid "Company Document Layout" +msgstr "Struttura documenti azienda" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__company_registry +msgid "Company ID" +msgstr "ID Azienda" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Credit Note" +msgstr "Nota di credito" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Draft Invoice" +msgstr "Fattura in bozza" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Due Date" +msgstr "Scadenza" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__account_fiscal_country_id +msgid "Fiscal Country" +msgstr "Paese fiscale" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "HRB Nr:" +msgstr "No HRB:" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "IBAN:" +msgstr "Codice IBAN:" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Invoice" +msgstr "Fattura" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Invoice Date" +msgstr "Data fattura" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Invoice No." +msgstr "Fattura n." + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Invoicing Address:" +msgstr "Indirizzo di fatturazione:" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Invoicing and Shipping Address:" +msgstr "Indirizzo di fatturazione e spedizione:" + +#. module: l10n_din5008 +#: model:ir.model,name:l10n_din5008.model_account_move +msgid "Journal Entry" +msgstr "Registrazioni contabili" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_addresses +#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_addresses +#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_addresses +msgid "L10N Din5008 Addresses" +msgstr "Indirizzi L10N Din5008" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_document_title +msgid "L10N Din5008 Document Title" +msgstr "Titolo del documento L10N Din5008" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_template_data +msgid "L10N Din5008 Template Data" +msgstr "Dati modello L10N Din5008" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "Page: of " +msgstr "Pagina: di " + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Reference" +msgstr "Riferimento" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Shipping Address:" +msgstr "Indirizzo di spedizione:" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Source" +msgstr "Fonte" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street +msgid "Street" +msgstr "Strada" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street2 +msgid "Street2" +msgstr "Strada 2" + +#. module: l10n_din5008 +#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__account_fiscal_country_id +msgid "The country to use the tax reports from for this company" +msgstr "Il paese da cui utilizzare i report fiscali per questa società" + +#. module: l10n_din5008 +#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__company_registry +msgid "" +"The registry number of the company. Use it if it is different from the Tax " +"ID. It must be unique across all partners of a same country" +msgstr "" +"Il numero di registro dell'azienda. Inseriscilo se è diverso dalla partita " +"IVA. Deve essere unico per tutti i partner di una stessa nazione" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Vendor Bill" +msgstr "Fattura fornitore" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Vendor Credit Note" +msgstr "Nota di credito fornitore" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__zip +msgid "Zip" +msgstr "CAP" diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/l10n_din5008.pot b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/l10n_din5008.pot new file mode 100644 index 0000000..735b9e6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/i18n/l10n_din5008.pot @@ -0,0 +1,278 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008 +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:49+0000\n" +"PO-Revision-Date: 2024-02-13 21:49+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_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +"&.din_page {\n" +" &.header {\n" +" .company_header {\n" +" .name_container {\n" +" color:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +";\n" +" }\n" +" }\n" +" }\n" +" h2 {\n" +" color:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +";\n" +" }\n" +" }\n" +" }\n" +" &.invoice_note {\n" +" td {\n" +" .address {\n" +" > span {\n" +" color:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.din5008_css +msgid "" +";\n" +" }\n" +" .page {\n" +" [name=invoice_line_table], [name=stock_move_table], .o_main_table {\n" +" th {\n" +" color:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "|" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model,name:l10n_din5008.model_account_analytic_line +msgid "Analytic Line" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "BIC:" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__bank_ids +msgid "Banks" +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Cancelled Invoice" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__city +msgid "City" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model,name:l10n_din5008.model_base_document_layout +msgid "Company Document Layout" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__company_registry +msgid "Company ID" +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Credit Note" +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Draft Invoice" +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Due Date" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__account_fiscal_country_id +msgid "Fiscal Country" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "HRB Nr:" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "IBAN:" +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Invoice" +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Invoice Date" +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Invoice No." +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Invoicing Address:" +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Invoicing and Shipping Address:" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model,name:l10n_din5008.model_account_move +msgid "Journal Entry" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_addresses +#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_addresses +#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_addresses +msgid "L10N Din5008 Addresses" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_document_title +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_document_title +msgid "L10N Din5008 Document Title" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_account_analytic_line__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_account_bank_statement_line__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_account_move__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_account_payment__l10n_din5008_template_data +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__l10n_din5008_template_data +msgid "L10N Din5008 Template Data" +msgstr "" + +#. module: l10n_din5008 +#: model_terms:ir.ui.view,arch_db:l10n_din5008.external_layout_din5008 +msgid "Page: of " +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#: code:addons/l10n_din5008/models/base_document_layout.py:0 +#, python-format +msgid "Reference" +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Shipping Address:" +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Source" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street +msgid "Street" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__street2 +msgid "Street2" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__account_fiscal_country_id +msgid "The country to use the tax reports from for this company" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model.fields,help:l10n_din5008.field_base_document_layout__company_registry +msgid "" +"The registry number of the company. Use it if it is different from the Tax " +"ID. It must be unique across all partners of a same country" +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Vendor Bill" +msgstr "" + +#. module: l10n_din5008 +#. odoo-python +#: code:addons/l10n_din5008/models/account_move.py:0 +#, python-format +msgid "Vendor Credit Note" +msgstr "" + +#. module: l10n_din5008 +#: model:ir.model.fields,field_description:l10n_din5008.field_base_document_layout__zip +msgid "Zip" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/__init__.py b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/__init__.py new file mode 100644 index 0000000..5205f97 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import base_document_layout +from . import account_move +from . import hr_timesheet diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/account_move.py b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/account_move.py new file mode 100644 index 0000000..a83974a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/account_move.py @@ -0,0 +1,58 @@ +from odoo import models, fields, _ +from odoo.tools import format_date + + +class AccountMove(models.Model): + _inherit = 'account.move' + + l10n_din5008_template_data = fields.Binary(compute='_compute_l10n_din5008_template_data') + l10n_din5008_document_title = fields.Char(compute='_compute_l10n_din5008_document_title') + l10n_din5008_addresses = fields.Binary(compute='_compute_l10n_din5008_addresses', exportable=False) + + def _compute_l10n_din5008_template_data(self): + for record in self: + record.l10n_din5008_template_data = data = [] + if record.name: + data.append((_("Invoice No."), record.name)) + if record.invoice_date: + data.append((_("Invoice Date"), format_date(self.env, record.invoice_date))) + if record.invoice_date_due: + data.append((_("Due Date"), format_date(self.env, record.invoice_date_due))) + if record.invoice_origin: + data.append((_("Source"), record.invoice_origin)) + if record.ref: + data.append((_("Reference"), record.ref)) + + def _compute_l10n_din5008_document_title(self): + for record in self: + record.l10n_din5008_document_title = '' + if record.move_type == 'out_invoice': + if record.state == 'posted': + record.l10n_din5008_document_title = _('Invoice') + elif record.state == 'draft': + record.l10n_din5008_document_title = _('Draft Invoice') + elif record.state == 'cancel': + record.l10n_din5008_document_title = _('Cancelled Invoice') + elif record.move_type == 'out_refund': + record.l10n_din5008_document_title = _('Credit Note') + elif record.move_type == 'in_refund': + record.l10n_din5008_document_title = _('Vendor Credit Note') + elif record.move_type == 'in_invoice': + record.l10n_din5008_document_title = _('Vendor Bill') + + def _compute_l10n_din5008_addresses(self): + for record in self: + record.l10n_din5008_addresses = data = [] + if record.partner_shipping_id == record.partner_id: + data.append((_("Invoicing and Shipping Address:"), record.partner_shipping_id)) + elif record.move_type in ("in_invoice", "in_refund") or not record.partner_shipping_id: + data.append((_("Invoicing and Shipping Address:"), record.partner_id)) + else: + data.append((_("Shipping Address:"), record.partner_shipping_id)) + data.append((_("Invoicing Address:"), record.partner_id)) + + def check_field_access_rights(self, operation, field_names): + field_names = super().check_field_access_rights(operation, field_names) + return [field_name for field_name in field_names if field_name not in { + 'l10n_din5008_addresses', + }] diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/base_document_layout.py b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/base_document_layout.py new file mode 100644 index 0000000..d825dfa --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/base_document_layout.py @@ -0,0 +1,27 @@ +from odoo import models, fields, _ +from odoo.tools import format_date + + +class BaseDocumentLayout(models.TransientModel): + _inherit = 'base.document.layout' + + street = fields.Char(related='company_id.street', readonly=True) + street2 = fields.Char(related='company_id.street2', readonly=True) + zip = fields.Char(related='company_id.zip', readonly=True) + city = fields.Char(related='company_id.city', readonly=True) + company_registry = fields.Char(related='company_id.company_registry', readonly=True) + bank_ids = fields.One2many(related='company_id.partner_id.bank_ids', readonly=True) + account_fiscal_country_id = fields.Many2one(related='company_id.account_fiscal_country_id', readonly=True) + l10n_din5008_template_data = fields.Binary(compute='_compute_l10n_din5008_template_data') + l10n_din5008_document_title = fields.Char(compute='_compute_l10n_din5008_document_title') + + def _compute_l10n_din5008_template_data(self): + self.l10n_din5008_template_data = [ + (_("Invoice No."), 'INV/2021/12345'), + (_("Invoice Date"), format_date(self.env, fields.Date.today())), + (_("Due Date"), format_date(self.env, fields.Date.add(fields.Date.today(), days=7))), + (_("Reference"), 'SO/2021/45678'), + ] + + def _compute_l10n_din5008_document_title(self): + self.l10n_din5008_document_title = _('Invoice') diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/hr_timesheet.py b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/hr_timesheet.py new file mode 100644 index 0000000..afce2f4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/models/hr_timesheet.py @@ -0,0 +1,15 @@ +from odoo import models, fields + +class AccountAnalyticLine(models.Model): + _inherit = 'account.analytic.line' + + l10n_din5008_template_data = fields.Binary(compute='_compute_l10n_din5008_template_data') + l10n_din5008_document_title = fields.Char(compute='_compute_l10n_din5008_document_title') + + def _compute_l10n_din5008_template_data(self): + for record in self: + record.l10n_din5008_template_data = [] + + def _compute_l10n_din5008_document_title(self): + for record in self: + record.l10n_din5008_document_title = '' diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/report/din5008_report.xml b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/report/din5008_report.xml new file mode 100644 index 0000000..d34206e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/report/din5008_report.xml @@ -0,0 +1,206 @@ + + + + + + + European A4 for DIN5008 Type A + + A4 + Portrait + 27 + 40 + 20 + 10 + 70 + + 27 + + + + European A4 for DIN5008 Type B + + A4 + Portrait + 45 + 40 + 20 + 10 + 70 + + 45 + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/static/src/scss/report_din5008.scss b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/static/src/scss/report_din5008.scss new file mode 100644 index 0000000..495d9c3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/l10n_din5008/static/src/scss/report_din5008.scss @@ -0,0 +1,192 @@ +.din_page { + font-size: 9pt; + + .container-fluid & { // center the invoice in portal preview + margin-left: auto; + margin-right: auto; + } + &.header { + table { + width: 100%; + img, h3, div.h3, td, tr { + padding: 0; + margin: 0; + } + h3, div.h3 { + color: $o-default-report-primary-color; + position: relative; + top: -10mm; + margin-bottom: -10mm; + } + img { + padding-top: 10mm; + float: right; + } + } + } + &.invoice_note { + tr { + td { + vertical-align: bottom; + } + &:nth-child(2) td { + vertical-align: top; + } + .address, .information_block, .shipping_address, .invoice_address { + margin: 0; + } + .address { + height: 45mm; + } + .address, .shipping_address { + width: 85mm; + padding-left: 5mm; + .company_invoice_line { + margin-top: 1mm; + } + > span { + color: $o-default-report-secondary-color; + } + } + .information_block, .invoice_address { + width: 75mm; + min-height: 40mm; + margin-left: 20mm; + table { + width: 100%; + } + } + } + h2, [name=payment_communication], [name=payment_term], [name=comment], [name=note], [name=incoterm] { + margin-left: 5mm; + margin-right: 10mm; + margin-top: 8.46mm; + color: $o-default-report-primary-color; + } + > .pt-5 { // hide hardcoded address from base.template.layout + display: none; + } + .page { + margin-left: 5mm; + margin-right: 10mm; + > h2, h1, #informations, .mt-4 > h2 { + display: none; + } + [name=invoice_line_table], [name=stock_move_table], .o_main_table { + margin-top: 8.46mm; + th { + color: $o-default-report-secondary-color; + } + } + + tr { + td { + vertical-align: bottom; + } + } + } + } + &.footer { + padding-left: 5mm; + padding-right: 10mm; + .page_number { + margin-top: 4.23mm; + width: 100%; + height: 4.23mm; + } + .company_details { + margin-top: 4.23mm; + width: 100%; + table { + border-top: solid 1px; + width: 100%; + td { + vertical-align: baseline; + padding-right: 3mm; + &:last-child { + padding-right: initial; + } + } + } + } + } +} + +.din_page_pdf { + width: 180mm; + margin-left: -1rem; +} + + +// TODO WAN remove in master +.din { + &.header { + min-height: 45mm; + max-height: 45mm; + overflow: hidden; + img { + max-height: 45mm; + } + } + .company_address { + position: relative; + left: 45mm; + top: 5mm; + width: 75mm; + min-width: 75mm; + display: inline-block; + } + .company_invoice_address { + position: relative; + left: 25mm; + top: 17.7mm; + width: 85mm; + min-width: 85mm; + margin-bottom: 1mm; + font-size: 7pt; + overflow-y: hidden; + word-break: break-word; + } + .company_invoice_line { + margin-top: 1mm; + } + .invoice_address { + position: relative; + left: 25mm; + top: 14.7mm; + width: 85mm; + height: 27.3mm; + line-height: 1.15; + overflow-y: hidden; + word-break: break-word; + float: left; + } + .header_address { + min-height: 45mm; + } + .page_number { + margin-top: 4.23mm; + margin-bottom: 4.23mm; + } + &.article { + .page { + position: relative; + top: 8.46mm; + left: 25mm; + width: 190mm; + } + .address { + margin-top: 5mm; + } + } + &.o_background_footer { + position: relative; + left: 25mm; + width: 190mm; + } + .o_account_reports_header { + .fallback_header { + display: none; + } + } +} diff --git a/odoo-bringout-oca-ocb-l10n_din5008/pyproject.toml b/odoo-bringout-oca-ocb-l10n_din5008/pyproject.toml new file mode 100644 index 0000000..0ef456e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008/pyproject.toml @@ -0,0 +1,42 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_din5008" +version = "16.0.0" +description = "DIN 5008 - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_din5008"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/README.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/README.md new file mode 100644 index 0000000..500541c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/README.md @@ -0,0 +1,45 @@ +# DIN 5008 - Repair + +Odoo addon: l10n_din5008_repair + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_din5008_repair +``` + +## Dependencies + +This addon depends on: +- l10n_din5008 +- repair + +## Manifest Information + +- **Name**: DIN 5008 - Repair +- **Version**: N/A +- **Category**: Accounting/Localizations +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_din5008_repair`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/ARCHITECTURE.md new file mode 100644 index 0000000..21dec61 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_din5008_repair Module - l10n_din5008_repair + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/CONFIGURATION.md new file mode 100644 index 0000000..263db85 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_din5008_repair. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/DEPENDENCIES.md new file mode 100644 index 0000000..5c72a44 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [l10n_din5008](../../odoo-bringout-oca-ocb-l10n_din5008) +- [repair](../../odoo-bringout-oca-ocb-repair) diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/FAQ.md new file mode 100644 index 0000000..d3eaae1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_din5008_repair or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/INSTALL.md new file mode 100644 index 0000000..78729cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_din5008_repair" +# or +uv pip install odoo-bringout-oca-ocb-l10n_din5008_repair" +``` diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/MODELS.md new file mode 100644 index 0000000..1e39388 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/MODELS.md @@ -0,0 +1,12 @@ +# Models + +Detected core models and extensions in l10n_din5008_repair. + +```mermaid +classDiagram + class repair_order +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/OVERVIEW.md new file mode 100644 index 0000000..8020778 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_din5008_repair. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_din5008_repair +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/USAGE.md new file mode 100644 index 0000000..103c417 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_din5008_repair +``` diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/__init__.py b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/__manifest__.py b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/__manifest__.py new file mode 100644 index 0000000..d3bb31c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/__manifest__.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'DIN 5008 - Repair', + 'category': 'Accounting/Localizations', + 'depends': [ + 'l10n_din5008', + 'repair', + ], + 'auto_install': True, + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/de.po b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/de.po new file mode 100644 index 0000000..e4b358c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/de.po @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008_repair +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:51+0000\n" +"PO-Revision-Date: 2024-02-14 08:48+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: l10n_din5008_repair +#: model:ir.model.fields,field_description:l10n_din5008_repair.field_repair_order__l10n_din5008_document_title +msgid "L10N Din5008 Document Title" +msgstr "L10N Din5008 Dokumenttitel" + +#. module: l10n_din5008_repair +#: model:ir.model.fields,field_description:l10n_din5008_repair.field_repair_order__l10n_din5008_template_data +msgid "L10N Din5008 Template Data" +msgstr "L10N Din5008 Vorlagendaten" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Lot/Serial Number" +msgstr "Los-/Seriennummer" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Printing Date" +msgstr "Druckdatum" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Product to Repair" +msgstr "Zu reparierendes Produkt" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#: model:ir.model,name:l10n_din5008_repair.model_repair_order +#, python-format +msgid "Repair Order" +msgstr "Reparaturauftrag" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Repair Quotation" +msgstr "Kostenvoranschlag" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Warranty" +msgstr "Garantie" diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/fr.po b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/fr.po new file mode 100644 index 0000000..4006f61 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/fr.po @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008_repair +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:51+0000\n" +"PO-Revision-Date: 2024-02-14 09:19+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: l10n_din5008_repair +#: model:ir.model.fields,field_description:l10n_din5008_repair.field_repair_order__l10n_din5008_document_title +msgid "L10N Din5008 Document Title" +msgstr "Titre du document L10N Din5008" + +#. module: l10n_din5008_repair +#: model:ir.model.fields,field_description:l10n_din5008_repair.field_repair_order__l10n_din5008_template_data +msgid "L10N Din5008 Template Data" +msgstr "Données de modèle L10N Din5008" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Lot/Serial Number" +msgstr "Numéro de lot/série" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Printing Date" +msgstr "Date d'impression" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Product to Repair" +msgstr "Article à réparer" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#: model:ir.model,name:l10n_din5008_repair.model_repair_order +#, python-format +msgid "Repair Order" +msgstr "Ordre de réparation" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Repair Quotation" +msgstr "Devis de réparation" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Warranty" +msgstr "Garantie" diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/it.po b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/it.po new file mode 100644 index 0000000..0950e19 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/it.po @@ -0,0 +1,71 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008_repair +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:51+0000\n" +"PO-Revision-Date: 2024-02-14 09:20+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: l10n_din5008_repair +#: model:ir.model.fields,field_description:l10n_din5008_repair.field_repair_order__l10n_din5008_document_title +msgid "L10N Din5008 Document Title" +msgstr "Titolo del documento L10N Din5008" + +#. module: l10n_din5008_repair +#: model:ir.model.fields,field_description:l10n_din5008_repair.field_repair_order__l10n_din5008_template_data +msgid "L10N Din5008 Template Data" +msgstr "Dati modello L10N Din5008" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Lot/Serial Number" +msgstr "Numero di lotto/di serie" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Printing Date" +msgstr "Data di stampa" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Product to Repair" +msgstr "Prodotto da riparare" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#: model:ir.model,name:l10n_din5008_repair.model_repair_order +#, python-format +msgid "Repair Order" +msgstr "Ordine di riparazione" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Repair Quotation" +msgstr "Preventivo riparazione" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Warranty" +msgstr "Garanzia" diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/l10n_din5008_repair.pot b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/l10n_din5008_repair.pot new file mode 100644 index 0000000..f5a7768 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/i18n/l10n_din5008_repair.pot @@ -0,0 +1,69 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008_repair +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:51+0000\n" +"PO-Revision-Date: 2024-02-13 21:51+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_din5008_repair +#: model:ir.model.fields,field_description:l10n_din5008_repair.field_repair_order__l10n_din5008_document_title +msgid "L10N Din5008 Document Title" +msgstr "" + +#. module: l10n_din5008_repair +#: model:ir.model.fields,field_description:l10n_din5008_repair.field_repair_order__l10n_din5008_template_data +msgid "L10N Din5008 Template Data" +msgstr "" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Lot/Serial Number" +msgstr "" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Printing Date" +msgstr "" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Product to Repair" +msgstr "" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#: model:ir.model,name:l10n_din5008_repair.model_repair_order +#, python-format +msgid "Repair Order" +msgstr "" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Repair Quotation" +msgstr "" + +#. module: l10n_din5008_repair +#. odoo-python +#: code:addons/l10n_din5008_repair/models/repair.py:0 +#, python-format +msgid "Warranty" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/models/__init__.py b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/models/__init__.py new file mode 100644 index 0000000..3985e55 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/models/__init__.py @@ -0,0 +1 @@ +from . import repair diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/models/repair.py b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/models/repair.py new file mode 100644 index 0000000..7b13f92 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/l10n_din5008_repair/models/repair.py @@ -0,0 +1,27 @@ +from odoo import models, fields, _ +from odoo.tools import format_date + + +class RepairOrder(models.Model): + _inherit = 'repair.order' + + l10n_din5008_template_data = fields.Binary(compute='_compute_l10n_din5008_template_data') + l10n_din5008_document_title = fields.Char(compute='_compute_l10n_din5008_document_title') + + def _compute_l10n_din5008_template_data(self): + for record in self: + record.l10n_din5008_template_data = data = [] + if record.product_id: + data.append((_("Product to Repair"), record.product_id.name)) + if record.lot_id: + data.append((_("Lot/Serial Number"), record.lot_id.name)) + if record.guarantee_limit: + data.append((_("Warranty"), format_date(self.env, record.guarantee_limit))) + data.append((_("Printing Date"), format_date(self.env, fields.Date.today()))) + + def _compute_l10n_din5008_document_title(self): + for record in self: + if record.state == 'draft': + record.l10n_din5008_document_title = _("Repair Quotation") + else: + record.l10n_din5008_document_title = _("Repair Order") diff --git a/odoo-bringout-oca-ocb-l10n_din5008_repair/pyproject.toml b/odoo-bringout-oca-ocb-l10n_din5008_repair/pyproject.toml new file mode 100644 index 0000000..6723edd --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_repair/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_din5008_repair" +version = "16.0.0" +description = "DIN 5008 - Repair - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-l10n_din5008>=16.0.0", + "odoo-bringout-oca-ocb-repair>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_din5008_repair"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/README.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/README.md new file mode 100644 index 0000000..70afba7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/README.md @@ -0,0 +1,45 @@ +# DIN 5008 - Sale + +Odoo addon: l10n_din5008_sale + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_din5008_sale +``` + +## Dependencies + +This addon depends on: +- l10n_din5008 +- sale + +## Manifest Information + +- **Name**: DIN 5008 - Sale +- **Version**: N/A +- **Category**: Accounting/Localizations +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_din5008_sale`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/ARCHITECTURE.md new file mode 100644 index 0000000..90ae3f3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_din5008_sale Module - l10n_din5008_sale + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/CONFIGURATION.md new file mode 100644 index 0000000..232e3cd --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_din5008_sale. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/DEPENDENCIES.md new file mode 100644 index 0000000..b538428 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [l10n_din5008](../../odoo-bringout-oca-ocb-l10n_din5008) +- [sale](../../odoo-bringout-oca-ocb-sale) diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/FAQ.md new file mode 100644 index 0000000..b0c4f1d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_din5008_sale or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/INSTALL.md new file mode 100644 index 0000000..41e9ae1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_din5008_sale" +# or +uv pip install odoo-bringout-oca-ocb-l10n_din5008_sale" +``` diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/MODELS.md new file mode 100644 index 0000000..bc8ca13 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/MODELS.md @@ -0,0 +1,12 @@ +# Models + +Detected core models and extensions in l10n_din5008_sale. + +```mermaid +classDiagram + class sale_order +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/OVERVIEW.md new file mode 100644 index 0000000..3bf016b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_din5008_sale. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_din5008_sale +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/USAGE.md new file mode 100644 index 0000000..e9c800c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_din5008_sale +``` diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/__init__.py b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/__manifest__.py b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/__manifest__.py new file mode 100644 index 0000000..0ed6a35 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/__manifest__.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'DIN 5008 - Sale', + 'category': 'Accounting/Localizations', + 'depends': [ + 'l10n_din5008', + 'sale', + ], + 'auto_install': True, + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/de.po b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/de.po new file mode 100644 index 0000000..a1406cc --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/de.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008_sale +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:51+0000\n" +"PO-Revision-Date: 2024-02-14 08:48+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Customer Reference" +msgstr "Kundenreferenz" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Expiration" +msgstr "Gültigkeit" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Incoterm" +msgstr "Incoterm" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Invoicing Address:" +msgstr "Rechnungsadresse:" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Invoicing and Shipping Address:" +msgstr "Rechnungs- und Lieferadresse:" + +#. module: l10n_din5008_sale +#: model:ir.model.fields,field_description:l10n_din5008_sale.field_sale_order__l10n_din5008_addresses +msgid "L10N Din5008 Addresses" +msgstr "L10N Din5008 Adressen" + +#. module: l10n_din5008_sale +#: model:ir.model.fields,field_description:l10n_din5008_sale.field_sale_order__l10n_din5008_document_title +msgid "L10N Din5008 Document Title" +msgstr "L10N Din5008 Dokumenttitel" + +#. module: l10n_din5008_sale +#: model:ir.model.fields,field_description:l10n_din5008_sale.field_sale_order__l10n_din5008_template_data +msgid "L10N Din5008 Template Data" +msgstr "L10N Din5008 Vorlagendaten" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Order Date" +msgstr "Auftragsdatum" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Order No." +msgstr "Auftragsnr." + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Pro Forma Invoice" +msgstr "Pro-forma-Rechnung" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Quotation" +msgstr "Angebot" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Quotation Date" +msgstr "Angebotsdatum" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Quotation No." +msgstr "Angebotsnr." + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#: model:ir.model,name:l10n_din5008_sale.model_sale_order +#, python-format +msgid "Sales Order" +msgstr "Auftragsbestätigung" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Salesperson" +msgstr "Vertriebsmitarbeiter" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Shipping Address:" +msgstr "Lieferadresse:" diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/fr.po b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/fr.po new file mode 100644 index 0000000..9291514 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/fr.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008_sale +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:51+0000\n" +"PO-Revision-Date: 2024-02-14 09:22+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Customer Reference" +msgstr "Référence client" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Expiration" +msgstr "Expiration" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Incoterm" +msgstr "Incoterms" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Invoicing Address:" +msgstr "Adresse de facturation :" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Invoicing and Shipping Address:" +msgstr "Adresse de facturation et d'expédition :" + +#. module: l10n_din5008_sale +#: model:ir.model.fields,field_description:l10n_din5008_sale.field_sale_order__l10n_din5008_addresses +msgid "L10N Din5008 Addresses" +msgstr "Adresses L10N Din5008" + +#. module: l10n_din5008_sale +#: model:ir.model.fields,field_description:l10n_din5008_sale.field_sale_order__l10n_din5008_document_title +msgid "L10N Din5008 Document Title" +msgstr "Titre du document L10N Din5008" + +#. module: l10n_din5008_sale +#: model:ir.model.fields,field_description:l10n_din5008_sale.field_sale_order__l10n_din5008_template_data +msgid "L10N Din5008 Template Data" +msgstr "Données de modèle L10N Din5008" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Order Date" +msgstr "Date de commande" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Order No." +msgstr "N° de commande" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Pro Forma Invoice" +msgstr "Facture pro forma" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Quotation" +msgstr "Devis" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Quotation Date" +msgstr "Date du devis" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Quotation No." +msgstr "N° de devis" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#: model:ir.model,name:l10n_din5008_sale.model_sale_order +#, python-format +msgid "Sales Order" +msgstr "Bon de commande" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Salesperson" +msgstr "Vendeur" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Shipping Address:" +msgstr "Adresse de livraison :" diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/it.po b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/it.po new file mode 100644 index 0000000..b8ead4e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/it.po @@ -0,0 +1,132 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008_sale +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:51+0000\n" +"PO-Revision-Date: 2024-02-14 09:23+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Customer Reference" +msgstr "Riferimento cliente" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Expiration" +msgstr "Scadenza" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Incoterm" +msgstr "Incoterms" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Invoicing Address:" +msgstr "Indirizzo di fatturazione:" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Invoicing and Shipping Address:" +msgstr "Indirizzo di fatturazione e spedizione:" + +#. module: l10n_din5008_sale +#: model:ir.model.fields,field_description:l10n_din5008_sale.field_sale_order__l10n_din5008_addresses +msgid "L10N Din5008 Addresses" +msgstr "Indirizzi L10N Din5008" + +#. module: l10n_din5008_sale +#: model:ir.model.fields,field_description:l10n_din5008_sale.field_sale_order__l10n_din5008_document_title +msgid "L10N Din5008 Document Title" +msgstr "Titolo del documento L10N Din5008" + +#. module: l10n_din5008_sale +#: model:ir.model.fields,field_description:l10n_din5008_sale.field_sale_order__l10n_din5008_template_data +msgid "L10N Din5008 Template Data" +msgstr "Dati modello L10N Din5008" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Order Date" +msgstr "Data Ordine" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Order No." +msgstr "Ordine N." + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Pro Forma Invoice" +msgstr "Fattura pro forma" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Quotation" +msgstr "Preventivo" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Quotation Date" +msgstr "Data Preventivo" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Quotation No." +msgstr "Preventivo N." + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#: model:ir.model,name:l10n_din5008_sale.model_sale_order +#, python-format +msgid "Sales Order" +msgstr "Ordine di vendita" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Salesperson" +msgstr "Ordine di vendita" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Shipping Address:" +msgstr "Indirizzo di spedizione:" diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/l10n_din5008_sale.pot b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/l10n_din5008_sale.pot new file mode 100644 index 0000000..c0b9016 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/i18n/l10n_din5008_sale.pot @@ -0,0 +1,130 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008_sale +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:51+0000\n" +"PO-Revision-Date: 2024-02-13 21:51+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_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Customer Reference" +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Expiration" +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Incoterm" +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Invoicing Address:" +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Invoicing and Shipping Address:" +msgstr "" + +#. module: l10n_din5008_sale +#: model:ir.model.fields,field_description:l10n_din5008_sale.field_sale_order__l10n_din5008_addresses +msgid "L10N Din5008 Addresses" +msgstr "" + +#. module: l10n_din5008_sale +#: model:ir.model.fields,field_description:l10n_din5008_sale.field_sale_order__l10n_din5008_document_title +msgid "L10N Din5008 Document Title" +msgstr "" + +#. module: l10n_din5008_sale +#: model:ir.model.fields,field_description:l10n_din5008_sale.field_sale_order__l10n_din5008_template_data +msgid "L10N Din5008 Template Data" +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Order Date" +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Order No." +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Pro Forma Invoice" +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Quotation" +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Quotation Date" +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Quotation No." +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#: model:ir.model,name:l10n_din5008_sale.model_sale_order +#, python-format +msgid "Sales Order" +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Salesperson" +msgstr "" + +#. module: l10n_din5008_sale +#. odoo-python +#: code:addons/l10n_din5008_sale/models/sale.py:0 +#, python-format +msgid "Shipping Address:" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/models/__init__.py b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/models/__init__.py new file mode 100644 index 0000000..8a0dc04 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/models/__init__.py @@ -0,0 +1 @@ +from . import sale diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/models/sale.py b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/models/sale.py new file mode 100644 index 0000000..2eae72f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/l10n_din5008_sale/models/sale.py @@ -0,0 +1,56 @@ +from odoo import models, fields, _ +from odoo.tools import format_date + + +class SaleOrder(models.Model): + _inherit = 'sale.order' + + l10n_din5008_template_data = fields.Binary(compute='_compute_l10n_din5008_template_data') + l10n_din5008_document_title = fields.Char(compute='_compute_l10n_din5008_document_title') + l10n_din5008_addresses = fields.Binary(compute='_compute_l10n_din5008_addresses', exportable=False) + + def _compute_l10n_din5008_template_data(self): + for record in self: + record.l10n_din5008_template_data = data = [] + if record.state in ('draft', 'sent'): + if record.name: + data.append((_("Quotation No."), record.name)) + if record.date_order: + data.append((_("Quotation Date"), format_date(self.env, record.date_order))) + if record.validity_date: + data.append((_("Expiration"), format_date(self.env, record.validity_date))) + else: + if record.name: + data.append((_("Order No."), record.name)) + if record.date_order: + data.append((_("Order Date"), format_date(self.env, record.date_order))) + if record.client_order_ref: + data.append((_('Customer Reference'), record.client_order_ref)) + if record.user_id: + data.append((_("Salesperson"), record.user_id.name)) + if 'incoterm' in record._fields and record.incoterm: + data.append((_("Incoterm"), record.incoterm.code)) + + def _compute_l10n_din5008_document_title(self): + for record in self: + if self._context.get('proforma'): + record.l10n_din5008_document_title = _('Pro Forma Invoice') + elif record.state in ('draft', 'sent'): + record.l10n_din5008_document_title = _('Quotation') + else: + record.l10n_din5008_document_title = _('Sales Order') + + def _compute_l10n_din5008_addresses(self): + for record in self: + record.l10n_din5008_addresses = data = [] + if record.partner_shipping_id == record.partner_invoice_id: + data.append((_("Invoicing and Shipping Address:"), record.partner_shipping_id)) + else: + data.append((_("Shipping Address:"), record.partner_shipping_id)) + data.append((_("Invoicing Address:"), record.partner_invoice_id)) + + def check_field_access_rights(self, operation, field_names): + field_names = super().check_field_access_rights(operation, field_names) + return [field_name for field_name in field_names if field_name not in { + 'l10n_din5008_addresses', + }] diff --git a/odoo-bringout-oca-ocb-l10n_din5008_sale/pyproject.toml b/odoo-bringout-oca-ocb-l10n_din5008_sale/pyproject.toml new file mode 100644 index 0000000..9b8c2d2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_sale/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_din5008_sale" +version = "16.0.0" +description = "DIN 5008 - Sale - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-l10n_din5008>=16.0.0", + "odoo-bringout-oca-ocb-sale>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_din5008_sale"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/README.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/README.md new file mode 100644 index 0000000..2ae8459 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/README.md @@ -0,0 +1,45 @@ +# DIN 5008 - Stock + +Odoo addon: l10n_din5008_stock + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_din5008_stock +``` + +## Dependencies + +This addon depends on: +- l10n_din5008 +- stock + +## Manifest Information + +- **Name**: DIN 5008 - Stock +- **Version**: N/A +- **Category**: Accounting/Localizations +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_din5008_stock`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/ARCHITECTURE.md new file mode 100644 index 0000000..d271929 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_din5008_stock Module - l10n_din5008_stock + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/CONFIGURATION.md new file mode 100644 index 0000000..5af20af --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_din5008_stock. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/DEPENDENCIES.md new file mode 100644 index 0000000..30938f5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [l10n_din5008](../../odoo-bringout-oca-ocb-l10n_din5008) +- [stock](../../odoo-bringout-oca-ocb-stock) diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/FAQ.md new file mode 100644 index 0000000..3b66722 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_din5008_stock or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/INSTALL.md new file mode 100644 index 0000000..e11d037 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_din5008_stock" +# or +uv pip install odoo-bringout-oca-ocb-l10n_din5008_stock" +``` diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/MODELS.md new file mode 100644 index 0000000..d9958d5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/MODELS.md @@ -0,0 +1,12 @@ +# Models + +Detected core models and extensions in l10n_din5008_stock. + +```mermaid +classDiagram + class stock_picking +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/OVERVIEW.md new file mode 100644 index 0000000..e06f648 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_din5008_stock. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_din5008_stock +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/USAGE.md new file mode 100644 index 0000000..ceac348 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_din5008_stock +``` diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/__init__.py b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/__manifest__.py b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/__manifest__.py new file mode 100644 index 0000000..4fc8dc1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/__manifest__.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'DIN 5008 - Stock', + 'category': 'Accounting/Localizations', + 'depends': [ + 'l10n_din5008', + 'stock', + ], + 'auto_install': True, + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/de.po b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/de.po new file mode 100644 index 0000000..c0f28c4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/de.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008_stock +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:52+0000\n" +"PO-Revision-Date: 2024-02-14 08:49+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: l10n_din5008_stock +#. odoo-python +#: code:addons/l10n_din5008_stock/models/stock.py:0 +#, python-format +msgid "Customer Address:" +msgstr "Kundenadresse:" + +#. module: l10n_din5008_stock +#: model:ir.model.fields,field_description:l10n_din5008_stock.field_stock_picking__l10n_din5008_addresses +msgid "L10N Din5008 Addresses" +msgstr "L10N Din5008 Adressen" + +#. module: l10n_din5008_stock +#: model:ir.model,name:l10n_din5008_stock.model_stock_picking +msgid "Transfer" +msgstr "Transfer" + +#. module: l10n_din5008_stock +#. odoo-python +#: code:addons/l10n_din5008_stock/models/stock.py:0 +#, python-format +msgid "Vendor Address:" +msgstr "Adresse des Lieferanten:" + +#. module: l10n_din5008_stock +#. odoo-python +#: code:addons/l10n_din5008_stock/models/stock.py:0 +#, python-format +msgid "Warehouse Address:" +msgstr "Adresse des Lagerhauses:" diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/fr.po b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/fr.po new file mode 100644 index 0000000..97c1e1e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/fr.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008_stock +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:52+0000\n" +"PO-Revision-Date: 2024-02-14 09:23+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: l10n_din5008_stock +#. odoo-python +#: code:addons/l10n_din5008_stock/models/stock.py:0 +#, python-format +msgid "Customer Address:" +msgstr "Adresse du client :" + +#. module: l10n_din5008_stock +#: model:ir.model.fields,field_description:l10n_din5008_stock.field_stock_picking__l10n_din5008_addresses +msgid "L10N Din5008 Addresses" +msgstr "Adresses L10N Din5008" + +#. module: l10n_din5008_stock +#: model:ir.model,name:l10n_din5008_stock.model_stock_picking +msgid "Transfer" +msgstr "Transfert" + +#. module: l10n_din5008_stock +#. odoo-python +#: code:addons/l10n_din5008_stock/models/stock.py:0 +#, python-format +msgid "Vendor Address:" +msgstr "Adresse du fournisseur :" + +#. module: l10n_din5008_stock +#. odoo-python +#: code:addons/l10n_din5008_stock/models/stock.py:0 +#, python-format +msgid "Warehouse Address:" +msgstr "Adresse de l'entrepôt :" diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/it.po b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/it.po new file mode 100644 index 0000000..aee79cc --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/it.po @@ -0,0 +1,49 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008_stock +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:52+0000\n" +"PO-Revision-Date: 2024-02-14 09:23+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 3.4.2\n" + +#. module: l10n_din5008_stock +#. odoo-python +#: code:addons/l10n_din5008_stock/models/stock.py:0 +#, python-format +msgid "Customer Address:" +msgstr "Indirizzo cliente:" + +#. module: l10n_din5008_stock +#: model:ir.model.fields,field_description:l10n_din5008_stock.field_stock_picking__l10n_din5008_addresses +msgid "L10N Din5008 Addresses" +msgstr "Indirizzi L10N Din5008" + +#. module: l10n_din5008_stock +#: model:ir.model,name:l10n_din5008_stock.model_stock_picking +msgid "Transfer" +msgstr "Trasferimento" + +#. module: l10n_din5008_stock +#. odoo-python +#: code:addons/l10n_din5008_stock/models/stock.py:0 +#, python-format +msgid "Vendor Address:" +msgstr "Indirizzo fornitore:" + +#. module: l10n_din5008_stock +#. odoo-python +#: code:addons/l10n_din5008_stock/models/stock.py:0 +#, python-format +msgid "Warehouse Address:" +msgstr "Indirizzo magazzino:" diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/l10n_din5008_stock.pot b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/l10n_din5008_stock.pot new file mode 100644 index 0000000..c70dd4b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/i18n/l10n_din5008_stock.pot @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_din5008_stock +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-02-13 21:52+0000\n" +"PO-Revision-Date: 2024-02-13 21:52+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_din5008_stock +#. odoo-python +#: code:addons/l10n_din5008_stock/models/stock.py:0 +#, python-format +msgid "Customer Address:" +msgstr "" + +#. module: l10n_din5008_stock +#: model:ir.model.fields,field_description:l10n_din5008_stock.field_stock_picking__l10n_din5008_addresses +msgid "L10N Din5008 Addresses" +msgstr "" + +#. module: l10n_din5008_stock +#: model:ir.model,name:l10n_din5008_stock.model_stock_picking +msgid "Transfer" +msgstr "" + +#. module: l10n_din5008_stock +#. odoo-python +#: code:addons/l10n_din5008_stock/models/stock.py:0 +#, python-format +msgid "Vendor Address:" +msgstr "" + +#. module: l10n_din5008_stock +#. odoo-python +#: code:addons/l10n_din5008_stock/models/stock.py:0 +#, python-format +msgid "Warehouse Address:" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/models/__init__.py b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/models/__init__.py new file mode 100644 index 0000000..12bab77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/models/__init__.py @@ -0,0 +1 @@ +from . import stock diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/models/stock.py b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/models/stock.py new file mode 100644 index 0000000..54c4d1d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/l10n_din5008_stock/models/stock.py @@ -0,0 +1,26 @@ +from odoo import models, fields, _ +from odoo.tools import format_date + + +class StockPicking(models.Model): + _inherit = 'stock.picking' + + l10n_din5008_addresses = fields.Binary(compute='_compute_l10n_din5008_addresses', exportable=False) + + def _compute_l10n_din5008_addresses(self): + for record in self: + record.l10n_din5008_addresses = data = [] + if record.partner_id: + if record.picking_type_id.code == 'incoming': + data.append((_('Vendor Address:'), record.partner_id)) + if record.picking_type_id.code == 'internal': + data.append((_('Warehouse Address:'), record.partner_id)) + if record.picking_type_id.code == 'outgoing' and record.move_ids_without_package and record.move_ids_without_package[0].partner_id \ + and record.move_ids_without_package[0].partner_id.id != record.partner_id.id: + data.append((_('Customer Address:'), record.partner_id)) + + def check_field_access_rights(self, operation, field_names): + field_names = super().check_field_access_rights(operation, field_names) + return [field_name for field_name in field_names if field_name not in { + 'l10n_din5008_addresses', + }] diff --git a/odoo-bringout-oca-ocb-l10n_din5008_stock/pyproject.toml b/odoo-bringout-oca-ocb-l10n_din5008_stock/pyproject.toml new file mode 100644 index 0000000..cec207f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_din5008_stock/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_din5008_stock" +version = "16.0.0" +description = "DIN 5008 - Stock - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-l10n_din5008>=16.0.0", + "odoo-bringout-oca-ocb-stock>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_din5008_stock"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/README.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/README.md new file mode 100644 index 0000000..42de858 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/README.md @@ -0,0 +1,46 @@ +# G.C.C. - Arabic/English Invoice + + + Arabic/English for GCC + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_gcc_invoice +``` + +## Dependencies + +This addon depends on: +- account + +## Manifest Information + +- **Name**: G.C.C. - Arabic/English Invoice +- **Version**: 1.0.0 +- **Category**: Accounting/Localizations +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_gcc_invoice`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/ARCHITECTURE.md new file mode 100644 index 0000000..a5cbc04 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_gcc_invoice Module - l10n_gcc_invoice + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/CONFIGURATION.md new file mode 100644 index 0000000..eea35d9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_gcc_invoice. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/DEPENDENCIES.md new file mode 100644 index 0000000..99c6b28 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [account](../../odoo-bringout-oca-ocb-account) diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/FAQ.md new file mode 100644 index 0000000..8ca01b1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_gcc_invoice or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/INSTALL.md new file mode 100644 index 0000000..697fe66 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_gcc_invoice" +# or +uv pip install odoo-bringout-oca-ocb-l10n_gcc_invoice" +``` diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/MODELS.md new file mode 100644 index 0000000..84248a7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/MODELS.md @@ -0,0 +1,13 @@ +# Models + +Detected core models and extensions in l10n_gcc_invoice. + +```mermaid +classDiagram + class account_move + class account_move_line +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/OVERVIEW.md new file mode 100644 index 0000000..d5dcd05 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_gcc_invoice. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_gcc_invoice +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/USAGE.md new file mode 100644 index 0000000..1d3251f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_gcc_invoice +``` diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/__init__.py b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/__init__.py new file mode 100644 index 0000000..90b1755 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models +from . import tests diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/__manifest__.py b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/__manifest__.py new file mode 100644 index 0000000..0ac3556 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/__manifest__.py @@ -0,0 +1,16 @@ +# -*- encoding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +{ + 'name': 'G.C.C. - Arabic/English Invoice', + 'version': '1.0.0', + 'author': 'Odoo', + 'category': 'Accounting/Localizations', + 'description': """ + Arabic/English for GCC +""", + 'license': 'LGPL-3', + 'depends': ['account'], + 'data': [ + 'views/report_invoice.xml', + ], +} diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/models/__init__.py b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/models/__init__.py new file mode 100644 index 0000000..c0124ef --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import account_move diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/models/account_move.py b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/models/account_move.py new file mode 100644 index 0000000..1e2421b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/models/account_move.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models, api + + +class AccountMove(models.Model): + _inherit = 'account.move' + + narration = fields.Html(translate=True) + + def _get_name_invoice_report(self): + self.ensure_one() + if self.company_id.country_id in self.env.ref('base.gulf_cooperation_council').country_ids: + return 'l10n_gcc_invoice.arabic_english_invoice' + return super()._get_name_invoice_report() + + def _load_narration_translation(self): + # Workaround to have the english/arabic version of the payment terms + # in the report + if not self: + return + gcc_countries = self.env.ref('base.gulf_cooperation_council').country_ids + moves_to_fix = self.env['account.move'] + for move in self.filtered(lambda m: m.company_id.country_id in gcc_countries and m.is_sale_document(include_receipts=True) and m.narration): + lang = move.partner_id.lang or self.env.user.lang + if move.company_id.terms_type == 'html' or move.narration != move.company_id.with_context(lang=lang).invoice_terms: + continue + moves_to_fix |= move + if not moves_to_fix: + return + self.env['res.company'].flush_model(['invoice_terms']) + self.env.cr.execute('SELECT "id","invoice_terms" FROM "res_company" WHERE id = any(%s)', [moves_to_fix.company_id.ids]) + translation_by_company_id = {company_id: narration for company_id, narration in self.env.cr.fetchall()} + self.env.cache.update_raw(moves_to_fix, self._fields['narration'], [ + translation_by_company_id[move.company_id.id] + for move in moves_to_fix + ], dirty=True) + moves_to_fix.modified(['narration']) + + @api.model_create_multi + def create(self, vals_list): + moves = super().create(vals_list) + moves._load_narration_translation() + return moves + + def _compute_narration(self): + super()._compute_narration() + # Only update translations of real records + self.filtered('id')._load_narration_translation() + +class AccountMoveLine(models.Model): + _inherit = 'account.move.line' + + l10n_gcc_invoice_tax_amount = fields.Float(string='Tax Amount', compute='_compute_tax_amount', digits='Product Price') + + @api.depends('price_subtotal', 'price_total') + def _compute_tax_amount(self): + for record in self: + record.l10n_gcc_invoice_tax_amount = record.price_total - record.price_subtotal diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/tests/__init__.py b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/tests/__init__.py new file mode 100644 index 0000000..4412d13 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/tests/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import test_gcc_invoice diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/tests/test_gcc_invoice.py b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/tests/test_gcc_invoice.py new file mode 100644 index 0000000..58cfd4b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/tests/test_gcc_invoice.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- + +from markupsafe import Markup + +from odoo.addons.account.tests.common import AccountTestInvoicingCommon +from odoo.tests import tagged + + +@tagged('post_install_l10n', 'post_install', '-at_install') +class TestGccInvoice(AccountTestInvoicingCommon): + + def test_invoice_narration_translation(self): + ''' The narration field should be copied translations included''' + + # Activate second lang and parameter needed to display invoice terms + self.env['res.lang']._activate_lang('ar_001') + self.env['ir.config_parameter'].sudo().set_param('account.use_invoice_terms', True) + + gcc_countries = self.env.ref('base.gulf_cooperation_council').country_ids + self.env.company.write({ + 'country_id': gcc_countries[0].id, + 'invoice_terms': 'English Terms', + 'terms_type': 'plain', + }) + # Add translation to invoice terms + self.env.company.update_field_translations('invoice_terms', {'en_US': {'English Terms': 'English Terms'}, 'ar_001': {'English Terms': 'Arabic Terms'}}) + invoice = self.init_invoice('out_invoice', products=self.product_a) + + self.assertEqual(invoice.narration, Markup('

English Terms

'), 'Original narration not correct') + self.assertEqual(invoice.with_context(lang='ar_001').narration, Markup('

Arabic Terms

'), 'Translation not loaded succesfully') diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/views/report_invoice.xml b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/views/report_invoice.xml new file mode 100644 index 0000000..3bc8181 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/l10n_gcc_invoice/views/report_invoice.xml @@ -0,0 +1,556 @@ + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_gcc_invoice/pyproject.toml b/odoo-bringout-oca-ocb-l10n_gcc_invoice/pyproject.toml new file mode 100644 index 0000000..b4d0894 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_invoice/pyproject.toml @@ -0,0 +1,42 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_gcc_invoice" +version = "16.0.0" +description = "G.C.C. - Arabic/English Invoice - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_gcc_invoice"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/README.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/README.md new file mode 100644 index 0000000..63b0b76 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/README.md @@ -0,0 +1,48 @@ +# Gulf Cooperation Council - Point of Sale + + +GCC POS Localization +======================================================= + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_gcc_pos +``` + +## Dependencies + +This addon depends on: +- point_of_sale +- l10n_gcc_invoice + +## Manifest Information + +- **Name**: Gulf Cooperation Council - Point of Sale +- **Version**: N/A +- **Category**: Accounting/Localizations/Point of Sale +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_gcc_pos`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/ARCHITECTURE.md new file mode 100644 index 0000000..f89cd9e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_gcc_pos Module - l10n_gcc_pos + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/CONFIGURATION.md new file mode 100644 index 0000000..79742ac --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_gcc_pos. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/DEPENDENCIES.md new file mode 100644 index 0000000..6017ccf --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [point_of_sale](../../odoo-bringout-oca-ocb-point_of_sale) +- [l10n_gcc_invoice](../../odoo-bringout-oca-ocb-l10n_gcc_invoice) diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/FAQ.md new file mode 100644 index 0000000..8cb656e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_gcc_pos or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/INSTALL.md new file mode 100644 index 0000000..f0e242e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_gcc_pos" +# or +uv pip install odoo-bringout-oca-ocb-l10n_gcc_pos" +``` diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/MODELS.md new file mode 100644 index 0000000..7df32c8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/MODELS.md @@ -0,0 +1,11 @@ +# Models + +Detected core models and extensions in l10n_gcc_pos. + +```mermaid +classDiagram +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/OVERVIEW.md new file mode 100644 index 0000000..7a4f5f0 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_gcc_pos. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_gcc_pos +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/USAGE.md new file mode 100644 index 0000000..7096ac8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_gcc_pos +``` diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/__init__.py b/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/__manifest__.py b/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/__manifest__.py new file mode 100644 index 0000000..34c3e0b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/__manifest__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +{ + 'name': 'Gulf Cooperation Council - Point of Sale', + 'author': 'Odoo S.A', + 'category': 'Accounting/Localizations/Point of Sale', + 'description': """ +GCC POS Localization +======================================================= + """, + 'license': 'LGPL-3', + 'depends': ['point_of_sale', 'l10n_gcc_invoice'], + 'assets': { + 'point_of_sale.assets': [ + 'l10n_gcc_pos/static/src/js/OrderReceipt.js', + 'l10n_gcc_pos/static/src/css/OrderReceipt.css', + 'l10n_gcc_pos/static/src/xml/OrderReceipt.xml', + ] + }, + 'auto_install': True, +} diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/static/src/css/OrderReceipt.css b/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/static/src/css/OrderReceipt.css new file mode 100644 index 0000000..d4da3d6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/static/src/css/OrderReceipt.css @@ -0,0 +1,3 @@ +.pos-receipt-amount-arabic { + padding-left: 0em !important; +} diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/static/src/js/OrderReceipt.js b/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/static/src/js/OrderReceipt.js new file mode 100644 index 0000000..68e6795 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/static/src/js/OrderReceipt.js @@ -0,0 +1,20 @@ +odoo.define('l10n_gcc_pos.OrderReceipt', function (require) { + 'use strict'; + + const OrderReceipt = require('point_of_sale.OrderReceipt') + const Registries = require('point_of_sale.Registries'); + + const OrderReceiptGCC = OrderReceipt => + class extends OrderReceipt { + + get receiptEnv() { + let receipt_render_env = super.receiptEnv; + let receipt = receipt_render_env.receipt; + const country = receipt_render_env.order.pos.company.country; + receipt.is_gcc_country = country ? ['SA', 'AE', 'BH', 'OM', 'QA', 'KW'].includes(country && country.code) : false; + return receipt_render_env; + } + } + Registries.Component.extend(OrderReceipt, OrderReceiptGCC) + return OrderReceiptGCC +}); diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/static/src/xml/OrderReceipt.xml b/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/static/src/xml/OrderReceipt.xml new file mode 100644 index 0000000..04a417e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/l10n_gcc_pos/static/src/xml/OrderReceipt.xml @@ -0,0 +1,140 @@ + + + + + + +
+
+
+ Tax Invoice +
+
+ الفاتورة الضريبية +
+
+
+ + + !receipt.is_gcc_country + + +
+
Served by / خدم بواسطة
+
+
+ + + !receipt.is_gcc_country + + +
+ Subtotal / الإجمالي الفرعي + +
+
+ + + !receipt.is_gcc_country + + +
+ TOTAL / الإجمالي + +
+
+ + + !receipt.is_gcc_country + + +
+ Rounding / التقريب + +
+
+ + + !receipt.is_gcc_country + + +
+ To Pay / للسداد + +
+
+ + + !receipt.is_gcc_country + + +
+ CHANGE / الباقي + +
+
+ + + !receipt.is_gcc_country + + +
+ Discounts / الخصومات + +
+
+ + + !receipt.is_gcc_country + + +
+ Total Taxes / إجمالي الضرائب + +
+
+
+ + + + !receipt.is_gcc_country + + +
+
+
Taxes / الضرائب
: +
+ +
+
+ + + !receipt.is_gcc_country + + + +
+ + + x + +
+
+
+
Taxes / الضرائب
: +
+ +
+
+
+ + + !receipt.is_gcc_country + + +
+
Discount / الخصم
: % +
+
+
+
diff --git a/odoo-bringout-oca-ocb-l10n_gcc_pos/pyproject.toml b/odoo-bringout-oca-ocb-l10n_gcc_pos/pyproject.toml new file mode 100644 index 0000000..952f9fa --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_gcc_pos/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_gcc_pos" +version = "16.0.0" +description = "Gulf Cooperation Council - Point of Sale - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-point_of_sale>=16.0.0", + "odoo-bringout-oca-ocb-l10n_gcc_invoice>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_gcc_pos"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_hk/README.md b/odoo-bringout-oca-ocb-l10n_hk/README.md new file mode 100644 index 0000000..ef98aa9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/README.md @@ -0,0 +1,44 @@ +# Hong Kong - Accounting + + This is the base module to manage chart of accounting and localization for Hong Kong + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_hk +``` + +## Dependencies + +This addon depends on: +- account + +## Manifest Information + +- **Name**: Hong Kong - Accounting +- **Version**: 1.0 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_hk`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_hk/doc/ARCHITECTURE.md new file mode 100644 index 0000000..a011d5c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_hk Module - l10n_hk + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_hk/doc/CONFIGURATION.md new file mode 100644 index 0000000..938998d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_hk. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_hk/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_hk/doc/DEPENDENCIES.md new file mode 100644 index 0000000..99c6b28 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [account](../../odoo-bringout-oca-ocb-account) diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_hk/doc/FAQ.md new file mode 100644 index 0000000..b1a235f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_hk or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_hk/doc/INSTALL.md new file mode 100644 index 0000000..1bc9d95 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_hk" +# or +uv pip install odoo-bringout-oca-ocb-l10n_hk" +``` diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_hk/doc/MODELS.md new file mode 100644 index 0000000..216d73b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/MODELS.md @@ -0,0 +1,11 @@ +# Models + +Detected core models and extensions in l10n_hk. + +```mermaid +classDiagram +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_hk/doc/OVERVIEW.md new file mode 100644 index 0000000..4a74552 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_hk. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_hk +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_hk/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_hk/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_hk/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_hk/doc/USAGE.md new file mode 100644 index 0000000..0c9fbc0 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_hk +``` diff --git a/odoo-bringout-oca-ocb-l10n_hk/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_hk/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/__init__.py b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/__init__.py new file mode 100644 index 0000000..67dee8c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. diff --git a/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/__manifest__.py b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/__manifest__.py new file mode 100644 index 0000000..881c388 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/__manifest__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'Hong Kong - Accounting', + 'version': '1.0', + 'category': 'Accounting/Localizations/Account Charts', + 'description': """ This is the base module to manage chart of accounting and localization for Hong Kong """, + 'author': 'Odoo SA', + 'depends': ['account'], + 'data': [ + 'data/account_chart_template_data.xml', + 'data/account.account.template.csv', + 'data/l10n_hk_chart_data.xml', + 'data/account_chart_template_configure_data.xml', + ], + 'demo': [ + 'demo/demo_company.xml', + ], + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/account.account.template.csv new file mode 100644 index 0000000..92bb141 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/account.account.template.csv @@ -0,0 +1,73 @@ +"id","name","code","account_type","chart_template_id/id","tag_ids/id","reconcile" +"l10n_hk_11","Fixed Assets","11","asset_fixed","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_1110","Furniture and Fixtures","1110","asset_non_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_1130","Equipment","1130","asset_non_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_1140","Decoration","1140","asset_non_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_1160","Investments","1160","asset_non_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_12","Current Assets","12","asset_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_1240","Account Receivable","1240","asset_receivable","l10n_hk.l10n_hk_chart_template","","True" +"l10n_hk_1241","Utility & Rental Deposit","1241","asset_current","l10n_hk.l10n_hk_chart_template","","True" +"l10n_hk_1242","Supplier Prepayments","1242","asset_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_1243","Account Receivable (PoS)","1243","asset_receivable","l10n_hk.l10n_hk_chart_template","","True" +"l10n_hk_1245","Sundry Deposits","1245","asset_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_1246","Other Receivable","1246","asset_receivable","l10n_hk.l10n_hk_chart_template","","True" +"l10n_hk_1250","Stock Interim Account (Received)","1250","asset_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_1260","Stock Interim Account (Delivered)","1260","asset_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_1270","Stock Valuation Account","1270","asset_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_21","Non-current Liabilities","21","liability_non_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_22","Current Liabilities","22","liability_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_2210","Accruals","2210","liability_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_221001","MPF (Employer)","221001","liability_current","l10n_hk.l10n_hk_chart_template","","True" +"l10n_hk_221002","MPF (Employee)","221002","liability_current","l10n_hk.l10n_hk_chart_template","","True" +"l10n_hk_2211","Account Payable","2211","liability_payable","l10n_hk.l10n_hk_chart_template","","True" +"l10n_hk_2212","Receipt in Advance (Customer Prepayments)","2212","liability_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_2214","Provision for Taxation","2214","liability_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_2215","Proposed Dividend","2215","liability_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_2216","Other Payable","2216","liability_payable","l10n_hk.l10n_hk_chart_template","","True" +"l10n_hk_31","Paid Capital","31","liability_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_32","Accumulated Profit & Loss","32","liability_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_33","Profit & Loss Account","33","liability_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_34","Short-term Borrowing","34","liability_current","l10n_hk.l10n_hk_chart_template","","False" +"l10n_hk_41","Trade Income","41","income","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_42","Other Income and Gains","42","income","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_4210","Sundry Income","4210","income","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_4220","Exchange Adjustment","4220","income","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_4230","Bank Interest Income","4230","income","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_4240","Foreign Exchange Gain","4240","income","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_4250","Cash Discount Gain","4250","income_other","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_51","Costs","51","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5101","Trade Costs","5101","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5105","Misc. Costs","5105","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5106","Costs of Transportation","5106","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5111","Declaration Fees","5111","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5112","Packing Fees","5112","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_52","Expenses","52","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5201","Bank Charges","5201","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5202","Entertainment","5202","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5203","Electricity & Water Fees","5203","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5205","Postage & Stamps","5205","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5206","Printing & Stationery","5206","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5207","Rent & Rates","5207","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5208","Sundry Expenses","5208","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5209","Telecommunication Expenses","5209","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5210","Traffic Fees","5210","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5211","IT Expenses","5211","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5214","Insurance","5214","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5215","Sales Commission","5215","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5216","Overseas Traveling","5216","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5217","MPF Contribution","5217","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5218","Wages & Salaries","5218","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5219","Bonus Payment","5219","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5221","Taxation","5221","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5222","Local Delivery","5222","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5223","Management Fees","5223","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5224","Depreciation","5224","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5225","Audit Fees","5225","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5226","Bad Debts","5226","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5228","Legal & Professional Fees","5228","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5229","Dividend","5229","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5231","Disposal","5231","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5234","Repair and Maintenance","5234","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5235","Advertising","5235","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5240","Foreign Exchange Loss","5240","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" +"l10n_hk_5250","Cash Discount Loss","5250","expense","l10n_hk.l10n_hk_chart_template","account.account_tag_operating","False" diff --git a/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/account_chart_template_configure_data.xml b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/account_chart_template_configure_data.xml new file mode 100644 index 0000000..f6f61f2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/account_chart_template_configure_data.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/account_chart_template_data.xml new file mode 100644 index 0000000..c6cfb9e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/account_chart_template_data.xml @@ -0,0 +1,17 @@ + + + + + + + + + Hong Kong - Chart of Accounts + 1200 + 1210 + 111220 + 6 + + + + diff --git a/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/l10n_hk_chart_data.xml b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/l10n_hk_chart_data.xml new file mode 100644 index 0000000..cec3edf --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/data/l10n_hk_chart_data.xml @@ -0,0 +1,19 @@ + + + + + + Hong Kong - Chart of Accounts + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/demo/demo_company.xml new file mode 100644 index 0000000..1c06fb4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/demo/demo_company.xml @@ -0,0 +1,35 @@ + + + + HK Company + + 118 Connaught Road West + Unit 07 - 10, 38/F Yat Chau International Plaza + Sai Ying Pun + + + + +852 5123 4567 + info@company.hkexample.com + www.hkexample.com + + + + HK Company + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/static/description/icon.png b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c59242ed2b6c8de4964ba8df61bc31544874edec GIT binary patch literal 2503 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Yt4rT@hhUEVyOBooL83KGlTt6`|bahR1b@dDm zi7+>}F*moHIdg%(e^^vh%8He%?d@Iv|Nn1m>y(<7-PbpFIfsr%eC%@1KK%TU1nHKtOn4V1%!4NLg8xot=xb zv!|zLz-Jzw@`}n+BBG5=9smFRi;vG(ykxnRl|xuqe6pjPo14$yS1z$k5QZ zyu30?OS`D(_`3S0g^QMWc=&x{Wc;;g!SBNd|C~SjYyP}HCyxKUee3tOEnoC>Kg-Jg zy?f{1j~`!DRsMba_UuX#Y85T7O#3kNo^UCr^BfkNer(_0`Pu*X&vUzJ2}o=Ji)Q z+h6O~eijq^YHIRXMEFNt?Z5Z$rc9j?AD(bnMtQ zsi5TH;Zs^#<>KPKW5=GeXV357e|Y}=UcXH zyLt2Wnl+nRTifT(TlnYfslQJie~*p*QB(bqf#F+N$QMn`-<#HbwJ`7NpY)@?{;RiF zO;mJWQpTSP7ry#PX}-J@!wOV%R1@!CO6xqDpS|{F}&wJy^H_vyXx?#EZWiMH#oOWaZd1> zz5dY5(5Ev+cgI*Rcx1Iud)<^Q|D9WV-$cxj_PDuxANSO{>ZQM*t(~|vkoW$VJDZHx z1RvxSuVzzYPbmFG5)LPBZ(3cZTjKz9aN$v5Rn{>g@bk(C6 zjgK2eH(AfRyzNi)HST73KI;IJzn?T{B`eu)}~AA-{oYT`pC=m((C<#Rf@i9xAp#CV`n=FTe4)_RxuA zeEAJ;*8L9H``Z80k1IFVT36*K)H7Aw3DXb}c^xI2HRZg?e1%PdY+Dzejnus`@)#t1By~E|hLxuC4QZ-_#?M?qA$e#>Ly3c+M%Y{ATr; zq%9BDzh~O27e#@a{y%_VfN+>eJLy58w8fdn@eQJZo-eQEfrcQ@C@F1ooWz#}4|Y=MbqnWo0U z^ybyKUN>${J|C0hBkS-=bMLEH&tFw-4LPh@!thxnYSzjlPU@#VMQY9G2|3YSQ76B` zkbR@X!l*MPi&yBpT0Ud>$355mlldMMpNz0S)wqc7mDkP$sYgqMRps1L7VQj*JMekx z&SME|0WNFaO#L77^5$Y^iGZIo60aO*vN>F`kjsEsGkuYnOv!?feEH&2r&;_L@`Wfa zvrgTfB6Qa{;E|#FB7QBI%X2q=)&#K1P=$uGRH2gXHa?QEC z1-knzIDMX-D)&CtCo|1;3va$?#_sbI^|^|ltPQuZ(|s~iXMJ_v3RbhvYPWsV{Qo+g zTg`B8h0vlzx2x;PQB^f;NFVmSTK~C3WkM1yDnq#_G z#OiWsxMKd^lT(Ve^j`6Cbra2=+9eTuYge}Bg0q*D(hakxEM7jrZl3G!LpK+H;GJZ6 zH+uWV>5He%@a;1D7WTzHeWMSr@MqVj-9Hz}togC%&F3REfe(}Rt*9}KpK`4+Y5J+l zdXWny>e#$=${f8TCvp9rutp}JQ};T*ikDOohiG@s*~kT4Tbzq+UEMFX3Qf#dxpARp uRZw(Whs&bL4G#`^rVCy#wEJRtpk6VcJ^pY<^aKV51_n=8KbLh*2~7ZqWBk|v literal 0 HcmV?d00001 diff --git a/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/static/description/icon.svg b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/static/description/icon.svg new file mode 100644 index 0000000..11533b9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/l10n_hk/static/description/icon.svg @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_hk/pyproject.toml b/odoo-bringout-oca-ocb-l10n_hk/pyproject.toml new file mode 100644 index 0000000..5dfd8d2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_hk/pyproject.toml @@ -0,0 +1,42 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_hk" +version = "16.0.0" +description = "Hong Kong - Accounting - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_hk"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_id/README.md b/odoo-bringout-oca-ocb-l10n_id/README.md new file mode 100644 index 0000000..2db6e67 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/README.md @@ -0,0 +1,51 @@ +# Indonesian - Accounting + + +This is the latest Indonesian Odoo localisation necessary to run Odoo accounting for SMEs with: +================================================================================================= + - generic Indonesian chart of accounts + - tax structure + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_id +``` + +## Dependencies + +This addon depends on: +- account +- base_iban +- base_vat +- l10n_multilang + +## Manifest Information + +- **Name**: Indonesian - Accounting +- **Version**: 1.2 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_id`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_id/doc/ARCHITECTURE.md new file mode 100644 index 0000000..9e15f8b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_id Module - l10n_id + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_id/doc/CONFIGURATION.md new file mode 100644 index 0000000..d4b5557 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_id. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_id/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_id/doc/DEPENDENCIES.md new file mode 100644 index 0000000..f17682d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/DEPENDENCIES.md @@ -0,0 +1,8 @@ +# Dependencies + +This addon depends on: + +- [account](../../odoo-bringout-oca-ocb-account) +- [base_iban](../../odoo-bringout-oca-ocb-base_iban) +- [base_vat](../../odoo-bringout-oca-ocb-base_vat) +- [l10n_multilang](../../odoo-bringout-oca-ocb-l10n_multilang) diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_id/doc/FAQ.md new file mode 100644 index 0000000..8b85a5f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_id or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_id/doc/INSTALL.md new file mode 100644 index 0000000..4105f71 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_id" +# or +uv pip install odoo-bringout-oca-ocb-l10n_id" +``` diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_id/doc/MODELS.md new file mode 100644 index 0000000..0d93e26 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/MODELS.md @@ -0,0 +1,12 @@ +# Models + +Detected core models and extensions in l10n_id. + +```mermaid +classDiagram + class account_move +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_id/doc/OVERVIEW.md new file mode 100644 index 0000000..e0828f4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_id. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_id +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_id/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_id/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_id/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_id/doc/USAGE.md new file mode 100644 index 0000000..f2764fb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_id +``` diff --git a/odoo-bringout-oca-ocb-l10n_id/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_id/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/__init__.py b/odoo-bringout-oca-ocb-l10n_id/l10n_id/__init__.py new file mode 100644 index 0000000..5409236 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/__init__.py @@ -0,0 +1,9 @@ +# -*- 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() diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/__manifest__.py b/odoo-bringout-oca-ocb-l10n_id/l10n_id/__manifest__.py new file mode 100644 index 0000000..d198f90 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/__manifest__.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'Indonesian - Accounting', + 'version': '1.2', + 'category': 'Accounting/Localizations/Account Charts', + 'description': """ +This is the latest Indonesian Odoo localisation necessary to run Odoo accounting for SMEs with: +================================================================================================= + - generic Indonesian chart of accounts + - tax structure""", + 'author': 'vitraining.com', + 'website': 'http://www.vitraining.com', + 'depends': ['account', 'base_iban', 'base_vat', 'l10n_multilang'], + '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', + ], + 'demo': [ + 'demo/demo_company.xml', + ], + 'post_init_hook': 'load_translations', + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account.account.template.csv new file mode 100644 index 0000000..2ef04a0 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account.account.template.csv @@ -0,0 +1,108 @@ +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 diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_chart_template_configuration_data.xml b/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_chart_template_configuration_data.xml new file mode 100644 index 0000000..0a87f30 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_chart_template_configuration_data.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_chart_template_data.xml new file mode 100644 index 0000000..0f7516a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_chart_template_data.xml @@ -0,0 +1,13 @@ + + + + Indonesian Account Chart Template + 1112 + 1111 + 1999999 + 8 + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_chart_template_post_data.xml b/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_chart_template_post_data.xml new file mode 100644 index 0000000..85859ab --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_chart_template_post_data.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_tax_group.xml b/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_tax_group.xml new file mode 100644 index 0000000..682f063 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_tax_group.xml @@ -0,0 +1,23 @@ + + + + Luxury Good Taxes + 1 + + + + Non-luxury Good Taxes + 2 + + + + Zero-rated Taxes + 3 + + + + Tax Exempted + 4 + + + diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_tax_template_data.xml b/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_tax_template_data.xml new file mode 100644 index 0000000..03bccd7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/data/account_tax_template_data.xml @@ -0,0 +1,239 @@ + + + + PPN - 08 + taxes + + + + 12% + + + sale + 11% + percent + 11.0 + + + + + 12% + + + purchase + 11% + percent + 11.0 + + + + + 0% + + + sale + 0% + percent + 0 + + + + + 0% + + + sale + Exempt + percent + 0 + + + + + 0% + + + purchase + Exempt + percent + 0 + + + + + 0% + + + purchase + 0% + percent + 0 + + + + + 12% + + + sale + 12% + percent + 12.0 + + + + + 12% + + + purchase + 12% + percent + 12.0 + + + + + 20% (Luxury Goods) + + sale + 20% + percent + + 20.0 + + + + diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_id/l10n_id/demo/demo_company.xml new file mode 100644 index 0000000..a77cbf7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/demo/demo_company.xml @@ -0,0 +1,34 @@ + + + + ID Company + 1234567890123456 + AE + Moncongloe + + + 90241 + +62 812-345-678 + info@company.idexample.com + www.idexample.com + + + + ID Company + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/i18n_extra/id.po b/odoo-bringout-oca-ocb-l10n_id/l10n_id/i18n_extra/id.po new file mode 100644 index 0000000..297806b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/i18n_extra/id.po @@ -0,0 +1,849 @@ +# 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" diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/i18n_extra/l10n_id.pot b/odoo-bringout-oca-ocb-l10n_id/l10n_id/i18n_extra/l10n_id.pot new file mode 100644 index 0000000..8afb215 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/i18n_extra/l10n_id.pot @@ -0,0 +1,848 @@ +# 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 "" diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/migrations/1.1/end-migrate_update_taxes.py b/odoo-bringout-oca-ocb-l10n_id/l10n_id/migrations/1.1/end-migrate_update_taxes.py new file mode 100644 index 0000000..ee06162 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/migrations/1.1/end-migrate_update_taxes.py @@ -0,0 +1,6 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo.addons.account.models.chart_template import update_taxes_from_templates + + +def migrate(cr, version): + update_taxes_from_templates(cr, 'l10n_id.l10n_id_chart') diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/migrations/1.2/end-migrate_update_taxes.py b/odoo-bringout-oca-ocb-l10n_id/l10n_id/migrations/1.2/end-migrate_update_taxes.py new file mode 100644 index 0000000..126dc20 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/migrations/1.2/end-migrate_update_taxes.py @@ -0,0 +1,43 @@ +# 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, {}) + + # 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"), + ] + + 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 + }) + + # 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) + + if not id_chart: + return + + companies = env['res.company'].search([('chart_template_id', 'child_of', id_chart.id)]) + 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%"}) diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/models/__init__.py b/odoo-bringout-oca-ocb-l10n_id/l10n_id/models/__init__.py new file mode 100644 index 0000000..6eca875 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/models/__init__.py @@ -0,0 +1,3 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import account_move diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/models/account_move.py b/odoo-bringout-oca-ocb-l10n_id/l10n_id/models/account_move.py new file mode 100644 index 0000000..3a3ecd3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/models/account_move.py @@ -0,0 +1,36 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models +from odoo.tools.misc import formatLang + + +class AccountMove(models.Model): + _inherit = "account.move" + + 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. + 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'): + 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)', + }) + move.tax_totals['display_tax_base'] = True diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/static/description/icon.png b/odoo-bringout-oca-ocb-l10n_id/l10n_id/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ddbfd413b78709d8a1fc0c4aebc91d33d4011d96 GIT binary patch literal 1612 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Yt4rT@hhUEVyOBooLd;)wzT>t<7KXc}SuC9r$ zuAWg*Ddy%j=H_<)85mZqTomi{?*Gi0scG4LeG>}`N)i*(eSL$& z!lE)V3mqKXdwM7M_yk_QeC5)m%a?^k($n(-0>aBHDjgi$u84>>Hg!ZrCHne?#KtB% zJ9{o(vOF>}dGeI$VPWxZZa$u#0SO6d@$ng!mUaslEs2Oo%F8Q@h)4_%Pl$?+FDt9c z%*=hDsAzBRR#)G&c*(Ms*0wow=S`YCt+22xG&HWLxGFd}DljlIGBPPJFd`@@s-~vV z&d%B1-o?tw-rGBH*6ev69)7mA&Qqq&xF#l<6c%4zQGZQL;*5;^)TuL5QgVHKf-^G< z=g(g>VdB(~keJ}$SZiy?u<)40i2SC^Gn z@85rT+O#?I=P&#D^Ji02TSi8%pI>lHOwy-MpL=>I=H!&r)Hb)bcV}i6ToxA1$|?#C zjV-UJX>0G9F=O`Sw)WoM3H9|&fq~)OJriABy>3ZK$Hk?`#3of$*N272IXQVoMa74P z##dF4+5Uj9#?KHsuso2O@BO-)O5bmH_Gv&+jX*00}~l9K7|9o*X5e)jBn zD=UZa@YtZB@a@}o-@JLduC6sVwGIq_^|J)cymqIN7-H@3;imo+0csZv?P!Y3kv z!|j#V-r0*X?GHw6k&re$JD=SzI&+q8kd^GL6`mU`X2s3W(#hG*ts+aXUW#&@8zZHxj3buGzXP z_`5`>*$Y2cuR!B3%Y!-tzcp@d@tNzgMD7ri)s6fJ$F3C*ZaSqiwVU+6c3hCryJ3dh z#Q8>ED?Y3_KOwDX?FYfN6Ro{}zFHyEX!U;agk7AjUO_H_4{NqE%AI{)C8QvA#o?o+ z?!5X}g>M4|n5J@W4OEX<*X*@|WyQpz51S`0Z8)_pW2ur)%yH3xodK4q(ffU0Nu6l9 zcBFEl(So8=X45CGb(+?-T_GU*iK^NaRrgd!madOsb9lB&E($ui#wBh=MTgJEEiQlB zXRBzY^I3)FPwMzzut_D9`=Vz3%FC+Wst!}H6m3p7%b#+2(KIh|ebK~g#uP6S_zFeI1-$DEP(<8H1vA>`8>8-?ZCDWc8 zEK&Y9Jp(WJ<%F`V7i(V1f6i8Jm9DP7t?u2w*W$nLjB4$zI={a{`wV+M_YNx|>Ch9l zm&IKLZfYCy6Z}>iR<4Vm#A`7p_O`YYMr~PrxYQd+yWm-Nx zx0+hLL>5n)Vq>Zle6f1cU$-ssSv#F?w|hk%mE)2PIxTytF?Ge1yHdJ-uIgeZJ>7#R zXzqN6axcn^V01&sl0L>Njzb zUeJ;iI_jFIg#0HiGSUbNQFHA&RVcLh(bJ_7ALgEM3%nv5uxRp>*REZ)j8*loji1Mv zX>Hrd`p57e*M&x}3GH(B#&)c=d)<;d*Ix@-cH(M|iBvTML#-{J@;e#b?TkOzm!6(l VHfiU^E(Qh$22WQ%mvv4FO#pkq*{lEn literal 0 HcmV?d00001 diff --git a/odoo-bringout-oca-ocb-l10n_id/l10n_id/static/description/icon.svg b/odoo-bringout-oca-ocb-l10n_id/l10n_id/static/description/icon.svg new file mode 100644 index 0000000..f80716f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/l10n_id/static/description/icon.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_id/pyproject.toml b/odoo-bringout-oca-ocb-l10n_id/pyproject.toml new file mode 100644 index 0000000..e02f53b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id/pyproject.toml @@ -0,0 +1,45 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_id" +version = "16.0.0" +description = "Indonesian - Accounting - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account>=16.0.0", + "odoo-bringout-oca-ocb-base_iban>=16.0.0", + "odoo-bringout-oca-ocb-base_vat>=16.0.0", + "odoo-bringout-oca-ocb-l10n_multilang>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_id"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/README.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/README.md new file mode 100644 index 0000000..abe533a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/README.md @@ -0,0 +1,66 @@ +# Indonesia E-faktur + + + E-Faktur Menu(Indonesia) + Format : 010.000-16.00000001 + * 2 (dua) digit pertama adalah Kode Transaksi + * 1 (satu) digit berikutnya adalah Kode Status + * 3 (tiga) digit berikutnya adalah Kode Cabang + * 2 (dua) digit pertama adalah Tahun Penerbitan + * 8 (delapan) digit berikutnya adalah Nomor Urut + + To be able to export customer invoices as e-Faktur, + you need to put the ranges of numbers you were assigned + by the government in Accounting > Customers > e-Faktur + + When you validate an invoice, where the partner has the ID PKP + field checked, a tax number will be assigned to that invoice. + Afterwards, you can filter the invoices still to export in the + invoices list and click on Action > Download e-Faktur to download + the csv and upload it to the site of the government. + + You can replace an already sent invoice by another by indicating + the replaced invoice and the new one and you can reset an invoice + you have not already sent to the government to reuse its number. + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_id_efaktur +``` + +## Dependencies + +This addon depends on: +- l10n_id + +## Manifest Information + +- **Name**: Indonesia E-faktur +- **Version**: 1.0 +- **Category**: Accounting/Localizations/EDI +- **License**: LGPL-3 +- **Installable**: True + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_id_efaktur`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/ARCHITECTURE.md new file mode 100644 index 0000000..cc413ea --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_id_efaktur Module - l10n_id_efaktur + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/CONFIGURATION.md new file mode 100644 index 0000000..fa1a183 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_id_efaktur. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/DEPENDENCIES.md new file mode 100644 index 0000000..a505496 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [l10n_id](../../odoo-bringout-oca-ocb-l10n_id) diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/FAQ.md new file mode 100644 index 0000000..22f1fbd --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_id_efaktur or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/INSTALL.md new file mode 100644 index 0000000..05bfd51 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_id_efaktur" +# or +uv pip install odoo-bringout-oca-ocb-l10n_id_efaktur" +``` diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/MODELS.md new file mode 100644 index 0000000..3f80783 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/MODELS.md @@ -0,0 +1,15 @@ +# Models + +Detected core models and extensions in l10n_id_efaktur. + +```mermaid +classDiagram + class l10n_id_efaktur_efaktur_range + class account_move + class res_config_settings + class res_partner +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/OVERVIEW.md new file mode 100644 index 0000000..66742f6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_id_efaktur. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_id_efaktur +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/SECURITY.md new file mode 100644 index 0000000..bf3b2cc --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/SECURITY.md @@ -0,0 +1,34 @@ +# Security + +Access control and security definitions in l10n_id_efaktur. + +## Access Control Lists (ACLs) + +Model access permissions defined in: +- **[ir.model.access.csv](../l10n_id_efaktur/security/ir.model.access.csv)** + - 1 model access rules + +## Record Rules + +Row-level security rules defined in: + +```mermaid +graph TB + subgraph "Security Layers" + A[Users] --> B[Groups] + B --> C[Access Control Lists] + C --> D[Models] + B --> E[Record Rules] + E --> F[Individual Records] + end +``` + +Security files overview: +- **[ir.model.access.csv](../l10n_id_efaktur/security/ir.model.access.csv)** + - Model access permissions (CRUD rights) + +Notes +- Access Control Lists define which groups can access which models +- Record Rules provide row-level security (filter records by user/group) +- Security groups organize users and define permission sets +- All security is enforced at the ORM level by Odoo diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/USAGE.md new file mode 100644 index 0000000..58f6587 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_id_efaktur +``` diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/__init__.py b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/__init__.py new file mode 100644 index 0000000..8134f97 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/__init__.py @@ -0,0 +1,4 @@ +# -*- encoding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/__manifest__.py b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/__manifest__.py new file mode 100644 index 0000000..93b13ce --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/__manifest__.py @@ -0,0 +1,43 @@ +# -*- encoding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'Indonesia E-faktur', + 'icon': '/l10n_id/static/description/icon.png', + 'version': '1.0', + 'description': """ + E-Faktur Menu(Indonesia) + Format : 010.000-16.00000001 + * 2 (dua) digit pertama adalah Kode Transaksi + * 1 (satu) digit berikutnya adalah Kode Status + * 3 (tiga) digit berikutnya adalah Kode Cabang + * 2 (dua) digit pertama adalah Tahun Penerbitan + * 8 (delapan) digit berikutnya adalah Nomor Urut + + To be able to export customer invoices as e-Faktur, + you need to put the ranges of numbers you were assigned + by the government in Accounting > Customers > e-Faktur + + When you validate an invoice, where the partner has the ID PKP + field checked, a tax number will be assigned to that invoice. + Afterwards, you can filter the invoices still to export in the + invoices list and click on Action > Download e-Faktur to download + the csv and upload it to the site of the government. + + You can replace an already sent invoice by another by indicating + the replaced invoice and the new one and you can reset an invoice + you have not already sent to the government to reuse its number. + """, + 'category': 'Accounting/Localizations/EDI', + 'depends': ['l10n_id'], + 'data': [ + 'security/ir.model.access.csv', + 'views/account_move_views.xml', + 'views/efaktur_views.xml', + 'views/res_config_settings_views.xml', + 'views/res_partner_views.xml', + ], + 'installable': True, + 'auto_install': True, + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/i18n/efaktur.pot b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/i18n/efaktur.pot new file mode 100644 index 0000000..8948c5f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/i18n/efaktur.pot @@ -0,0 +1,447 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_id_efaktur +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-02-06 01:39+0000\n" +"PO-Revision-Date: 2025-02-06 01:39+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_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__01 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__01 +msgid "01 Kepada Pihak yang Bukan Pemungut PPN (Customer Biasa)" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__02 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__02 +msgid "02 Kepada Pemungut Bendaharawan (Dinas Kepemerintahan)" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__03 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__03 +msgid "03 Kepada Pemungut Selain Bendaharawan (BUMN)" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__04 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__04 +msgid "04 DPP Nilai Lain (PPN 1%)" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__05 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__05 +msgid "05 Besaran Tertentu" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__06 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__06 +msgid "06 to individuals holding foreign passports" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__07 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__07 +msgid "" +"07 Penyerahan yang PPN-nya Tidak Dipungut (Kawasan Ekonomi Khusus/ Batam)" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__08 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__08 +msgid "08 Penyerahan yang PPN-nya Dibebaskan (Impor Barang Tertentu)" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__09 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__09 +msgid "09 Penyerahan Aktiva ( Pasal 16D UU PPN )" +msgstr "" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.res_config_settings_view_form +msgid "" +"" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "A tax number must begin by a valid Kode Transaksi" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "A tax number should have 16 digits" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__available +msgid "Available" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model,name:l10n_id_efaktur.model_l10n_id_efaktur_efaktur_range +msgid "Available E-faktur range" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_csv_created +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_move__l10n_id_csv_created +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_payment__l10n_id_csv_created +msgid "CSV Created" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "" +"Cannot mix VAT subject and Non-VAT subject items in the same invoice with " +"this kode transaksi." +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__company_id +msgid "Company" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model,name:l10n_id_efaktur.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "Connect %(move_number)s with E-faktur to download this report" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model,name:l10n_id_efaktur.model_res_partner +msgid "Contact" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "Could not download E-faktur in draft state" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__create_uid +msgid "Created by" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__create_date +msgid "Created on" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__display_name +msgid "Display Name" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.actions.server,name:l10n_id_efaktur.dowload_efaktur_action +msgid "Download e-Faktur" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,help:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_kode_transaksi +#: model:ir.model.fields,help:l10n_id_efaktur.field_account_move__l10n_id_kode_transaksi +#: model:ir.model.fields,help:l10n_id_efaktur.field_account_payment__l10n_id_kode_transaksi +#: model:ir.model.fields,help:l10n_id_efaktur.field_res_partner__l10n_id_kode_transaksi +#: model:ir.model.fields,help:l10n_id_efaktur.field_res_users__l10n_id_kode_transaksi +msgid "Dua digit pertama nomor pajak" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "E-faktur is not available for invoices without any taxes." +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "Edit Customer Information" +msgstr "" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.efaktur_tree_view +msgid "Efaktur Number" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/efaktur.py:0 +#, python-format +msgid "Efaktur interleaving range detected" +msgstr "" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.account_move_efaktur_form_view +msgid "Electronic Tax" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/efaktur.py:0 +#, python-format +msgid "First 5 digits should be same in Start Number and End Number." +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__id +msgid "ID" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_partner__l10n_id_pkp +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_users__l10n_id_pkp +msgid "ID PKP" +msgstr "" + +#. module: l10n_id_efaktur +#: model_terms:ir.actions.act_window,help:l10n_id_efaktur.efaktur_invoice_action +msgid "" +"In order to be able to export customer invoices as e-Faktur\n" +" for the Indonesian government, you need to put here the ranges\n" +" of numbers you were assigned by the government.\n" +" When you validate an invoice, a number will be assigned based on these ranges.\n" +" Afterwards, you can filter the invoices still to export in the\n" +" invoices list and click on Action > Download e-Faktur" +msgstr "" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.res_config_settings_view_form +msgid "Indonesian Localization" +msgstr "" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.res_partner_tax_form_view +msgid "Indonesian Taxes" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model,name:l10n_id_efaktur.model_account_move +msgid "Journal Entry" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_kode_transaksi +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_move__l10n_id_kode_transaksi +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_payment__l10n_id_kode_transaksi +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_partner__l10n_id_kode_transaksi +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_users__l10n_id_kode_transaksi +msgid "Kode Transaksi" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_attachment_id +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_move__l10n_id_attachment_id +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_payment__l10n_id_attachment_id +msgid "L10N Id Attachment" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_need_kode_transaksi +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_move__l10n_id_need_kode_transaksi +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_payment__l10n_id_need_kode_transaksi +msgid "L10N Id Need Kode Transaksi" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/efaktur.py:0 +#, python-format +msgid "" +"Last 8 digits of End Number should be greater than the last 8 digit of Start" +" Number" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range____last_update +msgid "Last Modified on" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__write_date +msgid "Last Updated on" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__max +msgid "Max" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__min +msgid "Min" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_partner__l10n_id_nik +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_users__l10n_id_nik +msgid "NIK" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "" +"Please make sure that you've input the appropriate NPWP or NIK for the " +"following customer" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_replace_invoice_id +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_move__l10n_id_replace_invoice_id +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_payment__l10n_id_replace_invoice_id +msgid "Replace Invoice" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "" +"Replacement invoice only for invoices on which the e-Faktur is generated. " +msgstr "" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.account_move_efaktur_form_view +msgid "Reset E-Faktur" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "Some documents are not Customer Invoices" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "Some documents don't have a transaction code" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_config_settings__l10n_id_tax_address +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_partner__l10n_id_tax_address +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_users__l10n_id_tax_address +msgid "Tax Address" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_config_settings__l10n_id_tax_name +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_partner__l10n_id_tax_name +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_users__l10n_id_tax_name +msgid "Tax Name" +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_tax_number +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_move__l10n_id_tax_number +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_payment__l10n_id_tax_number +msgid "Tax Number" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/efaktur.py:0 +#, python-format +msgid "The difference between the two numbers must not be greater than 10.000" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "The third digit of a tax number must be 0 or 1" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "" +"There is no Efaktur number available. Please configure the range you get " +"from the government in the e-Faktur menu. " +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/efaktur.py:0 +#, python-format +msgid "There should be 13 digits in each number." +msgstr "" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.view_account_invoice_filter +msgid "To Generate e-Faktur" +msgstr "" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.efaktur_tree_view +msgid "Total Available" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "" +"You can only change the number manually for a Vendor Bills and Credit Notes" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "You have already generated the tax report for this document: %s" +msgstr "" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "You need to put a Kode Transaksi for this partner." +msgstr "" + +#. module: l10n_id_efaktur +#: model:ir.actions.act_window,name:l10n_id_efaktur.efaktur_invoice_action +#: model:ir.ui.menu,name:l10n_id_efaktur.menu_efaktur_action +msgid "e-Faktur" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/i18n/id.po b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/i18n/id.po new file mode 100644 index 0000000..a5a5e94 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/i18n/id.po @@ -0,0 +1,440 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_id_efaktur +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-12-04 02:05+0000\n" +"PO-Revision-Date: 2023-12-04 19:08+0800\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: id\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 3.4.1\n" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__01 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__01 +msgid "01 To the Parties that is not VAT Collector (Regular Customers)" +msgstr "01 Kepada Pihak yang Bukan Pemungut PPN (Customer Biasa)" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__02 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__02 +msgid "02 To the Treasurer" +msgstr "02 Kepada Pemungut Bendaharawan (Dinas Kepemerintahan)" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__03 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__03 +msgid "03 To other VAT Collectors other than the Treasurer" +msgstr "03 Kepada Pemungut Selain Bendaharawan (BUMN)" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__04 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__04 +msgid "04 Other Value of VAT Imposition Base" +msgstr "04 DPP Nilai Lain (PPN 1%)" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__05 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__05 +msgid "05 Specified Amount (Article 9A Paragraph (1) VAT Law)')" +msgstr "05 Besaran Tertentu" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__06 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__06 +msgid "06 to individuals holding foreign passports" +msgstr "06 Penyerahan Lainnya (Turis Asing)" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__07 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__07 +msgid "" +"07 Deliveries that the VAT is not Collected" +msgstr "" +"07 Penyerahan yang PPN-nya Tidak Dipungut (Kawasan Ekonomi Khusus/ Batam)" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__08 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__08 +msgid "08 Deliveries that the VAT is Exempted" +msgstr "08 Penyerahan yang PPN-nya Dibebaskan (Impor Barang Tertentu)" + +#. module: l10n_id_efaktur +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__account_move__l10n_id_kode_transaksi__09 +#: model:ir.model.fields.selection,name:l10n_id_efaktur.selection__res_partner__l10n_id_kode_transaksi__09 +msgid "09 Deliveries of Assets (Article 16D of VAT Law)" +msgstr "09 Penyerahan Aktiva ( Pasal 16D UU PPN )" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.res_config_settings_view_form +msgid "" +"" +msgstr "" +"" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "A tax number must begin by a valid Kode Transaksi" +msgstr "Nomor pajak harus dimulai dengan Kode Transaksi yang valid" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "A tax number should have 16 digits" +msgstr "Nomor pajak harus memiliki 16 angka" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__available +msgid "Available" +msgstr "Tersedia" + +#. module: l10n_id_efaktur +#: model:ir.model,name:l10n_id_efaktur.model_l10n_id_efaktur_efaktur_range +msgid "Available E-faktur range" +msgstr "Rentang E-faktur yang tersedia" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_csv_created +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_move__l10n_id_csv_created +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_payment__l10n_id_csv_created +msgid "CSV Created" +msgstr "CSV Dibuat" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "" +"Cannot mix VAT subject and Non-VAT subject items in the same invoice with " +"this kode transaksi." +msgstr "" +"Tidak dapat menggabungkan subjek PPN dan subjek Bukan PPN dalam faktur yang " +"sama dengan kode transaksi ini." + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__company_id +msgid "Company" +msgstr "Perusahaan" + +#. module: l10n_id_efaktur +#: model:ir.model,name:l10n_id_efaktur.model_res_config_settings +msgid "Config Settings" +msgstr "Pengaturan Konfigurasi" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "Connect %(move_number)s with E-faktur to download this report" +msgstr "Hubungkan %(move_number)s dengan E-faktur untuk mengunduh laporan ini" + +#. module: l10n_id_efaktur +#: model:ir.model,name:l10n_id_efaktur.model_res_partner +msgid "Contact" +msgstr "Kontak" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "Could not download E-faktur in draft state" +msgstr "Tidak dapat mengunduh E-faktur dalam status draft" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__create_uid +msgid "Created by" +msgstr "Dibuat oleh" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__create_date +msgid "Created on" +msgstr "Dibuat pada" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__display_name +msgid "Display Name" +msgstr "Nama Tampilan" + +#. module: l10n_id_efaktur +#: model:ir.actions.server,name:l10n_id_efaktur.dowload_efaktur_action +msgid "Download e-Faktur" +msgstr "Unduh e-Faktur" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,help:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_kode_transaksi +#: model:ir.model.fields,help:l10n_id_efaktur.field_account_move__l10n_id_kode_transaksi +#: model:ir.model.fields,help:l10n_id_efaktur.field_account_payment__l10n_id_kode_transaksi +#: model:ir.model.fields,help:l10n_id_efaktur.field_res_partner__l10n_id_kode_transaksi +#: model:ir.model.fields,help:l10n_id_efaktur.field_res_users__l10n_id_kode_transaksi +msgid "Dua digit pertama nomor pajak" +msgstr "Dua digit pertama nomor pajak" + +#. module: l10n_id_efaktur +#. odoo-python +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "E-faktur is not available for invoices without any taxes." +msgstr "E-faktur tidak tersedia untuk faktur tanpa pajak apapun." + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.efaktur_tree_view +msgid "Efaktur Number" +msgstr "Nomor Efaktur" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/efaktur.py:0 +#, python-format +msgid "Efaktur interleaving range detected" +msgstr "Interleaving range Efaktur dideteksi" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.account_move_efaktur_form_view +msgid "Electronic Tax" +msgstr "Pajak Elektronik" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/efaktur.py:0 +#, python-format +msgid "First 5 digits should be same in Start Number and End Number." +msgstr "5 angka pertama harus sama dengan Nomor Awal dan Nomor Akhir." + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__id +msgid "ID" +msgstr "ID" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_partner__l10n_id_pkp +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_users__l10n_id_pkp +msgid "ID PKP" +msgstr "ID PKP" + +#. module: l10n_id_efaktur +#: model_terms:ir.actions.act_window,help:l10n_id_efaktur.efaktur_invoice_action +msgid "" +"In order to be able to export customer invoices as e-Faktur\n" +" for the Indonesian government, you need to put here the " +"ranges\n" +" of numbers you were assigned by the government.\n" +" When you validate an invoice, a number will be assigned " +"based on these ranges.\n" +" Afterwards, you can filter the invoices still to export " +"in the\n" +" invoices list and click on Action > Download e-Faktur" +msgstr "" +"Agar dapat mengekspor faktur pelanggan sebagai e-Faktur\n" +" untuk pemerintah Indonesia, Anda harus menaruh di sini " +"rentang\n" +" nomor yang diberikan ke Anda oleh pemerintah.\n" +" Saat Anda memvalidasi faktur, nomor akan diberikan ke " +"Anda berdasarkan rentang-rentang ini.\n" +" Setelahnya, Anda dapat memfilter faktur yang masih akan " +"diekspor di\n" +" daftar faktur dan klik pada Action > Unduh e-Faktur" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.res_config_settings_view_form +msgid "Indonesian Localization" +msgstr "Lokalisasi Indonesia" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.res_partner_tax_form_view +msgid "Indonesian Taxes" +msgstr "Pajak-Pajak Indonesia" + +#. module: l10n_id_efaktur +#: model:ir.model,name:l10n_id_efaktur.model_account_move +msgid "Journal Entry" +msgstr "Entri Jurnal" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_kode_transaksi +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_move__l10n_id_kode_transaksi +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_payment__l10n_id_kode_transaksi +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_partner__l10n_id_kode_transaksi +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_users__l10n_id_kode_transaksi +msgid "Kode Transaksi" +msgstr "Kode Transaksi" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_attachment_id +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_move__l10n_id_attachment_id +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_payment__l10n_id_attachment_id +msgid "L10N Id Attachment" +msgstr "Lampiran L10N Id" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_need_kode_transaksi +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_move__l10n_id_need_kode_transaksi +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_payment__l10n_id_need_kode_transaksi +msgid "L10N Id Need Kode Transaksi" +msgstr "L10N Id Membutuhkan Kode Transaksi" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/efaktur.py:0 +#, python-format +msgid "" +"Last 8 digits of End Number should be greater than the last 8 digit of " +"Start Number" +msgstr "" +"8 angka terakhir dari Nomor Akhir harus lebih besar dari 8 angka terakhir " +"dari Nomor Awal" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range____last_update +msgid "Last Modified on" +msgstr "Dimodifikasi Terakhir pada" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__write_uid +msgid "Last Updated by" +msgstr "Diperbarui Terakhir oleh" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__write_date +msgid "Last Updated on" +msgstr "Diperbarui Terakhir pada" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__max +msgid "Max" +msgstr "Maks" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_l10n_id_efaktur_efaktur_range__min +msgid "Min" +msgstr "Min" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_partner__l10n_id_nik +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_users__l10n_id_nik +msgid "NIK" +msgstr "NIK" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_replace_invoice_id +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_move__l10n_id_replace_invoice_id +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_payment__l10n_id_replace_invoice_id +msgid "Replace Invoice" +msgstr "Ganti Faktur" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "" +"Replacement invoice only for invoices on which the e-Faktur is generated. " +msgstr "Faktur pengganti hanya untuk faktur yang dibuat oleh e-Faktur. " + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.account_move_efaktur_form_view +msgid "Reset E-Faktur" +msgstr "Reset E-Faktur" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "Some documents are not Customer Invoices" +msgstr "Beberapa dokumen bukan merupakan Faktur Pelanggan" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "Some documents don't have a transaction code" +msgstr "Beberapa dokumen tidak memiliki kode transaksi" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_config_settings__l10n_id_tax_address +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_partner__l10n_id_tax_address +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_users__l10n_id_tax_address +msgid "Tax Address" +msgstr "Alamat Pajak" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_config_settings__l10n_id_tax_name +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_partner__l10n_id_tax_name +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_res_users__l10n_id_tax_name +msgid "Tax Name" +msgstr "Nama Pajak" + +#. module: l10n_id_efaktur +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_bank_statement_line__l10n_id_tax_number +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_move__l10n_id_tax_number +#: model:ir.model.fields,field_description:l10n_id_efaktur.field_account_payment__l10n_id_tax_number +msgid "Tax Number" +msgstr "Nomor Pajak" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/efaktur.py:0 +#, python-format +msgid "The difference between the two numbers must not be greater than 10.000" +msgstr "Perbedaan antara dua nomor tidak boleh lebih besar dari 10.000" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "The third digit of a tax number must be 0 or 1" +msgstr "Angka ketiga dari nomor pajak harus 0 atau 1" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "" +"There is no Efaktur number available. Please configure the range you get " +"from the government in the e-Faktur menu. " +msgstr "" +"Tidak ada nomor Efaktur yang tersedia. Silakan konfigurasi rentang yang " +"Anda dapat dari pemerintah di menu e-Faktur. " + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/efaktur.py:0 +#, python-format +msgid "There should be 13 digits in each number." +msgstr "Harus ada 13 angka di setiap nomor." + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.view_account_invoice_filter +msgid "To Generate e-Faktur" +msgstr "Untuk Membuat e-Faktur" + +#. module: l10n_id_efaktur +#: model_terms:ir.ui.view,arch_db:l10n_id_efaktur.efaktur_tree_view +msgid "Total Available" +msgstr "Total Tersedia" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "" +"You can only change the number manually for a Vendor Bills and Credit Notes" +msgstr "" +"Anda hanya dapat mengubah nomor secara manual untuk Tagihan Vendor dan Nota " +"Kredit" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "You have already generated the tax report for this document: %s" +msgstr "Anda sudah membuat laporan pajak untuk dokumen berikut: %s" + +#. module: l10n_id_efaktur +#: code:addons/l10n_id_efaktur/models/account_move.py:0 +#, python-format +msgid "You need to put a Kode Transaksi for this partner." +msgstr "Anda harus mengisi Kode Transaksi untuk partner ini." + +#. module: l10n_id_efaktur +#: model:ir.actions.act_window,name:l10n_id_efaktur.efaktur_invoice_action +#: model:ir.ui.menu,name:l10n_id_efaktur.menu_efaktur_action +msgid "e-Faktur" +msgstr "e-Faktur" diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/__init__.py b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/__init__.py new file mode 100644 index 0000000..776836f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/__init__.py @@ -0,0 +1,6 @@ +# -*- encoding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import efaktur +from . import account_move +from . import res_partner diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/account_move.py b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/account_move.py new file mode 100644 index 0000000..7c140b1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/account_move.py @@ -0,0 +1,371 @@ +# -*- encoding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import base64 +import re +from odoo import api, fields, models, _ +from odoo.exceptions import UserError, ValidationError, RedirectWarning +from odoo.tools import float_round, float_repr + +FK_HEAD_LIST = ['FK', 'KD_JENIS_TRANSAKSI', 'FG_PENGGANTI', 'NOMOR_FAKTUR', 'MASA_PAJAK', 'TAHUN_PAJAK', 'TANGGAL_FAKTUR', 'NPWP', 'NAMA', 'ALAMAT_LENGKAP', 'JUMLAH_DPP', 'JUMLAH_PPN', 'JUMLAH_PPNBM', 'ID_KETERANGAN_TAMBAHAN', 'FG_UANG_MUKA', 'UANG_MUKA_DPP', 'UANG_MUKA_PPN', 'UANG_MUKA_PPNBM', 'REFERENSI', 'KODE_DOKUMEN_PENDUKUNG'] + +LT_HEAD_LIST = ['LT', 'NPWP', 'NAMA', 'JALAN', 'BLOK', 'NOMOR', 'RT', 'RW', 'KECAMATAN', 'KELURAHAN', 'KABUPATEN', 'PROPINSI', 'KODE_POS', 'NOMOR_TELEPON'] + +OF_HEAD_LIST = ['OF', 'KODE_OBJEK', 'NAMA', 'HARGA_SATUAN', 'JUMLAH_BARANG', 'HARGA_TOTAL', 'DISKON', 'DPP', 'PPN', 'TARIF_PPNBM', 'PPNBM'] + + +def _csv_row(data, delimiter=',', quote='"'): + return quote + (quote + delimiter + quote).join([str(x).replace(quote, '\\' + quote) for x in data]) + quote + '\n' + + +class AccountMove(models.Model): + _inherit = "account.move" + + l10n_id_tax_number = fields.Char(string="Tax Number", copy=False) + l10n_id_replace_invoice_id = fields.Many2one('account.move', string="Replace Invoice", domain="['|', '&', '&', ('state', '=', 'posted'), ('partner_id', '=', partner_id), ('reversal_move_id', '!=', False), ('state', '=', 'cancel')]", copy=False, index='btree_not_null') + l10n_id_attachment_id = fields.Many2one('ir.attachment', readonly=True, copy=False) + l10n_id_csv_created = fields.Boolean('CSV Created', compute='_compute_csv_created', copy=False) + l10n_id_kode_transaksi = fields.Selection([ + ('01', '01 To the Parties that is not VAT Collector (Regular Customers)'), + ('02', '02 To the Treasurer'), + ('03', '03 To other VAT Collectors other than the Treasurer'), + ('04', '04 Other Value of VAT Imposition Base'), + ('05', '05 Specified Amount (Article 9A Paragraph (1) VAT Law)'), + ('06', '06 to individuals holding foreign passports'), + ('07', '07 Deliveries that the VAT is not Collected'), + ('08', '08 Deliveries that the VAT is Exempted'), + ('09', '09 Deliveries of Assets (Article 16D of VAT Law)'), + ], string='Kode Transaksi', help='Dua digit pertama nomor pajak', + readonly=False, states={'posted': [('readonly', True)], 'cancel': [('readonly', True)]}, copy=False, + compute="_compute_kode_transaksi", store=True) + l10n_id_need_kode_transaksi = fields.Boolean(compute='_compute_need_kode_transaksi') + + @api.onchange('l10n_id_tax_number') + def _onchange_l10n_id_tax_number(self): + for record in self: + if record.l10n_id_tax_number and record.move_type not in self.get_purchase_types(): + raise UserError(_("You can only change the number manually for a Vendor Bills and Credit Notes")) + + @api.depends('l10n_id_attachment_id') + def _compute_csv_created(self): + for record in self: + record.l10n_id_csv_created = bool(record.l10n_id_attachment_id) + + @api.depends('partner_id') + def _compute_kode_transaksi(self): + for move in self: + move.l10n_id_kode_transaksi = move.partner_id.commercial_partner_id.l10n_id_kode_transaksi + + @api.depends('partner_id', 'line_ids.tax_ids') + def _compute_need_kode_transaksi(self): + for move in self: + # If there are no taxes at all on every line (0% taxes counts as having a tax) then we don't need a kode transaksi + move.l10n_id_need_kode_transaksi = ( + move.partner_id.commercial_partner_id.l10n_id_pkp + and not move.l10n_id_tax_number + and move.move_type == 'out_invoice' + and move.country_code == 'ID' + and move.line_ids.tax_ids + ) + + @api.constrains('l10n_id_kode_transaksi', 'line_ids', 'partner_id') + def _constraint_kode_ppn(self): + ppn_tag = self.env.ref('l10n_id.ppn_tag') + for move in self.filtered(lambda m: m.l10n_id_need_kode_transaksi and m.l10n_id_kode_transaksi != '08'): + if any(ppn_tag.id in line.tax_tag_ids.ids for line in move.line_ids if line.display_type == 'product') \ + and any(ppn_tag.id not in line.tax_tag_ids.ids for line in move.line_ids if line.display_type == 'product'): + raise UserError(_('Cannot mix VAT subject and Non-VAT subject items in the same invoice with this kode transaksi.')) + for move in self.filtered(lambda m: m.l10n_id_need_kode_transaksi and m.l10n_id_kode_transaksi == '08'): + if any(ppn_tag.id in line.tax_tag_ids.ids for line in move.line_ids if line.display_type == 'product'): + raise UserError('Kode transaksi 08 is only for non VAT subject items.') + + @api.constrains('l10n_id_tax_number') + def _constrains_l10n_id_tax_number(self): + for record in self.filtered('l10n_id_tax_number'): + if record.l10n_id_tax_number != re.sub(r'\D', '', record.l10n_id_tax_number): + record.l10n_id_tax_number = re.sub(r'\D', '', record.l10n_id_tax_number) + if len(record.l10n_id_tax_number) != 16: + raise UserError(_('A tax number should have 16 digits')) + elif record.l10n_id_tax_number[:2] not in dict(self._fields['l10n_id_kode_transaksi'].selection).keys(): + raise UserError(_('A tax number must begin by a valid Kode Transaksi')) + elif record.l10n_id_tax_number[2] not in ('0', '1'): + raise UserError(_('The third digit of a tax number must be 0 or 1')) + + def _post(self, soft=True): + """Set E-Faktur number after validation.""" + for move in self: + if move.l10n_id_need_kode_transaksi: + if not move.l10n_id_kode_transaksi: + raise ValidationError(_('You need to put a Kode Transaksi for this partner.')) + if move.l10n_id_replace_invoice_id.l10n_id_tax_number: + if not move.l10n_id_replace_invoice_id.l10n_id_attachment_id: + raise ValidationError(_('Replacement invoice only for invoices on which the e-Faktur is generated. ')) + rep_efaktur_str = move.l10n_id_replace_invoice_id.l10n_id_tax_number + move.l10n_id_tax_number = '%s1%s' % (move.l10n_id_kode_transaksi, rep_efaktur_str[3:]) + else: + efaktur = self.env['l10n_id_efaktur.efaktur.range'].pop_number(move.company_id.id) + if not efaktur: + raise ValidationError(_('There is no Efaktur number available. Please configure the range you get from the government in the e-Faktur menu. ')) + move.l10n_id_tax_number = '%s0%013d' % (str(move.l10n_id_kode_transaksi), efaktur) + return super()._post(soft) + + def reset_efaktur(self): + """Reset E-Faktur, so it can be use for other invoice.""" + for move in self: + if move.l10n_id_attachment_id: + raise UserError(_('You have already generated the tax report for this document: %s', move.name)) + self.env['l10n_id_efaktur.efaktur.range'].push_number(move.company_id.id, move.l10n_id_tax_number[3:]) + move.message_post( + body='e-Faktur Reset: %s ' % (move.l10n_id_tax_number), + subject="Reset Efaktur") + move.l10n_id_tax_number = False + return True + + def download_csv(self): + action = { + 'type': 'ir.actions.act_url', + 'url': "web/content/?model=ir.attachment&id=" + str(self.l10n_id_attachment_id.id) + "&filename_field=name&field=datas&download=true&name=" + self.l10n_id_attachment_id.name, + 'target': 'self' + } + return action + + def download_efaktur(self): + """Collect the data and execute function _generate_efaktur.""" + for record in self: + if record.state == 'draft': + raise ValidationError(_('Could not download E-faktur in draft state')) + + if not record.l10n_id_tax_number: + if not record.l10n_id_need_kode_transaksi: + raise ValidationError(_('E-faktur is not available for invoices without any taxes.')) + raise ValidationError(_('Connect %(move_number)s with E-faktur to download this report', move_number=record.name)) + + self._generate_efaktur(',') + return self.download_csv() + + def _generate_efaktur_invoice(self, delimiter): + """Generate E-Faktur for customer invoice.""" + # Invoice of Customer + + output_head = '%s%s%s' % ( + _csv_row(FK_HEAD_LIST, delimiter), + _csv_row(LT_HEAD_LIST, delimiter), + _csv_row(OF_HEAD_LIST, delimiter), + ) + + idr = self.env.ref('base.IDR') + + for move in self.filtered(lambda m: m.state == 'posted'): + eTax = move._prepare_etax() + + commercial_partner = move.partner_id.commercial_partner_id + nik = str(commercial_partner.l10n_id_nik) if not commercial_partner.vat else '' + + if move.l10n_id_replace_invoice_id: + number_ref = str(move.l10n_id_replace_invoice_id.name) + " replaced by " + str(move.name) + " " + nik + elif nik: + number_ref = str(move.name) + " " + nik + else: + number_ref = str(move.name) + + street = ', '.join([x for x in (move.partner_id.street, move.partner_id.street2) if x]) + + invoice_npwp = '' + if commercial_partner.vat and len(commercial_partner.vat) >= 15: + invoice_npwp = commercial_partner.vat + elif commercial_partner.l10n_id_nik: + invoice_npwp = commercial_partner.l10n_id_nik + if not invoice_npwp: + action_error = { + 'view_mode': 'form', + 'res_model': 'res.partner', + 'type': 'ir.actions.act_window', + 'res_id': commercial_partner.id, + 'views': [[self.env.ref('base.view_partner_form').id, 'form']], + } + msg = _("Please make sure that you've input the appropriate NPWP or NIK for the following customer") + raise RedirectWarning(msg, action_error, _("Edit Customer Information")) + invoice_npwp = invoice_npwp.replace('.', '').replace('-', '') + + etax_name = commercial_partner.l10n_id_tax_name or move.partner_id.name + if invoice_npwp[:15] == '000000000000000' and commercial_partner.l10n_id_nik: + etax_name = "%s#NIK#NAMA#%s" % (commercial_partner.l10n_id_nik, etax_name) + + # Here all fields or columns based on eTax Invoice Third Party + eTax['KD_JENIS_TRANSAKSI'] = move.l10n_id_tax_number[0:2] or 0 + eTax['FG_PENGGANTI'] = move.l10n_id_tax_number[2:3] or 0 + eTax['NOMOR_FAKTUR'] = move.l10n_id_tax_number[3:] or 0 + eTax['MASA_PAJAK'] = move.invoice_date.month + eTax['TAHUN_PAJAK'] = move.invoice_date.year + eTax['TANGGAL_FAKTUR'] = '{0}/{1}/{2}'.format(move.invoice_date.day, move.invoice_date.month, move.invoice_date.year) + eTax['NPWP'] = invoice_npwp + eTax['NAMA'] = etax_name + eTax['ALAMAT_LENGKAP'] = move.partner_id.contact_address.replace('\n', '').strip() if eTax['NPWP'] == '000000000000000' else commercial_partner.l10n_id_tax_address or street + eTax['JUMLAH_DPP'] = int(float_round(move.amount_untaxed, 0)) # currency rounded to the unit + eTax['JUMLAH_PPN'] = int(float_round(move.amount_tax, 0, rounding_method="DOWN")) # tax amount ALWAYS rounded down + eTax['ID_KETERANGAN_TAMBAHAN'] = '1' if move.l10n_id_kode_transaksi == '07' else '' + eTax['REFERENSI'] = number_ref + eTax['KODE_DOKUMEN_PENDUKUNG'] = '0' + + lines = move.line_ids.filtered(lambda x: x.move_id._is_downpayment() and x.price_unit < 0 and x.display_type == 'product') + eTax['FG_UANG_MUKA'] = 0 + eTax['UANG_MUKA_DPP'] = float_repr(abs(sum(lines.mapped(lambda l: float_round(l.price_subtotal, 0)))), 0) + eTax['UANG_MUKA_PPN'] = float_repr(abs(sum(lines.mapped(lambda l: float_round(l.price_total - l.price_subtotal, 0)))), 0) + + fk_values_list = ['FK'] + [eTax[f] for f in FK_HEAD_LIST[1:]] + + # HOW TO ADD 2 line to 1 line for free product + free, sales = [], [] + + for line in move.line_ids.filtered(lambda l: l.display_type == 'product'): + # *invoice_line_unit_price is price unit use for harga_satuan's column + # *invoice_line_quantity is quantity use for jumlah_barang's column + # *invoice_line_total_price is bruto price use for harga_total's column + # *invoice_line_discount_m2m is discount price use for diskon's column + # *line.price_subtotal is subtotal price use for dpp's column + # *tax_line or free_tax_line is tax price use for ppn's column + free_tax_line = tax_line = 0.0 + + for tax in line.tax_ids: + if tax.amount > 0: + tax_line += line.price_subtotal * (tax.amount / 100.0) + + discount = 1 - (line.discount / 100) + # guarantees price to be tax-excluded + invoice_line_total_price = line.price_subtotal / discount if discount else 0 + invoice_line_unit_price = invoice_line_total_price / line.quantity if line.quantity else 0 + + line_dict = { + 'KODE_OBJEK': line.product_id.default_code or '', + 'NAMA': line.product_id.name or '', + 'HARGA_SATUAN': float_repr(idr.round(invoice_line_unit_price), idr.decimal_places), + 'JUMLAH_BARANG': line.quantity, + 'HARGA_TOTAL': idr.round(invoice_line_total_price), + 'DPP': line.price_subtotal, + 'product_id': line.product_id.id, + } + + if line.price_subtotal < 0: + for tax in line.tax_ids: + free_tax_line += (line.price_subtotal * (tax.amount / 100.0)) * -1.0 + + line_dict.update({ + 'DISKON': float_round(invoice_line_total_price - line.price_subtotal, 0), + 'PPN': free_tax_line, + }) + free.append(line_dict) + elif line.price_subtotal != 0.0: + invoice_line_discount_m2m = invoice_line_total_price - line.price_subtotal + + line_dict.update({ + 'DISKON': float_round(invoice_line_discount_m2m, 0), + 'PPN': tax_line, + }) + sales.append(line_dict) + + sub_total_before_adjustment = sub_total_ppn_before_adjustment = 0.0 + + # We are finding the product that has affected + # by free product to adjustment the calculation + # of discount and subtotal. + # - the price total of free product will be + # included as a discount to related of product. + for sale in sales: + for f in free: + if f['product_id'] == sale['product_id']: + sale['DISKON'] = sale['DISKON'] - f['DISKON'] + f['PPN'] + sale['DPP'] = sale['DPP'] + f['DPP'] + + tax_line = 0 + + for tax in line.tax_ids: + if tax.amount > 0: + tax_line += sale['DPP'] * (tax.amount / 100.0) + + sale['PPN'] = tax_line + + free.remove(f) + + sub_total_before_adjustment += sale['DPP'] + sub_total_ppn_before_adjustment += sale['PPN'] + + sale.update({ + # Use the db currency rounding to float_round the DPP/PPN. + # As we will correct them we need them to be close to the final result. + 'DPP': idr.round(sale['DPP']), + 'PPN': idr.round(sale['PPN']), + 'DISKON': float_repr(sale['DISKON'], 0), + }) + + + # The total of the base (DPP) and taxes (PPN) must be a integer, equal to the JUMLAH_DPP and JUMLAH_PPN + # To do so, we adjust the first line in order to achieve the correct total + if sales: + diff_dpp = idr.round(eTax['JUMLAH_DPP'] - sum([sale['DPP'] for sale in sales])) + total_sales_ppn = idr.round(eTax['JUMLAH_PPN'] - sum([sale['PPN'] for sale in sales])) + # We will add the differences to the first line for which adding the difference will not result in a negative value. + for sale in sales: + if sale['DPP'] + diff_dpp >= 0 and sale['PPN'] + total_sales_ppn >= 0: + sale['HARGA_TOTAL'] += diff_dpp + sale['DPP'] += diff_dpp + diff_dpp = 0 + sale['PPN'] += total_sales_ppn + total_sales_ppn = 0 + break + + # We couldn't adjust everything in a single line as their values is too low. + # So we will instead slit the adjustment in multiple lines. + if diff_dpp or total_sales_ppn: + for sale in sales: + # DPP + sale_dpp = sale['DPP'] + sale["DPP"] = max(0, sale["DPP"] + diff_dpp) + diff_dpp -= (sale["DPP"] - sale_dpp) + sale['HARGA_TOTAL'] = sale["DPP"] + # PPN + sale_ppn = sale['PPN'] + sale["PPN"] = max(0, sale["PPN"] + total_sales_ppn) + total_sales_ppn -= (sale["PPN"] - sale_ppn) + + # Values now being corrected, we can format them for the CSV + for sale in sales: + sale.update({ + 'HARGA_TOTAL': float_repr(sale['HARGA_TOTAL'], idr.decimal_places), + 'DPP': float_repr(sale['DPP'], idr.decimal_places), + 'PPN': float_repr(sale['PPN'], idr.decimal_places), + }) + + output_head += _csv_row(fk_values_list, delimiter) + for sale in sales: + of_values_list = ['OF'] + [str(sale[f]) for f in OF_HEAD_LIST[1:-2]] + ['0', '0'] + output_head += _csv_row(of_values_list, delimiter) + + return output_head + + def _prepare_etax(self): + # These values are never set + return {'JUMLAH_PPNBM': 0, 'UANG_MUKA_PPNBM': 0, 'JUMLAH_BARANG': 0, 'TARIF_PPNBM': 0, 'PPNBM': 0} + + def _generate_efaktur(self, delimiter): + if self.filtered(lambda x: not x.l10n_id_kode_transaksi): + raise UserError(_('Some documents don\'t have a transaction code')) + if self.filtered(lambda x: x.move_type != 'out_invoice'): + raise UserError(_('Some documents are not Customer Invoices')) + + output_head = self._generate_efaktur_invoice(delimiter) + my_utf8 = output_head.encode("utf-8") + out = base64.b64encode(my_utf8) + + attachment = self.env['ir.attachment'].create({ + 'datas': out, + 'name': 'efaktur_%s.csv' % (fields.Datetime.to_string(fields.Datetime.now()).replace(" ", "_")), + 'type': 'binary', + }) + + for record in self: + record.message_post(attachment_ids=[attachment.id]) + self.l10n_id_attachment_id = attachment.id + return { + 'type': 'ir.actions.client', + 'tag': 'reload', + } diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/efaktur.py b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/efaktur.py new file mode 100644 index 0000000..71a9b5e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/efaktur.py @@ -0,0 +1,111 @@ +# -*- encoding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models, _ +from odoo.exceptions import ValidationError + +import re + + +class Efaktur(models.Model): + _name = "l10n_id_efaktur.efaktur.range" + _description = "Available E-faktur range" + + company_id = fields.Many2one('res.company', required=True, default=lambda self: self.env.company) + max = fields.Char(compute='_compute_default', store=True, readonly=False) + min = fields.Char(compute='_compute_default', store=True, readonly=False) + available = fields.Integer(compute='_compute_available', store=True) + + @api.model + def pop_number(self, company_id): + range = self.search([('company_id', '=', company_id)], order="min ASC", limit=1) + if not range: + return None + + popped = int(range.min) + if int(range.min) >= int(range.max): + range.unlink() + else: + range.min = '%013d' % (popped + 1) + return popped + + @api.model + def push_number(self, company_id, number): + return self.push_numbers(company_id, number, number) + + @api.model + def push_numbers(self, company_id, min, max): + range_sup = self.search([('min', '=', '%013d' % (int(max) + 1))]) + if range_sup: + range_sup.min = '%013d' % int(min) + max = range_sup.max + + range_low = self.search([('max', '=', '%013d' % (int(max) - 1))]) + if range_low: + range_sup.unlink() + range_low.max = '%013d' % int(max) + + if not range_sup and not range_low: + self.create({ + 'company_id': company_id, + 'max': '%013d' % int(max), + 'min': '%013d' % int(min), + }) + + + @api.constrains('min', 'max') + def _constrains_min_max(self): + for record in self: + if not len(record.min) == 13 or not len(record.max) == 13: + raise ValidationError(_("There should be 13 digits in each number.")) + + if record.min[:-8] != record.max[:-8]: + raise ValidationError(_("First 5 digits should be same in Start Number and End Number.")) + + if int(record.min[-8:]) > int(record.max[-8:]): + raise ValidationError(_("Last 8 digits of End Number should be greater than the last 8 digit of Start Number")) + + if (int(record.max) - int(record.min)) > 10000: + raise ValidationError(_("The difference between the two numbers must not be greater than 10.000")) + + # The number of records should always be very small, so it is ok to search in loop + if self.search([ + '&', ('id', '!=', record.id), '|', '|', + '&', ('min', '<=', record.max), ('max', '>=', record.max), + '&', ('min', '<=', record.min), ('max', '>=', record.min), + '&', ('min', '>=', record.min), ('max', '<=', record.max), + ]): + raise ValidationError(_('Efaktur interleaving range detected')) + + @api.depends('min', 'max') + def _compute_available(self): + for record in self: + record.available = 1 + int(record.max) - int(record.min) + + @api.depends('company_id') + def _compute_default(self): + for record in self: + query = """ + SELECT MAX(SUBSTRING(l10n_id_tax_number FROM 4)) + FROM account_move + WHERE l10n_id_tax_number IS NOT NULL + AND company_id = %s + """ + self.env.cr.execute(query, [record.company_id.id]) + max_used = int(self.env.cr.fetchone()[0] or 0) + max_available = int(self.env['l10n_id_efaktur.efaktur.range'].search([('company_id', '=', record.company_id.id)], order='max DESC', limit=1).max) + record.min = record.max = '%013d' % (max(max_available, max_used) + 1) + + @api.onchange('min') + def _onchange_min(self): + min_val = re.sub(r'\D', '', str(self.min)) or 0 + self.min = '%013d' % int(min_val) + if not self.max or int(self.min) > int(self.max): + self.max = self.min + + @api.onchange('max') + def _onchange_max(self): + max_val = re.sub(r'\D', '', str(self.max)) or 0 + self.max = '%013d' % int(max_val) + if not self.min or int(self.min) > int(self.max): + self.min = self.max diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/res_partner.py b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/res_partner.py new file mode 100644 index 0000000..383175b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/models/res_partner.py @@ -0,0 +1,41 @@ +# -*- encoding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models, api + + +class ResPartner(models.Model): + """Inherit res.partner object to add NPWP field and Kode Transaksi""" + _inherit = "res.partner" + + l10n_id_pkp = fields.Boolean(string="ID PKP", compute='_compute_l10n_id_pkp', store=True, readonly=False) + l10n_id_nik = fields.Char(string='NIK') + l10n_id_tax_address = fields.Char('Tax Address') + l10n_id_tax_name = fields.Char('Tax Name') + l10n_id_kode_transaksi = fields.Selection([ + ('01', '01 To the Parties that is not VAT Collector (Regular Customers)'), + ('02', '02 To the Treasurer'), + ('03', '03 To other VAT Collectors other than the Treasurer'), + ('04', '04 Other Value of VAT Imposition Base'), + ('05', '05 Specified Amount (Article 9A Paragraph (1) VAT Law)'), + ('06', '06 to individuals holding foreign passports'), + ('07', '07 Deliveries that the VAT is not Collected'), + ('08', '08 Deliveries that the VAT is Exempted'), + ('09', '09 Deliveries of Assets (Article 16D of VAT Law)'), + ], + string='Kode Transaksi', + help='Dua digit pertama nomor pajak', + default='01', + ) + + @api.depends('vat', 'country_code') + def _compute_l10n_id_pkp(self): + for record in self: + record.l10n_id_pkp = record.vat and record.country_code == 'ID' + + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + l10n_id_tax_address = fields.Char('Tax Address', related='company_id.partner_id.l10n_id_tax_address', readonly=False) + l10n_id_tax_name = fields.Char('Tax Name', related='company_id.partner_id.l10n_id_tax_address', readonly=False) diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/security/ir.model.access.csv b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/security/ir.model.access.csv new file mode 100644 index 0000000..c608a97 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_efaktur_user,access.efaktur.user,model_l10n_id_efaktur_efaktur_range,account.group_account_invoice,1,1,1,1 diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/tests/__init__.py b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/tests/__init__.py new file mode 100644 index 0000000..7e82df5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/tests/__init__.py @@ -0,0 +1 @@ +from . import test_l10n_id_efaktur diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/tests/test_l10n_id_efaktur.py b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/tests/test_l10n_id_efaktur.py new file mode 100644 index 0000000..be10bc6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/tests/test_l10n_id_efaktur.py @@ -0,0 +1,291 @@ +import csv + +from odoo import Command +from odoo.exceptions import ValidationError +from odoo.tests import tagged +from odoo.addons.account.tests.common import AccountTestInvoicingCommon +from odoo.addons.l10n_id_efaktur.models.account_move import FK_HEAD_LIST, LT_HEAD_LIST, OF_HEAD_LIST, _csv_row, AccountMove +from odoo.exceptions import RedirectWarning +from unittest.mock import patch + +@tagged('post_install', '-at_install', 'post_install_l10n') +class TestIndonesianEfaktur(AccountTestInvoicingCommon): + + @classmethod + def setUpClass(cls, chart_template_ref='l10n_id.l10n_id_chart'): + super().setUpClass(chart_template_ref=chart_template_ref) + """ + 1) contact with l10n_id_pkp=True, l10n_id_kode_transaksi="01" + 2) tax: amount=10, type_tax_use=sale, price_include=True + 3) invoice with partner_id=contact, journal=customer invoices, + """ + cls.company_data['company'].write({ + 'street': 'test', + 'phone': '12345', + 'vat': '1234567890123456', + }) + + # For the sake of unit test of this module, we want to retain the the compute method for field + # l10n_id_need_kode_transaksi of this module. In the coretax module, l10n_id_need_kode_transaksi + # is always set to False to prevent the flows of old module to be triggered + patch_kode_transaksi = patch('odoo.addons.l10n_id_efaktur_coretax.models.account_move.AccountMove._compute_need_kode_transaksi', + AccountMove._compute_need_kode_transaksi) + cls.startClassPatcher(patch_kode_transaksi) + + indonesia = cls.env.ref('base.id') + cls.partner_id = cls.env['res.partner'].create({"name": "l10ntest", "l10n_id_pkp": True, "l10n_id_kode_transaksi": "01", "l10n_id_nik": "12345", "vat": "000000000000000", "country_id": indonesia.id}) + cls.partner_id_vat = cls.env['res.partner'].create({"name": "l10ntest3", "l10n_id_pkp": True, "l10n_id_kode_transaksi": "01", "l10n_id_nik": "67890", "vat": "010000000000000"}) + cls.tax_id = cls.env['account.tax'].create({"name": "test tax", "type_tax_use": "sale", "amount": 10.0, "price_include": True}) + + cls.efaktur = cls.env['l10n_id_efaktur.efaktur.range'].create({'min': '0000000000001', 'max': '0000000000010'}) + cls.out_invoice_1 = cls.env['account.move'].create({ + 'move_type': 'out_invoice', + 'partner_id': cls.partner_id.id, + 'invoice_date': '2019-05-01', + 'date': '2019-05-01', + 'invoice_line_ids': [ + (0, 0, {'name': 'line1', 'price_unit': 110.0, 'tax_ids': cls.tax_id.ids}), + ], + 'l10n_id_kode_transaksi': "01", + }) + cls.out_invoice_1.action_post() + + cls.out_invoice_2 = cls.env['account.move'].create({ + 'move_type': 'out_invoice', + 'partner_id': cls.partner_id.id, + 'invoice_date': '2019-05-01', + 'date': '2019-05-01', + 'invoice_line_ids': [ + (0, 0, {'name': 'line1', 'price_unit': 110.11, 'quantity': 400, 'tax_ids': cls.tax_id.ids}) + ], + 'l10n_id_kode_transaksi': '01' + }) + cls.out_invoice_2.action_post() + + def test_efaktur_csv_output_1(self): + """ + Test to ensure that the output csv data contains tax-excluded prices regardless of whether the tax configuration is tax-included or tax-excluded. + Current test is using price of 110 which is tax-included with tax of amount 10%. So the unit price listed has to be 100 whereas the original result would have 110 instead. + """ + # to check the diff when test fails + + efaktur_csv_output = self.out_invoice_1._generate_efaktur_invoice(',') + output_head = '%s%s%s' % ( + _csv_row(FK_HEAD_LIST, ','), + _csv_row(LT_HEAD_LIST, ','), + _csv_row(OF_HEAD_LIST, ','), + ) + # remaining lines + line_4 = '"FK","01","0","0000000000001","5","2019","1/5/2019","000000000000000","12345#NIK#NAMA#l10ntest","Indonesia","100","10","0","","0","0","0","0","INV/2019/00001","0"\n' + line_5 = '"OF","","","100.00","1.0","100.00","0","100.00","10.00","0","0"\n' + + efaktur_csv_expected = output_head + line_4 + line_5 + + self.assertEqual(efaktur_csv_expected, efaktur_csv_output) + + def test_efaktur_csv_output_decimal_place(self): + """ + Test to ensure that decimal place conversion is only done when inputting to csv + This is to test original calculation of invoice_line_total_price: invoice_line_total_price = invoice_line_unit_price * line.quantity + as invoice_line_unit_price is already converted to be tax-excluded and set to the decimal place as configured on the currency, the calculation of total could be flawed. + + In this test case, the tax-included price unit is 110.11, hence tax-excluded is 100.1, + invoice_line_unit_price will be 100, if we continue with the calculation of total price, it will be 100*400 = 40000 + eventhough the total is supposed to be 100.1*400 = 40040, there is a 40 discrepancy + """ + efaktur_csv_output = self.out_invoice_2._generate_efaktur_invoice(',') + output_head = '%s%s%s' % ( + _csv_row(FK_HEAD_LIST, ','), + _csv_row(LT_HEAD_LIST, ','), + _csv_row(OF_HEAD_LIST, ','), + ) + line_4 = '"FK","01","0","0000000000002","5","2019","1/5/2019","000000000000000","12345#NIK#NAMA#l10ntest","Indonesia","40040","4004","0","","0","0","0","0","INV/2019/00002","0"\n' + line_5 = '"OF","","","100.10","400.0","40040.00","0","40040.00","4004.00","0","0"\n' + + efaktur_csv_expected = output_head + line_4 + line_5 + self.assertEqual(efaktur_csv_expected, efaktur_csv_output) + + def test_efaktur_use_vat(self): + """ Test to ensure that the e-faktur uses the VAT on NPWP column of efaktur when + VAT is non-zeros """ + out_invoice = self.env['account.move'].create({ + 'move_type': 'out_invoice', + 'partner_id': self.partner_id_vat.id, + 'invoice_date': '2019-05-01', + 'date': '2019-05-01', + 'invoice_line_ids': [ + (0, 0, {'name': 'line1', 'price_unit': 110.11, 'quantity': 400, 'tax_ids': self.tax_id.ids}) + ], + 'l10n_id_kode_transaksi': '01' + }) + out_invoice.action_post() + efaktur_csv_output = out_invoice._generate_efaktur_invoice(',') + output_head = '%s%s%s' % ( + _csv_row(FK_HEAD_LIST, ','), + _csv_row(LT_HEAD_LIST, ','), + _csv_row(OF_HEAD_LIST, ','), + ) + line_4 = '"FK","01","0","0000000000003","5","2019","1/5/2019","010000000000000","l10ntest3","","40040","4004","0","","0","0","0","0","INV/2019/00003","0"\n' + line_5 = '"OF","","","100.10","400.0","40040.00","0","40040.00","4004.00","0","0"\n' + + efaktur_csv_expected = output_head + line_4 + line_5 + self.assertEqual(efaktur_csv_expected, efaktur_csv_output) + + def test_efaktur_no_vat_nik(self): + """ Test to ensure that when no VAT and NIK is supplied, a RedirectWarning should be raised """ + partner_no_vat_nik = self.env['res.partner'].create({"name": "l10ntest4", "l10n_id_pkp": True, "l10n_id_kode_transaksi": "01"}) + out_invoice = self.env['account.move'].create({ + 'move_type': 'out_invoice', + 'partner_id': partner_no_vat_nik.id, + 'invoice_date': '2019-05-01', + 'date': '2019-05-01', + 'invoice_line_ids': [ + (0, 0, {'name': 'line1', 'price_unit': 110.11, 'quantity': 400, 'tax_ids': self.tax_id.ids}) + ], + 'l10n_id_kode_transaksi': '01' + }) + out_invoice.action_post() + with self.assertRaises(RedirectWarning): + out_invoice._generate_efaktur_invoice(',') + + def test_efaktur_nik_with_no_vat(self): + """ Test to ensure if there is contact has no VAT but has NIK + + NPWP would contain NIK, NAMA contains customer's name, REFERENSI would contain invoice name with customer's NIK""" + + partner_nik_no_vat = self.env['res.partner'].create({"name": "l10ntest4", "l10n_id_pkp": True, "l10n_id_kode_transaksi": "01", "l10n_id_nik": "1532167"}) + out_invoice = self.env['account.move'].create({ + 'move_type': 'out_invoice', + 'partner_id': partner_nik_no_vat.id, + 'invoice_date': '2019-05-01', + 'date': '2019-05-01', + 'invoice_line_ids': [ + (0, 0, {'name': 'line1', 'price_unit': 110.11, 'quantity': 400, 'tax_ids': self.tax_id.ids}) + ], + 'l10n_id_kode_transaksi': '01' + }) + out_invoice.action_post() + + efaktur_csv_output = out_invoice._generate_efaktur_invoice(',') + output_head = '%s%s%s' % ( + _csv_row(FK_HEAD_LIST, ','), + _csv_row(LT_HEAD_LIST, ','), + _csv_row(OF_HEAD_LIST, ','), + ) + line_4 = '"FK","01","0","0000000000003","5","2019","1/5/2019","1532167","l10ntest4","","40040","4004","0","","0","0","0","0","INV/2019/00003 1532167","0"\n' + line_5 = '"OF","","","100.10","400.0","40040.00","0","40040.00","4004.00","0","0"\n' + + efaktur_csv_expected = output_head + line_4 + line_5 + self.assertEqual(efaktur_csv_expected, efaktur_csv_output) + + def test_efaktur_total_rounding_accuracy(self): + """ Use case: + Using a tax of 11% price included on every line: + + line | qty | price | subtotal + 1 | 24 | 57851 | 1250832.43 + 2 | 24 | 65184 | 1409383.78 + 3 | 24 | 77134 | 1667762.16 + 4 | 24 | 87835 | 1899135.14 + 5 | 20 | 180342| 3249405.41 + + Untaxed Amount: 9474250.92 + Taxes: 1042176.08 + Total: 10518936.00 + + Efaktur will display both: + -The detail of the lines. + and + - the amount_untaxed and amount_tax rounded to 0 decimals. + + The sum of the lines MUST exactly match with the amount_untaxed and amount_tax. + Which most of the case won't be happening because sum(rounded(vals)) is usually not equal to rounded(sum(vals)) + when using integers. + + To remediate to that issue we are putting the difference in the amount of the first line. + """ + # Prepare the test invoice. + tax_id = self.env["account.tax"].create( + {"name": "test tax 11", "type_tax_use": "sale", "amount": 11.0, "price_include": True} + ) + invoice = self.env['account.move'].create({ + 'move_type': 'out_invoice', + 'partner_id': self.partner_id.id, + 'invoice_date': '2019-05-01', + 'date': '2019-05-01', + 'invoice_line_ids': [ + Command.create({'name': 'line1', 'price_unit': 57851, 'quantity': 24, 'tax_ids': tax_id.ids}), + Command.create({'name': 'line2', 'price_unit': 65184, 'quantity': 24, 'tax_ids': tax_id.ids}), + Command.create({'name': 'line3', 'price_unit': 77134, 'quantity': 24, 'tax_ids': tax_id.ids}), + Command.create({'name': 'line4', 'price_unit': 87835, 'quantity': 24, 'tax_ids': tax_id.ids}), + Command.create({'name': 'line5', 'price_unit': 180342, 'quantity': 20, 'tax_ids': tax_id.ids}), + ], + 'l10n_id_kode_transaksi': '01', + }) + invoice.action_post() + # Generate the generate efaktur csv. + efaktur_csv_output = invoice._generate_efaktur_invoice(',') + # Validate the result: the sum of the lines must exactly match with the amount_untaxed and amount_tax. + dict_reader = csv.DictReader(efaktur_csv_output.splitlines(), delimiter=",") + + amount_untaxed_total = 0 + amount_tax_total = 0 + amount_untaxed_sum = 0 + amount_tax_sum = 0 + for row in dict_reader: + row_code = row["FK"] + # Besides the first row, FK is used for the total row. + if row_code == "FK": + amount_untaxed_total = int(row["JUMLAH_DPP"]) # These are rounded to 0 decimal in the file. + amount_tax_total = int(row["JUMLAH_PPN"]) # These are rounded to 0 decimal in the file. + # OF lines are the data lines, but also used in another case (for codes). Data lines do not have a KD_JENIS_TRANSAKSI though. + elif row_code == "OF" and not row["KD_JENIS_TRANSAKSI"]: + amount_untaxed_sum += float(row["NPWP"]) # These are not. + amount_tax_sum += float(row["NAMA"]) # These are not. + + self.assertEqual(amount_untaxed_total, amount_untaxed_sum) + self.assertEqual(amount_tax_total, amount_tax_sum) + + def test_efaktur_do_not_consume_code(self): + """ Ensure that an invoice with no taxes at all will not consume a code. """ + available_code = self.efaktur.available + # 1. No taxes + out_invoice_no_taxes = self.env["account.move"].create({ + "move_type": "out_invoice", + "partner_id": self.partner_id.id, + "invoice_date": "2019-05-01", + "date": "2019-05-01", + "invoice_line_ids": [ + Command.create({"name": "line1", "price_unit": 110.0, "tax_ids": False}), + ], + "l10n_id_kode_transaksi": "01", + }) + out_invoice_no_taxes.action_post() + # The tax number is not set. + self.assertFalse(out_invoice_no_taxes.l10n_id_tax_number) + # No codes have been consumed. + self.assertEqual(self.efaktur.available, available_code) + + with self.assertRaises(ValidationError, msg='E-faktur is not available for invoices without any taxes.'), self.cr.savepoint(): + out_invoice_no_taxes.download_efaktur() + + def test_efaktur_consume_code(self): + """ Ensure that an invoice with taxes will consume a code. """ + available_code = self.efaktur.available + out_invoice_taxes = self.env["account.move"].create({ + "move_type": "out_invoice", + "partner_id": self.partner_id.id, + "invoice_date": "2019-05-01", + "date": "2019-05-01", + "invoice_line_ids": [ + Command.create({"name": "line1", "price_unit": 110.0, "tax_ids": self.tax_id.ids}), + ], + "l10n_id_kode_transaksi": "01", + }) + out_invoice_taxes.action_post() + # The tax number is set. + self.assertEqual(out_invoice_taxes.l10n_id_tax_number, '0100000000000003') + # A code has been consumed. + self.assertEqual(self.efaktur.available, available_code - 1) + # No error is raised when downloading. + out_invoice_taxes.download_efaktur() diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/account_move_views.xml b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/account_move_views.xml new file mode 100644 index 0000000..7c5b5f4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/account_move_views.xml @@ -0,0 +1,62 @@ + + + + + account.move.efaktur.form.view + account.move + + + + + + + + + + + + + + + + + + + + account.move.efaktur.tree.view + account.move + + + + + + + + + + + Download e-Faktur + + + code + action = records.download_efaktur() + + + + account.move.select.l10n_id.inherit + account.move + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/efaktur_views.xml b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/efaktur_views.xml new file mode 100644 index 0000000..01b0cc1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/efaktur_views.xml @@ -0,0 +1,42 @@ + + + + + l10n_id_efaktur.efaktur.range.tree.view + l10n_id_efaktur.efaktur.range + + + + + + + + + + + + + e-Faktur + l10n_id_efaktur.efaktur.range + tree + {'search_default_upload': True, 'search_default_used': True} + + +

+ In order to be able to export customer invoices as e-Faktur + for the Indonesian government, you need to put here the ranges + of numbers you were assigned by the government. + When you validate an invoice, a number will be assigned based on these ranges. + Afterwards, you can filter the invoices still to export in the + invoices list and click on Action > Download e-Faktur +

+
+
+ + + +
+
diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/res_config_settings_views.xml b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/res_config_settings_views.xml new file mode 100644 index 0000000..cc2455b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/res_config_settings_views.xml @@ -0,0 +1,37 @@ + + + + + res.config.settings.view.form.chilean.loc + res.config.settings + + + +
+
+

Indonesian Localization

+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+ + + + + diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/res_partner_views.xml b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/res_partner_views.xml new file mode 100644 index 0000000..68d2856 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/l10n_id_efaktur/views/res_partner_views.xml @@ -0,0 +1,27 @@ + + + + + res.partner.tax.form.view + res.partner + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_id_efaktur/pyproject.toml b/odoo-bringout-oca-ocb-l10n_id_efaktur/pyproject.toml new file mode 100644 index 0000000..f8d1ea9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_id_efaktur/pyproject.toml @@ -0,0 +1,42 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_id_efaktur" +version = "16.0.0" +description = "Indonesia E-faktur - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-l10n_id>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_id_efaktur"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_in/README.md b/odoo-bringout-oca-ocb-l10n_in/README.md new file mode 100644 index 0000000..30b1652 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/README.md @@ -0,0 +1,58 @@ +# Indian - Accounting + + +Indian Accounting: Chart of Account. +==================================== + +Indian accounting chart and localization. + +Odoo allows to manage Indian Accounting by providing Two Formats Of Chart of Accounts i.e Indian Chart Of Accounts - Standard and Indian Chart Of Accounts - Schedule VI. + +Note: The Schedule VI has been revised by MCA and is applicable for all Balance Sheet made after +31st March, 2011. The Format has done away with earlier two options of format of Balance +Sheet, now only Vertical format has been permitted Which is Supported By Odoo. + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_in +``` + +## Dependencies + +This addon depends on: +- account_tax_python +- base_vat + +## Manifest Information + +- **Name**: Indian - Accounting +- **Version**: 2.0 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_in`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_in/doc/ARCHITECTURE.md new file mode 100644 index 0000000..448fb48 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_in Module - l10n_in + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_in/doc/CONFIGURATION.md new file mode 100644 index 0000000..e3cbecc --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_in. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_in/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_in/doc/DEPENDENCIES.md new file mode 100644 index 0000000..4cce166 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [account_tax_python](../../odoo-bringout-oca-ocb-account_tax_python) +- [base_vat](../../odoo-bringout-oca-ocb-base_vat) diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_in/doc/FAQ.md new file mode 100644 index 0000000..f7884e4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_in or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_in/doc/INSTALL.md new file mode 100644 index 0000000..fbabcef --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_in" +# or +uv pip install odoo-bringout-oca-ocb-l10n_in" +``` diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_in/doc/MODELS.md new file mode 100644 index 0000000..f7c3415 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/MODELS.md @@ -0,0 +1,24 @@ +# Models + +Detected core models and extensions in l10n_in. + +```mermaid +classDiagram + class l10n_in_port_code + class account_chart_template + class account_journal + class account_move + class account_move_line + class account_tax + class account_tax_template + class mail_message + class product_template + class res_config_settings + class res_country_state + class res_partner + class uom_uom +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_in/doc/OVERVIEW.md new file mode 100644 index 0000000..4c8d273 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_in. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_in +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_in/doc/REPORTS.md new file mode 100644 index 0000000..a163856 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/REPORTS.md @@ -0,0 +1,22 @@ +# Reports + +Report definitions and templates in l10n_in. + +```mermaid +classDiagram +``` + +## Available Reports + +No named reports found in XML files. + + +## Report Files + +- **audit_trail_report_views.xml** (XML template/definition) + +## Notes +- Named reports above are accessible through Odoo's reporting menu +- Python files define report logic and data processing +- XML files contain report templates, definitions, and formatting +- Reports are integrated with Odoo's printing and email systems diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_in/doc/SECURITY.md new file mode 100644 index 0000000..7596f33 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/SECURITY.md @@ -0,0 +1,42 @@ +# Security + +Access control and security definitions in l10n_in. + +## Access Control Lists (ACLs) + +Model access permissions defined in: +- **[ir.model.access.csv](../l10n_in/security/ir.model.access.csv)** + - 2 model access rules + +## Record Rules + +Row-level security rules defined in: + +## Security Groups & Configuration + +Security groups and permissions defined in: +- **[l10n_in_security.xml](../l10n_in/security/l10n_in_security.xml)** + - 1 security groups defined + +```mermaid +graph TB + subgraph "Security Layers" + A[Users] --> B[Groups] + B --> C[Access Control Lists] + C --> D[Models] + B --> E[Record Rules] + E --> F[Individual Records] + end +``` + +Security files overview: +- **[ir.model.access.csv](../l10n_in/security/ir.model.access.csv)** + - Model access permissions (CRUD rights) +- **[l10n_in_security.xml](../l10n_in/security/l10n_in_security.xml)** + - Security groups, categories, and XML-based rules + +Notes +- Access Control Lists define which groups can access which models +- Record Rules provide row-level security (filter records by user/group) +- Security groups organize users and define permission sets +- All security is enforced at the ORM level by Odoo diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_in/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_in/doc/USAGE.md new file mode 100644 index 0000000..f0485a8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_in +``` diff --git a/odoo-bringout-oca-ocb-l10n_in/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_in/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/__init__.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/__init__.py new file mode 100644 index 0000000..5320d2b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models +from . import demo diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/__manifest__.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/__manifest__.py new file mode 100644 index 0000000..82291e7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/__manifest__.py @@ -0,0 +1,57 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'Indian - Accounting', + 'version': '2.0', + 'description': """ +Indian Accounting: Chart of Account. +==================================== + +Indian accounting chart and localization. + +Odoo allows to manage Indian Accounting by providing Two Formats Of Chart of Accounts i.e Indian Chart Of Accounts - Standard and Indian Chart Of Accounts - Schedule VI. + +Note: The Schedule VI has been revised by MCA and is applicable for all Balance Sheet made after +31st March, 2011. The Format has done away with earlier two options of format of Balance +Sheet, now only Vertical format has been permitted Which is Supported By Odoo. + """, + 'category': 'Accounting/Localizations/Account Charts', + 'depends': [ + 'account_tax_python', 'base_vat', + ], + 'data': [ + 'security/l10n_in_security.xml', + 'security/ir.model.access.csv', + 'data/account_tax_group_data.xml', + 'data/account.account.tag.csv', + 'data/l10n_in_chart_data.xml', + 'data/account.account.template.csv', + 'data/l10n_in_chart_post_data.xml', + 'data/account_tax_template_data.xml', + 'data/account_fiscal_position_data.xml', + 'data/l10n_in.port.code.csv', + 'data/res_country_state_data.xml', + 'data/uom_data.xml', + 'views/account_invoice_views.xml', + 'views/account_journal_views.xml', + 'views/res_config_settings_views.xml', + 'views/product_template_view.xml', + 'views/port_code_views.xml', + 'views/report_invoice.xml', + 'views/res_country_state_view.xml', + 'views/res_partner_views.xml', + 'views/account_tax_views.xml', + 'views/uom_uom_views.xml', + 'views/report_template.xml', + 'data/account_chart_template_data.xml', + 'report/audit_trail_report_views.xml', + ], + 'demo': [ + 'demo/demo_company.xml', + 'demo/res_partner_demo.xml', + 'demo/product_demo.xml', + 'demo/account_invoice_demo.xml', + ], + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account.account.tag.csv b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account.account.tag.csv new file mode 100644 index 0000000..0844ab8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account.account.tag.csv @@ -0,0 +1,47 @@ +"id","name","applicability" +"tax_tag_base_sgst","BASE SGST","taxes" +"tax_tag_base_cgst","BASE CGST","taxes" +"tax_tag_base_igst","BASE IGST","taxes" +"tax_tag_non_itc_base_sgst","NON ITC BASE SGST","taxes" +"tax_tag_non_itc_base_cgst","NON ITC BASE CGST","taxes" +"tax_tag_non_itc_base_igst","NON ITC BASE IGST","taxes" +"tax_tag_other_non_itc_base_sgst","Other NON ITC BASE SGST","taxes" +"tax_tag_other_non_itc_base_cgst","Other NON ITC BASE CGST","taxes" +"tax_tag_other_non_itc_base_igst","Other NON ITC BASE IGST","taxes" +"tax_tag_base_cess","BASE CESS","taxes" +"tax_tag_base_state_cess","BASE STATE CESS","taxes" +"tax_tag_non_itc_base_cess","NON ITC BASE CESS","taxes" +"tax_tag_other_non_itc_base_cess","Other NON ITC BASE CESS","taxes" +"tax_tag_exempt","EXEMPT","taxes" +"tax_tag_nil_rated","NIL-RATED","taxes" +"tax_tag_zero_rated","ZERO-RATED","taxes" +"tax_tag_non_gst_supplies","NON GST SUPPLIES","taxes" +"tax_tag_base_sgst_rc","BASE SGST (RC)","taxes" +"tax_tag_base_cgst_rc","BASE CGST (RC)","taxes" +"tax_tag_base_igst_rc","BASE IGST (RC)","taxes" +"tax_tag_base_cess_rc","BASE CESS (RC)","taxes" +"tax_tag_sgst","SGST","taxes" +"tax_tag_cgst","CGST","taxes" +"tax_tag_igst","IGST","taxes" +"tax_tag_non_itc_sgst","NON ITC SGST","taxes" +"tax_tag_non_itc_cgst","NON ITC CGST","taxes" +"tax_tag_non_itc_igst","NON ITC IGST","taxes" +"tax_tag_other_non_itc_sgst","Other NON ITC SGST","taxes" +"tax_tag_other_non_itc_cgst","Other NON ITC CGST","taxes" +"tax_tag_other_non_itc_igst","Other NON ITC IGST","taxes" +"tax_tag_cess","CESS","taxes" +"tax_tag_state_cess","STATE CESS","taxes" +"tax_tag_non_itc_cess","NON ITC CESS","taxes" +"tax_tag_other_non_itc_cess","Other NON ITC CESS","taxes" +"tax_tag_sgst_rc","SGST (RC)","taxes" +"tax_tag_cgst_rc","CGST (RC)","taxes" +"tax_tag_igst_rc","IGST (RC)","taxes" +"tax_tag_non_itc_sgst_rc","NON ITC SGST (RC)","taxes" +"tax_tag_non_itc_cgst_rc","NON ITC CGST (RC)","taxes" +"tax_tag_non_itc_igst_rc","NON ITC IGST (RC)","taxes" +"tax_tag_other_non_itc_sgst_rc","Other NON ITC SGST (RC)","taxes" +"tax_tag_other_non_itc_cgst_rc","Other NON ITC CGST (RC)","taxes" +"tax_tag_other_non_itc_igst_rc","Other NON ITC IGST (RC)","taxes" +"tax_tag_cess_rc","CESS (RC)","taxes" +"tax_tag_non_itc_cess_rc","NON ITC CESS (RC)","taxes" +"tax_tag_other_non_itc_cess_rc","Other NON ITC CESS (RC)","taxes" diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account.account.template.csv new file mode 100644 index 0000000..47c854f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account.account.template.csv @@ -0,0 +1,69 @@ +"id","name","code","account_type","chart_template_id/id","tag_ids/id","reconcile" +"p10031","Inventories","10031","asset_current","l10n_in.indian_chart_template_standard","","False" +"p10040","Debtors","10040","asset_receivable","l10n_in.indian_chart_template_standard","","True" +"p10041","Debtors (PoS)","10041","asset_receivable","l10n_in.indian_chart_template_standard","","True" +"p10051","SGST Receivable","10051","asset_current","l10n_in.indian_chart_template_standard","l10n_in.sgst_tag_account","False" +"p10052","CGST Receivable","10052","asset_current","l10n_in.indian_chart_template_standard","l10n_in.cgst_tag_account","False" +"p10053","IGST Receivable","10053","asset_current","l10n_in.indian_chart_template_standard","l10n_in.igst_tag_account","False" +"p10057","Reverse Charge Tax Receivable","10057","asset_current","l10n_in.indian_chart_template_standard","","False" +"p10054","TDS Receivable","10058","asset_current","l10n_in.indian_chart_template_standard","","False" +"p10059","Tax Current Account - Receivable","10059","asset_current","l10n_in.indian_chart_template_standard","","False" +"p10061","Deposit Account","10061","asset_current","l10n_in.indian_chart_template_standard","","False" +"p10071","Prepaid Insurance","10071","asset_current","l10n_in.indian_chart_template_standard","","False" +"p1011","Buildings","1011","asset_fixed","l10n_in.indian_chart_template_standard","","False" +"p1012","Land","1012","asset_fixed","l10n_in.indian_chart_template_standard","","False" +"p1013","Equipments","1013","asset_fixed","l10n_in.indian_chart_template_standard","","False" +"p1014","Vehicle","1014","asset_fixed","l10n_in.indian_chart_template_standard","","False" +"p1015","Computer/Laptops (Assets)","1015","asset_fixed","l10n_in.indian_chart_template_standard","","False" +"p1016","Furniture","1016","asset_fixed","l10n_in.indian_chart_template_standard","","False" +"p1017","Air Conditionar","1017","asset_fixed","l10n_in.indian_chart_template_standard","","False" +"p1018","Misc Assets","1018","asset_fixed","l10n_in.indian_chart_template_standard","","False" +"p1111","Capital Account","1111","liability_current","l10n_in.indian_chart_template_standard","","False" +"p1112","Reserve And Surplus Account","1112","liability_current","l10n_in.indian_chart_template_standard","","False" +"p11211","Creditors","11211","liability_payable","l10n_in.indian_chart_template_standard","","True" +"p11221","Bank OD Account","11221","liability_current","l10n_in.indian_chart_template_standard","","False" +"p11222","Secured Loan Account","11222","liability_current","l10n_in.indian_chart_template_standard","","False" +"p11223","Unsecured Loan Account","11223","liability_current","l10n_in.indian_chart_template_standard","","False" +"p11231","TDS Payable","11231","liability_current","l10n_in.indian_chart_template_standard","","False" +"p11232","SGST Payable","11232","liability_current","l10n_in.indian_chart_template_standard","l10n_in.sgst_tag_account","False" +"p11233","CGST Payable","11233","liability_current","l10n_in.indian_chart_template_standard","l10n_in.cgst_tag_account","False" +"p11234","IGST Payable","11234","liability_current","l10n_in.indian_chart_template_standard","l10n_in.igst_tag_account","False" +"p11239","Tax Current Account - Payable","11239","liability_current","l10n_in.indian_chart_template_standard","","False" +"p11241","Wages Payable","11241","liability_current","l10n_in.indian_chart_template_standard","","False" +"p11242","Interest Payable","11242","liability_current","l10n_in.indian_chart_template_standard","","False" +"p11243","Notes Payable","11243","liability_current","l10n_in.indian_chart_template_standard","","False" +"p20011","Local Sales","20011","income","l10n_in.indian_chart_template_standard","","False" +"p20012","Retail Sales","20012","income","l10n_in.indian_chart_template_standard","","False" +"p20013","Export Sales","20013","income","l10n_in.indian_chart_template_standard","","False" +"p20021","Local Services","20021","income","l10n_in.indian_chart_template_standard","","False" +"p20022","Export Services","20022","income","l10n_in.indian_chart_template_standard","","False" +"p2010","Interest Revenues","2010","income","l10n_in.indian_chart_template_standard","","False" +"p2011","Gain on Sale of Assets","2011","income","l10n_in.indian_chart_template_standard","","False" +"2012","Write off Income","2012","income","l10n_in.indian_chart_template_standard","","False" +"p2013","Foreign Exchange Profit","2013","income_other","l10n_in.indian_chart_template_standard","","False" +"p2100","Electricity Expense","2100","expense","l10n_in.indian_chart_template_standard","","False" +"p2101","Salary Expense","2101","expense","l10n_in.indian_chart_template_standard","","False" +"p2102","Office Rent","2102","expense","l10n_in.indian_chart_template_standard","","False" +"p2103","House Keeping Expense","2103","expense","l10n_in.indian_chart_template_standard","","False" +"p2104","Postage And Courier Expense","2104","expense","l10n_in.indian_chart_template_standard","","False" +"p2105","Internet Expense","2105","expense","l10n_in.indian_chart_template_standard","","False" +"p2106","Telephone Expense","2106","expense","l10n_in.indian_chart_template_standard","","False" +"p2107","Purchase Expense","2107","expense","l10n_in.indian_chart_template_standard","","False" +"p2108","Computer/Laptop Accessories","2108","expense","l10n_in.indian_chart_template_standard","","False" +"p2109","News Paper And Magazine","2109","expense","l10n_in.indian_chart_template_standard","","False" +"p2110","Business Promotion","2110","expense","l10n_in.indian_chart_template_standard","","False" +"p2111","Entertainment Expense","2111","expense","l10n_in.indian_chart_template_standard","","False" +"p2112","Professional Services","2112","expense","l10n_in.indian_chart_template_standard","","False" +"p2113","Bank Charges","2113","asset_cash","l10n_in.indian_chart_template_standard","","False" +"p2114","Diwali Bonus/Gift","2114","expense","l10n_in.indian_chart_template_standard","","False" +"p2115","Parts Purchase","2115","expense","l10n_in.indian_chart_template_standard","","False" +"p2116","Repairing Expense","2116","expense","l10n_in.indian_chart_template_standard","","False" +"p2117","Foreign Exchange Loss","2117","expense","l10n_in.indian_chart_template_standard","","False" +"p21181","Sales Commission Expense","21181","expense","l10n_in.indian_chart_template_standard","","False" +"p21182","Stationary Expense","21182","expense","l10n_in.indian_chart_template_standard","","False" +"p21183","Travelling Expense","21183","expense","l10n_in.indian_chart_template_standard","","False" +"p2121","Opening Stock","2121","expense","l10n_in.indian_chart_template_standard","","False" +"p2122","Purchase Stock","2122","expense","l10n_in.indian_chart_template_standard","","False" +"p2123","Closing Stock","2123","expense","l10n_in.indian_chart_template_standard","","False" +"p2131","Loss on Sale of Assets","2131","expense","l10n_in.indian_chart_template_standard","","False" +"p2132","Write Off Expense","2132","expense","l10n_in.indian_chart_template_standard","","False" diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_chart_template_data.xml new file mode 100644 index 0000000..5a035de --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_chart_template_data.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_fiscal_position_data.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_fiscal_position_data.xml new file mode 100644 index 0000000..169c309 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_fiscal_position_data.xml @@ -0,0 +1,211 @@ + + + + + + + Inter State + + + + + Export + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reverse charge Intra State + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Reverse charge Inter State + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_tax_group_data.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_tax_group_data.xml new file mode 100644 index 0000000..caed33a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_tax_group_data.xml @@ -0,0 +1,37 @@ + + + + + SGST + + + + CGST + + + + IGST + + + + CESS + + + + GST + + + + Exempt + + + + Nil Rated + + + + Non GST Supplies + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_tax_template_data.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_tax_template_data.xml new file mode 100644 index 0000000..c4c9ace --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/account_tax_template_data.xml @@ -0,0 +1,2616 @@ + + + + CESS Sale 5% + CESS 5% + none + percent + 5 + + + + + + + + + CESS Sale 1591 Per Thousand + 1591 PER THOUSAND + none + fixed + 1.591 + + + + + + + + + CESS 5%+1.591 + CESS 5%+1.591 + sale + group + 0 + + + + + + CESS 21% or 4.170 + CESS 21% or 4.170 + sale + code + 0 + result=base_amount * 0.21 +tax=quantity * 4.17 +if tax > result:result=tax + + + + + + + Exempt Sale + Exempt + sale + percent + 0 + + + + + + + Nil Rated + Nil Rated + sale + percent + 0 + + + + + + + Non GST Supplies + Non GST Supplies + sale + percent + 0 + + + + + + + IGST 0% + IGST 0% + sale + percent + 0 + + + + + + + IGST 1% + IGST 1% + sale + + + percent + 1 + + + + + + + IGST 2% + IGST 2% + sale + + + percent + 2 + + + + + + + IGST 28% + IGST 28% + sale + + + percent + 28 + + + + + + + IGST 18% + IGST 18% + sale + + + percent + 18 + + + + + + + IGST 12% + IGST 12% + sale + + + percent + 12 + + + + + + + IGST 5% + IGST 5% + sale + + + percent + 5 + + + + + + + SGST Sale 0.5% + SGST 0.5% + none + percent + 0.5 + + + + + + + + + CGST Sale 0.5% + CGST 0.5% + none + percent + 0.5 + + + + + + + + + GST 1% + GST 1% + sale + group + 1.0 + + + + + + SGST Sale 1% + SGST 1% + none + percent + 1 + + + + + + + + + CGST Sale 1% + CGST 1% + none + percent + 1 + + + + + + + + + GST 2% + GST 2% + sale + group + 2.0 + + + + + + SGST Sale 14% + SGST 14% + none + percent + 14 + + + + + + + + + CGST Sale 14% + CGST 14% + none + percent + 14 + + + + + + + + + GST 28% + GST 28% + sale + group + 28.0 + + + + + + SGST Sale 9% + SGST 9% + none + percent + 9 + + + + + + + + + CGST Sale 9% + CGST 9% + none + percent + 9 + + + + + + + + + GST 18% + GST 18% + sale + group + 18.0 + + + + + + SGST Sale 6% + SGST 6% + none + percent + 6 + + + + + + + + + CGST Sale 6% + CGST 6% + none + percent + 6 + + + + + + + + + GST 12% + GST 12% + sale + group + 12.0 + + + + + + SGST Sale 2.5% + SGST 2.5% + none + percent + 2.5 + + + + + + + + + CGST Sale 2.5% + CGST 2.5% + none + percent + 2.5 + + + + + + + + + GST 5% + GST 5% + sale + group + 5.0 + + + 0 + + + + CESS Purchase 5% + CESS 5% + none + percent + 5 + + + + + + + CESS Purchase 1591 Per Thousand + 1591 PER THOUSAND + none + fixed + 1.591 + + + + + + + CESS 5%+1.591 + CESS 5%+1.591 + purchase + group + 0 + + + + + + CESS 21% or 4.170 + CESS 21% or 4.170 + purchase + code + 0 + result=base_amount * 0.21 +tax=quantity * 4.17 +if tax > result:result=tax + + + + + + + Exempt purchase + Exempt + purchase + percent + 0 + + + + + + + Nil Rated + Nil Rated + purchase + percent + 0 + + + + + + + IGST 0% + IGST 0% + purchase + percent + 0 + + + + + + + IGST 1% + IGST 1% + purchase + percent + 1 + + + + + + + IGST 2% + IGST 2% + purchase + percent + 2 + + + + + + + IGST 28% + IGST 28% + purchase + percent + 28 + + + + + + + IGST 18% + IGST 18% + purchase + percent + 18 + + + + + + + IGST 12% + IGST 12% + purchase + percent + 12 + + + + + + + IGST 5% + IGST 5% + purchase + percent + 5 + + + + + + + SGST Purchase 0.5% + SGST 0.5% + none + percent + 0.5 + + + + + + + CGST Purchase 0.5% + CGST 0.5% + none + percent + 0.5 + + + + + + + GST 1% + GST 1% + purchase + group + 1.0 + + + + + + SGST Purchase 1% + SGST 1% + none + percent + 1 + + + + + + + CGST Purchase 1% + CGST 1% + none + percent + 1 + + + + + + + GST 2% + GST 2% + purchase + group + 2.0 + + + + + + SGST Purchase 14% + SGST 14% + none + percent + 14 + + + + + + + CGST Purchase 14% + CGST 14% + none + percent + 14 + + + + + + + GST 28% + GST 28% + purchase + group + 28.0 + + + + + + SGST Purchase 9% + SGST 9% + none + percent + 9 + + + + + + + CGST Purchase 9% + CGST 9% + none + percent + 9 + + + + + + + GST 18% + GST 18% + purchase + group + 18.0 + + + + + + SGST Purchase 6% + SGST 6% + none + percent + 6 + + + + + + + CGST Purchase 6% + CGST 6% + none + percent + 6 + + + + + + + GST 12% + GST 12% + purchase + group + 12.0 + + + + + + SGST Purchase 2.5% + SGST 2.5% + none + percent + 2.5 + + + + + + + CGST Purchase 2.5% + CGST 2.5% + none + percent + 2.5 + + + + + + + GST 5% + GST 5% + purchase + group + 5.0 + + + 0 + + + + CESS Purchase 5% (RC) + CESS 5% + none + percent + 5 + + + + + + + + CESS Purchase 1591 Per Thousand (RC) + 1591 PER THOUSAND + none + fixed + 1.591 + + + + + + + + CESS 5%+1.591 + CESS 5%+1.591 + purchase + group + 0 + + + + + + + CESS 21% or 4.170 + CESS 21% or 4.170 + purchase + code + 0 + result=base_amount * 0.21 +tax=quantity * 4.17 +if tax > result:result=tax + + + + + + + + IGST 1% (RC) + IGST 1% + purchase + percent + 1 + + + + + + + + IGST 2% (RC) + IGST 2% + purchase + percent + 2 + + + + + + + + IGST 28% (RC) + IGST 28% + purchase + percent + 28 + + + + + + + + IGST 18% (RC) + IGST 18% + purchase + percent + 18 + + + + + + + + IGST 12% (RC) + IGST 12% + purchase + percent + 12 + + + + + + + + IGST 5% (RC) + IGST 5% + purchase + percent + 5 + + + + + + + + SGST Purchase 0.5% (RC) + SGST 0.5% + none + percent + 0.5 + + + + + + + + CGST Purchase 0.5% (RC) + CGST 0.5% + none + percent + 0.5 + + + + + + + + GST 1% (RC) + GST 1% + purchase + group + 1.0 + + + + + + + SGST Purchase 1% (RC) + SGST 1% + none + percent + 1 + + + + + + + + CGST Purchase 1% (RC) + CGST 1% + none + percent + 1 + + + + + + + + GST 2% (RC) + GST 2% + purchase + group + 2.0 + + + + + + + SGST Purchase 14% (RC) + SGST 14% + none + percent + 14 + + + + + + + + CGST Purchase 14% (RC) + CGST 14% + none + percent + 14 + + + + + + + + GST 28% (RC) + GST 28% + purchase + group + 28.0 + + + + + + + SGST Purchase 9% (RC) + SGST 9% + none + percent + 9 + + + + + + + + CGST Purchase 9% (RC) + CGST 9% + none + percent + 9 + + + + + + + + GST 18% (RC) + GST 18% + purchase + group + 18.0 + + + + + + + SGST Purchase 6% (RC) + SGST 6% + none + percent + 6 + + + + + + + + CGST Purchase 6% (RC) + CGST 6% + none + percent + 6 + + + + + + + + GST 12% (RC) + GST 12% + purchase + group + 12.0 + + + + + + + SGST Purchase 2.5% (RC) + SGST 2.5% + none + percent + 2.5 + + + + + + + + CGST Purchase 2.5% (RC) + CGST 2.5% + none + percent + 2.5 + + + + + + + + GST 5% (RC) + GST 5% + purchase + group + 5.0 + + + + 0 + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/l10n_in.port.code.csv b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/l10n_in.port.code.csv new file mode 100644 index 0000000..f8c76ba --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/l10n_in.port.code.csv @@ -0,0 +1,635 @@ +id,state_id:id,code,name +port_code_incnb1,base.state_in_an,INCNB1,Car-Nicobar +port_code_incrn1,base.state_in_an,INCRN1,Cornwallis +port_code_inmyb1,base.state_in_an,INMYB1,Mayabandar +port_code_inesh1,base.state_in_an,INESH1,Elphinstone Harbour +port_code_inrgt1,base.state_in_an,INRGT1,Ranghat Bay +port_code_inmdw1,base.state_in_an,INMDW1,Meadows +port_code_innan1,base.state_in_an,INNAN1,Nancowrie +port_code_inixz1,base.state_in_an,INIXZ1,Port Blair +port_code_inixz4,base.state_in_an,INIXZ4,Port Blair +port_code_inhyd4,base.state_in_ap,INHYD4,Hyderabad Air Cargo +port_code_inbnp1,base.state_in_ap,INBNP1,Bheemunipatnam +port_code_innvp1,base.state_in_ap,INNVP1,Navaspur +port_code_invtz1,base.state_in_ap,INVTZ1,Vizac Sea +port_code_insrv1,base.state_in_ap,INSRV1,Surasani – Yanam +port_code_invtz6,base.state_in_ap,INVTZ6,Visakhapatnam (EPZ/SEZ) +port_code_invru1,base.state_in_ap,INVRU1,Vadarevu +port_code_inkak1,base.state_in_ap,INKAK1,Kakinada +port_code_inrpl6,base.state_in_ap,INRPL6,Raddipalem +port_code_inkdd6,base.state_in_ap,INKDD6,Karedu +port_code_invtz4,base.state_in_ap,INVTZ4,Vishakapatnam +port_code_inapt6,base.state_in_ap,INAPT6,Anaparthi +port_code_inclx6,base.state_in_ap,INCLX6,Chirala +port_code_insnf6,base.state_in_ap,INSNF6,Hyderabad +port_code_incoi6,base.state_in_ap,INCOI6,Kakinada +port_code_inmap1,base.state_in_ap,INMAP1,Masulipatnam +port_code_inkri6,base.state_in_ap,INKRI1,Krishnapatnam +port_code_inakp6,base.state_in_ap,INAKP6,APIICL SEZ/Visakhapatnam +port_code_intni6,base.state_in_ap,INTNI6,HIPL SEZ/Visakhapatnam +port_code_inakr6,base.state_in_ap,INAKR6,RPCIPL SEZ/Visakhapatnam +port_code_invzm6,base.state_in_ap,INVZM6,DLL SEZ/Visakhapatnam +port_code_inakb6,base.state_in_ap,INAKB6,BIACPL SEZ/Visakhapatnam +port_code_innrp6,base.state_in_ap,INNRP6,AAL-SEZ/Visakhapatnam +port_code_inmov6,base.state_in_ap,INMOV6,VBTL-SEZ/Medak +port_code_inkvr6,base.state_in_ap,INKVR6,WFPML-SEZ/KOVVUR +port_code_infma6,base.state_in_ap,INFMA6,APIICL/Medak District +port_code_infmh6,base.state_in_ap,INFMH6,hgsezl/Ranga Reddy +port_code_incoa6,base.state_in_ap,INCOA6,KSPL-SEZ/KAKINADA +port_code_ingly6,base.state_in_ap,INGLY6,APIICL-SEZ/MAHABOOBNAGAR +port_code_inspe6,base.state_in_ap,INSPE6,ASDIPL-SEZ/NELLORE +port_code_incop6,base.state_in_ap,INCOP6,PICPL-SEZ/KAKINADA +port_code_inmde6,base.state_in_ap,INMDE6,APIICL SEZ/MEDAK +port_code_inkoh6,base.state_in_ap,INKOH6,RLL-SEZ/Medak +port_code_inurf6,base.state_in_ap,INURF6,FAB CITY SPV Distt. Ranga Reddy +port_code_inmea6,base.state_in_ap,INMEA6,APIIC-SEZ/Vill-Lalgadi Distt.-Ranga +port_code_indbs6,base.state_in_ap,INDBS6,SANTA-SEZ/Vill-Muppireddipally +port_code_inurg6,base.state_in_ap,INURG6,GMR Hyderabad +port_code_intas6,base.state_in_ap,INTAS6,Sri City Private Limited +port_code_ingnr6,base.state_in_ap,INGNR6,LIPL-ICD/Marripalem, Guntur +port_code_infms6,base.state_in_ap,INFMS6,Stargaze/Rangareddy/SEZ +port_code_infmj6,base.state_in_ap,INFMJ6,J T/SEZ/Rangareddy +port_code_inlpi6,base.state_in_ap,INLPI6,Sundew/SEZ/Rangareddy +port_code_inlpd6,base.state_in_ap,INLPD6,DLF/SEZ/Rangareddy +port_code_intmi6,base.state_in_ap,INTMI6,IIFFCO/SEZ/Nellore +port_code_inhur6,base.state_in_ap,INHUR6,Rassi/SEZ/Anantpur +port_code_invzr6,base.state_in_ap,INVZR6,Reddy’r/SEZ/Srikakulam +port_code_incdp6,base.state_in_ap,INCDP6,APIIC/SEZ/Cuddapah +port_code_intmx6,base.state_in_ap,INTMX6,M/s CONTINENTAL MULTIMODAL +port_code_innpgb,base.state_in_ar,INNPGB,TNEaRmMpIoNnAgLS LTD. +port_code_indrgb,base.state_in_as,INDRGB,Darranga +port_code_ingau4,base.state_in_as,INGAU4,Gauhati +port_code_inghwb,base.state_in_as,INGHWB,Gauhati Steamerghat +port_code_indhbb,base.state_in_as,INDHBB,Dhubri Steamerghat +port_code_ingtgb,base.state_in_as,INGTGB,Gitaldah road +port_code_ingkj2,base.state_in_as,INGKJ2,Golakganj Raiiway Station +port_code_inhtsb,base.state_in_as,INHTSB,Hatisar +port_code_inkgjb,base.state_in_as,INKGJB,Karimganj Steamerghat and Ferry +port_code_instrb,base.state_in_as,INSTRB,Sutarkandi +port_code_inslrb,base.state_in_as,INSLRB,Silcher Steamerghat +port_code_inslr2,base.state_in_as,INSLR2,Silcher R.M.S. Office +port_code_inphbb,base.state_in_as,INPHBB,Phulbari +port_code_innmtb,base.state_in_as,INNMTB,Neamati steamer Ghat +port_code_inmnub,base.state_in_as,INMNUB,Manu +port_code_inmkcb,base.state_in_as,INMKCB,Manikarchar +port_code_inmhn2,base.state_in_as,INMHN2,Mahisashan Railway Station +port_code_inltbb,base.state_in_as,INLTBB,Latu Bazar +port_code_inulpb,base.state_in_as,INULPB,Ultapani +port_code_intjpb,base.state_in_as,INTJPB,Tezpur Steamerghat +port_code_inkxj2,base.state_in_as,INKXJ2,Karimganj Railway Station +port_code_inhld2,base.state_in_as,INHLD2,Haldibari Railway Station +port_code_ingkjb,base.state_in_as,INGKJB,Golakganj (LCS) +port_code_inamg6,base.state_in_as,INAMG6,Amingaon(Gauhati) +port_code_inrxl8,base.state_in_br,INRXL8,Rexaul +port_code_ingalb,base.state_in_br,INGALB,Galgalia +port_code_injbnb,base.state_in_br,INJBNB,Jogbani +port_code_insnbb,base.state_in_br,INSNBB,Sonabarsa +port_code_inrxlb,base.state_in_br,INRXLB,Raxaul +port_code_inknlb,base.state_in_br,INKNLB ,Kunauli +port_code_inktrb,base.state_in_br,INKTRB,Kathihar +port_code_injayb,base.state_in_br,INJAYB,Jayanagar +port_code_inbtmb,base.state_in_br,INBTMB,Bhithamore(Sursnad) +port_code_inbgub,base.state_in_br,INBGUB,Bairgania +port_code_inbnrb,base.state_in_br,INBNRB,Bhimnagar +port_code_ingay4,base.state_in_br,INGAY4,Gaya +port_code_inpat4,base.state_in_br,INPAT4,Patna +port_code_inrai6,base.state_in_cg,INRAI6,Raipur +port_code_inrjn6,base.state_in_cg,INRJN6,M/s LANCO SOLAR PRIVATE LTD. +port_code_indam1,base.state_in_dd,INDAM1,Daman & Diu +port_code_inshp1,base.state_in_dd,INSHP1,Sinbhour Port +port_code_indel4,base.state_in_dl,INDEL4,Delhi Air Cargo +port_code_indli2,base.state_in_dl,INDLI2,Delhi Railway Station +port_code_intkd6,base.state_in_dl,INTKD6,Tughlakabad +port_code_inppg6,base.state_in_dl,INPPG6,Patparganj +port_code_inmrm1,base.state_in_ga,INMRM1,Goa Sea +port_code_intpn1,base.state_in_ga,INTPN1,Talpona +port_code_inppj1,base.state_in_ga,INPPJ1,Pellet Plant Jetty at Shiroda +port_code_inpnj1,base.state_in_ga,INPNJ1,Panjim +port_code_inchr1,base.state_in_ga,INCHR1,Chapora +port_code_inbet1,base.state_in_ga,INBET1,Betul +port_code_inmdg6,base.state_in_ga,INMDG6,Margao +port_code_ingoi4,base.state_in_ga,INGOI4,Dabolim +port_code_inpan1,base.state_in_ga,INPAN1,Panaji Port +port_code_insbi6,base.state_in_gj,INSBI6,Sabarmati ICD +port_code_inpav1,base.state_in_gj,INPAV1,Pipavav(Victor) Port +port_code_inbed1,base.state_in_gj,INBED1,Bedi(Including Rozi-Jamnagar) +port_code_inbgw1,base.state_in_gj,INBGW1,Bhagwa +port_code_inkdn1,base.state_in_gj,INKDN1,Kodinar(Muldwarka) +port_code_inakvi1,base.state_in_gj,INKVI1,Kavi +port_code_ingha1,base.state_in_gj,INGHA1,Ghogha +port_code_ingin6,base.state_in_gj,INGIN6,Gandhidham +port_code_indrk1,base.state_in_gj,INDRK1,Dwarka (Rupen) +port_code_indhr1,base.state_in_gj,INDHR1,Dholera +port_code_incmb1,base.state_in_gj,INCMB1,Cambay +port_code_inbsr1,base.state_in_gj,INBSR1,Bulsar +port_code_inblm1,base.state_in_gj,INBLM1,Bilimora +port_code_inhza6,base.state_in_gj,INHZA6,Hazira SEZ / Surat +port_code_inbhd6,base.state_in_gj,INBHD6,Dahez SEZ +port_code_inlpj6,base.state_in_gj,INLPJ6,Reliance SEZ/ Jamnagar +port_code_inbco6,base.state_in_gj,INBCO6,Euro Multivision Bhachau SEZ / Kutch +port_code_inaje6,base.state_in_gj,INAJE6,Welspun Anjar SEZ / Anjar +port_code_injbl6,base.state_in_gj,INJBL6,E-Complex SEZ / Amreli +port_code_inkdl6,base.state_in_gj,INKDL6,Kandla SEZ / Gandhidham +port_code_inval6,base.state_in_gj,INVAL6,Valvada ICD +port_code_insbh1,base.state_in_gj,INSBH1,Sinbhour +port_code_insmr1,base.state_in_gj,INSMR1,Simor +port_code_inrjp1,base.state_in_gj,INRJP1,Rajpara +port_code_inonj1,base.state_in_gj,INONJ1,Onjal +port_code_inomu1,base.state_in_gj,INOMU1,Old Mundra +port_code_innvb1,base.state_in_gj,INNVB1,Navabunder +port_code_inmtw1,base.state_in_gj,INMTW1,Metwad +port_code_inktw1,base.state_in_gj,INKTW1,Koteshwar +port_code_inktd1,base.state_in_gj,INKTD1,Kotda +port_code_inumr1,base.state_in_gj,INUMR1,Umarsadi +port_code_intnk1,base.state_in_gj,INTNK1,T ankari +port_code_inbyt1,base.state_in_gj,INBYT1,Beyt +port_code_inada6,base.state_in_gj,INADA6,Adalaj +port_code_inbhu1,base.state_in_gj,INBHU1,Bhavanagar +port_code_indiv1,base.state_in_gj,INDIV1,Div +port_code_inixy1,base.state_in_gj,INIXY1,Kandla +port_code_injbd1,base.state_in_gj,INJBD1,Jafrabad +port_code_inumb1,base.state_in_gj,INUMB1,Umbergoan +port_code_intun1,base.state_in_gj,INTUN1,Tuna +port_code_intja1,base.state_in_gj,INTJA1,Talaja +port_code_insik1,base.state_in_gj,INSIK1,Sikka +port_code_insal1,base.state_in_gj,INSAL1,Salaya +port_code_inpin1,base.state_in_gj,INPIN1,Pindhara +port_code_inpbd1,base.state_in_gj,INPBD1,Porbandar +port_code_inokh1,base.state_in_gj,INOKH1,Okha +port_code_innav1,base.state_in_gj,INNAV1,Navlakhi +port_code_inraj6,base.state_in_gj,INRAJ6,Rajkot +port_code_invpi6,base.state_in_gj,INVPI6,Vapi +port_code_instv6,base.state_in_gj,INSTV6,Surat (EPZ/SEZ) +port_code_inixy6,base.state_in_gj,INIXY6,Kandla (EPZ/SEZ) +port_code_insac6,base.state_in_gj,INSAC6,Sachin(Surat) +port_code_inkap6,base.state_in_gj,INKAP6,Kapadra(Surat) +port_code_inbrc6,base.state_in_gj,INBRC6,Baroda +port_code_inamd5,base.state_in_gj,INAMD5,Amhedabad +port_code_inamd4,base.state_in_gj,INAMD4,Ahmedabad +port_code_inala1,base.state_in_gj,INALA1,ALANG SBY +port_code_inmdv1,base.state_in_gj,INMDV1,Mandvi +port_code_invva1,base.state_in_gj,INVVA1,Veraval +port_code_invsi1,base.state_in_gj,INVSI1,Vansi-Borsi +port_code_invad1,base.state_in_gj,INVAD1,Vadinar +port_code_inmun1,base.state_in_gj,INMUN1,Mundra +port_code_inmli1,base.state_in_gj,INMLI1,Maroli +port_code_inmha1,base.state_in_gj,INMHA1,Mahuva +port_code_inmgr1,base.state_in_gj,INMGR1,Mangrol +port_code_inmdk1,base.state_in_gj,INMDK1,Muldwarka +port_code_inmda1,base.state_in_gj,INMDA1,Magdalla +port_code_inkok1,base.state_in_gj,INKOK1,Koka +port_code_injda1,base.state_in_gj,INJDA1,Jodia +port_code_injak1,base.state_in_gj,INJAK1,Jakhau +port_code_ingga1,base.state_in_gj,INGGA1,Gogha +port_code_indah1,base.state_in_gj,INDAH1,Dahej +port_code_inbrh1,base.state_in_gj,INBRH1,Broach +port_code_inakv6,base.state_in_gj,INAKV6,Ankleshwar +port_code_inchn6,base.state_in_gj,INCHN6,Vadodara – Chhani +port_code_insau6,base.state_in_gj,INSAU6,Thar Dry Port – Ahemdabad ICD +port_code_inudn6,base.state_in_gj,INUDN6,GHB-SEZ/SURAT +port_code_inajm6,base.state_in_gj,INAJM6,Mundra Port SEZ +port_code_insch6,base.state_in_gj,INSCH6,SAP-SEZ/SURAT +port_code_inapi6,base.state_in_gj,INAPI6 ,AAP-SEZ/AHMEDABAD +port_code_ingng6,base.state_in_gj,INGNG6,GIDC-SEZ/GANDHINAGAR +port_code_inadg6,base.state_in_gj,INADG6,GIPL-SEZ/AHMEDABAD +port_code_inadc6,base.state_in_gj,INADC6,CCIPL-SEZ/AHMEDABAD +port_code_inzip6,base.state_in_gj,INZIP6,ZIPL-SEZ/AHMEDABAD +port_code_ingns6,base.state_in_gj,INGNS6,SREHPL-SEZ/GANDHINAGAR +port_code_inadm6,base.state_in_gj,INADM6,MRPL-SEZ/AHMEDABAD +port_code_inadr6,base.state_in_gj,INADR6,CGRPL-SEZ/AHMEDABAD +port_code_ingnt6,base.state_in_gj,INGNT6,TCS-SEZ/GANDHINAGAR +port_code_inbhs6,base.state_in_gj,INBHS6,Sterling – SEZ / Bharuch +port_code_invln6,base.state_in_gj,INVLN6,NG REALTY- SEZ/Taluka Bavla Distt. +port_code_inbrs6,base.state_in_gj,INBRS6,SAhE m&e Cd aLbTaD.d- SEZ /WAGHODIA +port_code_inbhc6,base.state_in_gj,INBHC6,Jubilant-Chemical-SEZ/Vilayat +port_code_invld6,base.state_in_gj,INVLD6,Dishman-Pharmaceutical +port_code_inhzr6,base.state_in_gj,INHZR6,Surat ICD +port_code_inbrl6,base.state_in_gj,INBRL6,L and T ltd./SEZ/Vadodara +port_code_inhza1,base.state_in_gj,INHZA1,HAZIRA PORT/SURAT +port_code_ingna6,base.state_in_gj,INGNA6,APPL SEZ/Gandhinagar +port_code_ingnc6,base.state_in_gj,INGNC6,GIFT SEZ/Gandhinagar +port_code_inkbc6,base.state_in_gj,INKBC6,KRIL ICD / HAZIRA +port_code_ingao6,base.state_in_gj,INGAO6,OPGS SEZ / Gandhidham +port_code_inbdm6,base.state_in_hr,INBDM6,PANCHI GUJARAN, Sonepat ICD +port_code_inghr6,base.state_in_hr,INGHR6,Garhi Harsaru – Gurgaon ICD +port_code_inrea6,base.state_in_hr,INREA6,Rewari +port_code_inptl6,base.state_in_hr,INPTL6,Patli ICD +port_code_innur6,base.state_in_hr,INNUR6,Kundli +port_code_inpnp6,base.state_in_hr,INPNP6,Babarpur +port_code_infbd6,base.state_in_hr,INFBD6,Faridabad +port_code_inbvc6,base.state_in_hr,INBVC6,CONCOR-ICD/BALLABHGARH +port_code_inbfr6,base.state_in_hr,INBFR6,Piyala/Ballabhgarh ICD +port_code_incdd6,base.state_in_hr,INCDD6,DCA-I SEZ/CHANDIGARH +port_code_incdc6,base.state_in_hr,INCDC6,DCA-II SEZ/CHANDIGARH +port_code_inpkr6,base.state_in_hr,INPKR6,KRIL ICD/PALI +port_code_inngsb,base.state_in_hp,INNGSB,Village Namgaya Shipkila +port_code_insxr4,base.state_in_jk,INSXR4,Srinagar +port_code_inbbm6,base.state_in_jk,INBBM6,Bari Brahma +port_code_inixw6,base.state_in_jh,INIXW6,Jamshedpur (ICD) +port_code_intat6,base.state_in_jh,INTAT6,Jamshedpur (ICD) +port_code_inblr4,base.state_in_ka,INBLR4,Banglore Air Cargo +port_code_inblr5,base.state_in_ka,INBLR5,Bangalore +port_code_indru6,base.state_in_ka,INDRU6,Belgaum – Desur +port_code_incdp1,base.state_in_ka,INCDP1,Coondapur (Ganguly) +port_code_inpdd1,base.state_in_ka,INPDD1,Padubidri Minor Port +port_code_inkrw1,base.state_in_ka,INKRW1,Karwar(including Sardeshivagad) +port_code_inhwr1,base.state_in_ka,INHWR1,Honawar +port_code_inhgt1,base.state_in_ka,INHGT1,Hangarkatta +port_code_inbtk1,base.state_in_ka,INBTK1,Bhatkal +port_code_inbkr1,base.state_in_ka,INBKR1,Belekeri +port_code_inbdr1,base.state_in_ka,INBDR1,Baindur +port_code_innml1,base.state_in_ka,INNML1,Mangalore Sea +port_code_inbgq6,base.state_in_ka,INBGQ6,Quest SEZ Belgaum +port_code_inmaq6,base.state_in_ka,INMAQ6,Mangalore SEZ +port_code_inudi6,base.state_in_ka,INUDI6,Synefra SEZ / Udipi +port_code_inbnc6,base.state_in_ka,INBNC6,KBITS SEZ / Bangalore +port_code_inhsp6,base.state_in_ka,INHSP6,KIADBP SEZ / Hassan +port_code_inhsf6,base.state_in_ka,INHSF6,KIADBFP SEZ / Hassan +port_code_inhst6,base.state_in_ka,INHST6,KIADBT SEZ / Hassan +port_code_insbc6,base.state_in_ka,INSBC6,Biocon SEZ / Bangalore +port_code_inblk1,base.state_in_ka,INBLK1,Belekeri +port_code_incoo1,base.state_in_ka,INCOO1,Coondapur (Ganguly) +port_code_inmal1,base.state_in_ka,INMAL1,Malpe +port_code_inhas6,base.state_in_ka,INHAS6,Hassan (EPZ/SEZ) +port_code_inwfd6,base.state_in_ka,INWFD6,Bangalore +port_code_intri1,base.state_in_ka,INTRI1,Tadri +port_code_inixe1,base.state_in_ka,INIXE1,Mangalore +port_code_intrv4,base.state_in_kl,INTRV4,Trivendrun Air Cargo +port_code_inang1,base.state_in_kl,INANG1,Anijengo +port_code_inbdg1,base.state_in_kl,INBDG1,Badagara +port_code_inkal1,base.state_in_kl,INKAL1,Kallai +port_code_inksg1,base.state_in_kl,INKSG1,Kasargod +port_code_inkvl1,base.state_in_kl,INKVL1,Kovalam +port_code_inmhe1,base.state_in_kl,INMHE1,Mahe +port_code_inpnn1,base.state_in_kl,INPNN1,Ponnani +port_code_incct6,base.state_in_kl,INCCT6,KINFRAFP SEZ / Kozhikkode +port_code_intvc6,base.state_in_kl,INTVC6,KINFRAA SEZ / Thiruvananthapuram +port_code_inerv6,base.state_in_kl,INERV6,Vallarpadom SEZ / Ernakulam +port_code_inerp6,base.state_in_kl,INERP6,Puthuvypeen SEZ / Ernakulam +port_code_inrkg1,base.state_in_kl,INRKG1,Rajakkamangalam +port_code_inmlp1,base.state_in_kl,INMLP1,Mallipuram +port_code_inlpr1,base.state_in_kl,INLPR1,Leapuram +port_code_inkdp1,base.state_in_kl,INKDP1,Kondiapetnam +port_code_inknd1,base.state_in_kl,INKND1,Kankudy +port_code_incnn1,base.state_in_kl,INCNN1,Cannanore +port_code_incok1,base.state_in_kl,INCOK1,Cochin Sea +port_code_inalf1,base.state_in_kl,INALF1,Allepey +port_code_incok6,base.state_in_kl,INCOK6,Cochin (EPZ/SEZ) +port_code_inarr6,base.state_in_kl,INARR6,Aroor +port_code_inccj4,base.state_in_kl,INCCJ4,Karipur(Calicut) +port_code_inmci1,base.state_in_kl,INMCI1,Minicoy Island +port_code_intel1,base.state_in_kl,INTEL1,Tellichery +port_code_invzj1,base.state_in_kl,INVZJ1,Vazhinjam +port_code_incok4,base.state_in_kl,INCOK4,Cochin +port_code_innee1,base.state_in_kl,INNEE1,Neendakara +port_code_inccj1,base.state_in_kl,INCCJ1,C.H. Kozikode +port_code_inazk1,base.state_in_kl,INAZK1,Azhikkal +port_code_inkym6,base.state_in_kl,INKYM6,Kottayam (10.11.09) +port_code_intcr6,base.state_in_kl,INTCR6,Thrissur ICD +port_code_inagi1,base.state_in_ld,INAGI1,Agatti Island +port_code_inkti1,base.state_in_ld,INKTI1,Kiltan Island +port_code_inadi1,base.state_in_ld,INADI1,Androth Island +port_code_inbtr1,base.state_in_ld,INBTR1,Bitra Island +port_code_incti1,base.state_in_ld,INCTI1,Chettat Island +port_code_inkvt1,base.state_in_ld,INKVT1,Kavaratti Island +port_code_inkdi1,base.state_in_ld,INKDI1,Kadmat lsland +port_code_inami1,base.state_in_ld,INAMI1,Amini IsTand +port_code_inmpr6,base.state_in_mp,INMPR6,Malanpur ICD +port_code_inkhd6,base.state_in_mp,INKHD6,Kheda -Dhar ICD +port_code_indha6,base.state_in_mp,INDHA6,Indore-Dhannad +port_code_inmdd6,base.state_in_mp,INMDD6,Mandideep +port_code_inidr4,base.state_in_mp,INIDR4,Indore +port_code_ingwl6,base.state_in_mp,INGWL6,Malanpur(Gwalior) +port_code_inind6,base.state_in_mp,ININD6,Pithampur +port_code_inidr6,base.state_in_mp,INIDR6,Indore (EPZ/SEZ) +port_code_inrtm6,base.state_in_mp,INRTM6,RATLAM(CONCOR) +port_code_ininb6,base.state_in_mp,ININB6,MPAKVN SEZ/Indore +port_code_inini6,base.state_in_mp,ININI6,IIPL SEZ / Indore +port_code_ininn6,base.state_in_mp,ININN6,Infosys SEZ / Indore +port_code_inint6,base.state_in_mp,ININT6,TCS SEZ / Indore +port_code_inach1,base.state_in_mh,INACH1,Achra +port_code_inbom4,base.state_in_mh,INBOM4,Bombay Air Cargo +port_code_innsa1,base.state_in_mh,INNSA1,Nhava Sheva Sea +port_code_invyd1,base.state_in_mh,INVYD1,Vijaydurg +port_code_invng1,base.state_in_mh,INVNG1,Vengurla +port_code_invsv1,base.state_in_mh,INVSV1,Varsava +port_code_invrd1,base.state_in_mh,INVRD1,Varavda +port_code_inutn1,base.state_in_mh,INUTN1,Uttan +port_code_inulw1,base.state_in_mh,INULW1,Ulwa +port_code_intmp1,base.state_in_mh,INTMP1,Trombay +port_code_intna1,base.state_in_mh,INTNA1,Thana +port_code_inthl1,base.state_in_mh,INTHL1,Thal +port_code_intrp1,base.state_in_mh,INTRP1,Tarapur +port_code_indeg1,base.state_in_mh,INDEG1,Deogad +port_code_indlb6,base.state_in_mh,INDLB6,Daulatabad ICD +port_code_indtw1,base.state_in_mh,INDTW1,Dantiwara +port_code_indhn1,base.state_in_mh,INDHN1,Dahanu +port_code_inbry1,base.state_in_mh,INBRY1,Borya +port_code_inbrm1,base.state_in_mh,INBRM1,Borlai – Mandla +port_code_inbsl6,base.state_in_mh,INBSL6,Bhusaval ICD +port_code_inbwn1,base.state_in_mh,INBWN1,Bhiwandi +port_code_inblp1,base.state_in_mh,INBLP1,Belapur +port_code_inkrp1,base.state_in_mh,INKRP1,Kiranpani +port_code_inkiw1,base.state_in_mh,INKIW1,Kelwa +port_code_inksh1,base.state_in_mh,INKSH1,Kelshi +port_code_inkrn1,base.state_in_mh,INKRN1,Karanja +port_code_inkly1,base.state_in_mh,INKLY1,Kalyan +port_code_injtp1,base.state_in_mh,INJTP1,Jaitapur +port_code_injgd1,base.state_in_mh,INJGD1,Jaigad +port_code_inhrn1,base.state_in_mh,INHRN1,Harnai +port_code_indig1,base.state_in_mh,INDIG1,Dighi Port +port_code_injnr4,base.state_in_mh,INJNR4,Nashik-Janori ACC +port_code_injnr6,base.state_in_mh,INJNR6,Nashik-Janori ICD +port_code_intlg6,base.state_in_mh,INTLG6,Pune-Talegoan ICD +port_code_inmwa6,base.state_in_mh,INMWA6,ICD Maliwada +port_code_inpvl6,base.state_in_mh,INPVL6,Panvel +port_code_inswd1,base.state_in_mh,INSWD1,Shriwardhan +port_code_instp1,base.state_in_mh,INSTP1,Satpati +port_code_inrjr1,base.state_in_mh,INRJR1,Rajpuri +port_code_inprg1,base.state_in_mh,INPRG1,Purangad +port_code_inpsh1,base.state_in_mh,INPSH1,Palshet +port_code_innvt1,base.state_in_mh,INNVT1,Nivti +port_code_innwp1,base.state_in_mh,INNWP1,Newapur +port_code_inndg1,base.state_in_mh,INNDG1,Nandgaon +port_code_inmrd1,base.state_in_mh,INMRD1,Murad +port_code_ingrd6,base.state_in_mh,INGRD6,Mumbai DP-II +port_code_ingrr6,base.state_in_mh,INGRR6,Mumbai -DP-I +port_code_inmra1,base.state_in_mh,INMRA1,Mora +port_code_inmrj6,base.state_in_mh,INMRJ6,Miraj +port_code_inmnr1,base.state_in_mh,INMNR1,Manori +port_code_inmnw1,base.state_in_mh,INMNW1,Mandwa +port_code_inmlw1,base.state_in_mh,INMLW1,Malwan +port_code_inkmb1,base.state_in_mh,INKMB1,Kumbharu +port_code_inbsn1,base.state_in_mh,INBSN1,Bassein +port_code_inbkt1,base.state_in_mh,INBKT1,Bankot +port_code_inbnd1,base.state_in_mh,INBND1,Bandra +port_code_inanl1,base.state_in_mh,INANL1,Arnala +port_code_inabg1,base.state_in_mh,INABG1,Alibag +port_code_inbom1,base.state_in_mh,INBOM1,Bombay Sea +port_code_indhp1,base.state_in_mh,INDHP1,Dabhol Port +port_code_inred1,base.state_in_mh,INRED1,Redi +port_code_inkhp6,base.state_in_mh,INKHP6,Khopta (EPZ/SEZ) +port_code_inbom6,base.state_in_mh,INBOM6,Mumbai (EPZ/SEZ) +port_code_incch6,base.state_in_mh,INCCH6,Chinchwad (ICD) +port_code_inwal6,base.state_in_mh,INWAL6,Waluj(Aurangabad) +port_code_inpmp6,base.state_in_mh,INPMP6,Pimpri +port_code_innsk6,base.state_in_mh,INNSK6,Nasik +port_code_inngp6,base.state_in_mh,INNGP6,Nagpur +port_code_inmul6,base.state_in_mh,INMUL6,Mulund +port_code_injal6,base.state_in_mh,INJAL6,Jalgaon +port_code_indig6,base.state_in_mh,INDIG6,Dighi(Pune) +port_code_innag4,base.state_in_mh,INNAG4,Nagpur +port_code_inpnq4,base.state_in_mh,INPNQ4,Pune +port_code_indhu1,base.state_in_mh,INDHU1,Dahanu +port_code_inrvd1,base.state_in_mh,INRVD1,Revdanda +port_code_inrtc1,base.state_in_mh,INRTC1,Ratnagiri +port_code_inrnr1,base.state_in_mh,INRNR1,Ranpar +port_code_inpnv6,base.state_in_mh,INPNV6,ARSHIYA-SEZ/PANVEL +port_code_indmt1,base.state_in_mh,INDMT1,Dharamtar +port_code_inbap6,base.state_in_mh,INBAP6,MultiService-SEZ +port_code_inklm6,base.state_in_mh,INKLM6,Multi Service-SEZ Kalambolli +port_code_inbau6,base.state_in_mh,INBAU6,IT/ITES-A-SEZ/Ulwe +port_code_inbai6,base.state_in_mh,INBAI6,IT/ITES-B-SEZ/Ulwe +port_code_inbag6,base.state_in_mh,INBAG6,Gem & Jewellery-SEZ/Ulwe +port_code_inbam6,base.state_in_mh,INBAM6,Multi Service-SEZ/Ulwe(Distt. Raigad) +port_code_inbat6,base.state_in_mh,INBAT6,IT/ITES-C SEZ/Ulwe +port_code_ainpnq6,base.state_in_mh,AINPNQ 6,Hadapsar, SEZ, Pune +port_code_inmuc6,base.state_in_mh,INMUC6,SUNSTREAM CITY PVT. +port_code_inpsi6,base.state_in_mh,INPSI6,SYNTEL INTERNATIONAL +port_code_inpmt6,base.state_in_mh,INPMT6,MAGARPATTA TOWNSHIP +port_code_inpit6,base.state_in_mh,INPIT6,INFOSYS TECHNOLOGIES +port_code_inpek6,base.state_in_mh,INPEK6,EON KHARADI INFRASTRUCTURE +port_code_inkrm6,base.state_in_mh,INKRM6,Maharashtra Airport +port_code_inair6,base.state_in_mh,INAIR6,Serene Properties Private Limited +port_code_invkh6,base.state_in_mh,INVKH6,HNB SEZ/ MUMBAI +port_code_inchj6,base.state_in_mh,INCHJ6,WWIL ICD/ WARDHA +port_code_indpc4,base.state_in_mh,INDPC4,PCCCC, Bandra- Kurla Complex +port_code_inbng6,base.state_in_mh,INBNG6,MMAuHmAbGaAiONICD/THAN +port_code_inaig6,base.state_in_mh,INAIG6,GEPL SEZ/Thane +port_code_inawm6,base.state_in_mh,INAWM6,MIDC SEZ/AURANGABAD +port_code_indid6,base.state_in_mh,INDID6,MIDC SEZ/NANDED +port_code_inpum6,base.state_in_mh,INPUM6,MIDC SEZ/PUNE +port_code_inkle6,base.state_in_mh,INKLE6,MIDC SEZ / RAIGAD +port_code_instu6,base.state_in_mh,INSTU6,MIDC SEZ / KESURDE +port_code_innki6,base.state_in_mh,INNKI6,IIIL SEZ / SINNAR +port_code_instm6,base.state_in_mh,INSTM6,MIDC PHALTAN SEZ / SATARA +port_code_inpnu6,base.state_in_mh,INPNU6,MSFPL SEZ / PUNE +port_code_inaww6,base.state_in_mh,INAWW6,WIDL SEZ / AURANGABAD +port_code_inwrr6,base.state_in_mh,INWRR6,WPCL CHANDRAPUR +port_code_inccw6,base.state_in_mh,INCCW6,WIPRO / PUNE +port_code_intgn6,base.state_in_mh,INTGN6,KEIPL / PUNE +port_code_inpun6,base.state_in_mh,INPUN6,KBTV / PUNE +port_code_inpne6,base.state_in_mh,INPNE6,NTPL / PUNE +port_code_inccq6,base.state_in_mh,INCCQ6,QBP / PUNE +port_code_inmreb,base.state_in_mn,INMREB,Moreh +port_code_inimf4,base.state_in_mn,INIMF4,Imphal +port_code_inbgmb,base.state_in_ml,INBGMB,Baghmara +port_code_inbrab,base.state_in_ml,INBRAB,Barsora +port_code_insbzb,base.state_in_ml,INSBZB,Shella Bazar +port_code_inrgub,base.state_in_ml,INRGUB,Ryngku +port_code_inmghb,base.state_in_ml,INMGHB,Mahendraganj +port_code_inghpb,base.state_in_ml,INGHPB,Ghasuapara +port_code_indwkb,base.state_in_ml,INDWKB,Dawki +port_code_indlub,base.state_in_ml,INDLUB,Dalu +port_code_inbolb,base.state_in_ml,INBOLB,Bolanganj +port_code_inbltb,base.state_in_ml,INBLTB,Balet +port_code_inchpb,base.state_in_mz,INCHPB,Champai +port_code_indmrb,base.state_in_nl,INDMRB,Demagir +port_code_inbbp1,base.state_in_or,INBBP1,Bahabal Pur +port_code_inprt1,base.state_in_or,INPRT1,Paradeep +port_code_inbbi4,base.state_in_or,INBBI4,Bhubaneswar +port_code_ingpr1,base.state_in_or,INGPR1,Gopalpur +port_code_inskd6,base.state_in_or,INSKD6,Kalinganagar +port_code_inbbs6,base.state_in_or,INBBS6,OIIDC SEZ/Bhubneshwar +port_code_incas6,base.state_in_or,INCAS6,SAPL SEZ / Ganjam +port_code_inkrk1,base.state_in_py,INKRK1,Karaikal +port_code_inpny1,base.state_in_py,INPNY1,Pondicherry +port_code_inpny6,base.state_in_py,INPNY6,Pondicherry ICD +port_code_inlud6,base.state_in_pb,INLUD6,Ludhiana +port_code_inasr2,base.state_in_pb,INASR2,Amritsar Railway Station +port_code_inatt2,base.state_in_pb,INATT2,Attari Railway Station +port_code_inatrb,base.state_in_pb,INATRB,Attari Road +port_code_indpr6,base.state_in_pb,INDPR6,DAPPER +port_code_inatq4,base.state_in_pb,INATQ4,Rajasansi(Amritsar) +port_code_injuuc6,base.state_in_pb,INJUC6,Jalandhar +port_code_inldh6,base.state_in_pb,INLDH6,Ludhiana +port_code_inasr6,base.state_in_pb,INASR6,Amritsar +port_code_inbti6,base.state_in_pb,INBTI6,Bhatinda +port_code_injai6,base.state_in_rj,INJAI6,Jaipur ICD +port_code_intha6,base.state_in_rj,INTHA6,Thar Dry Port – Jodhpur ICD +port_code_inmnb2,base.state_in_rj,INMNB2,Munabao Railway Station +port_code_inkku6,base.state_in_rj,INKKU6,Kanakpura – Jaipur ICD +port_code_inbrn6,base.state_in_rj,INBRN6,Jodhpur- Boranda (EPZ/SEZ) +port_code_injai5,base.state_in_rj,INJAI5,Jaipur +port_code_injsz6,base.state_in_rj,INJSZ6,Jaipur – Sitapur (EPZ/SEZ) +port_code_inbgk6,base.state_in_rj,INBGK6,Bhagat ki Kothi – Jodhpur ICD +port_code_inbmr2,base.state_in_rj,INBMR2,Barmer Railway Station +port_code_injai4,base.state_in_rj,INJAI4,Jaipur +port_code_inbhl6,base.state_in_rj,INBHL6,Bhilwara +port_code_injux6,base.state_in_rj,INJUX6,Jodhpur +port_code_inudz6,base.state_in_rj,INUDZ6,Udaipur +port_code_inktt6,base.state_in_rj,INKTT6,Kota +port_code_inbwd6,base.state_in_rj,INBWD6,Bhiwadi +port_code_inchmb,base.state_in_sk,INCHMB,Chamurchi +port_code_inajj6,base.state_in_tn,INAJJ6,Arakkonam – Melpakkam – Chennai +port_code_inixm6,base.state_in_tn,INIXM6,Madurai ICD +port_code_inche6,base.state_in_tn,INCHE6,Tiruppur – Chettipalayam CFS +port_code_inkar6,base.state_in_tn,INKAR6,KARUR +port_code_inigu6,base.state_in_tn,INIGU6,Coimbatore – Irugur ICD +port_code_inmaa6,base.state_in_tn,INMAA6,Chennai (EPZ/SEZ) +port_code_inmaa4,base.state_in_tn,INMAA4,Chennai Air Cargo +port_code_intut1,base.state_in_tn,INTUT1,Tuticorin Sea +port_code_intut6,base.state_in_tn,INTUT6,Tuticorin ICD +port_code_inmaa1,base.state_in_tn,INMAA1,Chennai Sea +port_code_indsk1,base.state_in_tn,INDSK1,Dhanu – Shkodi +port_code_inksp1,base.state_in_tn,INKSP1,Kulasekarapatnam +port_code_inptn1,base.state_in_tn,INPTN1,Portonovo +port_code_intph1,base.state_in_tn,INTPH1,Thopputhurai +port_code_intde6,base.state_in_tn,INTDE6,Tudiyalur – Coimbatore ICD +port_code_intnd1,base.state_in_tn,INTND1,Tondi +port_code_intho6,base.state_in_tn,INTHO6,Tiruppur – Thottiplayam ICD +port_code_inrwr1,base.state_in_tn,INRWR1,Rameshwaram +port_code_inpmb1,base.state_in_tn,INPMB1,Pamban +port_code_inkkr1,base.state_in_tn,INKKR1,Kilakari +port_code_inchl1,base.state_in_tn,INCHL1,Colachel +port_code_intrl6,base.state_in_tn,INTRL6,Tiruvallur ICD +port_code_inilp6,base.state_in_tn,INILP6,Irungattukottai-ILP ICD +port_code_incdl1,base.state_in_tn,INCDL1,Cuddalore +port_code_innpt1,base.state_in_tn,INNPT1,Nagapattinam +port_code_intyr1,base.state_in_tn,INTYR1,Tirukkadayyur +port_code_invkm1,base.state_in_tn,INVKM1,Valinokkam +port_code_insll6,base.state_in_tn,INSLL6,Singnallur +port_code_intup6,base.state_in_tn,INTUP6,Tirupur +port_code_insxt6,base.state_in_tn,INSXT6,Salem +port_code_incbe6,base.state_in_tn,INCBE6,Coimbatore +port_code_intrz4,base.state_in_tn,INTRZ4,Tiruchirapalli +port_code_incjb4,base.state_in_tn,INCJB4,Coimbatore +port_code_invep1,base.state_in_tn,INVEP1,Veppalodai +port_code_inram1,base.state_in_tn,INRAM1,Rameshwaram +port_code_inmdp1,base.state_in_tn,INMDP1,Mandapam +port_code_incgi6,base.state_in_tn,INCGI6,MWCDL-IT SEZ/Chengalpattu +port_code_incga6,base.state_in_tn,INCGA6,MWCDL-Apparel-sez/Chengalpattu +port_code_incgl6,base.state_in_tn,INCGL6,MWCDL-Auto ANCILLARIES +port_code_incjn6,base.state_in_tn,INCJN6,NIPL-SEZ Sriperumbudur +port_code_incjs6,base.state_in_tn,INCJS6,SIPCOT Hi-Tech-SEZ Sriperumbudur +port_code_incjo6,base.state_in_tn,INCJO6,SIPCOT +port_code_incjf6,base.state_in_tn,INCJF6,FTIL-SEZ Sriperumbudur +port_code_incbs6,base.state_in_tn,INCBS6,SE&C Ltd-SEZ/Coimbatore +port_code_invtc6,base.state_in_tn,INVTC6,CHEYYAR-SEZ/Vellore +port_code_inten6,base.state_in_tn,INTEN6,SIPCOT-Gangaikondan-SEZ/Tirunelveli +port_code_intnc6,base.state_in_tn,INTNC6,CCCL Infrastructure Ltd. +port_code_innnn6,base.state_in_tn,INNNN6,AMRL International Tech City Ltd. +port_code_intbm6,base.state_in_tn,INTBM6,SPEHZP/L -NSaEnZg/Kuannerciheepuram +port_code_inukl6,base.state_in_tn,INUKL6,ETLISL-SEZ/Erode +port_code_inpys6,base.state_in_tn,INPYS6,SIPCOT-SEZ/Erode +port_code_ingdp6,base.state_in_tn,INGDP6,FLLPL-SEZ/Thirruvallur +port_code_inenr1,base.state_in_tn,INENR1,Ennore +port_code_intvt6,base.state_in_tn,INTVT6,ICD/Tondiarpet Chennai +port_code_inkat1,base.state_in_tn,INKAT1,KATTUPALLI +port_code_intbt6,base.state_in_tn,INTBT6,TCSL SEZ / SIRUSERI +port_code_incsp6,base.state_in_tn,INCSP6,SIPL SEZ / KANCHEEPURAM +port_code_incji6,base.state_in_tn,INCJI6,IG3I SEZ / KANCHEEPURAM +port_code_incjd6,base.state_in_tn,INCJD6,DLFC SEZ / KANCHEEPURAM +port_code_incec6,base.state_in_tn,INCEC6,ECTN SEZ / COIMBATORE +port_code_incje6,base.state_in_tn,INCJE6,ECTN SEZ / KANCHEEPURAM +port_code_incja6,base.state_in_tn,INCJA6,AEIP SEZ / KANCHEEPURAM +port_code_incsv6,base.state_in_tn,INCSV6,SVPL SEZ / COIMBATORE +port_code_incge6,base.state_in_tn,INCGE6,ETA SEZ / KANCHEEPURAM +port_code_incnc6,base.state_in_tn,INCNC6,NCTL SEZ / KANCHEEPURAM +port_code_intbc6,base.state_in_tn,INTBC6,CTSI SEZ / SIRUSERI +port_code_inmas6,base.state_in_tn,INMAS6,TIPL SEZ / CHENNAI +port_code_intlt6,base.state_in_tn,INTLT6,LTSL SEZ / TIRUVALLUR +port_code_intbh6,base.state_in_tn,INTBH6,HIRL SEZ / KANCHEEPURAM +port_code_incbt6,base.state_in_tn,INCBT6 ,TDPL SEZ / COIMBATORE +port_code_invlr6,base.state_in_tn,INVLR6,SIPC SEZ / VELLORE +port_code_incjv6,base.state_in_tn,INCJV6,VTPL SEZ / KANCHEEPURAM +port_code_inmec6,base.state_in_tn,INMEC6,ECTN SEZ / MADURAI – I +port_code_inmdc6,base.state_in_tn,INMDC6,ECTN SEZ / MADURAI – II +port_code_insxe6,base.state_in_tn,INSXE6,ECTN SEZ / SALEM +port_code_inmdr6,base.state_in_tn,INMDR6,RTPL SEZ / MADURAI +port_code_incfi6,base.state_in_tn,INCFI6,FIPL SEZ / KANCHEEPURAM +port_code_inhsi6,base.state_in_tn,INHSI6,SIPC SEZ / KRISHNAGIRI +port_code_inmae6,base.state_in_tn,INMAE6,ECTNL SEZ / Gangaikondan +port_code_intbs6,base.state_in_tn,INTBS6,HTL SEZ / Sireseri +port_code_inagtb,base.state_in_tr,INAGTB,Agartala +port_code_inmhgb,base.state_in_tr,INMHGB,Mahurighat +port_code_insabb,base.state_in_tr,INSABB,Sabroom +port_code_insmpb,base.state_in_tr,INSMPB,Srimantapur +port_code_inrgbb,base.state_in_tr,INRGBB,Old Raghna Bazar +port_code_inkwgb,base.state_in_tr,INKWGB,Khowaighat +port_code_indhlb,base.state_in_tr,INDHLB,Dhalaighat +port_code_inkelb,base.state_in_tr,INKELB,Kel Sahar Subdivision +port_code_inbsab,base.state_in_up,INBSAB,Banbasa +port_code_ingaib,base.state_in_up,INGAIB,Gauriphanta +port_code_inrdt6,base.state_in_up,INRDT6,Kota-Ravtha Road +port_code_ingjib,base.state_in_up,INGJIB,Gunji +port_code_injhob,base.state_in_up,INJHOB,Jhulaghat (Pithoragarh) +port_code_inktgb,base.state_in_up,INKTGB,Katarniyaghat +port_code_inngrb,base.state_in_up,INNGRB,Nepalgunj Road +port_code_inmbs6,base.state_in_up,INMBS6,Madhosingh ICD +port_code_inlon6,base.state_in_up,INLON6,ICD Loni +port_code_incpl6,base.state_in_up,INCPL6,Dadri-CGML +port_code_inbdh6,base.state_in_up,INBDH6,ICD Badohi +port_code_inttp6,base.state_in_up,INTTP6,Dadri TTPL +port_code_inapl6,base.state_in_up,INAPL6,Dadri-ACPL CFS +port_code_intknb,base.state_in_up,INTKNB,Tikonia +port_code_insnlb,base.state_in_up,INSNLB,Sonauli +port_code_inkwab,base.state_in_up,INKWAB,Khunwa +port_code_inknu6,base.state_in_up,INKNU6,Kanpur – JRY (ICD) +port_code_injwab,base.state_in_up,INJWAB,Jarwa +port_code_insjr6,base.state_in_up,INSJR6,Greater Noida-Surajpur +port_code_indlab,base.state_in_up,INDLAB,Dharchula +port_code_inbnyb,base.state_in_up,INBNYB,Berhni +port_code_instt6,base.state_in_up,INSTT6,Dadri – STTPL (CFS) +port_code_inagr4,base.state_in_up,INAGR4,Agra +port_code_inder6,base.state_in_up,INDER6,Noida-Dadri (ICD) +port_code_inmbc6,base.state_in_up,INMBC6,Moradabad (EPZ/SEZ) +port_code_innda6,base.state_in_up,INNDA6,Noida (EPZ/SEZ) +port_code_insre6,base.state_in_up,INSRE6,Saharanpur +port_code_inmtc6,base.state_in_up,INMTC6,Meerut +port_code_inmbd6,base.state_in_up,INMBD6,Pakwara (Moradabad) +port_code_incpc6,base.state_in_up,INCPC6,Kanpur +port_code_inbsb6,base.state_in_up,INBSB6,Varanasi +port_code_inblj6,base.state_in_up,INBLJ6,Agra +port_code_invns4,base.state_in_up,INVNS4,Varanasi +port_code_inpnk6,base.state_in_up,INPNK6,KLPPL-ICD/PANKI +port_code_inbek4,base.state_in_up,INBEK4,Bareilly +port_code_inlko4,base.state_in_up,INLKO4,Lucknow +port_code_inknu4,base.state_in_up,INKNU4,Kanpur +port_code_inbul6,base.state_in_up,INBUL6,AN FTWZ LTD – FTWZ/ BULANDSHAHR +port_code_inalp6,base.state_in_up,INALP6,Dadri, Greater Noida +port_code_innoi6,base.state_in_up,INNOI6,LONI-1 ICD Ghaziabad +port_code_inccu4,base.state_in_wb,INCCU4,Kolkata Air Cargo +port_code_ingtzb,base.state_in_wb,INGTZB,Getandah +port_code_inhlib,base.state_in_wb,INHLIB,Hilli +port_code_injigb,base.state_in_wb,INJIGB,Jaigaon +port_code_insng2,base.state_in_wb,INSNG2,Singabad Railway Station +port_code_inrng2,base.state_in_wb,INRNG2,Ranaghat Railway Station +port_code_inrdp2,base.state_in_wb,INRDP2,Radhikapur Railway Station +port_code_inptpb,base.state_in_wb,INPTPB,Petrapole Road +port_code_inpntb,base.state_in_wb,INPNTB,Pan itanki (Naxabari) +port_code_innknb,base.state_in_wb,INNKNB,Namkhana +port_code_inlglb,base.state_in_wb,INLGLB,Lalgola Town +port_code_inmhdb,base.state_in_wb,INMHDB,Kotawalighat (Mohedipur) +port_code_injpgb,base.state_in_wb,INJPGB,Jalpaiguri +port_code_indur6,base.state_in_wb,INDUR6,ICD Durgapur +port_code_intngb,base.state_in_wb,INTNGB,Tungi +port_code_inttsb,base.state_in_wb,INTTSB,T.T. Shed (Kidcerpore) +port_code_inskpb,base.state_in_wb,INSKPB,Sukhia Pokhari +port_code_instib,base.state_in_wb,INSTIB,Sitai +port_code_inhglb,base.state_in_wb,INHGLB,Hingalganj +port_code_ingjxb,base.state_in_wb,INGJXB,Ghojadanga +port_code_inged2,base.state_in_wb,INGED2,Gede Railway Station +port_code_inptp8,base.state_in_wb,INPTP8,Patrapole +port_code_incbdb,base.state_in_wb,INCBDB,Changrabandh +port_code_infbrb,base.state_in_wb,INFBRB,Fulbari +port_code_inccu1,base.state_in_wb,INCCU1,Kolkata Sea +port_code_inhal1,base.state_in_wb,INHAL1,Haldia +port_code_inslt6,base.state_in_wb,INSLT6,Salt Lake (EPZ/SEZ) +port_code_inflt6,base.state_in_wb,INFLT6,Falta (EPZ/SEZ) +port_code_inixb4,base.state_in_wb,INIXB4,Bagdogra +port_code_inbnt6,base.state_in_wb,INBNT6,TCS SEZ/Kolkata +port_code_inbxr6,base.state_in_wb,INBXR6,DLF SEZ/Kolkata +port_code_inbnx6,base.state_in_wb,INBNX6,UNITECH SEZ/Kolkata +port_code_inbnk6,base.state_in_wb,INBNK6,Kolkata IT Park/Bantala +port_code_inbnw6,base.state_in_wb,INBNW6,Wipro SEZ/ Kolkata diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/l10n_in_chart_data.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/l10n_in_chart_data.xml new file mode 100644 index 0000000..8e91d96 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/l10n_in_chart_data.xml @@ -0,0 +1,61 @@ + + + + + + Indian Chart of Accounts - Standard + 1002 + 1001 + 1008 + 6 + + + + + + SGST + accounts + + + CGST + accounts + + + IGST + accounts + + + CESS + accounts + + + CESS Receivable + 10055 + asset_current + + + + + + Tax Receivable + 10056 + asset_current + + + + + CESS Payable + 11235 + liability_current + + + + + + Tax Payable + 11236 + liability_current + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/l10n_in_chart_post_data.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/l10n_in_chart_post_data.xml new file mode 100644 index 0000000..e60221f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/l10n_in_chart_post_data.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/res_country_state_data.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/res_country_state_data.xml new file mode 100644 index 0000000..9c88367 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/res_country_state_data.xml @@ -0,0 +1,135 @@ + + + + + Other Territory + IN_OT + + 97 + + + + Foreign Country + IN_OC + + 96 + + + + Ladakh + LA + + 38 + + + + 35 + + + 37 + + + 12 + + + 18 + + + 10 + + + 04 + + + 22 + + + Dadra and Nagar Haveli and Daman and Diu + 26 + + + 25 + + + 07 + + + 30 + + + 24 + + + 06 + + + 02 + + + 01 + + + 20 + + + 29 + + + 32 + + + 31 + + + 23 + + + 27 + + + 14 + + + 17 + + + 15 + + + 13 + + + 21 + + + 34 + + + 03 + + + 08 + + + 11 + + + 33 + + + 36 + + + 16 + + + 09 + + + 05 + + + 19 + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/uom_data.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/uom_data.xml new file mode 100644 index 0000000..daaa40c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/data/uom_data.xml @@ -0,0 +1,84 @@ + + + + + UNT-UNITS + + + DOZ-DOZENS + + + KGS-KILOGRAMS + + + GMS-GRAMMES + + + OTH-OTHERS + + + OTH-OTHERS + + + TON-TONNES + + + MTR-METERS + + + OTH-OTHERS + + + KME-KILOMETRE + + + CMS-CENTIMETERS + + + SQM-SQUARE METERS + + + LTR-LITRES + + + CBM-CUBIC METERS + + + OTH-OTHERS + + + OTH-OTHERS + + + OTH-OTHERS + + + OTH-OTHERS + + + YDS-YARDS + + + OTH-OTHERS + + + SQF-SQUARE FEET + + + OTH-OTHERS + + + OTH-OTHERS + + + UGS-US GALLONS + + + OTH-OTHERS + + + OTH-OTHERS + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/__init__.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/__init__.py new file mode 100644 index 0000000..979520b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import account_demo diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/account_demo.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/account_demo.py new file mode 100644 index 0000000..355b752 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/account_demo.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo import api, models +class AccountChartTemplate(models.AbstractModel): + _inherit = "account.chart.template" + + @api.model + def _get_demo_data(self): + company = self.env.company + if company.account_fiscal_country_id.code == "IN": + if company.state_id.country_id.code != "IN": + company.state_id = self.env.ref("base.state_in_gj") + if company.country_id.code != "IN": + company.country_id = self.env.ref("base.in") + return super()._get_demo_data() diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/account_invoice_demo.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/account_invoice_demo.xml new file mode 100644 index 0000000..e83d9bd --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/account_invoice_demo.xml @@ -0,0 +1,56 @@ + + + + + out_invoice + + + + + + regular + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/demo_company.xml new file mode 100644 index 0000000..8ee7c61 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/demo_company.xml @@ -0,0 +1,35 @@ + + + + IN Company + 36AABCT1332L011 + Block no. 401 + Street 2 + Hyderabad + + + 500001 + +91 81234 56789 + info@company.inexample.com + www.inexample.com + + + + IN Company + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/product_demo.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/product_demo.xml new file mode 100644 index 0000000..f68157b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/product_demo.xml @@ -0,0 +1,128 @@ + + + + 998391 + Specialty Design Services Including Interior Design, Fashion Design, Industrial Design And Other Specialty Design Services + + + 998391 + Specialty Design Services Including Interior Design, Fashion Design, Industrial Design And Other Specialty Design Services + + + 9403 + Other furniture and parts thereof. + + + 9403 + Other furniture and parts thereof. + + + 9403 + Other furniture and parts thereof. + + + 9403 + Other furniture and parts thereof. + + + 9403 + Other furniture and parts thereof. + + + 9403 + Other furniture and parts thereof. + + + 48196000 + Box files, letter trays, storage boxes and similar articles, of a kind used in offices, shops or the like + + + 9403 + Other furniture and parts thereof. + + + 7323 + Table, kitchen or other household articles and parts thereof, of iron or steel; iron or steel wool; pot scourers and scouring or polishing pads, gloves and the like, of iron or steel. + + + 84185000 + Other furniture (chests, cabinets, display counters, show-cases and the like) for storage and display, incorporating refrigerating or freezing equipment + + + 94018000 + Seats (other than those of heading 9402), whether or not convertible into beds, and parts thereof + + + 94018000 + Seats (other than those of heading 9402), whether or not convertible into beds, and parts thereof + + + 94018000 + Seats (other than those of heading 9402), whether or not convertible into beds, and parts thereof + + + 9403 + Other furniture and parts thereof. + + + 94031090 + Metal furniture of a kind used in offices + + + 37011090 + Photographic plates and film in the flat, sensitised, unexposed, of any material other than paper, paperboard or textiles; instant print film in the flat, sensitised, unexposed, whether or not in packs. + + + 9403 + Other furniture and parts thereof. + + + 94031090 + Metal furniture of a kind used in offices + + + 94031090 + Metal furniture of a kind used in offices + + + 94031090 + Metal furniture of a kind used in offices + + + + + 9963.31 + Services provided by Restaurants, Cafes and similar eating facilities including takeaway services, Room services and door delivery of food. + + + + 9963.32 + Services provided by Hotels, INN, Guest House, Club etc including Room services, takeaway services and door delivery of food. + + + + + 94018000 + Seats (other than those of heading 9402), whether or not convertible into beds, and parts thereof + + + 94051090 + Lamps and lighting fittings including searchlights and spotlights and parts thereof, not elsewhere specified or included; illuminated signs, illuminated name-plates and the like, having a permanently fixed light source, and parts thereof not elsewhere specified or included + + + 4911.99.10 + Hard copy (printed) of computer software + + + 9401.61.00 + Seats (other than those of heading 9402), whether or not convertible into beds, and parts thereof + + + 9403.89.00 + Other Furniture + + + 9403 + Other furniture and parts thereof. + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/res_partner_demo.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/res_partner_demo.xml new file mode 100644 index 0000000..367a584 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/demo/res_partner_demo.xml @@ -0,0 +1,43 @@ + + + + Registered + + + + Unregistered + + + + Reseller + + + + + Registered Customer Intra State + + 1 + regular + floor-1, Maddikunta-Ankanpally Village + Post box No 2, NH-65 + Sangareddy + 500002 + + + 36AAACM4154G1ZO + + + + + Reseller(E-Commerce) + + 4/001 Ground Floor, 16th Main Rd, + regular + Bengaluru + 560001 + + + 29AJIPA1572E1ZR + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/i18n/l10n_in.pot b/odoo-bringout-oca-ocb-l10n_in/l10n_in/i18n/l10n_in.pot new file mode 100644 index 0000000..b0d5244 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/i18n/l10n_in.pot @@ -0,0 +1,977 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_in +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-01-06 14:12+0000\n" +"PO-Revision-Date: 2023-01-06 14:12+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_in +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_report_invoice_document_inherit +msgid "Total (In Words): " +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_account_chart_template +msgid "Account Chart Template" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_l10n_in_account_invoice_report +msgid "Account Invoice Statistics" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__account_move_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__account_move_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__account_move_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report__account_move_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__account_move_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__account_move_id +msgid "Account Move" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__date +msgid "Accounting Date" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_l10n_in_advances_payment_adjustment_report +msgid "Advances Payment Adjustment Analysis" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_l10n_in_advances_payment_report +msgid "Advances Payment Analysis" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__amount +msgid "Amount" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__b2b_type +msgid "B2B Invoice Type" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__b2cl_is_ecommerce +msgid "B2CL Is E-commerce" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__b2cs_is_ecommerce +msgid "B2CS Is E-commerce" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.invoice_form_inherit_l10n_in +msgid "Bill of Entry Date" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.invoice_form_inherit_l10n_in +msgid "Bill of Entry Number" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__cess_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__cess_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__cess_amount +msgid "CESS amount" +msgstr "" + +#. module: l10n_in +#: model:account.tax.group,name:l10n_in.cgst_group +msgid "CGST" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__cgst_amount +msgid "CGST Amount" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__cgst_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__cgst_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__cgst_amount +msgid "CGST amount" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_report_invoice_document_inherit +msgid "Cancelled" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__cgst_amount +msgid "Central Tax Amount" +msgstr "" + +#. module: l10n_in +#: model:account.tax.group,name:l10n_in.cess_group +msgid "Cess" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__cess_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__cess_amount +msgid "Cess Amount" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__company_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__company_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__company_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report__company_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__company_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__company_id +msgid "Company" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,help:l10n_in.field_l10n_in_advances_payment_adjustment_report__company_id +#: model:ir.model.fields,help:l10n_in.field_l10n_in_advances_payment_report__company_id +#: model:ir.model.fields,help:l10n_in.field_l10n_in_payment_report__company_id +msgid "Company related to this journal" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__account_move__l10n_in_gst_treatment__consumer +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__l10n_in_gst_treatment__consumer +#: model:ir.model.fields.selection,name:l10n_in.selection__res_partner__l10n_in_gst_treatment__consumer +msgid "Consumer" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_res_partner +msgid "Contact" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_res_country_state +msgid "Country state" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_port_code__create_uid +msgid "Created by" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_port_code__create_date +msgid "Created on" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_report_invoice_document_inherit +msgid "Credit Note" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__currency_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__currency_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__currency_id +msgid "Currency" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__partner_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__partner_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__partner_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report__partner_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__partner_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__partner_id +msgid "Customer" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__move_type__out_refund +msgid "Customer Credit Note" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__partner_vat +msgid "Customer GSTIN" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__move_type__out_invoice +msgid "Customer Invoice" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report__date +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__date +msgid "Date" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__account_move__l10n_in_gst_treatment__deemed_export +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__l10n_in_gst_treatment__deemed_export +#: model:ir.model.fields.selection,name:l10n_in.selection__res_partner__l10n_in_gst_treatment__deemed_export +msgid "Deemed Export" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_report_invoice_document_inherit +msgid "Destination of supply:" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__display_name +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__display_name +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__display_name +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report__display_name +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_port_code__display_name +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__display_name +msgid "Display Name" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__refund_invoice_type +msgid "Document Type" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_report_invoice_document_inherit +msgid "Draft" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__ecommerce_partner_id +msgid "E-commerce" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__ecommerce_vat +msgid "E-commerce GSTIN" +msgstr "" + +#. module: l10n_in +#: model:account.tax.group,name:l10n_in.exempt_group +msgid "Exempt" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report__exempted_amount +msgid "Exempted" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_l10n_in_exempted_report +msgid "Exempted Gst Supplied Statistics" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.invoice_form_inherit_l10n_in +msgid "Export India" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__export_type +msgid "Export Type" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__gst_format_date +msgid "Formated Date" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__gst_format_refund_date +msgid "Formated Refund Date" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__gst_format_shipping_bill_date +msgid "Formated Shipping Bill Date" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,help:l10n_in.field_l10n_in_account_invoice_report__reversed_entry_id +msgid "From where this Refund is created" +msgstr "" + +#. module: l10n_in +#: model:account.tax.group,name:l10n_in.gst_group +msgid "GST" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_account_bank_statement_line__l10n_in_gst_treatment +#: model:ir.model.fields,field_description:l10n_in.field_account_move__l10n_in_gst_treatment +#: model:ir.model.fields,field_description:l10n_in.field_account_payment__l10n_in_gst_treatment +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__l10n_in_gst_treatment +#: model:ir.model.fields,field_description:l10n_in.field_res_partner__l10n_in_gst_treatment +#: model:ir.model.fields,field_description:l10n_in.field_res_users__l10n_in_gst_treatment +msgid "GST Treatment" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_account_bank_statement_line__l10n_in_gstin +#: model:ir.model.fields,field_description:l10n_in.field_account_move__l10n_in_gstin +#: model:ir.model.fields,field_description:l10n_in.field_account_payment__l10n_in_gstin +msgid "GSTIN" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_account_journal__l10n_in_gstin_partner_id +msgid "GSTIN Unit" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,help:l10n_in.field_account_journal__l10n_in_gstin_partner_id +msgid "" +"GSTIN related to this journal. If empty then consider as company GSTIN." +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_report_invoice_document_inherit +msgid "GSTIN:" +msgstr "" + +#. module: l10n_in +#. odoo-python +#: code:addons/l10n_in/models/account_invoice.py:0 +#, python-format +msgid "Go to Company configuration" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__gross_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__gross_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__gross_amount +msgid "Gross advance" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_port_code_search_view +msgid "Group By" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__hsn_code +msgid "HSN" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__hsn_description +msgid "HSN description" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_report_invoice_document_inherit +msgid "HSN/SAC" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_product_product__l10n_in_hsn_code +#: model:ir.model.fields,field_description:l10n_in.field_product_template__l10n_in_hsn_code +msgid "HSN/SAC Code" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_product_product__l10n_in_hsn_description +#: model:ir.model.fields,field_description:l10n_in.field_product_template__l10n_in_hsn_description +msgid "HSN/SAC Description" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,help:l10n_in.field_product_product__l10n_in_hsn_description +#: model:ir.model.fields,help:l10n_in.field_product_template__l10n_in_hsn_description +msgid "HSN/SAC description is required if HSN/SAC code is not provided." +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,help:l10n_in.field_product_product__l10n_in_hsn_code +#: model:ir.model.fields,help:l10n_in.field_product_template__l10n_in_hsn_code +msgid "Harmonized System Nomenclature/Services Accounting Code" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report__id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_port_code__id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__id +msgid "ID" +msgstr "" + +#. module: l10n_in +#: model:account.tax.group,name:l10n_in.igst_group +msgid "IGST" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__igst_amount +msgid "IGST Amount" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__igst_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__igst_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__igst_amount +msgid "IGST amount" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.invoice_form_inherit_l10n_in +msgid "Import India" +msgstr "" + +#. module: l10n_in +#: model:ir.ui.menu,name:l10n_in.account_reports_in_statements_menu +msgid "India" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_port_code_form_view +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_port_code_search_view +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_port_code_tree_view +msgid "India Port Code" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_uom_uom__l10n_in_code +msgid "Indian GST UQC" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_l10n_in_payment_report +msgid "Indian accounting payment report" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_l10n_in_port_code +msgid "Indian port code" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__igst_amount +msgid "Integrated Tax Amount" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__name +msgid "Invoice Number" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__total +msgid "Invoice Total" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report__in_supply_type +msgid "Inward Supply Type" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__is_ecommerce +msgid "Is E-commerce" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__is_pre_gst +msgid "Is Pre GST" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_account_journal +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__journal_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__journal_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__journal_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report__journal_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__journal_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__journal_id +msgid "Journal" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_account_move +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__move_type__entry +msgid "Journal Entry" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_account_move_line +msgid "Journal Item" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report____last_update +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report____last_update +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report____last_update +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report____last_update +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_port_code____last_update +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report____last_update +msgid "Last Modified on" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_port_code__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_port_code__write_date +msgid "Last Updated on" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_account_bank_statement_line__l10n_in_state_id +#: model:ir.model.fields,field_description:l10n_in.field_account_move__l10n_in_state_id +#: model:ir.model.fields,field_description:l10n_in.field_account_payment__l10n_in_state_id +msgid "Location of supply" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_res_config_settings__group_l10n_in_reseller +#: model:res.groups,name:l10n_in.group_l10n_in_reseller +#: model_terms:ir.ui.view,arch_db:l10n_in.res_config_settings_view_form_inherit_l10n_in +msgid "Manage Reseller(E-Commerce)" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__move_type +msgid "Move Type" +msgstr "" + +#. module: l10n_in +#: model:account.tax.group,name:l10n_in.nil_rated_group +msgid "Nil Rated" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report__nil_rated_amount +msgid "Nil rated supplies" +msgstr "" + +#. module: l10n_in +#: model:account.tax.group,name:l10n_in.non_gst_supplies_group +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report__non_gst_supplies +msgid "Non GST Supplies" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,help:l10n_in.field_account_bank_statement_line__l10n_in_reseller_partner_id +#: model:ir.model.fields,help:l10n_in.field_account_move__l10n_in_reseller_partner_id +#: model:ir.model.fields,help:l10n_in.field_account_payment__l10n_in_reseller_partner_id +msgid "Only Registered Reseller" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_exempted_report__out_supply_type +msgid "Outward Supply Type" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__account_move__l10n_in_gst_treatment__overseas +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__l10n_in_gst_treatment__overseas +#: model:ir.model.fields.selection,name:l10n_in.selection__res_partner__l10n_in_gst_treatment__overseas +msgid "Overseas" +msgstr "" + +#. module: l10n_in +#: code:addons/l10n_in/models/account_invoice.py:0 +#, python-format +msgid "" +"Partner %(partner_name)s (%(partner_id)s) GSTIN is required under GST " +"Treatment %(name)s" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__payment_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__payment_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__payment_id +msgid "Payment" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__payment_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__payment_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__payment_amount +msgid "Payment Amount" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__date +msgid "Payment Date" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__payment_type +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__payment_type +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__payment_type +msgid "Payment Type" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__place_of_supply +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__place_of_supply +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__place_of_supply +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__place_of_supply +msgid "Place of Supply" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_report_invoice_document_inherit +msgid "Place of supply:" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_port_code__name +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_port_code_search_view +msgid "Port" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_port_code__code +msgid "Port Code" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_account_bank_statement_line__l10n_in_shipping_port_code_id +#: model:ir.model.fields,field_description:l10n_in.field_account_move__l10n_in_shipping_port_code_id +#: model:ir.model.fields,field_description:l10n_in.field_account_payment__l10n_in_shipping_port_code_id +msgid "Port code" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__state__posted +msgid "Posted" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__product_id +msgid "Product" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_l10n_in_product_hsn_report +msgid "Product HSN Statistics" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__quantity +msgid "Product Qty" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_product_template +msgid "Product Template" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_uom_uom +msgid "Product Unit of Measure" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__move_type__in_receipt +msgid "Purchase Receipt" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__tax_rate +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__tax_rate +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__tax_rate +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__tax_rate +msgid "Rate" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_advances_payment_adjustment_report__payment_type__inbound +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_advances_payment_report__payment_type__inbound +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_payment_report__payment_type__inbound +msgid "Receive Money" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__date +msgid "Reconcile Date" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__reconcile_amount +msgid "Reconcile amount in Payment month" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__reversed_entry_id +msgid "Refund Invoice" +msgstr "" + +#. module: l10n_in +#: model:res.partner.category,name:l10n_in.res_partner_category_registered +msgid "Registered" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__account_move__l10n_in_gst_treatment__composition +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__l10n_in_gst_treatment__composition +#: model:ir.model.fields.selection,name:l10n_in.selection__res_partner__l10n_in_gst_treatment__composition +msgid "Registered Business - Composition" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__account_move__l10n_in_gst_treatment__regular +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__l10n_in_gst_treatment__regular +#: model:ir.model.fields.selection,name:l10n_in.selection__res_partner__l10n_in_gst_treatment__regular +msgid "Registered Business - Regular" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_account_bank_statement_line__l10n_in_reseller_partner_id +#: model:ir.model.fields,field_description:l10n_in.field_account_move__l10n_in_reseller_partner_id +#: model:ir.model.fields,field_description:l10n_in.field_account_payment__l10n_in_reseller_partner_id +#: model:res.partner.category,name:l10n_in.res_partner_category_reseller +msgid "Reseller" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__is_reverse_charge +msgid "Reverse Charge" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_account_tax__l10n_in_reverse_charge +#: model:ir.model.fields,field_description:l10n_in.field_account_tax_template__l10n_in_reverse_charge +msgid "Reverse charge" +msgstr "" + +#. module: l10n_in +#: model:account.tax.group,name:l10n_in.sgst_group +msgid "SGST" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__sgst_amount +msgid "SGST Amount" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__sgst_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__sgst_amount +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__sgst_amount +msgid "SGST amount" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__move_type__out_receipt +msgid "Sales Receipt" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_advances_payment_adjustment_report__payment_type__outbound +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_advances_payment_report__payment_type__outbound +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_payment_report__payment_type__outbound +msgid "Send Money" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__shipping_bill_date +msgid "Shipping Bill Date" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__shipping_bill_number +msgid "Shipping Bill Number" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_account_bank_statement_line__l10n_in_shipping_bill_date +#: model:ir.model.fields,field_description:l10n_in.field_account_move__l10n_in_shipping_bill_date +#: model:ir.model.fields,field_description:l10n_in.field_account_payment__l10n_in_shipping_bill_date +msgid "Shipping bill date" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_account_bank_statement_line__l10n_in_shipping_bill_number +#: model:ir.model.fields,field_description:l10n_in.field_account_move__l10n_in_shipping_bill_number +#: model:ir.model.fields,field_description:l10n_in.field_account_payment__l10n_in_shipping_bill_number +msgid "Shipping bill number" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__shipping_port_code_id +msgid "Shipping port code" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__account_move__l10n_in_gst_treatment__special_economic_zone +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__l10n_in_gst_treatment__special_economic_zone +#: model:ir.model.fields.selection,name:l10n_in.selection__res_partner__l10n_in_gst_treatment__special_economic_zone +msgid "Special Economic Zone" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_port_code__state_id +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_port_code_search_view +msgid "State" +msgstr "" + +#. module: l10n_in +#: code:addons/l10n_in/models/account_invoice.py:0 +#, python-format +msgid "" +"State is missing from address in '%s'. First set state after post this " +"invoice again." +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__sgst_amount +msgid "State/UT Tax Amount" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__state +msgid "Status" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__supply_type +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__supply_type +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__supply_type +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__supply_type +msgid "Supply Type" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_res_country_state__l10n_in_tin +msgid "TIN Number" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,help:l10n_in.field_res_country_state__l10n_in_tin +msgid "TIN number-first two digits" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_account_tax +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__tax_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_adjustment_report__l10n_in_tax_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_advances_payment_report__l10n_in_tax_id +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_payment_report__l10n_in_tax_id +msgid "Tax" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__price_total +msgid "Taxable Value" +msgstr "" + +#. module: l10n_in +#: model:ir.model,name:l10n_in.model_account_tax_template +msgid "Templates for Taxes" +msgstr "" + +#. module: l10n_in +#: model:ir.model.constraint,message:l10n_in.constraint_l10n_in_port_code_code_uniq +msgid "The Port Code must be unique!" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,help:l10n_in.field_account_tax__l10n_in_reverse_charge +#: model:ir.model.fields,help:l10n_in.field_account_tax_template__l10n_in_reverse_charge +msgid "Tick this if this tax is reverse charge. Only for Indian accounting" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_account_bank_statement_line__amount_total_words +#: model:ir.model.fields,field_description:l10n_in.field_account_move__amount_total_words +#: model:ir.model.fields,field_description:l10n_in.field_account_payment__amount_total_words +msgid "Total (In Words)" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__total +msgid "Total Value" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__price_total +msgid "Total Without Tax" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__uom_id +msgid "UOM" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_product_hsn_report__l10n_in_uom_code +msgid "UQC" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,field_description:l10n_in.field_l10n_in_account_invoice_report__refund_export_type +msgid "UR Type" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields,help:l10n_in.field_uom_uom__l10n_in_code +msgid "Unique Quantity Code (UQC) under GST" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__state__draft +msgid "Unposted" +msgstr "" + +#. module: l10n_in +#: model:res.partner.category,name:l10n_in.res_partner_category_unregistered +msgid "Unregistered" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__account_move__l10n_in_gst_treatment__unregistered +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__l10n_in_gst_treatment__unregistered +#: model:ir.model.fields.selection,name:l10n_in.selection__res_partner__l10n_in_gst_treatment__unregistered +msgid "Unregistered Business" +msgstr "" + +#. module: l10n_in +#: model_terms:ir.ui.view,arch_db:l10n_in.res_config_settings_view_form_inherit_l10n_in +msgid "Use this if setup with Reseller(E-Commerce)." +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__move_type__in_invoice +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_report_invoice_document_inherit +msgid "Vendor Bill" +msgstr "" + +#. module: l10n_in +#: model:ir.model.fields.selection,name:l10n_in.selection__l10n_in_account_invoice_report__move_type__in_refund +#: model_terms:ir.ui.view,arch_db:l10n_in.l10n_in_report_invoice_document_inherit +msgid "Vendor Credit Note" +msgstr "" + +#. module: l10n_in +#: code:addons/l10n_in/models/account_invoice.py:0 +#, python-format +msgid "" +"Your company %s needs to have a correct address in order to validate this invoice.\n" +"Set the address of your company (Don't forget the State field)" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/migrations/9.0.2.0/pre-set_tags_and_taxes_updatable.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/migrations/9.0.2.0/pre-set_tags_and_taxes_updatable.py new file mode 100644 index 0000000..955a337 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/migrations/9.0.2.0/pre-set_tags_and_taxes_updatable.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- + +import odoo + +def migrate(cr, version): + registry = odoo.registry(cr.dbname) + from odoo.addons.account.models.chart_template import migrate_set_tags_and_taxes_updatable + migrate_set_tags_and_taxes_updatable(cr, registry, 'l10n_in') diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/__init__.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/__init__.py new file mode 100644 index 0000000..10504e8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/__init__.py @@ -0,0 +1,13 @@ +# -*- coding:utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import account +from . import account_invoice +from . import chart_template +from . import product_template +from . import port_code +from . import res_config_settings +from . import res_country_state +from . import res_partner +from . import uom_uom +from . import mail_message diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/account.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/account.py new file mode 100644 index 0000000..17d4bcc --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/account.py @@ -0,0 +1,77 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models, _ +from odoo.exceptions import ValidationError +from odoo import tools + + +class AccountJournal(models.Model): + _inherit = "account.journal" + + # Use for filter import and export type. + l10n_in_gstin_partner_id = fields.Many2one('res.partner', string="GSTIN Unit", ondelete="restrict", help="GSTIN related to this journal. If empty then consider as company GSTIN.") + + def name_get(self): + """ + Add GSTIN number in name as suffix so user can easily find the right journal. + Used super to ensure nothing is missed. + """ + result = super().name_get() + result_dict = dict(result) + indian_journals = self.filtered(lambda j: j.company_id.account_fiscal_country_id.code == 'IN' and + j.l10n_in_gstin_partner_id and j.l10n_in_gstin_partner_id.vat) + for journal in indian_journals: + name = result_dict[journal.id] + name += "- %s" % (journal.l10n_in_gstin_partner_id.vat) + result_dict[journal.id] = name + return list(result_dict.items()) + + +class AccountMoveLine(models.Model): + _inherit = "account.move.line" + + def init(self): + tools.create_index(self._cr, 'account_move_line_move_product_index', self._table, ['move_id', 'product_id']) + + @api.depends('move_id.line_ids', 'move_id.line_ids.tax_line_id', 'move_id.line_ids.debit', 'move_id.line_ids.credit') + def _compute_tax_base_amount(self): + aml = self.filtered(lambda l: l.company_id.account_fiscal_country_id.code == 'IN' and l.tax_line_id and l.product_id) + for move_line in aml: + base_lines = move_line.move_id.line_ids.filtered(lambda line: move_line.tax_line_id in line.tax_ids and move_line.product_id == line.product_id) + move_line.tax_base_amount = abs(sum(base_lines.mapped('balance'))) + remaining_aml = self - aml + if remaining_aml: + return super(AccountMoveLine, remaining_aml)._compute_tax_base_amount() + + +class AccountTax(models.Model): + _inherit = 'account.tax' + + l10n_in_reverse_charge = fields.Boolean("Reverse charge", help="Tick this if this tax is reverse charge. Only for Indian accounting") + + @api.model + def _get_generation_dict_from_base_line(self, line_vals, tax_vals, force_caba_exigibility=False): + # EXTENDS account + # Group taxes also by product. + res = super()._get_generation_dict_from_base_line(line_vals, tax_vals, force_caba_exigibility=force_caba_exigibility) + record = line_vals['record'] + if isinstance(record, models.Model)\ + and record._name == 'account.move.line'\ + and record.company_id.account_fiscal_country_id.code == 'IN': + res['product_id'] = record.product_id.id + res['product_uom_id'] = record.product_uom_id.id + return res + + @api.model + def _get_generation_dict_from_tax_line(self, line_vals): + # EXTENDS account + # Group taxes also by product. + res = super()._get_generation_dict_from_tax_line(line_vals) + record = line_vals['record'] + if isinstance(record, models.Model)\ + and record._name == 'account.move.line'\ + and record.company_id.account_fiscal_country_id.code == 'IN': + res['product_id'] = record.product_id.id + res['product_uom_id'] = record.product_uom_id.id + return res diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/account_invoice.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/account_invoice.py new file mode 100644 index 0000000..e037638 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/account_invoice.py @@ -0,0 +1,142 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import logging + +from odoo import api, fields, models, _ +from odoo.exceptions import ValidationError, RedirectWarning, UserError + +_logger = logging.getLogger(__name__) + + +class AccountMove(models.Model): + _inherit = "account.move" + + amount_total_words = fields.Char("Total (In Words)", compute="_compute_amount_total_words") + l10n_in_gst_treatment = fields.Selection([ + ('regular', 'Registered Business - Regular'), + ('composition', 'Registered Business - Composition'), + ('unregistered', 'Unregistered Business'), + ('consumer', 'Consumer'), + ('overseas', 'Overseas'), + ('special_economic_zone', 'Special Economic Zone'), + ('deemed_export', 'Deemed Export'), + ('uin_holders', 'UIN Holders'), + ], string="GST Treatment", compute="_compute_l10n_in_gst_treatment", store=True, readonly=False, copy=True) + l10n_in_state_id = fields.Many2one('res.country.state', string="Place of supply", compute="_compute_l10n_in_state_id", store=True, readonly=False) + l10n_in_gstin = fields.Char(string="GSTIN") + # For Export invoice this data is need in GSTR report + l10n_in_shipping_bill_number = fields.Char('Shipping bill number', readonly=True, states={'draft': [('readonly', False)]}) + l10n_in_shipping_bill_date = fields.Date('Shipping bill date', readonly=True, states={'draft': [('readonly', False)]}) + l10n_in_shipping_port_code_id = fields.Many2one('l10n_in.port.code', 'Port code', readonly=True, states={'draft': [('readonly', False)]}) + l10n_in_reseller_partner_id = fields.Many2one('res.partner', 'Reseller', domain=[('vat', '!=', False)], help="Only Registered Reseller", readonly=True, states={'draft': [('readonly', False)]}) + l10n_in_journal_type = fields.Selection(string="Journal Type", related='journal_id.type') + + @api.depends('amount_total') + def _compute_amount_total_words(self): + for invoice in self: + invoice.amount_total_words = invoice.currency_id.amount_to_text(invoice.amount_total) + + @api.depends('partner_id') + def _compute_l10n_in_gst_treatment(self): + indian_invoice = self.filtered(lambda m: m.country_code == 'IN') + for record in indian_invoice: + gst_treatment = record.partner_id.l10n_in_gst_treatment + if not gst_treatment: + gst_treatment = 'unregistered' + if record.partner_id.country_id.code == 'IN' and record.partner_id.vat: + gst_treatment = 'regular' + elif record.partner_id.country_id and record.partner_id.country_id.code != 'IN': + gst_treatment = 'overseas' + record.l10n_in_gst_treatment = gst_treatment + (self - indian_invoice).l10n_in_gst_treatment = False + + @api.depends('partner_id', 'company_id') + def _compute_l10n_in_state_id(self): + for move in self: + if move.country_code == 'IN' and move.journal_id.type == 'sale': + country_code = move.partner_id.country_id.code + if country_code == 'IN': + move.l10n_in_state_id = move.partner_id.state_id + elif country_code: + move.l10n_in_state_id = self.env.ref('l10n_in.state_in_oc', raise_if_not_found=False) + else: + move.l10n_in_state_id = move.company_id.state_id + elif move.country_code == 'IN' and move.journal_id.type == 'purchase': + move.l10n_in_state_id = move.company_id.state_id + else: + move.l10n_in_state_id = False + + def _get_name_invoice_report(self): + if self.country_code == 'IN': + # TODO: remove the view mode check in master, only for stable releases + in_invoice_view = self.env.ref('l10n_in.l10n_in_report_invoice_document_inherit', raise_if_not_found=False) + if (in_invoice_view and in_invoice_view.sudo().mode == "primary"): + return 'l10n_in.l10n_in_report_invoice_document_inherit' + return super()._get_name_invoice_report() + + def _post(self, soft=True): + """Use journal type to define document type because not miss state in any entry including POS entry""" + posted = super()._post(soft) + gst_treatment_name_mapping = {k: v for k, v in + self._fields['l10n_in_gst_treatment']._description_selection(self.env)} + for move in posted.filtered(lambda m: m.country_code == 'IN' and m.is_sale_document()): + """Check state is set in company/sub-unit""" + company_unit_partner = move.journal_id.l10n_in_gstin_partner_id or move.journal_id.company_id + if move.l10n_in_state_id and not move.l10n_in_state_id.l10n_in_tin: + raise UserError(_("Please set a valid TIN Number on the Place of Supply %s", move.l10n_in_state_id.name)) + if not company_unit_partner.state_id: + msg = _("Your company %s needs to have a correct address in order to validate this invoice.\n" + "Set the address of your company (Don't forget the State field)") % (company_unit_partner.name) + action = { + "view_mode": "form", + "res_model": "res.company", + "type": "ir.actions.act_window", + "res_id" : move.company_id.id, + "views": [[self.env.ref("base.view_company_form").id, "form"]], + } + raise RedirectWarning(msg, action, _('Go to Company configuration')) + + move.l10n_in_gstin = move.partner_id.vat + if not move.l10n_in_gstin and move.l10n_in_gst_treatment in ['regular', 'composition', 'special_economic_zone', 'deemed_export']: + raise ValidationError(_( + "Partner %(partner_name)s (%(partner_id)s) GSTIN is required under GST Treatment %(name)s", + partner_name=move.partner_id.name, + partner_id=move.partner_id.id, + name=gst_treatment_name_mapping.get(move.l10n_in_gst_treatment) + )) + return posted + + def _l10n_in_get_warehouse_address(self): + """Return address where goods are delivered/received for Invoice/Bill""" + # TO OVERRIDE + self.ensure_one() + return False + + @api.ondelete(at_uninstall=False) + def _unlink_l10n_in_except_once_post(self): + # Prevent deleting entries once it's posted for Indian Company only + if any(m.country_code == 'IN' and m.posted_before for m in self) and not self._context.get('force_delete'): + raise UserError(_("To keep the audit trail, you can not delete journal entries once they have been posted.\nInstead, you can cancel the journal entry.")) + + def _can_be_unlinked(self): + self.ensure_one() + return (self.country_code != 'IN' or not self.posted_before) and super()._can_be_unlinked() + + def unlink(self): + # Add logger here becouse in api ondelete account.move.line is deleted and we can't get total amount + logger_msg = False + if any(m.country_code == 'IN' and m.posted_before for m in self): + if self._context.get('force_delete'): + moves_details = ", ".join("{entry_number} ({move_id}) amount {amount_total} {currency} and partner {partner_name}".format( + entry_number=m.name, + move_id=m.id, + amount_total=m.amount_total, + currency=m.currency_id.name, + partner_name=m.partner_id.display_name) + for m in self) + logger_msg = 'Force deleted Journal Entries %s by %s (%s)' % (moves_details, self.env.user.name, self.env.user.id) + res = super().unlink() + if logger_msg: + _logger.info(logger_msg) + return res diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/chart_template.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/chart_template.py new file mode 100644 index 0000000..57d9425 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/chart_template.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models, _ + + +class AccountChartTemplate(models.Model): + _inherit = 'account.chart.template' + + def _prepare_all_journals(self, acc_template_ref, company, journals_dict=None): + res = super(AccountChartTemplate, self)._prepare_all_journals(acc_template_ref, company, journals_dict=journals_dict) + if self == self.env.ref('l10n_in.indian_chart_template_standard'): + for journal in res: + if journal.get('type') in ('sale','purchase'): + journal['l10n_in_gstin_partner_id'] = company.partner_id.id + return res + + def _load(self, company): + res = super(AccountChartTemplate, self)._load(company) + if self == self.env.ref("l10n_in.indian_chart_template_standard"): + company.write({ + 'account_opening_date': fields.Date.context_today(self).replace(month=4, day=1), + 'fiscalyear_last_month': '3', + }) + return res + + +class AccountTaxTemplate(models.Model): + _inherit = 'account.tax.template' + + l10n_in_reverse_charge = fields.Boolean("Reverse charge", help="Tick this if this tax is reverse charge. Only for Indian accounting") + + def _get_tax_vals(self, company, tax_template_to_tax): + val = super(AccountTaxTemplate, self)._get_tax_vals(company, tax_template_to_tax) + if self.tax_group_id: + val['l10n_in_reverse_charge'] = self.l10n_in_reverse_charge + return val diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/mail_message.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/mail_message.py new file mode 100644 index 0000000..c85dd76 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/mail_message.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from markupsafe import Markup + +from odoo import fields, api, models, _ +from odoo.exceptions import UserError + + +class Message(models.Model): + _inherit = 'mail.message' + + l10n_in_audit_log_preview = fields.Html(string="Description", compute="_compute_l10n_in_audit_log_preview") + l10n_in_audit_log_account_move_id = fields.Many2one('account.move', string="Journal Entry", compute="_compute_l10n_in_audit_log_document_name", search="_search_l10n_in_audit_log_document_name") + + @api.depends('body', 'subject', 'tracking_value_ids', 'subtype_id') + def _compute_l10n_in_audit_log_preview(self): + for message in self: + title = message.subject or message.preview + tracking_value_ids = message.sudo().tracking_value_ids + if not title and tracking_value_ids: + title = _("Updated") + elif not title and message.subtype_id and not message.subtype_id.internal: + title = message.subtype_id.display_name + audit_log_preview = Markup("
%s
") % (title) + for value in tracking_value_ids: + audit_log_preview += Markup( + "
  • %(old_value)s %(new_value)s (%(field)s)
  • " + ) % { + 'old_value': value._get_old_display_value()[0] or _("None"), + 'new_value': value._get_new_display_value()[0] or _("None"), + 'title': _("Changed"), + 'field': value.field.field_description, + } + message.l10n_in_audit_log_preview = audit_log_preview + + @api.depends('model', 'res_id') + def _compute_l10n_in_audit_log_document_name(self): + messages_of_account_move = self.filtered(lambda m: m.model == 'account.move' and m.res_id) + (self - messages_of_account_move).l10n_in_audit_log_account_move_id = False + moves = self.env['account.move'].search([('id', 'in', messages_of_account_move.mapped('res_id'))]) + moves_by_id = {m.id: m for m in moves} + for message in messages_of_account_move: + message.l10n_in_audit_log_account_move_id = moves_by_id.get(message.res_id, False) + + def _search_l10n_in_audit_log_document_name(self, operator, value): + is_set = False + if operator == '!=' and isinstance(value, bool): + is_set = True + elif operator not in ['=', 'ilike'] or not isinstance(value, str): + raise UserError(_('Operation not supported')) + move_domain = [('company_id.account_fiscal_country_id.code', '=', 'IN')] + if not is_set: + move_domain += [('name', operator, value)] + move_query = self.env['account.move']._search(move_domain) + return [('model', '=', 'account.move'), ('res_id', 'in', move_query)] diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/port_code.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/port_code.py new file mode 100644 index 0000000..dfd54f3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/port_code.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class L10nInPortCode(models.Model): + """Port code must be mentioned in export and import of goods under GST.""" + _name = 'l10n_in.port.code' + _description = "Indian port code" + _rec_name = 'code' + + code = fields.Char(string="Port Code", required=True) + name = fields.Char(string="Port", required=True) + state_id = fields.Many2one('res.country.state', string="State") + + _sql_constraints = [ + ('code_uniq', 'unique (code)', 'The Port Code must be unique!') + ] diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/product_template.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/product_template.py new file mode 100644 index 0000000..6250fac --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/product_template.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, fields + + +class ProductTemplate(models.Model): + _inherit = 'product.template' + + l10n_in_hsn_code = fields.Char(string="HSN/SAC Code", help="Harmonized System Nomenclature/Services Accounting Code") + l10n_in_hsn_description = fields.Char(string="HSN/SAC Description", help="HSN/SAC description is required if HSN/SAC code is not provided.") diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/res_config_settings.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/res_config_settings.py new file mode 100644 index 0000000..11a58d9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/res_config_settings.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models + + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + group_l10n_in_reseller = fields.Boolean(implied_group='l10n_in.group_l10n_in_reseller', string="Manage Reseller(E-Commerce)") diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/res_country_state.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/res_country_state.py new file mode 100644 index 0000000..6cb495a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/res_country_state.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class CountryState(models.Model): + _inherit = 'res.country.state' + + l10n_in_tin = fields.Char('TIN Number', size=2, help="TIN number-first two digits") diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/res_partner.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/res_partner.py new file mode 100644 index 0000000..cbdd43f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/res_partner.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models, _ + +TEST_GST_NUMBER = "36AABCT1332L011" + +class ResPartner(models.Model): + _inherit = 'res.partner' + + l10n_in_gst_treatment = fields.Selection([ + ('regular', 'Registered Business - Regular'), + ('composition', 'Registered Business - Composition'), + ('unregistered', 'Unregistered Business'), + ('consumer', 'Consumer'), + ('overseas', 'Overseas'), + ('special_economic_zone', 'Special Economic Zone'), + ('deemed_export', 'Deemed Export'), + ('uin_holders', 'UIN Holders'), + ], string="GST Treatment") + + @api.onchange('company_type') + def onchange_company_type(self): + res = super().onchange_company_type() + if self.country_id and self.country_id.code == 'IN': + self.l10n_in_gst_treatment = (self.company_type == 'company') and 'regular' or 'consumer' + return res + + @api.onchange('country_id') + def _onchange_country_id(self): + res = super()._onchange_country_id() + if self.country_id and self.country_id.code != 'IN': + self.l10n_in_gst_treatment = 'overseas' + elif self.country_id and self.country_id.code == 'IN': + self.l10n_in_gst_treatment = (self.company_type == 'company') and 'regular' or 'consumer' + return res + + @api.onchange('vat') + def onchange_vat(self): + if self.vat and self.check_vat_in(self.vat): + state_id = self.env['res.country.state'].search([('l10n_in_tin', '=', self.vat[:2])], limit=1) + if state_id: + self.state_id = state_id + + @api.model + def _commercial_fields(self): + res = super()._commercial_fields() + return res + ['l10n_in_gst_treatment'] + + def check_vat_in(self, vat): + """ + This TEST_GST_NUMBER is used as test credentials for EDI + but this is not a valid number as per the regular expression + so TEST_GST_NUMBER is considered always valid + """ + if vat == TEST_GST_NUMBER: + return True + return super().check_vat_in(vat) diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/uom_uom.py b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/uom_uom.py new file mode 100644 index 0000000..b9b3fcc --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/models/uom_uom.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class UoM(models.Model): + _inherit = "uom.uom" + + # As per GST Rules you need to Specify UQC given by GST. + l10n_in_code = fields.Char("Indian GST UQC", help="Unique Quantity Code (UQC) under GST") diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/report/audit_trail_report_views.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/report/audit_trail_report_views.xml new file mode 100644 index 0000000..70d1864 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/report/audit_trail_report_views.xml @@ -0,0 +1,51 @@ + + + + + mail.message.tree.inherit.audit.log + mail.message + 99 + + + + + + + + + + + + + mail.message.search + mail.message + 99 + + + + + + + + + + + + + + + Audit trail + mail.message + + tree + [ + ('model', '=', 'account.move'), + ('message_type', '=', 'notification'), + ('l10n_in_audit_log_account_move_id', '!=', False), + ] + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/security/ir.model.access.csv b/odoo-bringout-oca-ocb-l10n_in/l10n_in/security/ir.model.access.csv new file mode 100644 index 0000000..08319ca --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_port_code_user,port.code.user,model_l10n_in_port_code,base.group_user,1,0,0,0 +access_port_code_account_manager,port.code.user,model_l10n_in_port_code,account.group_account_manager,1,1,1,1 diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/security/l10n_in_security.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/security/l10n_in_security.xml new file mode 100644 index 0000000..f474eb9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/security/l10n_in_security.xml @@ -0,0 +1,7 @@ + + + + Manage Reseller(E-Commerce) + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/static/description/icon.png b/odoo-bringout-oca-ocb-l10n_in/l10n_in/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f02fceadc00c7c196c2a9972dfdd48cac3e6ac19 GIT binary patch literal 1647 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Yt4rT@hhUEVyOBooLxB`4aT>bsS%+2j)&Ro#d zHSzy+hX4Qno15E2MWw7*xtgJe!PV6>I3&W}-qqIDX>FxZYFhS!D+~VL-_X}Lv7n&D z*EcvZG2JBGJR`Hv!NI+!cY=>kU_?Zcy}jF&R*}n>ucW8v3D<}SRSSoQCqzXh1_Xo$ z1w~DsGTqlVq^zvU+1b<6GoZYpvazYd%E}=uEZ#E4*3Hdl@sj0>mn_T7%(b<3PDn_L zkIx7Vjmyg`v$V9Ut8ZGkXo;Pji-(8bn>XJdJ^FO5Ln1ghCMr7q!NZ4>CQq9)cV1*| z^sL$Q3Jc3(Vv>@Qc9mDu6%|(n21W)3MogGEwWg*qJG-#9w&l|0%ii9BVc{{!$yx0k zJ@e)-ijLZT_Uy}f^RDdQ|9JQAhfkh-o;2xvN?hET7Wt`DXQrg&W@Z-l^iK5g39hQD zyRv&$_og04M~}e3@EJ2^=j0SCI@cjA9e*XN~)YSI%>+hJD9iKjZUcLI(#fz`w<97xIZeFzL+RmL1)~~-)Q*$ge zbx(8i$)ch|+qT_rY&@}d@1yqi)0vqCy}c6x0z#vr;&0u$Z60kMAD`^)9sKm^^DSGp zZQs88=FQvr1tqPm?K^kw^)K>Yvu4xc#VaRGnsMmRllSj`%$RX${`{*E5!?FuCuL>r zQ&U@@pfEQhV{c#I*?adsUd`n`&cMK;;OXKRl5y|tji1rN?h*$+nrD8W;47t@!Q7pz z+9D$*#nCdG!_`t}!3o9iz*W~4d%X_a6V+c8Z+kWFmUFcKKlk#@4Jv1R(l%Ltwz2EK zKmXGP{`1dg-YqxV&G_=m$>6+ub9epUt#a_?{yXaT9^K{K{(A|_=Koi;|5%$n*vDQk zAKp^(##|zd#gw6I!;xU?`-$1<|E{dte)HB;`>hiv-ue+0kS)1#YyJxJDT}Y{3(a|Z zdVW>Blj-+IzpgAlp=_UTAnjr0>Ki*_#%@!qKC3SqXRUiBoWA1p_Tb6MlUHg_uJ8)| zJ=rhd{?>ate*U?&^je_M(G3PRUwzNt2syubp8NCtszIx)CT;OQ+Z$h7^)=}gQ`4<^ z1{0Sp+p;xz`(NRTm$xS0-X0aWde&8+#XFW9in_rz`%16&%FfTiD_{Rt>Z`S!vMgoi zg-y%sH=Dot-y0`q{r$h?m4$Ct`#y->uaiA@%Vozqht@te*SDL(A+p8f#M$0!hrX%2 zT=7@?<}G`F#}nG8-I6Aq1-du5aIKdalm19zFPuKM>&CPel^aAVfg8)8aZ|9lZ#VVmN))@#y=xP%2)Vy+6W zuu51eB(+Rt3g4M2YRN|Y?~Vmk$y=K~IhrC@!|%P7(R!=Y_T3#Jl21HqpPts4(Cu{A zQugXZ+sd6Q6gn22QpjI5zxU8QJFZuLg=vXKqAhsfud;VZ+2Uh%Ewe;<85?D*OL@XPyi+IGx!*#GhA zlFILTcDj{LGRGHfbh^Rvi@(JsP(Wy#R%3bh(OqKC=kae{o17i)9{$U}|MG9GgT1fJ z?EfU5ZU4y;A@bCXSL*$jxrK_?Po>v!?B5k;{Udg@v*^QPm02yHw`P5m>#Tn47rQ!B z{?W!s=l4ZjyLNrN1bhx)(QGo#G~Pd_{oIF>!6%fafx)HVTym`FH14c!bYcvSI4$ zAM-cMtP2u!-Kx20MO>^%=sN91E38~aL_=HxYj+uFwJ&k*p259TBXEUa@j{Wm3MIc; z&+Jq*m2dT%zWfB^sve%Zy*tw$=4?M5`gmjX%K0IiPd~L%ZY=rcbL8mm6BpxEU#cq0 Xr%YLAyzn{$0|SGntDnm{r-UW|Cm}Qo literal 0 HcmV?d00001 diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/static/description/icon.svg b/odoo-bringout-oca-ocb-l10n_in/l10n_in/static/description/icon.svg new file mode 100644 index 0000000..332989e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/static/description/icon.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/account_invoice_views.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/account_invoice_views.xml new file mode 100644 index 0000000..4bc0a3b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/account_invoice_views.xml @@ -0,0 +1,36 @@ + + + + account.move.form.inherit.l10n.in + account.move + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/account_journal_views.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/account_journal_views.xml new file mode 100644 index 0000000..3f857c1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/account_journal_views.xml @@ -0,0 +1,19 @@ + + + + account.journal.form.inherit.l10n.in + account.journal + + + + {'invisible': ['|', '&', ('country_code', '!=', 'IN'), ('type', '!=', 'cash'), '&', ('country_code', '=', 'IN'), ('type', 'not in', ['bank', 'cash', 'sale', 'purchase'])]} + + + {'invisible': ['|', '&', ('country_code', '!=', 'IN'), ('type', '!=', 'cash'), '&', ('country_code', '=', 'IN'), ('type', 'not in', ['bank', 'cash', 'sale', 'purchase'])]} + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/account_tax_views.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/account_tax_views.xml new file mode 100644 index 0000000..9ef5630 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/account_tax_views.xml @@ -0,0 +1,13 @@ + + + + account.tax.form.inherit.l10n.in + account.tax + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/port_code_views.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/port_code_views.xml new file mode 100644 index 0000000..68c20ef --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/port_code_views.xml @@ -0,0 +1,48 @@ + + + + + l10n_in.port.code.form + l10n_in.port.code + +
    + + + + + + + + + +
    +
    +
    + + + l10n_in.port.code.tree + l10n_in.port.code + + + + + + + + + + + l10n_in.port.code.search + l10n_in.port.code + + + + + + + + + + + +
    diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/product_template_view.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/product_template_view.xml new file mode 100644 index 0000000..7e632ee --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/product_template_view.xml @@ -0,0 +1,16 @@ + + + + + l10n_in.product.template.form.hsn_code + product.template + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/report_invoice.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/report_invoice.xml new file mode 100644 index 0000000..5e0f4a5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/report_invoice.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/report_template.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/report_template.xml new file mode 100644 index 0000000..0725936 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/report_template.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/res_config_settings_views.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/res_config_settings_views.xml new file mode 100644 index 0000000..5b4208c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/res_config_settings_views.xml @@ -0,0 +1,26 @@ + + + + res.config.settings.form.inherit.l10n_in + res.config.settings + + +
    +
    +
    + +
    +
    +
    +
    +
    +
    +
    +
    diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/res_country_state_view.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/res_country_state_view.xml new file mode 100644 index 0000000..282d504 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/res_country_state_view.xml @@ -0,0 +1,15 @@ + + + + + l10n.in.res.country.state.form.inhert + res.country.state + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/res_partner_views.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/res_partner_views.xml new file mode 100644 index 0000000..fce0ee8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/res_partner_views.xml @@ -0,0 +1,17 @@ + + + + l10n.in.res.partner.vat.inherit + res.partner + + + + + {'required':[('l10n_in_gst_treatment', 'in', ['regular', 'composition', 'special_economic_zone', 'deemed_export'])], 'readonly': [('parent_id', '!=', False)]} + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/uom_uom_views.xml b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/uom_uom_views.xml new file mode 100644 index 0000000..15acdf9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/l10n_in/views/uom_uom_views.xml @@ -0,0 +1,24 @@ + + + + uom.uom.form + uom.uom + + + + + + + + + + uom.category.form + uom.category + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in/pyproject.toml b/odoo-bringout-oca-ocb-l10n_in/pyproject.toml new file mode 100644 index 0000000..553733f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_in" +version = "16.0.0" +description = "Indian - Accounting - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account_tax_python>=16.0.0", + "odoo-bringout-oca-ocb-base_vat>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_in"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/README.md b/odoo-bringout-oca-ocb-l10n_in_edi/README.md new file mode 100644 index 0000000..27067c2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/README.md @@ -0,0 +1,60 @@ +# Indian - E-invoicing + + +Indian - E-invoicing +==================== +To submit invoicing through API to the government. +We use "Tera Software Limited" as GSP + +Step 1: First you need to create an API username and password in the E-invoice portal. +Step 2: Switch to company related to that GST number +Step 3: Set that username and password in Odoo (Goto: Invoicing/Accounting -> Configuration -> Settings -> Customer Invoices or find "E-invoice" in search bar) +Step 4: Repeat steps 1,2,3 for all GSTIN you have in odoo. If you have a multi-company with the same GST number then perform step 1 for the first company only. + +For the creation of API username and password please ref this document: + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_edi +``` + +## Dependencies + +This addon depends on: +- account_edi +- l10n_in +- iap + +## Manifest Information + +- **Name**: Indian - E-invoicing +- **Version**: 1.03.00 +- **Category**: Accounting/Localizations/EDI +- **License**: LGPL-3 +- **Installable**: True + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_in_edi`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/ARCHITECTURE.md new file mode 100644 index 0000000..48d949b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_in_edi Module - l10n_in_edi + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/CONFIGURATION.md new file mode 100644 index 0000000..6a00eee --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_in_edi. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/DEPENDENCIES.md new file mode 100644 index 0000000..780bddb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/DEPENDENCIES.md @@ -0,0 +1,7 @@ +# Dependencies + +This addon depends on: + +- [account_edi](../../odoo-bringout-oca-ocb-account_edi) +- [l10n_in](../../odoo-bringout-oca-ocb-l10n_in) +- [iap](../../odoo-bringout-oca-ocb-iap) diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/FAQ.md new file mode 100644 index 0000000..bc59ab3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_in_edi or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/INSTALL.md new file mode 100644 index 0000000..74a092a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_edi" +# or +uv pip install odoo-bringout-oca-ocb-l10n_in_edi" +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/MODELS.md new file mode 100644 index 0000000..7203a5a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/MODELS.md @@ -0,0 +1,15 @@ +# Models + +Detected core models and extensions in l10n_in_edi. + +```mermaid +classDiagram + class account_edi_format + class account_move + class res_company + class res_config_settings +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/OVERVIEW.md new file mode 100644 index 0000000..f3895aa --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_in_edi. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_in_edi +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/USAGE.md new file mode 100644 index 0000000..2f6b4e5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_in_edi +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_in_edi/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/__init__.py b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/__init__.py new file mode 100644 index 0000000..dc5e6b6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/__manifest__.py b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/__manifest__.py new file mode 100644 index 0000000..62354af --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/__manifest__.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +{ + "name": """Indian - E-invoicing""", + "version": "1.03.00", + "icon": "/l10n_in/static/description/icon.png", + "category": "Accounting/Localizations/EDI", + "depends": [ + "account_edi", + "l10n_in", + "iap", + ], + "description": """ +Indian - E-invoicing +==================== +To submit invoicing through API to the government. +We use "Tera Software Limited" as GSP + +Step 1: First you need to create an API username and password in the E-invoice portal. +Step 2: Switch to company related to that GST number +Step 3: Set that username and password in Odoo (Goto: Invoicing/Accounting -> Configuration -> Settings -> Customer Invoices or find "E-invoice" in search bar) +Step 4: Repeat steps 1,2,3 for all GSTIN you have in odoo. If you have a multi-company with the same GST number then perform step 1 for the first company only. + +For the creation of API username and password please ref this document: + """, + "data": [ + "data/account_edi_data.xml", + "views/res_config_settings_views.xml", + "views/edi_pdf_report.xml", + "views/account_move_views.xml", + ], + "demo": [ + "demo/demo_company.xml", + ], + "installable": True, + # only applicable for taxpayers turnover higher than Rs.50 crore so auto_install is False + "license": "LGPL-3", +} diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/data/account_edi_data.xml b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/data/account_edi_data.xml new file mode 100644 index 0000000..c83d464 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/data/account_edi_data.xml @@ -0,0 +1,7 @@ + + + + E-Invoice (IN) + in_einvoice_1_03 + + diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/data/neutralize.sql b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/data/neutralize.sql new file mode 100644 index 0000000..2520fc4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/data/neutralize.sql @@ -0,0 +1,7 @@ +-- disable l10n_in_edi integration +UPDATE res_company + SET l10n_in_edi_production_env = false, + l10n_in_edi_username = NULL, + l10n_in_edi_password = NULL, + l10n_in_edi_token = NULL, + l10n_in_edi_token_validity = NULL; diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/demo/demo_company.xml new file mode 100644 index 0000000..e1ce092 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/demo/demo_company.xml @@ -0,0 +1,8 @@ + + + + + MGSTTEST + mgst@123 + + diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/i18n/l10n_in_edi.pot b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/i18n/l10n_in_edi.pot new file mode 100644 index 0000000..1090844 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/i18n/l10n_in_edi.pot @@ -0,0 +1,411 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_in_edi +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-08-20 11:49+0000\n" +"PO-Revision-Date: 2025-08-20 11:49+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_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "- City required min 3 and max 100 characters" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "- Email address should be valid and not more then 100 characters" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "- Mobile number should be minimum 10 or maximum 12 digits" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "- State TIN Number must be exactly 2 digits." +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "- State required min 3 and max 50 characters" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "- Street required min 3 and max 100 characters" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "- Street2 should be min 3 and max 100 characters" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "- Zip code required 6 digits" +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.res_config_settings_view_form_inherit_l10n_in_edi +msgid "" +"Setup E-invoice\n" +" " +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.l10n_in_einvoice_report_invoice_document_inherit +msgid "Acknowledgement:" +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.l10n_in_einvoice_report_invoice_document_inherit +msgid "IRN:" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/res_config_settings.py:0 +#, python-format +msgid "API credentials validated successfully" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "Buy Credits" +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.res_config_settings_view_form_inherit_l10n_in_edi +msgid "Buy credits" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields,field_description:l10n_in_edi.field_account_bank_statement_line__l10n_in_edi_cancel_reason +#: model:ir.model.fields,field_description:l10n_in_edi.field_account_move__l10n_in_edi_cancel_reason +#: model:ir.model.fields,field_description:l10n_in_edi.field_account_payment__l10n_in_edi_cancel_reason +msgid "Cancel reason" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields,field_description:l10n_in_edi.field_account_bank_statement_line__l10n_in_edi_cancel_remarks +#: model:ir.model.fields,field_description:l10n_in_edi.field_account_move__l10n_in_edi_cancel_remarks +#: model:ir.model.fields,field_description:l10n_in_edi.field_account_payment__l10n_in_edi_cancel_remarks +msgid "Cancel remarks" +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.res_config_settings_view_form_inherit_l10n_in_edi +msgid "Check the" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model,name:l10n_in_edi.model_res_company +msgid "Companies" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model,name:l10n_in_edi.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.res_config_settings_view_form_inherit_l10n_in_edi +msgid "" +"Costs 1 credit per transaction. Free 200 credits will be available for the " +"first time." +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields.selection,name:l10n_in_edi.selection__account_move__l10n_in_edi_cancel_reason__2 +msgid "Data Entry Mistake" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields.selection,name:l10n_in_edi.selection__account_move__l10n_in_edi_cancel_reason__1 +msgid "Duplicate" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields,field_description:l10n_in_edi.field_res_company__l10n_in_edi_production_env +msgid "E-invoice (IN) Is production OSE environment" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields,field_description:l10n_in_edi.field_res_company__l10n_in_edi_password +msgid "E-invoice (IN) Password" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields,field_description:l10n_in_edi.field_res_company__l10n_in_edi_token +msgid "E-invoice (IN) Token" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields,field_description:l10n_in_edi.field_res_company__l10n_in_edi_username +msgid "E-invoice (IN) Username" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields,field_description:l10n_in_edi.field_res_company__l10n_in_edi_token_validity +msgid "E-invoice (IN) Valid Until" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields,field_description:l10n_in_edi.field_account_bank_statement_line__l10n_in_edi_show_cancel +#: model:ir.model.fields,field_description:l10n_in_edi.field_account_move__l10n_in_edi_show_cancel +#: model:ir.model.fields,field_description:l10n_in_edi.field_account_payment__l10n_in_edi_show_cancel +msgid "E-invoice(IN) is sent?" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model,name:l10n_in_edi.model_account_edi_format +msgid "EDI format" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields,help:l10n_in_edi.field_res_company__l10n_in_edi_production_env +#: model:ir.model.fields,help:l10n_in_edi.field_res_config_settings__l10n_in_edi_production_env +msgid "Enable the use of production credentials" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "Ensure GST Number set on company setting and API are Verified." +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/res_config_settings.py:0 +#, python-format +msgid "Go to Company" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "HSN code is not set in product %s" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/res_config_settings.py:0 +#, python-format +msgid "" +"Incorrect username or password, or the GST number on company does not match." +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields,field_description:l10n_in_edi.field_res_config_settings__l10n_in_edi_production_env +msgid "Indian EDI Testing Environment" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields,field_description:l10n_in_edi.field_res_config_settings__l10n_in_edi_password +msgid "Indian EDI password" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields,field_description:l10n_in_edi.field_res_config_settings__l10n_in_edi_username +msgid "Indian EDI username" +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.res_config_settings_view_form_inherit_l10n_in_edi +msgid "Indian Electronic Invoicing" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "Invalid HSN Code (%s) in product %s" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "" +"Invoice lines having a negative amount are not allowed to generate the IRN. " +"Please create a credit note instead." +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "Invoice number should not be more than 16 characters" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model,name:l10n_in_edi.model_account_move +msgid "Journal Entry" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "Negative discount is not allowed, set in line %s" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields.selection,name:l10n_in_edi.selection__account_move__l10n_in_edi_cancel_reason__3 +msgid "Order Cancelled" +msgstr "" + +#. module: l10n_in_edi +#: model:ir.model.fields.selection,name:l10n_in_edi.selection__account_move__l10n_in_edi_cancel_reason__4 +msgid "Others" +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.res_config_settings_view_form_inherit_l10n_in_edi +msgid "Password" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "Please buy more credits and retry: " +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/res_config_settings.py:0 +#, python-format +msgid "Please enter a GST number in company." +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.res_config_settings_view_form_inherit_l10n_in_edi +msgid "Production Environment" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_move.py:0 +#, python-format +msgid "Retrying EDI processing for the following documents:%s" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "" +"Set an appropriate GST tax on line \"%s\" (if it's zero rated or nil rated " +"then select it also)" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "" +"Somehow this invoice had been cancelled to government before.
    Normally, " +"this should not happen too often
    Just verify by logging into government " +"website here." +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "" +"Somehow this invoice had been submited to government before.
    Normally, " +"this should not happen too often
    Just verify value of invoice by uploade" +" json to government website
    here." +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_move.py:0 +#, python-format +msgid "" +"To cancel E-invoice set cancel reason and remarks at Other info tab in invoices: \n" +"%s" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "" +"Unable to connect to the online E-invoice service.The web service may be " +"temporary down. Please try again in a moment." +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.res_config_settings_view_form_inherit_l10n_in_edi +msgid "Username" +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.res_config_settings_view_form_inherit_l10n_in_edi +msgid "Verify Username and Password" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "You have insufficient credits to send this document!" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/res_config_settings.py:0 +#, python-format +msgid "You must enable production environment to buy credits" +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.res_config_settings_view_form_inherit_l10n_in_edi +msgid "documentation" +msgstr "" + +#. module: l10n_in_edi +#. odoo-python +#: code:addons/l10n_in_edi/models/account_edi_format.py:0 +#, python-format +msgid "product is required to get HSN code" +msgstr "" + +#. module: l10n_in_edi +#: model_terms:ir.ui.view,arch_db:l10n_in_edi.res_config_settings_view_form_inherit_l10n_in_edi +msgid "to get credentials" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/__init__.py b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/__init__.py new file mode 100644 index 0000000..26d01b7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import account_edi_format +from . import account_move +from . import res_company +from . import res_config_settings diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/account_edi_format.py b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/account_edi_format.py new file mode 100644 index 0000000..c05d754 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/account_edi_format.py @@ -0,0 +1,736 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import re +import json +import pytz +import markupsafe + +from collections import defaultdict + +from odoo import models, fields, api, _ +from odoo.tools import html_escape, float_is_zero, float_compare +from odoo.exceptions import AccessError, ValidationError +from odoo.addons.iap import jsonrpc +import logging + +_logger = logging.getLogger(__name__) + +DEFAULT_IAP_ENDPOINT = "https://l10n-in-edi.api.odoo.com" +DEFAULT_IAP_TEST_ENDPOINT = "https://l10n-in-edi-demo.api.odoo.com" + + +class AccountEdiFormat(models.Model): + _inherit = "account.edi.format" + + def _is_enabled_by_default_on_journal(self, journal): + self.ensure_one() + if self.code == "in_einvoice_1_03": + return journal.company_id.country_id.code == 'IN' + return super()._is_enabled_by_default_on_journal(journal) + + def _get_l10n_in_base_tags(self): + return ( + self.env.ref('l10n_in.tax_tag_base_sgst').ids + + self.env.ref('l10n_in.tax_tag_base_cgst').ids + + self.env.ref('l10n_in.tax_tag_base_igst').ids + + self.env.ref('l10n_in.tax_tag_base_cess').ids + + self.env.ref('l10n_in.tax_tag_zero_rated').ids + + self.env.ref("l10n_in.tax_tag_exempt").ids + + self.env.ref("l10n_in.tax_tag_nil_rated").ids + + self.env.ref("l10n_in.tax_tag_non_gst_supplies").ids + ) + + def _get_l10n_in_gst_tags(self): + return ( + self.env.ref('l10n_in.tax_tag_base_sgst') + + self.env.ref('l10n_in.tax_tag_base_cgst') + + self.env.ref('l10n_in.tax_tag_base_igst') + + self.env.ref('l10n_in.tax_tag_base_cess') + + self.env.ref('l10n_in.tax_tag_zero_rated') + ).ids + + def _get_l10n_in_non_taxable_tags(self): + return ( + self.env.ref("l10n_in.tax_tag_exempt") + + self.env.ref("l10n_in.tax_tag_nil_rated") + + self.env.ref("l10n_in.tax_tag_non_gst_supplies") + ).ids + + def _get_move_applicability(self, move): + # EXTENDS account_edi + self.ensure_one() + if self.code != 'in_einvoice_1_03': + return super()._get_move_applicability(move) + is_under_gst = any(move_line_tag.id in self._get_l10n_in_gst_tags() for move_line_tag in move.line_ids.tax_tag_ids) + if move.is_sale_document(include_receipts=True) and move.country_code == 'IN' and is_under_gst and move.l10n_in_gst_treatment in ( + "regular", + "composition", + "overseas", + "special_economic_zone", + "deemed_export", + ): + return { + 'post': self._l10n_in_edi_post_invoice, + 'cancel': self._l10n_in_edi_cancel_invoice, + 'edi_content': self._l10n_in_edi_xml_invoice_content, + } + + def _needs_web_services(self): + self.ensure_one() + return self.code == "in_einvoice_1_03" or super()._needs_web_services() + + def _l10n_in_edi_xml_invoice_content(self, invoice): + return json.dumps(self._l10n_in_edi_generate_invoice_json(invoice)).encode() + + def _l10n_in_edi_extract_digits(self, string): + if not string: + return string + matches = re.findall(r"\d+", string) + result = "".join(matches) + return result + + def _check_move_configuration(self, move): + if self.code != "in_einvoice_1_03": + return super()._check_move_configuration(move) + error_message = [] + error_message += self._l10n_in_validate_partner(move.partner_id) + error_message += self._l10n_in_validate_partner(move.company_id.partner_id, is_company=True) + if not re.match("^.{1,16}$", move.name): + error_message.append(_("Invoice number should not be more than 16 characters")) + all_base_tags = self._get_l10n_in_gst_tags() + self._get_l10n_in_non_taxable_tags() + for line in move.invoice_line_ids.filtered(lambda line: line.display_type not in ('line_note', 'line_section', 'rounding')): + if line.price_subtotal < 0: + # Line having a negative amount is not allowed. + if not move._l10n_in_edi_is_managing_invoice_negative_lines_allowed(): + raise ValidationError(_("Invoice lines having a negative amount are not allowed to generate the IRN. " + "Please create a credit note instead.")) + if line.display_type == 'product' and line.discount < 0: + error_message.append(_("Negative discount is not allowed, set in line %s", line.name)) + if not line.tax_tag_ids or not any(move_line_tag.id in all_base_tags for move_line_tag in line.tax_tag_ids): + error_message.append(_( + """Set an appropriate GST tax on line "%s" (if it's zero rated or nil rated then select it also)""", line.product_id.name)) + if line.product_id: + hsn_code = self._l10n_in_edi_extract_digits(line.product_id.l10n_in_hsn_code) + if not hsn_code: + error_message.append(_("HSN code is not set in product %s", line.product_id.name)) + elif not re.match("^[0-9]+$", hsn_code): + error_message.append(_( + "Invalid HSN Code (%s) in product %s", hsn_code, line.product_id.name + )) + else: + error_message.append(_("product is required to get HSN code")) + return error_message + + def _l10n_in_edi_get_iap_buy_credits_message(self, company): + url = self.env["iap.account"].get_credits_url(service_name="l10n_in_edi") + return markupsafe.Markup("""

    %s

    %s %s

    """) % ( + _("You have insufficient credits to send this document!"), + _("Please buy more credits and retry: "), + url, + _("Buy Credits") + ) + + def _l10n_in_edi_post_invoice(self, invoice): + generate_json = self._l10n_in_edi_generate_invoice_json(invoice) + response = self._l10n_in_edi_generate(invoice.company_id, generate_json) + if response.get("error"): + error = response["error"] + error_codes = [e.get("code") for e in error] + if "1005" in error_codes: + # Invalid token eror then create new token and send generate request again. + # This happen when authenticate called from another odoo instance with same credentials (like. Demo/Test) + authenticate_response = self._l10n_in_edi_authenticate(invoice.company_id) + if not authenticate_response.get("error"): + error = [] + response = self._l10n_in_edi_generate(invoice.company_id, generate_json) + if response.get("error"): + error = response["error"] + error_codes = [e.get("code") for e in error] + if "2150" in error_codes: + # Get IRN by details in case of IRN is already generated + # this happens when timeout from the Government portal but IRN is generated + response = self._l10n_in_edi_get_irn_by_details(invoice.company_id, { + "doc_type": invoice.move_type == "out_refund" and "CRN" or "INV", + "doc_num": invoice.name, + "doc_date": invoice.invoice_date and invoice.invoice_date.strftime("%d/%m/%Y") or False, + }) + if not response.get("error"): + error = [] + odoobot = self.env.ref("base.partner_root") + invoice.message_post(author_id=odoobot.id, body=_( + "Somehow this invoice had been submited to government before." \ + "
    Normally, this should not happen too often" \ + "
    Just verify value of invoice by uploade json to government website " \ + "here." + )) + if "no-credit" in error_codes: + return {invoice: { + "success": False, + "error": self._l10n_in_edi_get_iap_buy_credits_message(invoice.company_id), + "blocking_level": "error", + }} + elif error: + error_message = "
    ".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message"))) for e in error]) + return {invoice: { + "success": False, + "error": error_message, + "blocking_level": ("404" in error_codes) and "warning" or "error", + }} + if not response.get("error"): + json_dump = json.dumps(response.get("data")) + json_name = "%s_einvoice.json" % (invoice.name.replace("/", "_")) + attachment = self.env["ir.attachment"].create({ + "name": json_name, + "raw": json_dump.encode(), + "res_model": "account.move", + "res_id": invoice.id, + "mimetype": "application/json", + }) + return {invoice: {"success": True, "attachment": attachment}} + + def _l10n_in_edi_cancel_invoice(self, invoice): + l10n_in_edi_response_json = invoice._get_l10n_in_edi_response_json() + cancel_json = { + "Irn": l10n_in_edi_response_json.get("Irn"), + "CnlRsn": invoice.l10n_in_edi_cancel_reason, + "CnlRem": invoice.l10n_in_edi_cancel_remarks, + } + response = self._l10n_in_edi_cancel(invoice.company_id, cancel_json) + if response.get("error"): + error = response["error"] + error_codes = [e.get("code") for e in error] + if "1005" in error_codes: + # Invalid token eror then create new token and send generate request again. + # This happen when authenticate called from another odoo instance with same credentials (like. Demo/Test) + authenticate_response = self._l10n_in_edi_authenticate(invoice.company_id) + if not authenticate_response.get("error"): + error = [] + response = self._l10n_in_edi_cancel(invoice.company_id, cancel_json) + if response.get("error"): + error = response["error"] + error_codes = [e.get("code") for e in error] + if "9999" in error_codes: + response = {} + error = [] + odoobot = self.env.ref("base.partner_root") + invoice.message_post(author_id=odoobot.id, body=_( + "Somehow this invoice had been cancelled to government before." \ + "
    Normally, this should not happen too often" \ + "
    Just verify by logging into government website " \ + "
    here." + )) + if "no-credit" in error_codes: + return {invoice: { + "success": False, + "error": self._l10n_in_edi_get_iap_buy_credits_message(invoice.company_id), + "blocking_level": "error", + }} + if error: + error_message = "
    ".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message"))) for e in error]) + return {invoice: { + "success": False, + "error": error_message, + "blocking_level": ("404" in error_codes) and "warning" or "error", + }} + if not response.get("error"): + json_dump = json.dumps(response.get("data", {})) + json_name = "%s_cancel_einvoice.json" % (invoice.name.replace("/", "_")) + attachment = False + if json_dump: + attachment = self.env["ir.attachment"].create({ + "name": json_name, + "raw": json_dump.encode(), + "res_model": "account.move", + "res_id": invoice.id, + "mimetype": "application/json", + }) + return {invoice: {"success": True, "attachment": attachment}} + + def _l10n_in_validate_partner(self, partner, is_company=False): + self.ensure_one() + message = [] + if not re.match("^.{3,100}$", partner.street or ""): + message.append(_("- Street required min 3 and max 100 characters")) + if partner.street2 and not re.match("^.{3,100}$", partner.street2): + message.append(_("- Street2 should be min 3 and max 100 characters")) + if not re.match("^.{3,100}$", partner.city or ""): + message.append(_("- City required min 3 and max 100 characters")) + if partner.country_id.code == "IN" and not re.match("^.{3,50}$", partner.state_id.name or ""): + message.append(_("- State required min 3 and max 50 characters")) + if ( + partner.country_id.code == "IN" + and not re.match(r"^(?!0+$)([0-9]{2})$", partner.state_id.l10n_in_tin or "") + ): + message.append(_("- State TIN Number must be exactly 2 digits.")) + if partner.country_id.code == "IN" and not re.match("^[0-9]{6,}$", partner.zip or ""): + message.append(_("- Zip code required 6 digits")) + if partner.phone and not re.match("^[0-9]{10,12}$", + self._l10n_in_edi_extract_digits(partner.phone) + ): + message.append(_("- Mobile number should be minimum 10 or maximum 12 digits")) + if partner.email and ( + not re.match(r"^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+$", partner.email) + or not re.match("^.{6,100}$", partner.email) + ): + message.append(_("- Email address should be valid and not more then 100 characters")) + if message: + message.insert(0, "%s" %(partner.display_name)) + return message + + def _get_l10n_in_edi_saler_buyer_party(self, move): + return { + "seller_details": move.company_id.partner_id, + "dispatch_details": move._l10n_in_get_warehouse_address() or move.company_id.partner_id, + "buyer_details": move.partner_id, + "ship_to_details": move.partner_shipping_id or move.partner_id, + } + + @api.model + def _get_l10n_in_edi_partner_details(self, partner, set_vat=True, set_phone_and_email=True, + is_overseas=False, pos_state_id=False): + """ + Create the dictionary based partner details + if set_vat is true then, vat(GSTIN) and legal name(LglNm) is added + if set_phone_and_email is true then phone and email is add + if set_pos is true then state code from partner or passed state_id is added as POS(place of supply) + if is_overseas is true then pin is 999999 and GSTIN(vat) is URP and Stcd is . + if pos_state_id is passed then we use set POS + """ + zip_digits = self._l10n_in_edi_extract_digits(partner.zip) + partner_details = { + "Addr1": partner.street or "", + "Loc": partner.city or "", + "Pin": zip_digits and int(zip_digits) or "", + "Stcd": partner.state_id.l10n_in_tin or "", + } + if partner.street2: + partner_details.update({"Addr2": partner.street2}) + if set_phone_and_email: + if partner.email: + partner_details.update({"Em": partner.email}) + if partner.phone: + partner_details.update({"Ph": self._l10n_in_edi_extract_digits(partner.phone)}) + if pos_state_id: + partner_details.update({"POS": pos_state_id.l10n_in_tin or ""}) + if set_vat: + partner_details.update({ + "LglNm": partner.commercial_partner_id.name, + "GSTIN": partner.vat or "URP", + }) + else: + partner_details.update({"Nm": partner.name or partner.commercial_partner_id.name}) + # For no country I would suppose it is India, so not sure this is super right + if is_overseas and (not partner.country_id or partner.country_id.code != 'IN'): + partner_details.update({ + "GSTIN": "URP", + "Pin": 999999, + "Stcd": "96", + "POS": "96", + }) + return partner_details + + @api.model + def _l10n_in_round_value(self, amount, precision_digits=2): + """ + This method is call for rounding. + If anything is wrong with rounding then we quick fix in method + """ + value = round(amount, precision_digits) + # avoid -0.0 + return value if value else 0.0 + + def _get_l10n_in_edi_line_details(self, index, line, line_tax_details): + """ + Create the dictionary with line details + return { + account.move.line('1'): {....}, + account.move.line('2'): {....}, + .... + } + """ + sign = line.move_id.is_inbound() and -1 or 1 + tax_details_by_code = self._get_l10n_in_tax_details_by_line_code(line_tax_details.get("tax_details", {})) + quantity = line.quantity + full_discount_or_zero_quantity = line.discount == 100.00 or float_is_zero(quantity, 3) + if full_discount_or_zero_quantity: + unit_price_in_inr = line.currency_id._convert( + line.price_unit, + line.company_currency_id, + line.company_id, + line.date or fields.Date.context_today(self) + ) + else: + unit_price_in_inr = ((sign * line.balance) / (1 - (line.discount / 100))) / quantity + + if unit_price_in_inr < 0 and quantity < 0: + # If unit price and quantity both is negative then + # We set unit price and quantity as positive because + # government does not accept negative in qty or unit price + unit_price_in_inr = unit_price_in_inr * -1 + quantity = quantity * -1 + return { + "SlNo": str(index), + "PrdDesc": line.name.replace("\n", ""), + "IsServc": line.product_id.type == "service" and "Y" or "N", + "HsnCd": self._l10n_in_edi_extract_digits(line.product_id.l10n_in_hsn_code), + "Qty": self._l10n_in_round_value(quantity or 0.0, 3), + "Unit": line.product_uom_id.l10n_in_code and line.product_uom_id.l10n_in_code.split("-")[0] or "OTH", + # Unit price in company currency and tax excluded so its different then price_unit + "UnitPrice": self._l10n_in_round_value(unit_price_in_inr, 3), + # total amount is before discount + "TotAmt": self._l10n_in_round_value(unit_price_in_inr * quantity), + "Discount": self._l10n_in_round_value((unit_price_in_inr * quantity) * (line.discount / 100)), + "AssAmt": self._l10n_in_round_value((sign * line.balance)), + "GstRt": self._l10n_in_round_value(tax_details_by_code.get("igst_rate", 0.00) or ( + tax_details_by_code.get("cgst_rate", 0.00) + tax_details_by_code.get("sgst_rate", 0.00)), 3), + "IgstAmt": self._l10n_in_round_value(tax_details_by_code.get("igst_amount", 0.00)), + "CgstAmt": self._l10n_in_round_value(tax_details_by_code.get("cgst_amount", 0.00)), + "SgstAmt": self._l10n_in_round_value(tax_details_by_code.get("sgst_amount", 0.00)), + "CesRt": self._l10n_in_round_value(tax_details_by_code.get("cess_rate", 0.00), 3), + "CesAmt": self._l10n_in_round_value(tax_details_by_code.get("cess_amount", 0.00)), + "CesNonAdvlAmt": self._l10n_in_round_value( + tax_details_by_code.get("cess_non_advol_amount", 0.00)), + "StateCesRt": self._l10n_in_round_value(tax_details_by_code.get("state_cess_rate_amount", 0.00), 3), + "StateCesAmt": self._l10n_in_round_value(tax_details_by_code.get("state_cess_amount", 0.00)), + "StateCesNonAdvlAmt": self._l10n_in_round_value( + tax_details_by_code.get("state_cess_non_advol_amount", 0.00)), + "OthChrg": self._l10n_in_round_value(tax_details_by_code.get("other_amount", 0.00)), + "TotItemVal": self._l10n_in_round_value(((sign * line.balance) + line_tax_details.get("tax_amount", 0.00))), + } + + def _l10n_in_edi_generate_invoice_json_managing_negative_lines(self, invoice, json_payload): + """Set negative lines against positive lines as discount with same HSN code and tax rate + + With negative lines + + product name | hsn code | unit price | qty | discount | total + ============================================================= + product A | 123456 | 1000 | 1 | 100 | 900 + product B | 123456 | 1500 | 2 | 0 | 3000 + Discount | 123456 | -300 | 1 | 0 | -300 + + Converted to without negative lines + + product name | hsn code | unit price | qty | discount | total + ============================================================= + product A | 123456 | 1000 | 1 | 100 | 900 + product B | 123456 | 1500 | 2 | 300 | 2700 + + totally discounted lines are kept as 0, though + """ + def discount_group_key(line_vals): + return "%s-%s"%(line_vals['HsnCd'], line_vals['GstRt']) + + def put_discount_on(discount_line_vals, other_line_vals): + discount = discount_line_vals['AssAmt'] * -1 + discount_to_allow = other_line_vals['AssAmt'] + if float_compare(discount_to_allow, discount, precision_rounding=invoice.currency_id.rounding) < 0: + # Update discount line, needed when discount is more then max line, in short remaining_discount is not zero + discount_line_vals.update({ + 'AssAmt': self._l10n_in_round_value(discount_line_vals['AssAmt'] + other_line_vals['AssAmt']), + 'IgstAmt': self._l10n_in_round_value(discount_line_vals['IgstAmt'] + other_line_vals['IgstAmt']), + 'CgstAmt': self._l10n_in_round_value(discount_line_vals['CgstAmt'] + other_line_vals['CgstAmt']), + 'SgstAmt': self._l10n_in_round_value(discount_line_vals['SgstAmt'] + other_line_vals['SgstAmt']), + 'CesAmt': self._l10n_in_round_value(discount_line_vals['CesAmt'] + other_line_vals['CesAmt']), + 'CesNonAdvlAmt': self._l10n_in_round_value(discount_line_vals['CesNonAdvlAmt'] + other_line_vals['CesNonAdvlAmt']), + 'StateCesAmt': self._l10n_in_round_value(discount_line_vals['StateCesAmt'] + other_line_vals['StateCesAmt']), + 'StateCesNonAdvlAmt': self._l10n_in_round_value(discount_line_vals['StateCesNonAdvlAmt'] + other_line_vals['StateCesNonAdvlAmt']), + 'OthChrg': self._l10n_in_round_value(discount_line_vals['OthChrg'] + other_line_vals['OthChrg']), + 'TotItemVal': self._l10n_in_round_value(discount_line_vals['TotItemVal'] + other_line_vals['TotItemVal']), + }) + other_line_vals.update({ + 'Discount': self._l10n_in_round_value(other_line_vals['Discount'] + discount_to_allow), + 'AssAmt': 0.00, + 'IgstAmt': 0.00, + 'CgstAmt': 0.00, + 'SgstAmt': 0.00, + 'CesAmt': 0.00, + 'CesNonAdvlAmt': 0.00, + 'StateCesAmt': 0.00, + 'StateCesNonAdvlAmt': 0.00, + 'OthChrg': 0.00, + 'TotItemVal': 0.00, + }) + return False + other_line_vals.update({ + 'Discount': self._l10n_in_round_value(other_line_vals['Discount'] + discount), + 'AssAmt': self._l10n_in_round_value(other_line_vals['AssAmt'] + discount_line_vals['AssAmt']), + 'IgstAmt': self._l10n_in_round_value(other_line_vals['IgstAmt'] + discount_line_vals['IgstAmt']), + 'CgstAmt': self._l10n_in_round_value(other_line_vals['CgstAmt'] + discount_line_vals['CgstAmt']), + 'SgstAmt': self._l10n_in_round_value(other_line_vals['SgstAmt'] + discount_line_vals['SgstAmt']), + 'CesAmt': self._l10n_in_round_value(other_line_vals['CesAmt'] + discount_line_vals['CesAmt']), + 'CesNonAdvlAmt': self._l10n_in_round_value(other_line_vals['CesNonAdvlAmt'] + discount_line_vals['CesNonAdvlAmt']), + 'StateCesAmt': self._l10n_in_round_value(other_line_vals['StateCesAmt'] + discount_line_vals['StateCesAmt']), + 'StateCesNonAdvlAmt': self._l10n_in_round_value(other_line_vals['StateCesNonAdvlAmt'] + discount_line_vals['StateCesNonAdvlAmt']), + 'OthChrg': self._l10n_in_round_value(other_line_vals['OthChrg'] + discount_line_vals['OthChrg']), + 'TotItemVal': self._l10n_in_round_value(other_line_vals['TotItemVal'] + discount_line_vals['TotItemVal']), + }) + return True + + discount_lines = [] + for discount_line in json_payload['ItemList'].copy(): #to be sure to not skip in the loop: + if discount_line['AssAmt'] < 0: + discount_lines.append(discount_line) + json_payload['ItemList'].remove(discount_line) + if not discount_lines: + return json_payload + + lines_grouped_and_sorted = defaultdict(list) + for line in sorted(json_payload['ItemList'], key=lambda i: i['AssAmt'], reverse=True): + lines_grouped_and_sorted[discount_group_key(line)].append(line) + + for discount_line in discount_lines: + apply_discount_on_lines = lines_grouped_and_sorted.get(discount_group_key(discount_line), []) + for apply_discount_on in apply_discount_on_lines: + if put_discount_on(discount_line, apply_discount_on): + break + return json_payload + + def _l10n_in_edi_generate_invoice_json(self, invoice): + tax_details = self._l10n_in_prepare_edi_tax_details(invoice) + saler_buyer = self._get_l10n_in_edi_saler_buyer_party(invoice) + tax_details_by_code = self._get_l10n_in_tax_details_by_line_code(tax_details.get("tax_details", {})) + is_intra_state = invoice.l10n_in_state_id == invoice.company_id.state_id + is_overseas = invoice.l10n_in_gst_treatment == "overseas" + lines = invoice.invoice_line_ids.filtered(lambda line: line.display_type not in ('line_note', 'line_section', 'rounding')) + tax_details_per_record = tax_details.get("tax_details_per_record") + sign = invoice.is_inbound() and -1 or 1 + rounding_amount = sum(line.balance for line in invoice.line_ids if line.display_type == 'rounding') * sign + json_payload = { + "Version": "1.1", + "TranDtls": { + "TaxSch": "GST", + "SupTyp": self._l10n_in_get_supply_type(invoice, tax_details_by_code), + "RegRev": tax_details_by_code.get("is_reverse_charge") and "Y" or "N", + "IgstOnIntra": is_intra_state and tax_details_by_code.get("igst_amount") and "Y" or "N"}, + "DocDtls": { + "Typ": invoice.move_type == "out_refund" and "CRN" or "INV", + "No": invoice.name, + "Dt": invoice.invoice_date.strftime("%d/%m/%Y")}, + "SellerDtls": self._get_l10n_in_edi_partner_details(saler_buyer.get("seller_details")), + "BuyerDtls": self._get_l10n_in_edi_partner_details( + saler_buyer.get("buyer_details"), pos_state_id=invoice.l10n_in_state_id, is_overseas=is_overseas), + "ItemList": [ + self._get_l10n_in_edi_line_details(index, line, tax_details_per_record.get(line, {})) + for index, line in enumerate(lines, start=1) + ], + "ValDtls": { + "AssVal": self._l10n_in_round_value(tax_details.get("base_amount")), + "CgstVal": self._l10n_in_round_value(tax_details_by_code.get("cgst_amount", 0.00)), + "SgstVal": self._l10n_in_round_value(tax_details_by_code.get("sgst_amount", 0.00)), + "IgstVal": self._l10n_in_round_value(tax_details_by_code.get("igst_amount", 0.00)), + "CesVal": self._l10n_in_round_value(( + tax_details_by_code.get("cess_amount", 0.00) + + tax_details_by_code.get("cess_non_advol_amount", 0.00)), + ), + "StCesVal": self._l10n_in_round_value(( + tax_details_by_code.get("state_cess_amount", 0.00) + + tax_details_by_code.get("state_cess_non_advol_amount", 0.00)), + ), + "RndOffAmt": self._l10n_in_round_value( + rounding_amount), + "TotInvVal": self._l10n_in_round_value( + (tax_details.get("base_amount") + tax_details.get("tax_amount") + rounding_amount)), + }, + } + if invoice.company_currency_id != invoice.currency_id: + json_payload["ValDtls"].update({ + "TotInvValFc": self._l10n_in_round_value( + (tax_details.get("base_amount_currency") + tax_details.get("tax_amount_currency"))) + }) + if saler_buyer.get("seller_details") != saler_buyer.get("dispatch_details"): + json_payload.update({ + "DispDtls": self._get_l10n_in_edi_partner_details(saler_buyer.get("dispatch_details"), + set_vat=False, set_phone_and_email=False) + }) + if saler_buyer.get("buyer_details") != saler_buyer.get("ship_to_details"): + json_payload.update({ + "ShipDtls": self._get_l10n_in_edi_partner_details(saler_buyer.get("ship_to_details"), is_overseas=is_overseas) + }) + if is_overseas: + json_payload.update({ + "ExpDtls": { + "RefClm": tax_details_by_code.get("igst_amount") and "Y" or "N", + "ForCur": invoice.currency_id.name, + "CntCode": saler_buyer.get("buyer_details").country_id.code or "", + } + }) + if invoice.l10n_in_shipping_bill_number: + json_payload["ExpDtls"].update({ + "ShipBNo": invoice.l10n_in_shipping_bill_number, + }) + if invoice.l10n_in_shipping_bill_date: + json_payload["ExpDtls"].update({ + "ShipBDt": invoice.l10n_in_shipping_bill_date.strftime("%d/%m/%Y"), + }) + if invoice.l10n_in_shipping_port_code_id: + json_payload["ExpDtls"].update({ + "Port": invoice.l10n_in_shipping_port_code_id.code + }) + if not invoice._l10n_in_edi_is_managing_invoice_negative_lines_allowed(): + return json_payload + return self._l10n_in_edi_generate_invoice_json_managing_negative_lines(invoice, json_payload) + + @api.model + def _l10n_in_prepare_edi_tax_details(self, move, in_foreign=False, filter_invl_to_apply=None): + def l10n_in_grouping_key_generator(base_line, tax_values): + invl = base_line['record'] + tax = tax_values['tax_repartition_line'].tax_id + tags = tax_values['tax_repartition_line'].tag_ids + line_code = "other" + if not invl.currency_id.is_zero(tax_values['tax_amount_currency']): + if any(tag in tags for tag in self.env.ref("l10n_in.tax_tag_cess")): + if tax.amount_type != "percent": + line_code = "cess_non_advol" + else: + line_code = "cess" + elif any(tag in tags for tag in self.env.ref("l10n_in.tax_tag_state_cess")): + if tax.amount_type != "percent": + line_code = "state_cess_non_advol" + else: + line_code = "state_cess" + else: + for gst in ["cgst", "sgst", "igst"]: + if any(tag in tags for tag in self.env.ref("l10n_in.tax_tag_%s"%(gst))): + line_code = gst + return { + "tax": tax, + "base_product_id": invl.product_id, + "tax_product_id": invl.product_id, + "base_product_uom_id": invl.product_uom_id, + "tax_product_uom_id": invl.product_uom_id, + "line_code": line_code, + } + + def l10n_in_filter_to_apply(base_line, tax_values): + if base_line['record'].display_type == 'rounding': + return False + return True + + return move._prepare_edi_tax_details( + filter_to_apply=l10n_in_filter_to_apply, + grouping_key_generator=l10n_in_grouping_key_generator, + filter_invl_to_apply=filter_invl_to_apply, + ) + + @api.model + def _get_l10n_in_tax_details_by_line_code(self, tax_details): + l10n_in_tax_details = {} + for tax_detail in tax_details.values(): + if tax_detail["tax"].l10n_in_reverse_charge: + l10n_in_tax_details.setdefault("is_reverse_charge", True) + l10n_in_tax_details.setdefault("%s_rate" % (tax_detail["line_code"]), tax_detail["tax"].amount) + l10n_in_tax_details.setdefault("%s_amount" % (tax_detail["line_code"]), 0.00) + l10n_in_tax_details.setdefault("%s_amount_currency" % (tax_detail["line_code"]), 0.00) + l10n_in_tax_details["%s_amount" % (tax_detail["line_code"])] += tax_detail["tax_amount"] + l10n_in_tax_details["%s_amount_currency" % (tax_detail["line_code"])] += tax_detail["tax_amount_currency"] + return l10n_in_tax_details + + def _l10n_in_get_supply_type(self, move, tax_details_by_code): + supply_type = "B2B" + if move.l10n_in_gst_treatment in ("overseas", "special_economic_zone") and tax_details_by_code.get("igst_amount"): + supply_type = move.l10n_in_gst_treatment == "overseas" and "EXPWP" or "SEZWP" + elif move.l10n_in_gst_treatment in ("overseas", "special_economic_zone"): + supply_type = move.l10n_in_gst_treatment == "overseas" and "EXPWOP" or "SEZWOP" + elif move.l10n_in_gst_treatment == "deemed_export": + supply_type = "DEXP" + return supply_type + + #================================ API methods =========================== + + @api.model + def _l10n_in_edi_no_config_response(self): + return {'error': [{ + 'code': '0', + 'message': _( + "Ensure GST Number set on company setting and API are Verified." + )} + ]} + + @api.model + def _l10n_in_edi_get_token(self, company): + sudo_company = company.sudo() + if sudo_company.l10n_in_edi_username and sudo_company._l10n_in_edi_token_is_valid(): + return sudo_company.l10n_in_edi_token + elif sudo_company.l10n_in_edi_username and sudo_company.l10n_in_edi_password: + self._l10n_in_edi_authenticate(company) + return sudo_company.l10n_in_edi_token + return False + + @api.model + def _l10n_in_edi_connect_to_server(self, company, url_path, params): + user_token = self.env["iap.account"].get("l10n_in_edi") + params.update({ + "account_token": user_token.account_token, + "dbuuid": self.env["ir.config_parameter"].sudo().get_param("database.uuid"), + "username": company.sudo().l10n_in_edi_username, + "gstin": company.vat, + }) + if company.sudo().l10n_in_edi_production_env: + default_endpoint = DEFAULT_IAP_ENDPOINT + else: + default_endpoint = DEFAULT_IAP_TEST_ENDPOINT + endpoint = self.env["ir.config_parameter"].sudo().get_param("l10n_in_edi.endpoint", default_endpoint) + url = "%s%s" % (endpoint, url_path) + try: + return jsonrpc(url, params=params, timeout=25) + except AccessError as e: + _logger.warning("Connection error: %s", e.args[0]) + return { + "error": [{ + "code": "404", + "message": _("Unable to connect to the online E-invoice service." + "The web service may be temporary down. Please try again in a moment.") + }] + } + + @api.model + def _l10n_in_edi_authenticate(self, company): + params = {"password": company.sudo().l10n_in_edi_password} + response = self._l10n_in_edi_connect_to_server(company, url_path="/iap/l10n_in_edi/1/authenticate", params=params) + # validity data-time in Indian standard time(UTC+05:30) so remove that gap and store in odoo + if "data" in response: + tz = pytz.timezone("Asia/Kolkata") + local_time = tz.localize(fields.Datetime.to_datetime(response["data"]["TokenExpiry"])) + utc_time = local_time.astimezone(pytz.utc) + company.sudo().l10n_in_edi_token_validity = fields.Datetime.to_string(utc_time) + company.sudo().l10n_in_edi_token = response["data"]["AuthToken"] + return response + + @api.model + def _l10n_in_edi_generate(self, company, json_payload): + token = self._l10n_in_edi_get_token(company) + if not token: + return self._l10n_in_edi_no_config_response() + params = { + "auth_token": token, + "json_payload": json_payload, + } + return self._l10n_in_edi_connect_to_server(company, url_path="/iap/l10n_in_edi/1/generate", params=params) + + @api.model + def _l10n_in_edi_get_irn_by_details(self, company, json_payload): + token = self._l10n_in_edi_get_token(company) + if not token: + return self._l10n_in_edi_no_config_response() + params = { + "auth_token": token, + } + params.update(json_payload) + return self._l10n_in_edi_connect_to_server( + company, + url_path="/iap/l10n_in_edi/1/getirnbydocdetails", + params=params, + ) + + @api.model + def _l10n_in_edi_cancel(self, company, json_payload): + token = self._l10n_in_edi_get_token(company) + if not token: + return self._l10n_in_edi_no_config_response() + params = { + "auth_token": token, + "json_payload": json_payload, + } + return self._l10n_in_edi_connect_to_server(company, url_path="/iap/l10n_in_edi/1/cancel", params=params) diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/account_move.py b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/account_move.py new file mode 100644 index 0000000..0909865 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/account_move.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import json + +from markupsafe import Markup + +from odoo import api, fields, models, _ +from odoo.exceptions import UserError + + +class AccountMove(models.Model): + _inherit = "account.move" + + l10n_in_edi_cancel_reason = fields.Selection(selection=[ + ("1", "Duplicate"), + ("2", "Data Entry Mistake"), + ("3", "Order Cancelled"), + ("4", "Others"), + ], string="Cancel reason", copy=False) + l10n_in_edi_cancel_remarks = fields.Char("Cancel remarks", copy=False) + l10n_in_edi_show_cancel = fields.Boolean(compute="_compute_l10n_in_edi_show_cancel", string="E-invoice(IN) is sent?") + + @api.depends('edi_document_ids') + def _compute_l10n_in_edi_show_cancel(self): + for invoice in self: + invoice.l10n_in_edi_show_cancel = bool(invoice.edi_document_ids.filtered( + lambda i: i.edi_format_id.code == "in_einvoice_1_03" + and i.state in ("sent", "to_cancel", "cancelled") + )) + + def action_retry_edi_documents_error(self): + for move in self: + if move.country_code == 'IN': + move.message_post(body=_( + "Retrying EDI processing for the following documents: %(breakline)s %(edi_codes)s", + breakline=Markup("
    "), + edi_codes=Markup("
    ").join( + move.edi_document_ids + .filtered(lambda doc: doc.blocking_level == "error") + .mapped("edi_format_name") + ) + )) + return super().action_retry_edi_documents_error() + + def button_cancel_posted_moves(self): + """Mark the edi.document related to this move to be canceled.""" + reason_and_remarks_not_set = self.env["account.move"] + for move in self: + send_l10n_in_edi = move.edi_document_ids.filtered(lambda doc: doc.edi_format_id.code == "in_einvoice_1_03") + # check submitted E-invoice does not have reason and remarks + # because it's needed to cancel E-invoice + if send_l10n_in_edi and (not move.l10n_in_edi_cancel_reason or not move.l10n_in_edi_cancel_remarks): + reason_and_remarks_not_set += move + if reason_and_remarks_not_set: + raise UserError(_( + "To cancel E-invoice set cancel reason and remarks at Other info tab in invoices: \n%s", + ("\n".join(reason_and_remarks_not_set.mapped("name"))), + )) + return super().button_cancel_posted_moves() + + def _get_l10n_in_edi_response_json(self): + self.ensure_one() + l10n_in_edi = self.edi_document_ids.filtered(lambda i: i.edi_format_id.code == "in_einvoice_1_03" + and i.state in ("sent", "to_cancel")) + if l10n_in_edi: + return json.loads(l10n_in_edi.sudo().attachment_id.raw.decode("utf-8")) + else: + return {} + + @api.model + def _l10n_in_edi_is_managing_invoice_negative_lines_allowed(self): + """ Negative lines are not allowed by the Indian government making some features unavailable like sale_coupon + or global discounts. This method allows odoo to distribute the negative discount lines to each others lines + with same HSN code making such features available even for Indian people. + :return: True if odoo needs to distribute the negative discount lines, False otherwise. + """ + param_name = 'l10n_in_edi.manage_invoice_negative_lines' + return bool(self.env['ir.config_parameter'].sudo().get_param(param_name)) diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/res_company.py b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/res_company.py new file mode 100644 index 0000000..9582f53 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/res_company.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + l10n_in_edi_username = fields.Char("E-invoice (IN) Username", groups="base.group_system") + l10n_in_edi_password = fields.Char("E-invoice (IN) Password", groups="base.group_system") + l10n_in_edi_token = fields.Char("E-invoice (IN) Token", groups="base.group_system") + l10n_in_edi_token_validity = fields.Datetime("E-invoice (IN) Valid Until", groups="base.group_system") + l10n_in_edi_production_env = fields.Boolean( + string="E-invoice (IN) Is production OSE environment", + help="Enable the use of production credentials", + groups="base.group_system", + ) + + def _l10n_in_edi_token_is_valid(self): + self.ensure_one() + if self.l10n_in_edi_token and self.l10n_in_edi_token_validity > fields.Datetime.now(): + return True + return False diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/res_config_settings.py b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/res_config_settings.py new file mode 100644 index 0000000..b7475bd --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/models/res_config_settings.py @@ -0,0 +1,54 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, fields, _ +from odoo.exceptions import UserError, RedirectWarning + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + l10n_in_edi_username = fields.Char("Indian EDI username", related="company_id.l10n_in_edi_username", readonly=False) + l10n_in_edi_password = fields.Char("Indian EDI password", related="company_id.l10n_in_edi_password", readonly=False) + l10n_in_edi_production_env = fields.Boolean( + string="Indian EDI Testing Environment", + related="company_id.l10n_in_edi_production_env", + readonly=False + ) + + def l10n_in_check_gst_number(self): + if not self.company_id.vat: + action = { + "view_mode": "form", + "res_model": "res.company", + "type": "ir.actions.act_window", + "res_id" : self.company_id.id, + "views": [[self.env.ref("base.view_company_form").id, "form"]], + } + raise RedirectWarning(_("Please enter a GST number in company."), action, _('Go to Company')) + + def l10n_in_edi_test(self): + self.l10n_in_check_gst_number() + response = self.env['account.edi.format']._l10n_in_edi_authenticate(self.company_id) + if response.get('error'): + raise UserError("\n".join(["[%s] %s" % (e.get('code'), (e.get('message'))) for e in response['error']])) + elif not self.company_id.sudo()._l10n_in_edi_token_is_valid(): + raise UserError(_("Incorrect username or password, or the GST number on company does not match.")) + return { + 'type': 'ir.actions.client', + 'tag': 'display_notification', + 'params': { + 'type': 'info', + 'sticky': False, + 'message': _("API credentials validated successfully"), + } + } + + def l10n_in_edi_buy_iap(self): + if not self.l10n_in_edi_production_env: + raise UserError(_("You must enable production environment to buy credits")) + return { + 'type': 'ir.actions.act_url', + 'url': self.env["iap.account"].get_credits_url(service_name="l10n_in_edi", base_url=''), + 'target': '_new' + } diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/tests/__init__.py b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/tests/__init__.py new file mode 100644 index 0000000..8511f06 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/tests/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import test_edi_json diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/tests/test_edi_json.py b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/tests/test_edi_json.py new file mode 100644 index 0000000..e38970e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/tests/test_edi_json.py @@ -0,0 +1,421 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo import Command +from odoo.addons.account.tests.common import AccountTestInvoicingCommon +from odoo.tests import tagged +from freezegun import freeze_time + + +@tagged("post_install_l10n", "post_install", "-at_install") +class TestEdiJson(AccountTestInvoicingCommon): + + + @classmethod + def setUpClass(cls, chart_template_ref="l10n_in.indian_chart_template_standard"): + super().setUpClass(chart_template_ref=chart_template_ref) + cls.env['ir.config_parameter'].set_param('l10n_in_edi.manage_invoice_negative_lines', True) + cls.maxDiff = None + cls.company_data["company"].write({ + "street": "Block no. 401", + "street2": "Street 2", + "city": "City 1", + "zip": "500001", + "state_id": cls.env.ref("base.state_in_ts").id, + "country_id": cls.env.ref("base.in").id, + "vat": "36AABCT1332L011", + }) + cls.partner_a.write({ + "vat": "36BBBFF5679L8ZR", + "street": "Block no. 401", + "street2": "Street 2", + "city": "City 2", + "zip": "500001", + "state_id": cls.env.ref("base.state_in_ts").id, + "country_id": cls.env.ref("base.in").id, + "l10n_in_gst_treatment": "regular", + }) + cls.product_a.write({"l10n_in_hsn_code": "01111"}) + cls.product_a2 = cls.env['product.product'].create({ + 'name': 'product_a2', + 'uom_id': cls.env.ref('uom.product_uom_unit').id, + 'lst_price': 1000.0, + 'standard_price': 1000.0, + 'property_account_income_id': cls.company_data['default_account_revenue'].id, + 'property_account_expense_id': cls.company_data['default_account_expense'].id, + 'taxes_id': [(6, 0, cls.tax_sale_a.ids)], + 'supplier_taxes_id': [(6, 0, cls.tax_purchase_a.ids)], + "l10n_in_hsn_code": "01111", + }) + cls.product_a_discount = cls.env['product.product'].create({ + 'name': 'product_a discount', + 'uom_id': cls.env.ref('uom.product_uom_unit').id, + 'lst_price': 400.0, + 'standard_price': 400.0, + 'property_account_income_id': cls.company_data['default_account_revenue'].id, + 'property_account_expense_id': cls.company_data['default_account_expense'].id, + 'taxes_id': [(6, 0, cls.tax_sale_a.ids)], + 'supplier_taxes_id': [(6, 0, cls.tax_purchase_a.ids)], + "l10n_in_hsn_code": "01111", + }) + gst_with_cess = cls.env.ref("l10n_in.%s_sgst_sale_12" % (cls.company_data["company"].id) + ) + cls.env.ref("l10n_in.%s_cess_5_plus_1591_sale" % (cls.company_data["company"].id)) + product_with_cess = cls.env["product.product"].create({ + "name": "product_with_cess", + "uom_id": cls.env.ref("uom.product_uom_unit").id, + "lst_price": 1000.0, + "standard_price": 800.0, + "property_account_income_id": cls.company_data["default_account_revenue"].id, + "property_account_expense_id": cls.company_data["default_account_expense"].id, + "taxes_id": [(6, 0, gst_with_cess.ids)], + "supplier_taxes_id": [(6, 0, cls.tax_purchase_a.ids)], + "l10n_in_hsn_code": "02222", + }) + rounding = cls.env["account.cash.rounding"].create({ + "name": "half-up", + "rounding": 1.0, + "strategy": "add_invoice_line", + "profit_account_id": cls.company_data['default_account_expense'].id, + "loss_account_id": cls.company_data['default_account_expense'].id, + "rounding_method": "HALF-UP", + }) + cls.invoice = cls.init_invoice("out_invoice", post=False, products=cls.product_a + product_with_cess) + cls.invoice.write({ + "invoice_line_ids": [(1, l_id, {"discount": 10}) for l_id in cls.invoice.invoice_line_ids.ids]}) + cls.invoice.action_post() + with freeze_time('2023-12-25'): + cls.invoice_reverse = cls.invoice._reverse_moves() + cls.invoice_reverse.action_post() + cls.invoice_full_discount = cls.init_invoice("out_invoice", post=False, products=cls.product_a) + cls.invoice_full_discount.write({ + "invoice_line_ids": [(1, l_id, {"discount": 100}) for l_id in cls.invoice_full_discount.invoice_line_ids.ids]}) + cls.invoice_full_discount.action_post() + cls.invoice_zero_qty = cls.init_invoice("out_invoice", post=False, products=cls.product_a) + cls.invoice_zero_qty.write({ + "invoice_line_ids": [(1, l_id, {"quantity": 0}) for l_id in cls.invoice_zero_qty.invoice_line_ids.ids]}) + cls.invoice_zero_qty.action_post() + cls.invoice_negative_unit_price = cls.init_invoice("out_invoice", post=False, products=cls.product_a + cls.product_a_discount + product_with_cess) + cls.invoice_negative_unit_price.write({ + "invoice_line_ids": [ + (1, cls.invoice_negative_unit_price.invoice_line_ids[0].id, {"price_unit": 1000}), + (1, cls.invoice_negative_unit_price.invoice_line_ids[1].id, {"price_unit": -400}), + ]}) + cls.invoice_negative_unit_price.action_post() + cls.invoice_negative_qty = cls.init_invoice("out_invoice", post=False, products=cls.product_a + cls.product_a_discount + product_with_cess) + cls.invoice_negative_qty.write({ + "invoice_line_ids": [ + (1, cls.invoice_negative_qty.invoice_line_ids[0].id, {"price_unit": 1000}), + (1, cls.invoice_negative_qty.invoice_line_ids[1].id, {"price_unit": 400, 'quantity': -1}), + ]}) + cls.invoice_negative_qty.action_post() + cls.invoice_negative_unit_price_and_qty = cls.init_invoice("out_invoice", post=False, products=cls.product_a + cls.product_a_discount + product_with_cess) + cls.invoice_negative_unit_price_and_qty.write({ + "invoice_line_ids": [ + (1, cls.invoice_negative_unit_price_and_qty.invoice_line_ids[0].id, {"price_unit": -1000, 'quantity': -1}), + (1, cls.invoice_negative_unit_price_and_qty.invoice_line_ids[1].id, {"price_unit": -400}), + ]}) + cls.invoice_negative_unit_price_and_qty.action_post() + cls.invoice_negative_with_discount = cls.init_invoice("out_invoice", post=False, products=cls.product_a + cls.product_a_discount) + cls.invoice_negative_with_discount.write({ + "invoice_line_ids": [ + (1, cls.invoice_negative_with_discount.invoice_line_ids[0].id, {"price_unit": 2000, 'discount': 50}), + (1, cls.invoice_negative_with_discount.invoice_line_ids[1].id, {"price_unit": -400}), + ]}) + cls.invoice_negative_with_discount.action_post() + cls.invoice_negative_more_than_max_line = cls.init_invoice("out_invoice", post=False, products=cls.product_a + cls.product_a2 + cls.product_a_discount) + cls.invoice_negative_more_than_max_line.write({ + "invoice_line_ids": [ + (1, cls.invoice_negative_more_than_max_line.invoice_line_ids[0].id, {"price_unit": 2000, 'discount': 50}), + (1, cls.invoice_negative_more_than_max_line.invoice_line_ids[1].id, {"price_unit": 1000}), + (1, cls.invoice_negative_more_than_max_line.invoice_line_ids[2].id, {"price_unit": -1100}), + ]}) + cls.invoice_negative_more_than_max_line.action_post() + cls.invoice_cash_rounding = cls.init_invoice("out_invoice", post=False, products=cls.product_a + product_with_cess) + cls.invoice_cash_rounding.write({ + "invoice_line_ids": [(1, l_id, {"discount": 10}) for l_id in cls.invoice_cash_rounding.invoice_line_ids.ids], + "invoice_cash_rounding_id": rounding.id, + }) + cls.invoice_cash_rounding.action_post() + cls.sez_partner = cls.env['res.partner'].create({ + 'name': 'SEZ Partner', + 'vat': '36AAAAA1234AAZA', + 'l10n_in_gst_treatment': 'special_economic_zone', + 'street': 'Block no. 402', + 'city': 'Some city', + 'zip': '500002', + 'state_id': cls.env.ref('base.state_in_ts').id, + 'country_id': cls.env.ref('base.in').id, + }) + cls.invoice_with_intra_igst = cls.init_invoice( + "out_invoice", partner=cls.sez_partner, post=False, products=cls.product_a + ) + igst_18 = cls.env.ref(f'l10n_in.{cls.company_data["company"].id}_igst_sale_18') + cls.invoice_with_intra_igst.write({ + 'invoice_line_ids': [ + Command.update(line_id, {'tax_ids': [Command.clear(), Command.set(igst_18.ids)]}) + for line_id in cls.invoice_with_intra_igst.invoice_line_ids.ids + ] + }) + cls.invoice_with_intra_igst.action_post() + cls.overseas = cls.env['res.partner'].create({ + 'name': 'Overseas', + 'vat': False, + 'l10n_in_gst_treatment': 'overseas', + 'street': 'Block no. 402', + 'city': 'Some city', + 'zip': '999999', + 'country_id': cls.env.ref('base.us').id, + }) + cls.invoice_with_export = cls.init_invoice( + "out_invoice", partner=cls.overseas, post=False, products=cls.product_a + ) + cls.invoice_with_export.write({ + 'invoice_line_ids': [ + Command.update(line_id, {'tax_ids': [Command.clear(), Command.set(igst_18.ids)]}) + for line_id in cls.invoice_with_export.invoice_line_ids.ids + ] + }) + cls.invoice_with_export.action_post() + + def test_edi_json(self): + json_value = self.env["account.edi.format"]._l10n_in_edi_generate_invoice_json(self.invoice) + expected = { + "Version": "1.1", + "TranDtls": {"TaxSch": "GST", "SupTyp": "B2B", "RegRev": "N", "IgstOnIntra": "N"}, + "DocDtls": {"Typ": "INV", "No": "INV/2019/00001", "Dt": "01/01/2019"}, + "SellerDtls": { + "LglNm": "company_1_data", + "Addr1": "Block no. 401", + "Addr2": "Street 2", + "Loc": "City 1", + "Pin": 500001, + "Stcd": "36", + "GSTIN": "36AABCT1332L011"}, + "BuyerDtls": { + "LglNm": "partner_a", + "Addr1": "Block no. 401", + "Addr2": "Street 2", + "Loc": "City 2", + "Pin": 500001, + "Stcd": "36", + "POS": "36", + "GSTIN": "36BBBFF5679L8ZR"}, + "ItemList": [ + { + "SlNo": "1", "PrdDesc": "product_a", "IsServc": "N", "HsnCd": "01111", "Qty": 1.0, + "Unit": "UNT", "UnitPrice": 1000.0, "TotAmt": 1000.0, "Discount": 100.0, "AssAmt": 900.0, + "GstRt": 5.0, "IgstAmt": 0.0, "CgstAmt": 22.5, "SgstAmt": 22.5, "CesRt": 0.0, "CesAmt": 0.0, + "CesNonAdvlAmt": 0.0, "StateCesRt": 0.0, "StateCesAmt": 0.0, "StateCesNonAdvlAmt": 0.0, + "OthChrg": 0.0, "TotItemVal": 945.0 + }, + { + "SlNo": "2", "PrdDesc": "product_with_cess", "IsServc": "N", "HsnCd": "02222", "Qty": 1.0, + "Unit": "UNT", "UnitPrice": 1000.0, "TotAmt": 1000.0, "Discount": 100.0, "AssAmt": 900.0, + "GstRt": 12.0, "IgstAmt": 0.0, "CgstAmt": 54.0, "SgstAmt": 54.0, "CesRt": 5.0, "CesAmt": 45.0, + "CesNonAdvlAmt": 1.59, "StateCesRt": 0.0, "StateCesAmt": 0.0, "StateCesNonAdvlAmt": 0.0, + "OthChrg": 0.0, "TotItemVal": 1054.59 + } + ], + "ValDtls": { + "AssVal": 1800.0, "CgstVal": 76.5, "SgstVal": 76.5, "IgstVal": 0.0, "CesVal": 46.59, + "StCesVal": 0.0, "RndOffAmt": 0.0, "TotInvVal": 1999.59 + } + } + self.assertDictEqual(json_value, expected, "Indian EDI send json value is not matched") + expected_copy_rounding = expected.copy() + + # ================================== Credit Note ============================================ + credit_note_expected = expected.copy() + credit_note_expected['DocDtls'] = {"Typ": "CRN", "No": "RINV/2023/00001", "Dt": "25/12/2023"} + self.assertDictEqual( + self.env["account.edi.format"]._l10n_in_edi_generate_invoice_json(self.invoice_reverse), + credit_note_expected + ) + + #=================================== Full discount test ===================================== + json_value = self.env["account.edi.format"]._l10n_in_edi_generate_invoice_json(self.invoice_full_discount) + expected.update({ + "DocDtls": {"Typ": "INV", "No": "INV/2019/00002", "Dt": "01/01/2019"}, + "ItemList": [{ + "SlNo": "1", "PrdDesc": "product_a", "IsServc": "N", "HsnCd": "01111", "Qty": 1.0, + "Unit": "UNT", "UnitPrice": 1000.0, "TotAmt": 1000.0, "Discount": 1000.0, "AssAmt": 0.0, + "GstRt": 0.0, "IgstAmt": 0.0, "CgstAmt": 0.0, "SgstAmt": 0.0, "CesRt": 0.0, "CesAmt": 0.0, + "CesNonAdvlAmt": 0.0, "StateCesRt": 0.0, "StateCesAmt": 0.0, "StateCesNonAdvlAmt": 0.0, + "OthChrg": 0.0, "TotItemVal": 0.0}], + "ValDtls": {"AssVal": 0.0, "CgstVal": 0.0, "SgstVal": 0.0, "IgstVal": 0.0, "CesVal": 0.0, + "StCesVal": 0.0, "RndOffAmt": 0.0, "TotInvVal": 0.0} + }) + self.assertDictEqual(json_value, expected, "Indian EDI with 100% discount sent json value is not matched") + + #=================================== Zero quantity test ============================================= + json_value = self.env["account.edi.format"]._l10n_in_edi_generate_invoice_json(self.invoice_zero_qty) + expected.update({ + "DocDtls": {"Typ": "INV", "No": "INV/2019/00003", "Dt": "01/01/2019"}, + "ItemList": [{ + "SlNo": "1", "PrdDesc": "product_a", "IsServc": "N", "HsnCd": "01111", "Qty": 0.0, + "Unit": "UNT", "UnitPrice": 1000.0, "TotAmt": 0.0, "Discount": 0.0, "AssAmt": 0.0, + "GstRt": 0.0, "IgstAmt": 0.0, "CgstAmt": 0.0, "SgstAmt": 0.0, "CesRt": 0.0, "CesAmt": 0.0, + "CesNonAdvlAmt": 0.0, "StateCesRt": 0.0, "StateCesAmt": 0.0, "StateCesNonAdvlAmt": 0.0, + "OthChrg": 0.0, "TotItemVal": 0.0}], + }) + self.assertDictEqual(json_value, expected, "Indian EDI with 0(zero) quantity sent json value is not matched") + + #=================================== Negative unit price test ============================================= + json_value = self.env["account.edi.format"]._l10n_in_edi_generate_invoice_json(self.invoice_negative_unit_price) + expected.update({ + "DocDtls": {"Typ": "INV", "No": "INV/2019/00004", "Dt": "01/01/2019"}, + "ItemList": [ + { + "SlNo": "1", "PrdDesc": "product_a", "IsServc": "N", "HsnCd": "01111", "Qty": 1.0, + "Unit": "UNT", "UnitPrice": 1000.0, "TotAmt": 1000.0, "Discount": 400.0, "AssAmt": 600.0, + "GstRt": 5.0, "IgstAmt": 0.0, "CgstAmt": 15.0, "SgstAmt": 15.0, "CesRt": 0.0, "CesAmt": 0.0, + "CesNonAdvlAmt": 0.0, "StateCesRt": 0.0, "StateCesAmt": 0.0, "StateCesNonAdvlAmt": 0.0, + "OthChrg": 0.0, "TotItemVal": 630.0 + }, + { + "SlNo": "3", "PrdDesc": "product_with_cess", "IsServc": "N", "HsnCd": "02222", "Qty": 1.0, + "Unit": "UNT", "UnitPrice": 1000.0, "TotAmt": 1000.0, "Discount": 0.0, "AssAmt": 1000.0, + "GstRt": 12.0, "IgstAmt": 0.0, "CgstAmt": 60.0, "SgstAmt": 60.0, "CesRt": 5.0, "CesAmt": 50.0, + "CesNonAdvlAmt": 1.59, "StateCesRt": 0.0, "StateCesAmt": 0.0, "StateCesNonAdvlAmt": 0.0, + "OthChrg": 0.0, "TotItemVal": 1171.59 + } + ], + "ValDtls": { + "AssVal": 1600.0, "CgstVal": 75.0, "SgstVal": 75.0, "IgstVal": 0.0, "CesVal": 51.59, + "StCesVal": 0.0, "RndOffAmt": 0.0, "TotInvVal": 1801.59 + }, + }) + self.assertDictEqual(json_value, expected, "Indian EDI with negative unit price sent json value is not matched") + + expected.update({"DocDtls": {"Typ": "INV", "No": "INV/2019/00005", "Dt": "01/01/2019"}}) + json_value = self.env["account.edi.format"]._l10n_in_edi_generate_invoice_json(self.invoice_negative_qty) + self.assertDictEqual(json_value, expected, "Indian EDI with negative quantity sent json value is not matched") + + expected.update({"DocDtls": {"Typ": "INV", "No": "INV/2019/00006", "Dt": "01/01/2019"}}) + json_value = self.env["account.edi.format"]._l10n_in_edi_generate_invoice_json(self.invoice_negative_unit_price_and_qty) + self.assertDictEqual(json_value, expected, "Indian EDI with negative unit price and quantity sent json value is not matched") + + expected.update({ + "DocDtls": {"Typ": "INV", "No": "INV/2019/00007", "Dt": "01/01/2019"}, + "ItemList": [{ + "SlNo": "1", "PrdDesc": "product_a", "IsServc": "N", "HsnCd": "01111", "Qty": 1.0, + "Unit": "UNT", "UnitPrice": 2000.0, "TotAmt": 2000.0, "Discount": 1400.0, "AssAmt": 600.0, + "GstRt": 5.0, "IgstAmt": 0.0, "CgstAmt": 15.0, "SgstAmt": 15.0, "CesRt": 0.0, "CesAmt": 0.0, + "CesNonAdvlAmt": 0.0, "StateCesRt": 0.0, "StateCesAmt": 0.0, "StateCesNonAdvlAmt": 0.0, + "OthChrg": 0.0, "TotItemVal": 630.0 + }], + "ValDtls": { + "AssVal": 600.0, "CgstVal": 15.0, "SgstVal": 15.0, "IgstVal": 0.0, "CesVal": 0.0, + "StCesVal": 0.0, "RndOffAmt": 0.0, "TotInvVal": 630.0 + }, + }) + json_value = self.env["account.edi.format"]._l10n_in_edi_generate_invoice_json(self.invoice_negative_with_discount) + self.assertDictEqual(json_value, expected, "Indian EDI with negative unit price and quantity sent json value is not matched") + + expected.update({ + "DocDtls": {"Typ": "INV", "No": "INV/2019/00008", "Dt": "01/01/2019"}, + "ItemList": [{ + "SlNo": "1", "PrdDesc": "product_a", "IsServc": "N", "HsnCd": "01111", "Qty": 1.0, + "Unit": "UNT", "UnitPrice": 2000.0, "TotAmt": 2000.0, "Discount": 2000.0, "AssAmt": 0.0, + "GstRt": 5.0, "IgstAmt": 0.0, "CgstAmt": 0.0, "SgstAmt": 0.0, "CesRt": 0.0, "CesAmt": 0.0, + "CesNonAdvlAmt": 0.0, "StateCesRt": 0.0, "StateCesAmt": 0.0, "StateCesNonAdvlAmt": 0.0, + "OthChrg": 0.0, "TotItemVal": 0.0 + }, + { + "SlNo": "2", "PrdDesc": "product_a2", "IsServc": "N", "HsnCd": "01111", "Qty": 1.0, + "Unit": "UNT", "UnitPrice": 1000.0, "TotAmt": 1000.0, "Discount": 100.0, "AssAmt": 900.0, + "GstRt": 5.0, "IgstAmt": 0.0, "CgstAmt": 22.5, "SgstAmt": 22.5, "CesRt": 0.0, "CesAmt": 0.0, + "CesNonAdvlAmt": 0.0, "StateCesRt": 0.0, "StateCesAmt": 0.0, "StateCesNonAdvlAmt": 0.0, + "OthChrg": 0.0, "TotItemVal": 945.0 + }], + "ValDtls": { + "AssVal": 900.0, "CgstVal": 22.5, "SgstVal": 22.5, "IgstVal": 0.0, "CesVal": 0.0, + "StCesVal": 0.0, "RndOffAmt": 0.0, "TotInvVal": 945.0 + }, + }) + json_value = self.env['account.edi.format']._l10n_in_edi_generate_invoice_json(self.invoice_negative_more_than_max_line) + self.assertDictEqual(json_value, expected, "Indian EDI with negative value more than max line sent json value is not matched") + + json_value = self.env["account.edi.format"]._l10n_in_edi_generate_invoice_json(self.invoice_cash_rounding) + expected_copy_rounding.update({ + "DocDtls": {"Typ": "INV", "No": "INV/2019/00009", "Dt": "01/01/2019"}, + "ValDtls": { + "AssVal": 1800.0, "CgstVal": 76.5, "SgstVal": 76.5, "IgstVal": 0.0, "CesVal": 46.59, + "StCesVal": 0.0, "RndOffAmt": 0.41, "TotInvVal": 2000.00 + }}) + self.assertDictEqual(json_value, expected_copy_rounding, "Indian EDI with cash rounding sent json value is not matched") + + json_value = self.env["account.edi.format"]._l10n_in_edi_generate_invoice_json(self.invoice_with_intra_igst) + expected_with_intra_igst = { + 'Version': '1.1', + 'TranDtls': {'TaxSch': 'GST', 'SupTyp': 'SEZWP', 'RegRev': 'N', 'IgstOnIntra': 'Y'}, + 'DocDtls': {'Typ': 'INV', 'No': 'INV/2019/00010', 'Dt': '01/01/2019'}, + 'SellerDtls': expected['SellerDtls'], + 'BuyerDtls': { + 'Addr1': 'Block no. 402', + 'Loc': 'Some city', + 'Pin': 500002, + 'Stcd': '36', + 'POS': '36', + 'LglNm': 'SEZ Partner', + 'GSTIN': '36AAAAA1234AAZA' + }, + 'ItemList': [{ + 'SlNo': '1', + 'PrdDesc': 'product_a', + 'IsServc': 'N', + 'HsnCd': '01111', + 'Qty': 1.0, + 'Unit': 'UNT', + 'UnitPrice': 1000.0, + 'TotAmt': 1000.0, + 'Discount': 0.0, + 'AssAmt': 1000.0, + 'GstRt': 18.0, + 'IgstAmt': 180.0, + 'CgstAmt': 0.0, + 'SgstAmt': 0.0, + 'CesRt': 0.0, + 'CesAmt': 0.0, + 'CesNonAdvlAmt': 0.0, + 'StateCesRt': 0.0, + 'StateCesAmt': 0.0, + 'StateCesNonAdvlAmt': 0.0, + 'OthChrg': 0.0, + 'TotItemVal': 1180.0 + }], + 'ValDtls': { + 'AssVal': 1000.0, + 'CgstVal': 0.0, + 'SgstVal': 0.0, + 'IgstVal': 180.0, + 'CesVal': 0.0, + 'StCesVal': 0.0, + 'RndOffAmt': 0.0, + 'TotInvVal': 1180.0 + } + } + self.assertDictEqual( + json_value, + expected_with_intra_igst, + "Indian EDI with Intra IGST sent json value is not matched" + ) + json_value = self.env["account.edi.format"]._l10n_in_edi_generate_invoice_json(self.invoice_with_export) + expected_with_overseas = expected_with_intra_igst.copy() + expected_with_overseas.update({ + 'TranDtls': {'TaxSch': 'GST', 'SupTyp': 'EXPWP', 'RegRev': 'N', 'IgstOnIntra': 'N'}, + 'BuyerDtls': { + 'Addr1': 'Block no. 402', + 'Loc': 'Some city', + 'Pin': 999999, + 'Stcd': '96', + 'POS': '96', + 'LglNm': 'Overseas', + 'GSTIN': 'URP' + }, + 'DocDtls': {'Dt': '01/01/2019', 'No': 'INV/2019/00011', 'Typ': 'INV'}, + 'ExpDtls': {'CntCode': 'US', 'ForCur': 'INR', 'RefClm': 'Y'} + }) + self.assertDictEqual( + json_value, + expected_with_overseas, + "Indian EDI with Overseas sent json value is not matched" + ) diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/views/account_move_views.xml b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/views/account_move_views.xml new file mode 100644 index 0000000..5780ec5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/views/account_move_views.xml @@ -0,0 +1,15 @@ + + + + account.move.form.inherit.l10n.in.edi + account.move + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/views/edi_pdf_report.xml b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/views/edi_pdf_report.xml new file mode 100644 index 0000000..ec07e3c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/views/edi_pdf_report.xml @@ -0,0 +1,30 @@ + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/views/res_config_settings_views.xml b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/views/res_config_settings_views.xml new file mode 100644 index 0000000..13b1ff2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/l10n_in_edi/views/res_config_settings_views.xml @@ -0,0 +1,44 @@ + + + + res.config.settings.form.inherit.l10n_in_edi + res.config.settings + + +
    +

    Indian Electronic Invoicing

    +
    +
    +
    + Setup E-invoice + +
    + Check the documentation to get credentials +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_edi/pyproject.toml b/odoo-bringout-oca-ocb-l10n_in_edi/pyproject.toml new file mode 100644 index 0000000..ef51bbd --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi/pyproject.toml @@ -0,0 +1,44 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_in_edi" +version = "16.0.0" +description = "Indian - E-invoicing - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account_edi>=16.0.0", + "odoo-bringout-oca-ocb-l10n_in>=16.0.0", + "odoo-bringout-oca-ocb-iap>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_in_edi"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/README.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/README.md new file mode 100644 index 0000000..53b8234 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/README.md @@ -0,0 +1,56 @@ +# Indian - E-waybill + + +Indian - E-waybill +==================================== +To submit E-waybill through API to the government. +We use "Tera Software Limited" as GSP + +Step 1: First you need to create an API username and password in the E-waybill portal. +Step 2: Switch to company related to that GST number +Step 3: Set that username and password in Odoo (Goto: Invoicing/Accounting -> Configration -> Settings -> Indian Electronic WayBill or find "E-waybill" in search bar) +Step 4: Repeat steps 1,2,3 for all GSTIN you have in odoo. If you have a multi-company with the same GST number then perform step 1 for the first company only. + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_edi_ewaybill +``` + +## Dependencies + +This addon depends on: +- l10n_in_edi + +## Manifest Information + +- **Name**: Indian - E-waybill +- **Version**: 1.03.00 +- **Category**: Accounting/Localizations/EDI +- **License**: LGPL-3 +- **Installable**: True + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_in_edi_ewaybill`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/ARCHITECTURE.md new file mode 100644 index 0000000..f0c185c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_in_edi_ewaybill Module - l10n_in_edi_ewaybill + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/CONFIGURATION.md new file mode 100644 index 0000000..f77c11c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_in_edi_ewaybill. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/DEPENDENCIES.md new file mode 100644 index 0000000..498145f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [l10n_in_edi](../../odoo-bringout-oca-ocb-l10n_in_edi) diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/FAQ.md new file mode 100644 index 0000000..f07b214 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_in_edi_ewaybill or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/INSTALL.md new file mode 100644 index 0000000..dc657b9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_edi_ewaybill" +# or +uv pip install odoo-bringout-oca-ocb-l10n_in_edi_ewaybill" +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/MODELS.md new file mode 100644 index 0000000..e6866e7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/MODELS.md @@ -0,0 +1,16 @@ +# Models + +Detected core models and extensions in l10n_in_edi_ewaybill. + +```mermaid +classDiagram + class l10n_in_ewaybill_type + class account_edi_format + class account_move + class res_company + class res_config_settings +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/OVERVIEW.md new file mode 100644 index 0000000..34b8106 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_in_edi_ewaybill. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_in_edi_ewaybill +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/SECURITY.md new file mode 100644 index 0000000..4f142a1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/SECURITY.md @@ -0,0 +1,34 @@ +# Security + +Access control and security definitions in l10n_in_edi_ewaybill. + +## Access Control Lists (ACLs) + +Model access permissions defined in: +- **[ir.model.access.csv](../l10n_in_edi_ewaybill/security/ir.model.access.csv)** + - 1 model access rules + +## Record Rules + +Row-level security rules defined in: + +```mermaid +graph TB + subgraph "Security Layers" + A[Users] --> B[Groups] + B --> C[Access Control Lists] + C --> D[Models] + B --> E[Record Rules] + E --> F[Individual Records] + end +``` + +Security files overview: +- **[ir.model.access.csv](../l10n_in_edi_ewaybill/security/ir.model.access.csv)** + - Model access permissions (CRUD rights) + +Notes +- Access Control Lists define which groups can access which models +- Record Rules provide row-level security (filter records by user/group) +- Security groups organize users and define permission sets +- All security is enforced at the ORM level by Odoo diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/USAGE.md new file mode 100644 index 0000000..4801c35 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_in_edi_ewaybill +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/__init__.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/__init__.py new file mode 100755 index 0000000..5320d2b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models +from . import demo diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/__manifest__.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/__manifest__.py new file mode 100755 index 0000000..41e13d5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/__manifest__.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +{ + "name": """Indian - E-waybill""", + "version": "1.03.00", + "icon": "/l10n_in/static/description/icon.png", + "category": "Accounting/Localizations/EDI", + "depends": [ + "l10n_in_edi", + ], + "description": """ +Indian - E-waybill +==================================== +To submit E-waybill through API to the government. +We use "Tera Software Limited" as GSP + +Step 1: First you need to create an API username and password in the E-waybill portal. +Step 2: Switch to company related to that GST number +Step 3: Set that username and password in Odoo (Goto: Invoicing/Accounting -> Configration -> Settings -> Indian Electronic WayBill or find "E-waybill" in search bar) +Step 4: Repeat steps 1,2,3 for all GSTIN you have in odoo. If you have a multi-company with the same GST number then perform step 1 for the first company only. + """, + "data": [ + "security/ir.model.access.csv", + "data/account_edi_data.xml", + "data/ewaybill_type_data.xml", + "views/account_move_views.xml", + "views/edi_pdf_report.xml", + "views/res_config_settings_views.xml", + ], + "demo": [ + "demo/demo_company.xml", + "demo/res_partner_demo.xml", + "demo/account_invoice_demo.xml", + ], + "installable": True, + # not applicable when company is related to service industry so auto install is False + "auto_install": False, + "license": "LGPL-3", +} diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/data/account_edi_data.xml b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/data/account_edi_data.xml new file mode 100755 index 0000000..89f0abb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/data/account_edi_data.xml @@ -0,0 +1,7 @@ + + + + E-waybill (IN) + in_ewaybill_1_03 + + diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/data/ewaybill_type_data.xml b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/data/ewaybill_type_data.xml new file mode 100755 index 0000000..8d17ab4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/data/ewaybill_type_data.xml @@ -0,0 +1,75 @@ + + + + + Tax Invoice + INV + Supply + 1 + both + + + + + Tax Invoice + INV + Export + 3 + out + + + + + Tax Invoice + INV + SKD/CKD/Lots + 9 + both + + + + + Bill of Supply + BIL + Supply + 1 + both + + + + + Bill of Supply + BIL + Export + 3 + out + + + + + Bill of Supply + BIL + SKD/CKD/Lots + 9 + both + + + + + Bill of Entry + BOE + Import + 2 + in + + + + Bill of Entry + BOE + SKD/CKD/Lots + 9 + in + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/data/neutralize.sql b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/data/neutralize.sql new file mode 100644 index 0000000..efb8922 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/data/neutralize.sql @@ -0,0 +1,5 @@ +-- disable l10n_in_edi_ewaybill integration +UPDATE res_company + SET l10n_in_edi_ewaybill_username = NULL, + l10n_in_edi_ewaybill_password = NULL, + l10n_in_edi_ewaybill_auth_validity = NULL; diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/__init__.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/__init__.py new file mode 100644 index 0000000..5514ac3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import chart_template diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/account_invoice_demo.xml b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/account_invoice_demo.xml new file mode 100644 index 0000000..a0ce8a7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/account_invoice_demo.xml @@ -0,0 +1,66 @@ + + + + + + + + + out_invoice + + + + + regular + + 20 + 1 + GJ11OD1234 + R + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/chart_template.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/chart_template.py new file mode 100644 index 0000000..86e7cf5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/chart_template.py @@ -0,0 +1,17 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, api, Command + + +class AccountChartTemplate(models.Model): + _inherit = 'account.chart.template' + + @api.model + def _get_demo_data(self): + """We need to deactivate einvoice here, as we can not send e-invoice and e-waybill in the same demo company""" + if self.env.company == self.env.ref('l10n_in_edi_ewaybill.demo_company_in_ewaybill'): + val = self.env['account.journal'].search([ + ('type', '=', 'sale'), + ('company_id', '=', self.env.ref('l10n_in_edi_ewaybill.demo_company_in_ewaybill').id)]) + val.write({'edi_format_ids': [Command.unlink(self.env.ref('l10n_in_edi.edi_in_einvoice_json_1_03').id)]}) + return super()._get_demo_data() diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/demo_company.xml new file mode 100755 index 0000000..329498c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/demo_company.xml @@ -0,0 +1,34 @@ + + + + E-Waybill Company + 05AAACH6188F1ZM + 46B 49B, RAIPUR + BHAGWANPUR, ROORKEE + Haridwar + + + 247667 + + + + E-Waybill Company + + 05AAACH6188F1ZM + abc123@@ + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/res_partner_demo.xml b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/res_partner_demo.xml new file mode 100755 index 0000000..c0eec35 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/demo/res_partner_demo.xml @@ -0,0 +1,18 @@ + + + + + Registered Customer (E-Waybill) + + 1 + regular + 19, Ground Floor + Survey Road + Dehradun + 248001 + + + 05AAACH6605F1Z0 + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/i18n/l10n_in_edi_ewaybill.pot b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/i18n/l10n_in_edi_ewaybill.pot new file mode 100644 index 0000000..fa87201 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/i18n/l10n_in_edi_ewaybill.pot @@ -0,0 +1,2971 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_in_edi_ewaybill +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-05-02 06:59+0000\n" +"PO-Revision-Date: 2025-05-02 06:59+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_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/ewaybill_type.py:0 +#, python-format +msgid " (Sub-Type: %s)" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid " invalid ship to from gstin " +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "%s number should be set and not more than 16 characters" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "- Document Type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "- Selected Transporter is missing GSTIN" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "" +"- Transport document number and date is required when Transportation Mode is" +" Rail,Air or Ship" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "- Transportation Mode" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "- Transporter is required when E-waybill is managed by transporter" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "" +"- Vehicle Number and Type is required when Transportation Mode is By Road" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.res_config_settings_view_form_inherit_l10n_in_edi_ewaybill +msgid "" +"Setup E-Waybill\n" +" " +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.invoice_form_inherit_l10n_in_edi_ewaybill +msgid "km" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.l10n_in_einvoice_report_invoice_document_inherit +msgid "E-waybill:" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/res_config_settings.py:0 +#, python-format +msgid "API credentials validated successfully" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model,name:l10n_in_edi_ewaybill.model_account_chart_template +msgid "Account Chart Template" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type__active +msgid "Active" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Actual Value cannot be less than or equal to zero" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Address Line1 is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Address Line2 is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Address Line3 is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields.selection,name:l10n_in_edi_ewaybill.selection__account_move__l10n_in_mode__3 +msgid "Air" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type__allowed_supply_type +msgid "Allowed for supply type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Authentication failed. Pls. inform the helpdesk" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Bill-from and dispatch-from gstin should not be same for this transaction " +"type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Bill-to and ship-to gstin should not be same for this transaction type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Blank Supplier Address" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Both Transaction and Vehicle Number Blank" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.res_config_settings_view_form_inherit_l10n_in_edi_ewaybill +msgid "Buy credits" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "CGST nad SGST TaxRate should be same" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "CGST value should not be negative" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "CGST/SGST value is not applicable for Inter State Transaction" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.invoice_form_inherit_l10n_in_edi_ewaybill +msgid "Cancel Reason" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Cess non advol should not be negative" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Cess value should not be negative" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.res_config_settings_view_form_inherit_l10n_in_edi_ewaybill +msgid "Check the" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model,name:l10n_in_edi_ewaybill.model_res_company +msgid "Companies" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model,name:l10n_in_edi_ewaybill.model_res_config_settings +msgid "Config Settings" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Consignee GSTIN is cancelled and document date is later than the De-" +"Registration date" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Consignee name is required" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Consignee place is required" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Consolidate Ewaybill cannot be generated as this Ewaybill Part A is " +"generated in NIC2" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "ConsolidatedEWB cannot be generated for EwayBill For Gold " +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.res_config_settings_view_form_inherit_l10n_in_edi_ewaybill +msgid "" +"Costs 1 credit per transaction. Free 200 credits will be available for the " +"first time." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not cancel eway bill, please contact helpdesk" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not generate consolidated eway bill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not generate eway bill, pls contact helpdesk" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not insert RFID data, pl. contact helpdisk" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not retrieve Error code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not retrieve GSTIN details for the given GSTIN number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not retrieve HSN details for the given HSN number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not retrieve States List" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not retrieve UQC list" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not retrieve data" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not retrieve data for officer login" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not retrieve data from hsn" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not retrieve eway bill details, pl. contact helpdesk" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not retrieve transporter data by gstin " +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not retrieve transporter details from gstin" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not retrieve user details by userid " +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not update transporter" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Could not update vehicle details, pl contact helpdesk" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type__create_uid +msgid "Created by" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type__create_date +msgid "Created on" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,help:l10n_in_edi_ewaybill.field_account_bank_statement_line__l10n_in_transportation_doc_date +#: model:ir.model.fields,help:l10n_in_edi_ewaybill.field_account_move__l10n_in_transportation_doc_date +#: model:ir.model.fields,help:l10n_in_edi_ewaybill.field_account_payment__l10n_in_transportation_doc_date +msgid "Date on the transporter document" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Date range is exceeding allowed date range " +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Decryption of data failed" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Dispatch From GSTIN cannot be sent as the transaction type selected is " +"Regular" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type__display_name +msgid "Display Name" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_bank_statement_line__l10n_in_distance +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_move__l10n_in_distance +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_payment__l10n_in_distance +msgid "Distance" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_bank_statement_line__l10n_in_transportation_doc_date +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_move__l10n_in_transportation_doc_date +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_payment__l10n_in_transportation_doc_date +msgid "Document Date" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Document type - Tax Invoice is not allowed for composite tax payer" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Document type does not match with transaction & Sub trans type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Duplicate request at the same time" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "E Way Bill cannot be extended as allowed limit is 360 days" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"E Way Bill should be generated as part of IRN generation or with reference " +"to IRN in E Invoice System, Since Supplier is enabled for E Invoice." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_res_company__l10n_in_edi_ewaybill_password +msgid "E-Waybill (IN) Password" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_res_company__l10n_in_edi_ewaybill_username +msgid "E-Waybill (IN) Username" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_res_company__l10n_in_edi_ewaybill_auth_validity +msgid "E-Waybill (IN) Valid Until" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model,name:l10n_in_edi_ewaybill.model_l10n_in_ewaybill_type +msgid "E-Waybill Document Type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "E-way bill is not enabled for intra state movement for you state" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"E-way bill(s) are already generated for the same document number, you cannot" +" generate again on same document number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "E-wayBill Sent" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_bank_statement_line__l10n_in_transportation_doc_no +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_move__l10n_in_transportation_doc_no +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_payment__l10n_in_transportation_doc_no +msgid "E-waybill Document Number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_bank_statement_line__l10n_in_type_id +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_move__l10n_in_type_id +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_payment__l10n_in_type_id +msgid "E-waybill Document Type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_move.py:0 +#, python-format +msgid "E-waybill is already created" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_bank_statement_line__l10n_in_edi_ewaybill_direct_api +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_move__l10n_in_edi_ewaybill_direct_api +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_payment__l10n_in_edi_ewaybill_direct_api +msgid "E-waybill(IN) direct API" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model,name:l10n_in_edi_ewaybill.model_account_edi_format +msgid "EDI format" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Either Eway Bill Number Or Consolidated Eway Bill Number is required for " +"Verification" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "Error" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error While Extending..Please Contact Helpdesk. " +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in Closing EWB Verification Data" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in Multi Vehicle Movement Initiation" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in fetching Part A data by IR Number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in fetching WatchList Data" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in fetching ewaybill list by vehicle number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in fetching in verification data for officer" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in fetching search result for taxpayer/transporter" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in getting EWB Not Available List by closed date range" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in getting EWB Not Available List by entered date range" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in getting EWB03 details by acknowledgement date range" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in getting officer dashboard" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in inserting in verification data" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in inserting multi vehicle details" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in inserting verification details" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in multi vehicle details" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in saving Part-A verification Report" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in saving Part-B verification Report" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in validating ewaybill for vehicle updation" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in verifying consolidated eway bill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Error in verifying eway bill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Eway Bill Can not be Extended. Not in Active State" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Eway Bill Category wise details will be available after 4 days only" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Eway Bill Item List is Empty" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Eway Bill Number should be numeric only" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Eway Bill can not be extended.. Already Cancelled" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Eway Bill is already expired hence update transporter is not allowed." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Eway bill does not contains any items" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Eway bill is already verified, you cannot cancel it" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Ewaybill cannot be generated for the document date which is prior to " +"01/07/2017" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Exception in fetching dashboard data" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Exception in getting Officer Role" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Exception in regenration of consolidated eWayBill!!Please Contact helpdesk" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "For Category EWB03 procdt is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "For Category Part-A or Part-B ewbdt is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "For Goods Detained,Vehicle Released feild is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "For Rail/Ship/Air transDocDate is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "For Vehicle Released vehicle release date and time is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "For file details file number is required" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"For inward CKD/SKD/Lots supply type, Bill From state should be as Other " +"Country, since the Bill From GSTIN given is of SEZ unit" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "For other than Road Transport, TransDoc number is required" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"For outward CKD/SKD/Lots supply type, Bill To state should be as Other " +"Country, since the Bill To GSTIN given is of SEZ unit" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"For regular transaction, Bill from state code and Dispatch from state code " +"should be same" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"For regular transaction, Bill to state code and Ship to state code should be" +" same" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "GSTIN is not registerd to this GSP" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"GSTIN passed in request header is not matching with the user gstin mentioned" +" in payload JSON" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"GSTIN/Transin passed in request header should match with the transported Id " +"mentioned in payload JSON" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"GSTIN/Transin passed in request header should not be the same as " +"supplier(fromGSTIN) or recepient(toGSTIN)" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Goods Detained Field required." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Group number cannot be empty or zero" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "HSN code is not set in product %s" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"HSN code of at least one item should be of goods to generate e-Way Bill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type__id +msgid "ID" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "IGST value is not applicable for Intra State Transaction" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "IGST value should not be negative" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "IMEI does not belong to the user" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "Impossible to send the Ewaybill." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields.selection,name:l10n_in_edi_ewaybill.selection__l10n_in_ewaybill_type__allowed_supply_type__in +msgid "Incoming" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields.selection,name:l10n_in_edi_ewaybill.selection__l10n_in_ewaybill_type__allowed_supply_type__both +msgid "Incoming and Outgoing" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/res_config_settings.py:0 +#, python-format +msgid "" +"Incorrect username or password, or the GST number on company does not match." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_res_config_settings__l10n_in_edi_ewaybill_password +msgid "Indian EDI Stock password" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_res_config_settings__l10n_in_edi_ewaybill_username +msgid "Indian EDI Stock username" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.res_config_settings_view_form_inherit_l10n_in_edi_ewaybill +msgid "Indian Electronic WayBill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Inter-State ewaybill is not allowed for gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invaild Invoice Number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Approximate Distance" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid CESS Rate" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid CGST Tax Rate" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Cess Non Advol value" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Client -Id" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Client-ID/Client-Secret" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Close Reason" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Consignee Address" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Consignee GSTIN" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Consignee PIN Code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Consignee State Code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Consignee ship to State Code for the given pincode" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Document type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid EWB03 Ack No" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid File Number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid GSTIN" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid HSN Code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "Invalid HSN Code (%s) in product %s" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid IGST Tax Rate" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Invoice Date" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Latitude" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Longitude" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Month Parameter" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid PAN number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Password" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid SGST Tax Rate" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Sub-supply Type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Supplier GSTIN" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Supplier ship from State Code for the given pincode" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Supply Type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Tax Rate for Inter State Transaction" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Tax Rate for Intra State Transaction" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Token" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Trans mode" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Transaction Date" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Transaction Document Number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Transporter Id" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid UQC Code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Uniq No" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Username" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Vehicle Direction" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Vehicle Number Format" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Vehicle Release Date Format" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Vehicle Type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Verification Date Format" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Verification Time Format" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid Year Parameter" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid action" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid auth token" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid category" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid client -Id/client-secret" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid consignment status for the given transmode" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid date format" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid eway bill number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid from state" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_move.py:0 +#, python-format +msgid "" +"Invalid invoice configuration:\n" +"\n" +"%s" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid json" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid location code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid login credentials." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid mobile number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid new transDoc number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid new vehicle number format" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid old transDoc number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid old vehicle number format" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid operating-system-type parameter value" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid or Blank Actual Vehicle Number Format" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid or Blank Consignee Ship-to State Code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid or Blank IR Number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid or Blank Officer StateCode" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid or Blank Supplier PIN Code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid or Blank Supplier Ship-to State Code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid or Blank Supplier state Code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid pincode" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid place to" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid reason" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid remarks" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid rfid date" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid rfid number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid state code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid state code for the given pincode" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid state to" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid transaction type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid transit type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid transporter mode" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid vehicle format" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid verification type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Invalid wt on bridge" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model,name:l10n_in_edi_ewaybill.model_account_move +msgid "Journal Entry" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type____last_update +msgid "Last Modified on" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type__write_date +msgid "Last Updated on" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields.selection,name:l10n_in_edi_ewaybill.selection__account_move__l10n_in_mode__0 +msgid "Managed by Transporter" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Minimum six character required for Tradename/legalname search" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Multi Vehicle Initiation data is not there for specified ewayBill and group " +"No" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Multi Vehicle movement is already Initiated,hence PART B updation not " +"allowed" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Multi Vehicle movement is already Initiated,hence generation of consolidated" +" eway bill is not allowed" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "MultiVehicleMovement cannot be initiated for EWay Bill For Gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"MultiVehicleMovement cannot be initiated.Eway Bill is not in Active State" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "No Record Found for Entered consolidated eWay bill." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "No Record available to Close" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "No eway bill of specified tripsheet, neither ACTIVE nor not Valid." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "No record found" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"No record found for multi vehicle update with specified ewbNo groupNo and " +"old vehicleNo/transDocNo with status as ACT" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "No verification data found for officer " +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "Number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Only trans mode road is allowed for Eway Bill For Gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Only transmode road is allowed for extending ewaybill for gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Other items are not allowed with eway bill for gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields.selection,name:l10n_in_edi_ewaybill.selection__l10n_in_ewaybill_type__allowed_supply_type__out +msgid "Outgoing" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields.selection,name:l10n_in_edi_ewaybill.selection__account_move__l10n_in_vehicle_type__o +msgid "Over Dimensional Cargo" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Part B cannot be updated as this Ewaybill Part A is generated in NIC1" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Part B cannot be updated as this Ewaybill Part A is generated in NIC2" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Part B is already updated,hence updation is not allowed" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Part-A for this ewaybill is already generated by you." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Part-B is not generated for this e-way bill, hence rejection is not allowed." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.res_config_settings_view_form_inherit_l10n_in_edi_ewaybill +msgid "Password" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Pin to pin distance is not available for the given pin codes" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Place from is required" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.res_config_settings_view_form_inherit_l10n_in_edi_ewaybill +msgid "Production Environment" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields.selection,name:l10n_in_edi_ewaybill.selection__account_move__l10n_in_mode__2 +msgid "Rail" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Reason Code, Remarks is mandatory." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields.selection,name:l10n_in_edi_ewaybill.selection__account_move__l10n_in_vehicle_type__r +msgid "Regular" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Remaining Distance Can not be greater than Actual Distance." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Remaining Distance Required" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Remarks is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields.selection,name:l10n_in_edi_ewaybill.selection__account_move__l10n_in_mode__1 +msgid "Road" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "SGST value should not be negative" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.invoice_form_inherit_l10n_in_edi_ewaybill +msgid "Send E-waybill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields.selection,name:l10n_in_edi_ewaybill.selection__account_move__l10n_in_mode__4 +msgid "Ship" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Ship to GSTIN cannot be sent as the transaction type selected is Regular" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_bank_statement_line__l10n_in_edi_ewaybill_show_send_button +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_move__l10n_in_edi_ewaybill_show_send_button +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_payment__l10n_in_edi_ewaybill_show_send_button +msgid "Show Send E-waybill Button" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Since the consignor is Composite Taxpayer, Tax rates should be zero" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Since the consignor is Composite Taxpayer, inter state transactions are not " +"allowed" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "" +"Somehow this E-waybill has been canceled in the government portal before. " +"You can verify by checking the details into the government " +"(https://ewaybillgst.gov.in/Others/EBPrintnew.aspx)" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "" +"Somehow this E-waybill has been generated in the government portal before. " +"You can verify by checking the invoice details into the government " +"(https://ewaybillgst.gov.in/Others/EBPrintnew.aspx)" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Status is not ACTIVE" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Sub Supply Type is mentioned as Others, the description for that is " +"mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Sub-transaction type does not belongs to transaction type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type__sub_type +msgid "Sub-type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type__sub_type_code +msgid "Sub-type Code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Supplier name is required" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Supplier place is required" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Tax rates for Inter state transaction is blank" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Tax rates for Intra state transaction is blank" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"The Consignee GSTIN is blocked from e-waybill generation as Return is not " +"filed for past 2 months" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "The Consignee pin code should be 999999 for Sub Supply Type- Export" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"The Consignor GSTIN is blocked from e-waybill generation as Return is not " +"filed for past 2 months" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "The Supplier pin code should be 999999 for Sub Supply Type- Import" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"The Supplier ship-from state code should be Other Country for Sub Supply " +"Type- Import" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"The Supplier ship-to state code should be Other Country for Sub Supply Type-" +" Export" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"The Transporter GSTIN is blocked from Transporter Updation as Return is not " +"filed for past 2 months" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"The Transporter GSTIN is blocked from e-waybill generation as Return is not " +"filed for past 2 months" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"The User GSTIN is blocked from Transporter Updation as Return is not filed " +"for past 2 months" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"The distance between the given pincodes are not available in the system. " +"Please provide distance." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "The distance between the pincodes given is too high" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "" +"The following information are missing on the invoice (see eWayBill tab):" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"The supplier or conginee belong to SEZ, Inter state tax rates are applicable" +" here" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"There is No PART-B/Vehicle Entry.. So Please Update Vehicle Information.." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "This Eway Bill does not belongs to your state" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "This Ewaybill cannot be cancelled as it is generated from NIC1" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "This Ewaybill cannot be cancelled as it is generated from NIC2" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"This GSTIN has generated a common Enrolment Number. Hence you are not " +"allowed to generate Eway bill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"This GSTIN has generated a common Enrolment Number. Hence you cannot mention" +" it as a tranporter" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "This e-Way Bill does not have Oxygen items" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "This e-way bill is cancelled" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "This e-way bill is generated by you and hence you cannot reject it" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "This eway bill is either not generated by you or cancelled" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "This option is not enabled in Eway Bill2" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_move.py:0 +#, python-format +msgid "" +"To cancel E-waybill set cancel reason and remarks at E-waybill tab in: \n" +"%s" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Token Expired" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Tolal Invoice value is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Total amount/Taxable amout is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Total invoice value cannot be less than the sum of total assessible value " +"and tax values" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Total invoice value should not be negative" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Total value should not be negative" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "TransDocDate is not required for ewaybill for gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "TransDocNo is not required for ewaybill for gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.invoice_form_inherit_l10n_in_edi_ewaybill +msgid "Transaction Details" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transaction type is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transit Address is not required as the goods are in movement" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transit Type is not required as the goods are in movement" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transmode is mandatory for ewaybill for gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transport can not be updated for EwayBill For Gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transport details cannot be updated here as it is generated from NIC1" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transport details cannot be updated here as it is generated from NIC2" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,help:l10n_in_edi_ewaybill.field_account_bank_statement_line__l10n_in_transportation_doc_no +#: model:ir.model.fields,help:l10n_in_edi_ewaybill.field_account_move__l10n_in_transportation_doc_no +#: model:ir.model.fields,help:l10n_in_edi_ewaybill.field_account_payment__l10n_in_transportation_doc_no +msgid "" +"Transport document number. If it is more than 15 chars, last 15 chars may be" +" entered" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Transport mode is mandatory as Vehicle Number/Transport Document Number is " +"given" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transport mode is mandatory since transport document number is present" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transport mode is mandatory since vehicle number is present" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.invoice_form_inherit_l10n_in_edi_ewaybill +msgid "Transportation Details" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_bank_statement_line__l10n_in_mode +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_move__l10n_in_mode +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_payment__l10n_in_mode +msgid "Transportation Mode" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_bank_statement_line__l10n_in_transporter_id +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_move__l10n_in_transporter_id +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_payment__l10n_in_transporter_id +msgid "Transporter" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.invoice_form_inherit_l10n_in_edi_ewaybill +msgid "Transporter Document Number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transporter Id is mandatory for generation of Part A slip" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transporter document date cannot be earlier than the invoice date" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transporter id is not required for ewaybill for gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Transporter name is not required for ewaybill for gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Tripsheet is already cancelled, Hence Regeration is not possible" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Try after 5 minutes" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type__name +msgid "Type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_l10n_in_ewaybill_type__code +msgid "Type Code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "" +"Unable to connect to the E-WayBill service.The web service may be temporary " +"down. Please try again in a moment." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "" +"Unable to send E-waybill.Create an API user in NIC portal, and set it using " +"the top menu: Configuration > Settings." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"Unit Code is not matching with any of the Unit Code from eway bill ItemList" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Unit Code is not matching with unit code of first initiaton" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.l10n_in_einvoice_report_invoice_document_inherit +msgid "Until:" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "User GSTIN should match to GSTIN(from) for outward transactions" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "User GSTIN should match to GSTIN(to) for inward transactions" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "User Gstin cannot be blank" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "User Gstin does not match with Transporter Id" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "User Id is mandatory" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "User id cannot be blank" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.res_config_settings_view_form_inherit_l10n_in_edi_ewaybill +msgid "Username" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Validation of eway bill number failed, while rejecting ewaybill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "Validity" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Validity period lapsed, you cannot cancel this eway bill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Validity period lapsed, you cannot reject the e-way bill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Validity period lapsed, you cannot update vehicle details" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Validity period lapsed.Cannot generate consolidated Eway Bill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Vehicle No is not required for ewaybill for gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_bank_statement_line__l10n_in_vehicle_no +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_move__l10n_in_vehicle_no +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_payment__l10n_in_vehicle_no +msgid "Vehicle Number" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_bank_statement_line__l10n_in_vehicle_type +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_move__l10n_in_vehicle_type +#: model:ir.model.fields,field_description:l10n_in_edi_ewaybill.field_account_payment__l10n_in_vehicle_type +msgid "Vehicle Type" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Vehicle Type is not required for ewaybill for gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Vehicle can not be updated for EwayBill For Gold" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Vehicle number is required" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Vehicle type can not be regular when transportation mode is ship" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "Vehicle type should not be ODC when transmode is other than road" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.res_config_settings_view_form_inherit_l10n_in_edi_ewaybill +msgid "Verify Username and Password" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "" +"We don't know the error message for this error code. Please contact support." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"You Cannot Extend as EWB can be Extended only 8 hour before or after w.r.t " +"Validity of EWB..!!" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"You are blocked for accesing this API as the allowed number of requests has " +"been exceeded for this duration" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "You are not assigned to do MultiVehicle Movement" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "You are not assigned to extend e-waybill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "You are not assigned to generate consolidated ewaybill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "You are not assigned to update part B" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"You are not assigned to update the tranporter details of this eway bill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"You are not current transporter or Generator of the ewayBill, with no " +"transporter details." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "You can cancel the ewaybill within 24 hours from Part B entry" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_move.py:0 +#, python-format +msgid "You can only create E-waybill from posted invoice" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "You can reject the e-way bill only within 72 hours from generated time" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"You cannot do multivehicle movement, as the current tranporter is already " +"entered Part B details of the ewaybill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"You cannot extend ewaybill, as the current tranporter is already entered " +"Part B details of the ewaybill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"You cannot generate E Way Bill with document date earlier than 180 days" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"You cannot generate consolidated eway bill , as the current tranporter is " +"already entered Part B details of the eway bill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"You cannot reject this e-way bill as you are not the other party to do so" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"You cannot update part B, as the current tranporter is already entered Part " +"B details of the eway bill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"You cannot update transporter details, as the current tranporter is already " +"entered Part B details of the eway bill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "" +"You need at least one product having \"Product Type\" as stockable or " +"consumable." +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"You will not get the ewaybills generated today, howerver you cann access the" +" ewaybills of yester days" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "dispatch from gstin is mandatary " +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.res_config_settings_view_form_inherit_l10n_in_edi_ewaybill +msgid "documentation" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.invoice_form_inherit_l10n_in_edi_ewaybill +msgid "eWayBill" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "invalid dispatch from gstin " +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "invalid document type for the given supply type " +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "invalid ewbNoAvailable parameter value" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "invalid goods detained parameter value" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "invalid invoice available value" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "invalid vehicle released value" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "operating-system-type is mandatory in header" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "product is required to get HSN code" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "ship to from gstin is mandatary" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#: model_terms:ir.ui.view,arch_db:l10n_in_edi_ewaybill.res_config_settings_view_form_inherit_l10n_in_edi_ewaybill +msgid "to get credentials" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "total quantity can not be less than or equal to zero" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/error_codes.py:0 +#, python-format +msgid "" +"total quantity is exceeding from multi vehicle movement initiation quantity" +msgstr "" + +#. module: l10n_in_edi_ewaybill +#. odoo-python +#: code:addons/l10n_in_edi_ewaybill/models/account_edi_format.py:0 +#, python-format +msgid "waiting For IRN generation To create E-waybill" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/__init__.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/__init__.py new file mode 100755 index 0000000..ac04394 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/__init__.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import ewaybill_type +from . import res_company +from . import res_config_settings +from . import account_move +from . import account_edi_format diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/account_edi_format.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/account_edi_format.py new file mode 100755 index 0000000..289822f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/account_edi_format.py @@ -0,0 +1,651 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import re +import json +from datetime import timedelta +from markupsafe import Markup + +from odoo import models, fields, api, _ +from odoo.tools import html_escape +from odoo.exceptions import AccessError +from odoo.addons.iap import jsonrpc +from odoo.addons.l10n_in_edi.models.account_edi_format import DEFAULT_IAP_ENDPOINT, DEFAULT_IAP_TEST_ENDPOINT + +from .error_codes import ERROR_CODES + +import logging + +_logger = logging.getLogger(__name__) + + +class AccountEdiFormat(models.Model): + _inherit = "account.edi.format" + + def _l10n_in_edi_ewaybill_base_irn_or_direct(self, move): + """ + There is two type of api call to create E-waybill + 1. base on IRN, IRN is number created when we do E-invoice + 2. direct call, when E-invoice not aplicable or it"s credit not + """ + if move.move_type == "out_refund": + return "direct" + einvoice_in_edi_format = move.journal_id.edi_format_ids.filtered(lambda f: f.code == "in_einvoice_1_03") + return einvoice_in_edi_format and einvoice_in_edi_format._get_move_applicability(move) and "irn" or "direct" + + def _is_compatible_with_journal(self, journal): + if self.code == "in_ewaybill_1_03": + return journal.type in ("sale", "purchase") + return super()._is_compatible_with_journal(journal) + + def _is_enabled_by_default_on_journal(self, journal): + """ + It's sent with a button action on the invoice so it's disabled by default + """ + self.ensure_one() + if self.code == "in_ewaybill_1_03": + return False + return super()._is_enabled_by_default_on_journal(journal) + + def _get_move_applicability(self, invoice): + self.ensure_one() + if self.code != 'in_ewaybill_1_03': + return super()._get_move_applicability(invoice) + + if invoice.is_invoice() and invoice.country_code == 'IN': + res = { + 'post': self._l10n_in_edi_ewaybill_post_invoice_edi, + 'cancel': self._l10n_in_edi_ewaybill_cancel_invoice, + 'edi_content': self._l10n_in_edi_ewaybill_json_invoice_content, + } + base = self._l10n_in_edi_ewaybill_base_irn_or_direct(invoice) + if base == 'irn': + res.update({ + 'post': self._l10n_in_edi_ewaybill_irn_post_invoice_edi, + 'edi_content': self._l10n_in_edi_ewaybill_irn_json_invoice_content, + }) + return res + + def _needs_web_services(self): + self.ensure_one() + return self.code == "in_ewaybill_1_03" or super()._needs_web_services() + + def _l10n_in_edi_ewaybill_irn_json_invoice_content(self, move): + return json.dumps(self._l10n_in_edi_irn_ewaybill_generate_json(move)).encode() + + def _l10n_in_edi_ewaybill_json_invoice_content(self, move): + return json.dumps(self._l10n_in_edi_ewaybill_generate_json(move)).encode() + + def _check_move_configuration(self, move): + if self.code != "in_ewaybill_1_03": + return super()._check_move_configuration(move) + error_message = [] + base = self._l10n_in_edi_ewaybill_base_irn_or_direct(move) + if not move.l10n_in_type_id and base == "direct": + error_message.append(_("- Document Type")) + if not move.l10n_in_mode: + error_message.append(_("- Transportation Mode")) + elif move.l10n_in_mode == "0" and not move.l10n_in_transporter_id: + error_message.append(_("- Transporter is required when E-waybill is managed by transporter")) + elif move.l10n_in_mode == "0" and move.l10n_in_transporter_id and not move.l10n_in_transporter_id.vat: + error_message.append(_("- Selected Transporter is missing GSTIN")) + elif move.l10n_in_mode == "1": + if not move.l10n_in_vehicle_no and move.l10n_in_vehicle_type: + error_message.append(_("- Vehicle Number and Type is required when Transportation Mode is By Road")) + elif move.l10n_in_mode in ("2", "3", "4"): + if not move.l10n_in_transportation_doc_no and move.l10n_in_transportation_doc_date: + error_message.append(_("- Transport document number and date is required when Transportation Mode is Rail,Air or Ship")) + if error_message: + error_message.insert(0, _("The following information are missing on the invoice (see eWayBill tab):")) + goods_lines = move.invoice_line_ids.filtered(lambda line: not (line.display_type in ('line_section', 'line_note', 'rounding') or line.product_id.type == "service")) + if not goods_lines: + error_message.append(_('You need at least one product having "Product Type" as stockable or consumable.')) + if base == "irn": + # already checked by E-invoice (l10n_in_edi) so no need to check + return error_message + is_purchase = move.is_purchase_document(include_receipts=True) + error_message += self._l10n_in_validate_partner(move.partner_id) + error_message += self._l10n_in_validate_partner(move.company_id.partner_id, is_company=True) + if not re.match("^.{1,16}$", is_purchase and move.ref or move.name): + error_message.append(_("%s number should be set and not more than 16 characters", + (is_purchase and "Bill Reference" or "Invoice"))) + for line in goods_lines: + if line.product_id: + hsn_code = self._l10n_in_edi_extract_digits(line.product_id.l10n_in_hsn_code) + if not hsn_code: + error_message.append(_("HSN code is not set in product %s", line.product_id.name)) + elif not re.match("^[0-9]+$", hsn_code): + error_message.append(_( + "Invalid HSN Code (%s) in product %s", hsn_code, line.product_id.name + )) + else: + error_message.append(_("product is required to get HSN code")) + if error_message: + error_message.insert(0, _("Impossible to send the Ewaybill.")) + return error_message + + def _l10n_in_edi_ewaybill_cancel_invoice(self, invoices): + if self.code != "in_ewaybill_1_03": + return super()._cancel_invoice_edi(invoices) + response = {} + res = {} + ewaybill_response_json = invoices._get_l10n_in_edi_ewaybill_response_json() + cancel_json = { + "ewbNo": ewaybill_response_json.get("ewayBillNo") or ewaybill_response_json.get("EwbNo"), + "cancelRsnCode": int(invoices.l10n_in_edi_cancel_reason), + "cancelRmrk": invoices.l10n_in_edi_cancel_remarks, + } + response = self._l10n_in_edi_ewaybill_cancel(invoices.company_id, cancel_json) + if response.get("error"): + error = response["error"] + error_codes = [e.get("code") for e in error] + if "238" in error_codes: + # Invalid token eror then create new token and send generate request again. + # This happen when authenticate called from another odoo instance with same credentials (like. Demo/Test) + authenticate_response = self._l10n_in_edi_ewaybill_authenticate(invoices.company_id) + if not authenticate_response.get("error"): + error = [] + response = self._l10n_in_edi_ewaybill_cancel(invoices.company_id, cancel_json) + if response.get("error"): + error = response["error"] + error_codes = [e.get("code") for e in error] + if "312" in error_codes: + # E-waybill is already canceled + # this happens when timeout from the Government portal but IRN is generated + error_message = "
    ".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message"))) for e in error]) + error = [] + response = {"data": ""} + odoobot = self.env.ref("base.partner_root") + invoices.message_post(author_id=odoobot.id, body= + "%s
    %s:
    %s" %( + _("Somehow this E-waybill has been canceled in the government portal before. You can verify by checking the details into the government (https://ewaybillgst.gov.in/Others/EBPrintnew.aspx)"), + _("Error"), + error_message + ) + ) + if "no-credit" in error_codes: + res[invoices] = { + "success": False, + "error": self._l10n_in_edi_get_iap_buy_credits_message(invoices.company_id), + "blocking_level": "error", + } + elif error: + error_message = "
    ".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message"))) for e in error]) + blocking_level = "error" + if "404" in error_codes: + blocking_level = "warning" + res[invoices] = { + "success": False, + "error": error_message, + "blocking_level": blocking_level, + } + if not response.get("error"): + json_dump = json.dumps(response.get("data")) + json_name = "%s_ewaybill_cancel.json" % (invoices.name.replace("/", "_")) + attachment = self.env["ir.attachment"].create({ + "name": json_name, + "raw": json_dump.encode(), + "res_model": "account.move", + "res_id": invoices.id, + "mimetype": "application/json", + }) + inv_res = {"success": True, "attachment": attachment} + res[invoices] = inv_res + return res + + def _l10n_in_edi_ewaybill_irn_post_invoice_edi(self, invoices): + response = {} + res = {} + generate_json = self._l10n_in_edi_irn_ewaybill_generate_json(invoices) + response = self._l10n_in_edi_irn_ewaybill_generate(invoices.company_id, generate_json) + if response.get("error"): + error = response["error"] + error_codes = [e.get("code") for e in error] + if "1005" in error_codes: + # Invalid token eror then create new token and send generate request again. + # This happen when authenticate called from another odoo instance with same credentials (like. Demo/Test) + authenticate_response = self._l10n_in_edi_authenticate(invoices.company_id) + if not authenticate_response.get("error"): + error = [] + response = self._l10n_in_edi_irn_ewaybill_generate(invoices.company_id, generate_json) + if response.get("error"): + error = response["error"] + error_codes = [e.get("code") for e in error] + if "4002" in error_codes or "4026" in error_codes: + # Get E-waybill by details in case of IRN is already generated + # this happens when timeout from the Government portal but E-waybill is generated + response = self._l10n_in_edi_irn_ewaybill_get(invoices.company_id, generate_json.get("Irn")) + if not response.get("error"): + error = [] + odoobot = self.env.ref("base.partner_root") + invoices.message_post(author_id=odoobot.id, body= + _("Somehow this E-waybill has been generated in the government portal before. You can verify by checking the invoice details into the government (https://ewaybillgst.gov.in/Others/EBPrintnew.aspx)") + ) + + if "no-credit" in error_codes: + res[invoices] = { + "success": False, + "error": self._l10n_in_edi_get_iap_buy_credits_message(invoices.company_id), + "blocking_level": "error", + } + elif error: + error_message = "
    ".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message"))) for e in error]) + blocking_level = "error" + if "404" in error_codes or "waiting" in error_codes: + blocking_level = "warning" + res[invoices] = { + "success": False, + "error": error_message, + "blocking_level": blocking_level, + } + if not response.get("error"): + json_dump = json.dumps(response.get("data")) + json_name = "%s_irn_ewaybill.json" % (invoices.name.replace("/", "_")) + attachment = self.env["ir.attachment"].create({ + "name": json_name, + "raw": json_dump.encode(), + "res_model": "account.move", + "res_id": invoices.id, + "mimetype": "application/json", + }) + inv_res = {"success": True, "attachment": attachment} + res[invoices] = inv_res + body = Markup(""" + {}
    +
      +
    • {}{}
    • +
    • {}{}
    • +
    + """).format( + _('E-wayBill Sent'), + _('Number'), + str(response.get("data", {}).get('EwbNo')), + _('Validity'), + str(response.get("data", {}).get('EwbValidTill')) + ) + + invoices.message_post(body=body) + return res + + def _l10n_in_edi_irn_ewaybill_generate_json(self, invoice): + json_payload = { + "Irn": invoice._get_l10n_in_edi_response_json().get("Irn"), + "Distance": invoice.l10n_in_distance, + } + if invoice.l10n_in_mode == "0": + json_payload.update({ + "TransId": invoice.l10n_in_transporter_id.vat, + "TransName": invoice.l10n_in_transporter_id.name, + }) + elif invoice.l10n_in_mode == "1": + json_payload.update({ + "TransMode": invoice.l10n_in_mode, + "VehNo": invoice.l10n_in_vehicle_no, + "VehType": invoice.l10n_in_vehicle_type, + }) + elif invoice.l10n_in_mode in ("2", "3", "4"): + doc_date = invoice.l10n_in_transportation_doc_date + json_payload.update({ + "TransMode": invoice.l10n_in_mode, + "TransDocDt": doc_date and doc_date.strftime("%d/%m/%Y") or False, + "TransDocNo": invoice.l10n_in_transportation_doc_no, + }) + return json_payload + + def _l10n_in_edi_ewaybill_post_invoice_edi(self, invoices): + response = {} + res = {} + generate_json = self._l10n_in_edi_ewaybill_generate_json(invoices) + response = self._l10n_in_edi_ewaybill_generate(invoices.company_id, generate_json) + if response.get("error"): + error = response["error"] + error_codes = [e.get("code") for e in error] + if "238" in error_codes: + # Invalid token eror then create new token and send generate request again. + # This happen when authenticate called from another odoo instance with same credentials (like. Demo/Test) + authenticate_response = self._l10n_in_edi_ewaybill_authenticate(invoices.company_id) + if not authenticate_response.get("error"): + error = [] + response = self._l10n_in_edi_ewaybill_generate(invoices.company_id, generate_json) + if response.get("error"): + error = response["error"] + error_codes = [e.get("code") for e in error] + if "604" in error_codes: + # Get E-waybill by details in case of E-waybill is already generated + # this happens when timeout from the Government portal but E-waybill is generated + response = self._l10n_in_edi_ewaybill_get_by_consigner( + invoices.company_id, generate_json.get("docType"), generate_json.get("docNo")) + if not response.get("error"): + error = [] + odoobot = self.env.ref("base.partner_root") + invoices.message_post(author_id=odoobot.id, body= + _("Somehow this E-waybill has been generated in the government portal before. You can verify by checking the invoice details into the government (https://ewaybillgst.gov.in/Others/EBPrintnew.aspx)") + ) + if "no-credit" in error_codes: + res[invoices] = { + "success": False, + "error": self._l10n_in_edi_get_iap_buy_credits_message(invoices.company_id), + "blocking_level": "error", + } + elif error: + error_message = "
    ".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message"))) for e in error]) + blocking_level = "error" + if "404" in error_codes: + blocking_level = "warning" + res[invoices] = { + "success": False, + "error": error_message, + "blocking_level": blocking_level, + } + if not response.get("error"): + json_dump = json.dumps(response.get("data")) + json_name = "%s_ewaybill.json" % (invoices.name.replace("/", "_")) + attachment = self.env["ir.attachment"].create({ + "name": json_name, + "raw": json_dump.encode(), + "res_model": "account.move", + "res_id": invoices.id, + "mimetype": "application/json", + }) + inv_res = {"success": True, "attachment": attachment} + res[invoices] = inv_res + body = Markup(""" + {}
    +
      +
    • {}{}
    • +
    • {}{}
    • +
    + """).format( + _('E-wayBill Sent'), + _('Number'), + str(response.get("data", {}).get('ewayBillNo')), + _('Validity'), + str(response.get("data", {}).get('validUpto')) + ) + invoices.message_post(body=body) + return res + + def _l10n_in_edi_ewaybill_get_error_message(self, code): + error_message = ERROR_CODES.get(code) + return error_message or _("We don't know the error message for this error code. Please contact support.") + + def _get_l10n_in_edi_saler_buyer_party(self, move): + res = super()._get_l10n_in_edi_saler_buyer_party(move) + if move.is_outbound() and self.code == 'in_ewaybill_1_03': + res = { + "seller_details": move.partner_id, + "dispatch_details": move.partner_shipping_id or move.partner_id, + "buyer_details": move.company_id.partner_id, + "ship_to_details": move._l10n_in_get_warehouse_address() or move.company_id.partner_id, + } + return res + + def _l10n_in_edi_ewaybill_generate_json(self, invoices): + def get_transaction_type(seller_details, dispatch_details, buyer_details, ship_to_details): + """ + 1 - Regular + 2 - Bill To - Ship To + 3 - Bill From - Dispatch From + 4 - Combination of 2 and 3 + """ + if seller_details != dispatch_details and buyer_details != ship_to_details: + return 4 + elif seller_details != dispatch_details: + return 3 + elif buyer_details != ship_to_details: + return 2 + else: + return 1 + + saler_buyer = self._get_l10n_in_edi_saler_buyer_party(invoices) + seller_details = saler_buyer.get("seller_details") + dispatch_details = saler_buyer.get("dispatch_details") + buyer_details = saler_buyer.get("buyer_details") + ship_to_details = saler_buyer.get("ship_to_details") + sign = invoices.is_inbound() and -1 or 1 + extract_digits = self._l10n_in_edi_extract_digits + tax_details = self._l10n_in_prepare_edi_tax_details(invoices) + tax_details_by_code = self._get_l10n_in_tax_details_by_line_code(tax_details.get("tax_details", {})) + invoice_line_tax_details = tax_details.get("tax_details_per_record") + rounding_amount = sum(line.balance for line in invoices.line_ids if line.display_type == 'rounding') * sign + json_payload = { + # Note: + # Customer Invoice, Sales Receipt and Vendor Credit Note are Outgoing + # Vendor Bill, Purchase Receipt, and Customer Credit Note are Incoming + "supplyType": invoices.is_outbound() and "I" or "O", + "subSupplyType": invoices.l10n_in_type_id.sub_type_code, + "docType": invoices.l10n_in_type_id.code, + "transactionType": get_transaction_type(seller_details, dispatch_details, buyer_details, ship_to_details), + "transDistance": str(invoices.l10n_in_distance), + "docNo": invoices.is_purchase_document(include_receipts=True) and invoices.ref or invoices.name, + "docDate": invoices.date.strftime("%d/%m/%Y"), + "fromGstin": seller_details.commercial_partner_id.vat or "URP", + "fromTrdName": seller_details.commercial_partner_id.name, + "fromAddr1": dispatch_details.street or "", + "fromAddr2": dispatch_details.street2 or "", + "fromPlace": dispatch_details.city or "", + "fromPincode": dispatch_details.country_id.code == "IN" and int(extract_digits(dispatch_details.zip)) or "", + "fromStateCode": int(seller_details.state_id.l10n_in_tin) or "", + "actFromStateCode": dispatch_details.state_id.l10n_in_tin and int(dispatch_details.state_id.l10n_in_tin) or "", + "toGstin": buyer_details.commercial_partner_id.vat or "URP", + "toTrdName": buyer_details.commercial_partner_id.name, + "toAddr1": ship_to_details.street or "", + "toAddr2": ship_to_details.street2 or "", + "toPlace": ship_to_details.city or "", + "toPincode": int(extract_digits(ship_to_details.zip)), + "actToStateCode": int(ship_to_details.state_id.l10n_in_tin), + "toStateCode": invoices.l10n_in_state_id.l10n_in_tin and int(invoices.l10n_in_state_id.l10n_in_tin) or ( + buyer_details.state_id.l10n_in_tin or int(buyer_details.state_id.l10n_in_tin) or "" + ), + "itemList": [ + self._get_l10n_in_edi_ewaybill_line_details(line, line_tax_details, sign) + for line, line_tax_details in invoice_line_tax_details.items() + ], + "totalValue": self._l10n_in_round_value(tax_details.get("base_amount")), + "cgstValue": self._l10n_in_round_value(tax_details_by_code.get("cgst_amount", 0.00)), + "sgstValue": self._l10n_in_round_value(tax_details_by_code.get("sgst_amount", 0.00)), + "igstValue": self._l10n_in_round_value(tax_details_by_code.get("igst_amount", 0.00)), + "cessValue": self._l10n_in_round_value(tax_details_by_code.get("cess_amount", 0.00)), + "cessNonAdvolValue": self._l10n_in_round_value(tax_details_by_code.get("cess_non_advol_amount", 0.00)), + "otherValue": self._l10n_in_round_value(tax_details_by_code.get("other_amount", 0.00) + rounding_amount), + "totInvValue": self._l10n_in_round_value(tax_details.get("base_amount") + tax_details.get("tax_amount") + rounding_amount), + } + is_overseas = invoices.l10n_in_gst_treatment in ("overseas", "special_economic_zone") + if invoices.is_outbound(): + if is_overseas: + json_payload.update({"fromStateCode": 99}) + if is_overseas and dispatch_details.state_id.country_id.code != "IN": + json_payload.update({ + "actFromStateCode": 99, + "fromPincode": 999999, + }) + else: + json_payload.update({ + "actFromStateCode": dispatch_details.state_id.l10n_in_tin and int(dispatch_details.state_id.l10n_in_tin) or "", + "fromPincode": int(extract_digits(dispatch_details.zip)), + }) + else: + if is_overseas: + json_payload.update({"toStateCode": 99}) + if is_overseas and ship_to_details.state_id.country_id.code != "IN": + json_payload.update({ + "actToStateCode": 99, + "toPincode": 999999, + }) + else: + json_payload.update({ + "actToStateCode": int(ship_to_details.state_id.l10n_in_tin), + "toPincode": int(extract_digits(ship_to_details.zip)), + }) + + if invoices.l10n_in_mode == "0": + json_payload.update({ + "transporterId": invoices.l10n_in_transporter_id.vat or "", + "transporterName": invoices.l10n_in_transporter_id.name or "", + }) + if invoices.l10n_in_mode in ("2", "3", "4"): + json_payload.update({ + "transMode": invoices.l10n_in_mode, + "transDocNo": invoices.l10n_in_transportation_doc_no or "", + "transDocDate": invoices.l10n_in_transportation_doc_date and + invoices.l10n_in_transportation_doc_date.strftime("%d/%m/%Y") or "", + }) + if invoices.l10n_in_mode == "1": + json_payload.update({ + "transMode": invoices.l10n_in_mode, + "vehicleNo": invoices.l10n_in_vehicle_no or "", + "vehicleType": invoices.l10n_in_vehicle_type or "", + }) + return json_payload + + def _get_l10n_in_edi_ewaybill_line_details(self, line, line_tax_details, sign): + extract_digits = self._l10n_in_edi_extract_digits + tax_details_by_code = self._get_l10n_in_tax_details_by_line_code(line_tax_details.get("tax_details", {})) + line_details = { + "productName": line.product_id.name, + "hsnCode": extract_digits(line.product_id.l10n_in_hsn_code), + "productDesc": line.name, + "quantity": line.quantity, + "qtyUnit": line.product_uom_id.l10n_in_code and line.product_uom_id.l10n_in_code.split("-")[0] or "OTH", + "taxableAmount": self._l10n_in_round_value(line.balance * sign), + } + gst_types = {'cgst', 'sgst', 'igst'} + gst_tax_rates = { + f"{gst_type}Rate": self._l10n_in_round_value(tax_details_by_code[f"{gst_type}_rate"]) + for gst_type in gst_types + if tax_details_by_code.get(f"{gst_type}_rate") + } + line_details.update( + gst_tax_rates or dict.fromkeys({f"{gst_type}Rate" for gst_type in gst_types}, 0.00) + ) + if tax_details_by_code.get("cess_rate"): + line_details.update({"cessRate": self._l10n_in_round_value(tax_details_by_code.get("cess_rate"))}) + return line_details + + #================================ E-invoice API methods =========================== + + @api.model + def _l10n_in_edi_irn_ewaybill_generate(self, company, json_payload): + # IRN is created by E-invoice API call so waiting for it. + if not json_payload.get("Irn"): + return {"error": [{ + "code": "waiting", + "message": _("waiting For IRN generation To create E-waybill")} + ]} + token = self._l10n_in_edi_get_token(company) + if not token: + return self._l10n_in_edi_no_config_response() + params = { + "auth_token": token, + "json_payload": json_payload, + } + return self._l10n_in_edi_connect_to_server(company, url_path="/iap/l10n_in_edi/1/generate_ewaybill_by_irn", params=params) + + @api.model + def _l10n_in_edi_irn_ewaybill_get(self, company, irn): + token = self._l10n_in_edi_get_token(company) + if not token: + return self._l10n_in_edi_no_config_response() + params = { + "auth_token": token, + "irn": irn, + } + return self._l10n_in_edi_connect_to_server(company, url_path="/iap/l10n_in_edi/1/get_ewaybill_by_irn", params=params) + + #=============================== E-waybill API methods =================================== + + @api.model + def _l10n_in_edi_ewaybill_no_config_response(self): + return {"error": [{ + "code": "0", + "message": _( + "Unable to send E-waybill." + "Create an API user in NIC portal, and set it using the top menu: Configuration > Settings." + )} + ]} + + @api.model + def _l10n_in_edi_ewaybill_check_authentication(self, company): + sudo_company = company.sudo() + if sudo_company.l10n_in_edi_ewaybill_username and sudo_company._l10n_in_edi_ewaybill_token_is_valid(): + return True + elif sudo_company.l10n_in_edi_ewaybill_username and sudo_company.l10n_in_edi_ewaybill_password: + authenticate_response = self._l10n_in_edi_ewaybill_authenticate(company) + if not authenticate_response.get("error"): + return True + return False + + def _l10n_in_set_missing_error_message(self, response): + for error in response.get('error', []): + if error.get('code') and not error.get('message'): + error['message'] = self._l10n_in_edi_ewaybill_get_error_message(error.get('code')) + return response + + @api.model + def _l10n_in_edi_ewaybill_connect_to_server(self, company, url_path, params): + user_token = self.env["iap.account"].get("l10n_in_edi") + params.update({ + "account_token": user_token.account_token, + "dbuuid": self.env["ir.config_parameter"].sudo().get_param("database.uuid"), + "username": company.sudo().l10n_in_edi_ewaybill_username, + "gstin": company.vat, + }) + if company.sudo().l10n_in_edi_production_env: + default_endpoint = DEFAULT_IAP_ENDPOINT + else: + default_endpoint = DEFAULT_IAP_TEST_ENDPOINT + endpoint = self.env["ir.config_parameter"].sudo().get_param("l10n_in_edi_ewaybill.endpoint", default_endpoint) + url = "%s%s" % (endpoint, url_path) + try: + response = jsonrpc(url, params=params, timeout=70) + return self._l10n_in_set_missing_error_message(response) + except AccessError as e: + _logger.warning("Connection error: %s", e.args[0]) + return { + "error": [{ + "code": "access_error", + "message": _("Unable to connect to the E-WayBill service." + "The web service may be temporary down. Please try again in a moment.") + }] + } + + @api.model + def _l10n_in_edi_ewaybill_authenticate(self, company): + params = {"password": company.sudo().l10n_in_edi_ewaybill_password} + response = self._l10n_in_edi_ewaybill_connect_to_server( + company, url_path="/iap/l10n_in_edi_ewaybill/1/authenticate", params=params + ) + if response and response.get("status_cd") == "1": + company.sudo().l10n_in_edi_ewaybill_auth_validity = fields.Datetime.now() + timedelta( + hours=6, minutes=00, seconds=00) + return response + + @api.model + def _l10n_in_edi_ewaybill_generate(self, company, json_payload): + is_authenticated = self._l10n_in_edi_ewaybill_check_authentication(company) + if not is_authenticated: + return self._l10n_in_edi_ewaybill_no_config_response() + params = {"json_payload": json_payload} + return self._l10n_in_edi_ewaybill_connect_to_server( + company, url_path="/iap/l10n_in_edi_ewaybill/1/generate", params=params + ) + + @api.model + def _l10n_in_edi_ewaybill_cancel(self, company, json_payload): + is_authenticated = self._l10n_in_edi_ewaybill_check_authentication(company) + if not is_authenticated: + return self._l10n_in_edi_ewaybill_no_config_response() + params = {"json_payload": json_payload} + return self._l10n_in_edi_ewaybill_connect_to_server( + company, url_path="/iap/l10n_in_edi_ewaybill/1/cancel", params=params + ) + + @api.model + def _l10n_in_edi_ewaybill_get_by_consigner(self, company, document_type, document_number): + is_authenticated = self._l10n_in_edi_ewaybill_check_authentication(company) + if not is_authenticated: + return self._l10n_in_edi_ewaybill_no_config_response() + params = {"document_type": document_type, "document_number": document_number} + return self._l10n_in_edi_ewaybill_connect_to_server( + company, url_path="/iap/l10n_in_edi_ewaybill/1/getewaybillgeneratedbyconsigner", params=params + ) diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/account_move.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/account_move.py new file mode 100755 index 0000000..ce838b3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/account_move.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import json +from odoo import fields, models, api, _ +from odoo.exceptions import UserError + + +class AccountMove(models.Model): + _inherit = "account.move" + + # Transaction Details + l10n_in_type_id = fields.Many2one("l10n.in.ewaybill.type", "E-waybill Document Type", tracking=True) + + # transportation details + l10n_in_distance = fields.Integer("Distance", tracking=True) + l10n_in_mode = fields.Selection([ + ("0", "Managed by Transporter"), + ("1", "Road"), + ("2", "Rail"), + ("3", "Air"), + ("4", "Ship")], + string="Transportation Mode", copy=False, tracking=True) + + # Vehicle Number and Type required when transportation mode is By Road. + l10n_in_vehicle_no = fields.Char("Vehicle Number", copy=False, tracking=True) + l10n_in_vehicle_type = fields.Selection([ + ("R", "Regular"), + ("O", "Over Dimensional Cargo")], + string="Vehicle Type", copy=False, tracking=True) + + # Document number and date required in case of transportation mode is Rail, Air or Ship. + l10n_in_transportation_doc_no = fields.Char( + string="E-waybill Document Number", + help="""Transport document number. If it is more than 15 chars, last 15 chars may be entered""", + copy=False, tracking=True) + l10n_in_transportation_doc_date = fields.Date( + string="Document Date", + help="Date on the transporter document", + copy=False, + tracking=True) + + # transporter id required when transportation done by other party. + l10n_in_transporter_id = fields.Many2one("res.partner", "Transporter", copy=False, tracking=True) + # show and hide fields base on this + l10n_in_edi_ewaybill_direct_api = fields.Boolean(string="E-waybill(IN) direct API", compute="_compute_l10n_in_edi_ewaybill_direct") + l10n_in_edi_ewaybill_show_send_button = fields.Boolean(string="Show Send E-waybill Button", compute="_compute_l10n_in_edi_ewaybill_show_send_button") + + @api.depends('state', 'edi_document_ids', 'edi_document_ids.state') + def _compute_l10n_in_edi_ewaybill_show_send_button(self): + edi_format = self.env.ref('l10n_in_edi_ewaybill.edi_in_ewaybill_json_1_03') + posted_moves = self.filtered(lambda x: x.is_invoice() and x.state == 'posted' and x.country_code == "IN") + for move in posted_moves: + already_sent = move.edi_document_ids.filtered(lambda x: x.edi_format_id == edi_format and x.state in ('sent', 'to_cancel', 'to_send')) + if already_sent: + move.l10n_in_edi_ewaybill_show_send_button = False + else: + move.l10n_in_edi_ewaybill_show_send_button = True + (self - posted_moves).l10n_in_edi_ewaybill_show_send_button = False + + @api.depends("l10n_in_gst_treatment") + def _compute_l10n_in_edi_ewaybill_direct(self): + for move in self: + base = self.env["account.edi.format"]._l10n_in_edi_ewaybill_base_irn_or_direct(move) + move.l10n_in_edi_ewaybill_direct_api = base == "direct" + + @api.depends("edi_document_ids") + def _compute_l10n_in_edi_show_cancel(self): + super()._compute_l10n_in_edi_show_cancel() + for invoice in self: + if invoice.edi_document_ids.filtered(lambda i: i.edi_format_id.code == "in_ewaybill_1_03" and i.state in ("sent", "to_cancel", "cancelled")): + invoice.l10n_in_edi_show_cancel = True + + def _get_l10n_in_edi_ewaybill_response_json(self): + self.ensure_one() + l10n_in_edi = self.edi_document_ids.filtered(lambda i: i.edi_format_id.code == "in_ewaybill_1_03" + and i.state in ("sent", "to_cancel")) + if l10n_in_edi and l10n_in_edi.sudo().attachment_id: + return json.loads(l10n_in_edi.sudo().attachment_id.raw.decode("utf-8")) + else: + return {} + + def button_cancel_posted_moves(self): + """Mark the edi.document related to this move to be canceled.""" + reason_and_remarks_not_set = self.env["account.move"] + for move in self: + send_l10n_in_edi_ewaybill = move.edi_document_ids.filtered(lambda doc: doc.edi_format_id.code == "in_ewaybill_1_03") + # check submitted E-waybill does not have reason and remarks + # because it's needed to cancel E-waybill + if send_l10n_in_edi_ewaybill and (not move.l10n_in_edi_cancel_reason or not move.l10n_in_edi_cancel_remarks): + reason_and_remarks_not_set += move + if reason_and_remarks_not_set: + raise UserError(_( + "To cancel E-waybill set cancel reason and remarks at E-waybill tab in: \n%s", + ("\n".join(reason_and_remarks_not_set.mapped("name"))), + )) + return super().button_cancel_posted_moves() + + def l10n_in_edi_ewaybill_send(self): + edi_format = self.env.ref('l10n_in_edi_ewaybill.edi_in_ewaybill_json_1_03') + edi_document_vals_list = [] + for move in self: + if move.state != 'posted': + raise UserError(_("You can only create E-waybill from posted invoice")) + errors = edi_format._check_move_configuration(move) + if errors: + raise UserError(_("Invalid invoice configuration:\n\n%s") % '\n'.join(errors)) + existing_edi_document = move.edi_document_ids.filtered(lambda x: x.edi_format_id == edi_format) + if existing_edi_document: + if existing_edi_document.state in ('sent', 'to_cancel'): + raise UserError(_("E-waybill is already created") % '\n'.join(errors)) + existing_edi_document.sudo().write({ + 'state': 'to_send', + 'attachment_id': False, + }) + else: + edi_document_vals_list.append({ + 'edi_format_id': edi_format.id, + 'move_id': move.id, + 'state': 'to_send', + }) + self.env['account.edi.document'].create(edi_document_vals_list) + self.env.ref('account_edi.ir_cron_edi_network')._trigger() diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/error_codes.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/error_codes.py new file mode 100644 index 0000000..bbbd37b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/error_codes.py @@ -0,0 +1,336 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import _lt + +ERROR_CODES = { + "100": _lt("Invalid json"), + "101": _lt("Invalid Username"), + "102": _lt("Invalid Password"), + "103": _lt("Invalid Client -Id"), + "104": _lt("Invalid Client -Id"), + "105": _lt("Invalid Token"), + "106": _lt("Token Expired"), + "107": _lt("Authentication failed. Pls. inform the helpdesk"), + "108": _lt("Invalid login credentials."), + "109": _lt("Decryption of data failed"), + "110": _lt("Invalid Client-ID/Client-Secret"), + "111": _lt("GSTIN is not registerd to this GSP"), + "112": _lt("IMEI does not belong to the user"), + "113": _lt("operating-system-type is mandatory in header"), + "114": _lt("Invalid operating-system-type parameter value"), + "117": _lt("This option is not enabled in Eway Bill2"), + "118": _lt("Try after 5 minutes"), + "201": _lt("Invalid Supply Type"), + "202": _lt("Invalid Sub-supply Type"), + "203": _lt("Sub-transaction type does not belongs to transaction type"), + "204": _lt("Invalid Document type"), + "205": _lt("Document type does not match with transaction & Sub trans type"), + "206": _lt("Invaild Invoice Number"), + "207": _lt("Invalid Invoice Date"), + "208": _lt("Invalid Supplier GSTIN"), + "209": _lt("Blank Supplier Address"), + "210": _lt("Invalid or Blank Supplier PIN Code"), + "211": _lt("Invalid or Blank Supplier state Code"), + "212": _lt("Invalid Consignee GSTIN"), + "213": _lt("Invalid Consignee Address"), + "214": _lt("Invalid Consignee PIN Code"), + "215": _lt("Invalid Consignee State Code"), + "216": _lt("Invalid HSN Code"), + "217": _lt("Invalid UQC Code"), + "218": _lt("Invalid Tax Rate for Intra State Transaction"), + "219": _lt("Invalid Tax Rate for Inter State Transaction"), + "220": _lt("Invalid Trans mode"), + "221": _lt("Invalid Approximate Distance"), + "222": _lt("Invalid Transporter Id"), + "223": _lt("Invalid Transaction Document Number"), + "224": _lt("Invalid Transaction Date"), + "225": _lt("Invalid Vehicle Number Format"), + "226": _lt("Both Transaction and Vehicle Number Blank"), + "227": _lt("User Gstin cannot be blank"), + "228": _lt("User id cannot be blank"), + "229": _lt("Supplier name is required"), + "230": _lt("Supplier place is required"), + "231": _lt("Consignee name is required"), + "232": _lt("Consignee place is required"), + "233": _lt("Eway bill does not contains any items"), + "234": _lt("Total amount/Taxable amout is mandatory"), + "235": _lt("Tax rates for Intra state transaction is blank"), + "236": _lt("Tax rates for Inter state transaction is blank"), + "237": _lt("Invalid client -Id/client-secret"), + "238": _lt("Invalid auth token"), + "239": _lt("Invalid action"), + "240": _lt("Could not generate eway bill, pls contact helpdesk"), + "242": _lt("Invalid or Blank Officer StateCode"), + "243": _lt("Invalid or Blank IR Number"), + "244": _lt("Invalid or Blank Actual Vehicle Number Format"), + "245": _lt("Invalid Verification Date Format"), + "246": _lt("Invalid Vehicle Release Date Format"), + "247": _lt("Invalid Verification Time Format"), + "248": _lt("Invalid Vehicle Release Date Format"), + "249": _lt("Actual Value cannot be less than or equal to zero"), + "250": _lt("Invalid Vehicle Release Date Format"), + "251": _lt("CGST nad SGST TaxRate should be same"), + "252": _lt("Invalid CGST Tax Rate"), + "253": _lt("Invalid SGST Tax Rate"), + "254": _lt("Invalid IGST Tax Rate"), + "255": _lt("Invalid CESS Rate"), + "256": _lt("Invalid Cess Non Advol value"), + "278": _lt("User Gstin does not match with Transporter Id"), + "280": _lt("Status is not ACTIVE"), + "281": _lt("Eway Bill is already expired hence update transporter is not allowed."), + "301": _lt("Invalid eway bill number"), + "302": _lt("Invalid transporter mode"), + "303": _lt("Vehicle number is required"), + "304": _lt("Invalid vehicle format"), + "305": _lt("Place from is required"), + "306": _lt("Invalid from state"), + "307": _lt("Invalid reason"), + "308": _lt("Invalid remarks"), + "309": _lt("Could not update vehicle details, pl contact helpdesk"), + "311": _lt("Validity period lapsed, you cannot update vehicle details"), + "312": _lt("This eway bill is either not generated by you or cancelled"), + "313": _lt("Error in validating ewaybill for vehicle updation"), + "315": _lt("Validity period lapsed, you cannot cancel this eway bill"), + "316": _lt("Eway bill is already verified, you cannot cancel it"), + "317": _lt("Could not cancel eway bill, please contact helpdesk"), + "320": _lt("Invalid state to"), + "321": _lt("Invalid place to"), + "322": _lt("Could not generate consolidated eway bill"), + "325": _lt("Could not retrieve data"), + "326": _lt("Could not retrieve GSTIN details for the given GSTIN number"), + "327": _lt("Could not retrieve data from hsn"), + "328": _lt("Could not retrieve transporter details from gstin"), + "329": _lt("Could not retrieve States List"), + "330": _lt("Could not retrieve UQC list"), + "331": _lt("Could not retrieve Error code"), + "334": _lt("Could not retrieve user details by userid "), + "336": _lt("Could not retrieve transporter data by gstin "), + "337": _lt("Could not retrieve HSN details for the given HSN number"), + "338": _lt("You cannot update transporter details, as the current tranporter is already entered Part B details of the eway bill"), + "339": _lt("You are not assigned to update the tranporter details of this eway bill"), + "341": _lt("This e-way bill is generated by you and hence you cannot reject it"), + "342": _lt("You cannot reject this e-way bill as you are not the other party to do so"), + "343": _lt("This e-way bill is cancelled"), + "344": _lt("Invalid eway bill number"), + "345": _lt("Validity period lapsed, you cannot reject the e-way bill"), + "346": _lt("You can reject the e-way bill only within 72 hours from generated time"), + "347": _lt("Validation of eway bill number failed, while rejecting ewaybill"), + "348": _lt("Part-B is not generated for this e-way bill, hence rejection is not allowed."), + "350": _lt("Could not generate consolidated eway bill"), + "351": _lt("Invalid state code"), + "352": _lt("Invalid rfid date"), + "353": _lt("Invalid location code"), + "354": _lt("Invalid rfid number"), + "355": _lt("Invalid Vehicle Number Format"), + "356": _lt("Invalid wt on bridge"), + "357": _lt("Could not retrieve eway bill details, pl. contact helpdesk"), + "358": _lt("GSTIN passed in request header is not matching with the user gstin mentioned in payload JSON"), + "359": _lt("User GSTIN should match to GSTIN(from) for outward transactions"), + "360": _lt("User GSTIN should match to GSTIN(to) for inward transactions"), + "361": _lt("Invalid Vehicle Type"), + "362": _lt("Transporter document date cannot be earlier than the invoice date"), + "363": _lt("E-way bill is not enabled for intra state movement for you state"), + "364": _lt("Error in verifying eway bill"), + "365": _lt("Error in verifying consolidated eway bill"), + "366": _lt("You will not get the ewaybills generated today, howerver you cann access the ewaybills of yester days"), + "367": _lt("Could not retrieve data for officer login"), + "368": _lt("Could not update transporter"), + "369": _lt("GSTIN/Transin passed in request header should match with the transported Id mentioned in payload JSON"), + "370": _lt("GSTIN/Transin passed in request header should not be the same as supplier(fromGSTIN) or recepient(toGSTIN)"), + "371": _lt("Invalid or Blank Supplier Ship-to State Code"), + "372": _lt("Invalid or Blank Consignee Ship-to State Code"), + "373": _lt("The Supplier ship-to state code should be Other Country for Sub Supply Type- Export"), + "374": _lt("The Consignee pin code should be 999999 for Sub Supply Type- Export"), + "375": _lt("The Supplier ship-from state code should be Other Country for Sub Supply Type- Import"), + "376": _lt("The Supplier pin code should be 999999 for Sub Supply Type- Import"), + "377": _lt("Sub Supply Type is mentioned as Others, the description for that is mandatory"), + "378": _lt("The supplier or conginee belong to SEZ, Inter state tax rates are applicable here"), + "379": _lt("Eway Bill can not be extended.. Already Cancelled"), + "380": _lt("Eway Bill Can not be Extended. Not in Active State"), + "381": _lt("There is No PART-B/Vehicle Entry.. So Please Update Vehicle Information.."), + "382": _lt("You Cannot Extend as EWB can be Extended only 8 hour before or after w.r.t Validity of EWB..!!"), + "383": _lt("Error While Extending..Please Contact Helpdesk. "), + "384": _lt("You are not current transporter or Generator of the ewayBill, with no transporter details."), + "385": _lt("For Rail/Ship/Air transDocDate is mandatory"), + "386": _lt("Reason Code, Remarks is mandatory."), + "387": _lt("No Record Found for Entered consolidated eWay bill."), + "388": _lt("Exception in regenration of consolidated eWayBill!!Please Contact helpdesk"), + "389": _lt("Remaining Distance Required"), + "390": _lt("Remaining Distance Can not be greater than Actual Distance."), + "391": _lt("No eway bill of specified tripsheet, neither ACTIVE nor not Valid."), + "392": _lt("Tripsheet is already cancelled, Hence Regeration is not possible"), + "393": _lt("Invalid GSTIN"), + "394": _lt("For other than Road Transport, TransDoc number is required"), + "395": _lt("Eway Bill Number should be numeric only"), + "396": _lt("Either Eway Bill Number Or Consolidated Eway Bill Number is required for Verification"), + "397": _lt("Error in Multi Vehicle Movement Initiation"), + "398": _lt("Eway Bill Item List is Empty"), + "399": _lt("Unit Code is not matching with any of the Unit Code from eway bill ItemList"), + "400": _lt("total quantity is exceeding from multi vehicle movement initiation quantity"), + "401": _lt("Error in inserting multi vehicle details"), + "402": _lt("total quantity can not be less than or equal to zero"), + "403": _lt("Error in multi vehicle details"), + "405": _lt("No record found for multi vehicle update with specified ewbNo groupNo and old vehicleNo/transDocNo with status as ACT"), + "406": _lt("Group number cannot be empty or zero"), + "407": _lt("Invalid old vehicle number format"), + "408": _lt("Invalid new vehicle number format"), + "409": _lt("Invalid old transDoc number"), + "410": _lt("Invalid new transDoc number"), + "411": _lt("Multi Vehicle Initiation data is not there for specified ewayBill and group No"), + "412": _lt("Multi Vehicle movement is already Initiated,hence PART B updation not allowed"), + "413": _lt("Unit Code is not matching with unit code of first initiaton"), + "415": _lt("Error in fetching in verification data for officer"), + "416": _lt("Date range is exceeding allowed date range "), + "417": _lt("No verification data found for officer "), + "418": _lt("No record found"), + "419": _lt("Error in fetching search result for taxpayer/transporter"), + "420": _lt("Minimum six character required for Tradename/legalname search"), + "421": _lt("Invalid pincode"), + "422": _lt("Invalid mobile number"), + "423": _lt("Error in fetching ewaybill list by vehicle number"), + "424": _lt("Invalid PAN number"), + "425": _lt("Error in fetching Part A data by IR Number"), + "426": _lt("For Vehicle Released vehicle release date and time is mandatory"), + "427": _lt("Error in saving Part-A verification Report"), + "428": _lt("For Goods Detained,Vehicle Released feild is mandatory"), + "429": _lt("Error in saving Part-B verification Report"), + "430": _lt("Goods Detained Field required."), + "431": _lt("Part-A for this ewaybill is already generated by you."), + "432": _lt("invalid vehicle released value"), + "433": _lt("invalid goods detained parameter value"), + "434": _lt("invalid ewbNoAvailable parameter value"), + "435": _lt("Part B is already updated,hence updation is not allowed"), + "436": _lt("Invalid Consignee ship to State Code for the given pincode"), + "437": _lt("Invalid Supplier ship from State Code for the given pincode"), + "438": _lt("Invalid Latitude"), + "439": _lt("Invalid Longitude"), + "440": _lt("Error in inserting in verification data"), + "441": _lt("Invalid verification type"), + "442": _lt("Error in inserting verification details"), + "443": _lt("invalid invoice available value"), + "444": _lt("This Ewaybill cannot be cancelled as it is generated from NIC1"), + "445": _lt("This Ewaybill cannot be cancelled as it is generated from NIC2"), + "446": _lt("Transport details cannot be updated here as it is generated from NIC1"), + "447": _lt("Transport details cannot be updated here as it is generated from NIC2"), + "448": _lt("Part B cannot be updated as this Ewaybill Part A is generated in NIC1"), + "449": _lt("Part B cannot be updated as this Ewaybill Part A is generated in NIC2"), + "452": _lt("Consolidate Ewaybill cannot be generated as this Ewaybill Part A is generated in NIC2"), + "600": _lt("Invalid category"), + "601": _lt("Invalid date format"), + "602": _lt("Invalid File Number"), + "603": _lt("For file details file number is required"), + "604": _lt("E-way bill(s) are already generated for the same document number, you cannot generate again on same document number"), + "607": _lt("dispatch from gstin is mandatary "), + "608": _lt("ship to from gstin is mandatary"), + "609": _lt(" invalid ship to from gstin "), + "610": _lt("invalid dispatch from gstin "), + "611": _lt("invalid document type for the given supply type "), + "612": _lt("Invalid transaction type"), + "613": _lt("Exception in getting Officer Role"), + "614": _lt("Transaction type is mandatory"), + "615": _lt("Dispatch From GSTIN cannot be sent as the transaction type selected is Regular"), + "616": _lt("Ship to GSTIN cannot be sent as the transaction type selected is Regular"), + "617": _lt("Bill-from and dispatch-from gstin should not be same for this transaction type"), + "618": _lt("Bill-to and ship-to gstin should not be same for this transaction type"), + "619": _lt("Transporter Id is mandatory for generation of Part A slip"), + "620": _lt("Total invoice value cannot be less than the sum of total assessible value and tax values"), + "621": _lt("Transport mode is mandatory since vehicle number is present"), + "622": _lt("Transport mode is mandatory since transport document number is present"), + "623": _lt("IGST value is not applicable for Intra State Transaction"), + "624": _lt("CGST/SGST value is not applicable for Inter State Transaction"), + "627": _lt("Total value should not be negative"), + "628": _lt("Total invoice value should not be negative"), + "629": _lt("IGST value should not be negative"), + "630": _lt("CGST value should not be negative"), + "631": _lt("SGST value should not be negative"), + "632": _lt("Cess value should not be negative"), + "633": _lt("Cess non advol should not be negative"), + "634": _lt("Vehicle type should not be ODC when transmode is other than road"), + "635": _lt("You cannot update part B, as the current tranporter is already entered Part B details of the eway bill"), + "636": _lt("You are not assigned to update part B"), + "637": _lt("You cannot extend ewaybill, as the current tranporter is already entered Part B details of the ewaybill"), + "638": _lt("Transport mode is mandatory as Vehicle Number/Transport Document Number is given"), + "640": _lt("Tolal Invoice value is mandatory"), + "641": _lt("For outward CKD/SKD/Lots supply type, Bill To state should be as Other Country, since the Bill To GSTIN given is of SEZ unit"), + "642": _lt("For inward CKD/SKD/Lots supply type, Bill From state should be as Other Country, since the Bill From GSTIN given is of SEZ unit"), + "643": _lt("For regular transaction, Bill from state code and Dispatch from state code should be same"), + "644": _lt("For regular transaction, Bill to state code and Ship to state code should be same"), + "645": _lt("You cannot do multivehicle movement, as the current tranporter is already entered Part B details of the ewaybill"), + "646": _lt("You are not assigned to do MultiVehicle Movement"), + "647": _lt("Could not insert RFID data, pl. contact helpdisk"), + "648": _lt("Multi Vehicle movement is already Initiated,hence generation of consolidated eway bill is not allowed"), + "649": _lt("You cannot generate consolidated eway bill , as the current tranporter is already entered Part B details of the eway bill"), + "650": _lt("You are not assigned to generate consolidated ewaybill"), + "651": _lt("For Category Part-A or Part-B ewbdt is mandatory"), + "652": _lt("For Category EWB03 procdt is mandatory"), + "654": _lt("This GSTIN has generated a common Enrolment Number. Hence you are not allowed to generate Eway bill"), + "655": _lt("This GSTIN has generated a common Enrolment Number. Hence you cannot mention it as a tranporter"), + "656": _lt("This Eway Bill does not belongs to your state"), + "657": _lt("Eway Bill Category wise details will be available after 4 days only"), + "658": _lt("You are blocked for accesing this API as the allowed number of requests has been exceeded for this duration"), + "659": _lt("Remarks is mandatory"), + "670": _lt("Invalid Month Parameter"), + "671": _lt("Invalid Year Parameter"), + "672": _lt("User Id is mandatory"), + "673": _lt("Error in getting officer dashboard"), + "675": _lt("Error in getting EWB03 details by acknowledgement date range"), + "676": _lt("Error in getting EWB Not Available List by entered date range"), + "677": _lt("Error in getting EWB Not Available List by closed date range"), + "678": _lt("Invalid Uniq No"), + "679": _lt("Invalid EWB03 Ack No"), + "680": _lt("Invalid Close Reason"), + "681": _lt("Error in Closing EWB Verification Data"), + "682": _lt("No Record available to Close"), + "683": _lt("Error in fetching WatchList Data"), + "685": _lt("Exception in fetching dashboard data"), + "700": _lt("You are not assigned to extend e-waybill"), + "701": _lt("Invalid Vehicle Direction"), + "702": _lt("The distance between the pincodes given is too high"), + "703": _lt("Since the consignor is Composite Taxpayer, inter state transactions are not allowed"), + "704": _lt("Since the consignor is Composite Taxpayer, Tax rates should be zero"), + "705": _lt("Invalid transit type"), + "706": _lt("Address Line1 is mandatory"), + "707": _lt("Address Line2 is mandatory"), + "708": _lt("Address Line3 is mandatory"), + "709": _lt("Pin to pin distance is not available for the given pin codes"), + "710": _lt("Invalid state code for the given pincode"), + "711": _lt("Invalid consignment status for the given transmode"), + "712": _lt("Transit Type is not required as the goods are in movement"), + "713": _lt("Transit Address is not required as the goods are in movement"), + "714": _lt("Document type - Tax Invoice is not allowed for composite tax payer"), + "715": _lt("The Consignor GSTIN is blocked from e-waybill generation as Return is not filed for past 2 months"), + "716": _lt("The Consignee GSTIN is blocked from e-waybill generation as Return is not filed for past 2 months"), + "717": _lt("The Transporter GSTIN is blocked from e-waybill generation as Return is not filed for past 2 months"), + "718": _lt("The User GSTIN is blocked from Transporter Updation as Return is not filed for past 2 months"), + "719": _lt("The Transporter GSTIN is blocked from Transporter Updation as Return is not filed for past 2 months"), + "720": _lt("E Way Bill should be generated as part of IRN generation or with reference to IRN in E Invoice System, Since Supplier is enabled for E Invoice."), + "721": _lt("The distance between the given pincodes are not available in the system. Please provide distance."), + "722": _lt("Consignee GSTIN is cancelled and document date is later than the De-Registration date"), + "724": _lt("HSN code of at least one item should be of goods to generate e-Way Bill"), + "726": _lt("Vehicle type can not be regular when transportation mode is ship"), + "727": _lt("This e-Way Bill does not have Oxygen items"), + "728": _lt("You can cancel the ewaybill within 24 hours from Part B entry"), + "801": _lt("Transporter id is not required for ewaybill for gold"), + "802": _lt("Transporter name is not required for ewaybill for gold"), + "803": _lt("TransDocNo is not required for ewaybill for gold"), + "804": _lt("TransDocDate is not required for ewaybill for gold"), + "805": _lt("Vehicle No is not required for ewaybill for gold"), + "806": _lt("Vehicle Type is not required for ewaybill for gold"), + "807": _lt("Transmode is mandatory for ewaybill for gold"), + "808": _lt("Inter-State ewaybill is not allowed for gold"), + "809": _lt("Other items are not allowed with eway bill for gold"), + "810": _lt("Transport can not be updated for EwayBill For Gold"), + "811": _lt("Vehicle can not be updated for EwayBill For Gold"), + "812": _lt("ConsolidatedEWB cannot be generated for EwayBill For Gold "), + "813": _lt("Duplicate request at the same time"), + "814": _lt("MultiVehicleMovement cannot be initiated for EWay Bill For Gold"), + "815": _lt("Only trans mode road is allowed for Eway Bill For Gold"), + "816": _lt("Only transmode road is allowed for extending ewaybill for gold"), + "817": _lt("MultiVehicleMovement cannot be initiated.Eway Bill is not in Active State"), + "818": _lt("Validity period lapsed.Cannot generate consolidated Eway Bill"), + "819": _lt("Ewaybill cannot be generated for the document date which is prior to 01/07/2017"), + "820": _lt("You cannot generate E Way Bill with document date earlier than 180 days"), + "821": _lt("E Way Bill cannot be extended as allowed limit is 360 days"), + "4043": _lt("You cannot generate E Way Bill with document date earlier than 180 days"), +} diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/ewaybill_type.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/ewaybill_type.py new file mode 100755 index 0000000..bf9e692 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/ewaybill_type.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models, _ + + +class EWayBillType(models.Model): + _name = "l10n.in.ewaybill.type" + _description = "E-Waybill Document Type" + + name = fields.Char("Type") + code = fields.Char("Type Code") + sub_type = fields.Char("Sub-type") + sub_type_code = fields.Char("Sub-type Code") + allowed_supply_type = fields.Selection( + [ + ("both", "Incoming and Outgoing"), + ("out", "Outgoing"), + ("in", "Incoming"), + ], + string="Allowed for supply type", + ) + active = fields.Boolean("Active", default=True) + + def name_get(self): + """Show name and sub_type in name""" + result_dict = dict() + for ewaybill_type in self: + name = ewaybill_type.name + name += _(" (Sub-Type: %s)", ewaybill_type.sub_type) + result_dict[ewaybill_type.id] = name + return list(result_dict.items()) diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/res_company.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/res_company.py new file mode 100755 index 0000000..427c97a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/res_company.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class ResCompany(models.Model): + _inherit = "res.company" + + l10n_in_edi_ewaybill_username = fields.Char("E-Waybill (IN) Username", groups="base.group_system") + l10n_in_edi_ewaybill_password = fields.Char("E-Waybill (IN) Password", groups="base.group_system") + l10n_in_edi_ewaybill_auth_validity = fields.Datetime("E-Waybill (IN) Valid Until", groups="base.group_system") + + def _l10n_in_edi_ewaybill_token_is_valid(self): + self.ensure_one() + if self.l10n_in_edi_ewaybill_auth_validity and self.l10n_in_edi_ewaybill_auth_validity > fields.Datetime.now(): + return True + return False diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/res_config_settings.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/res_config_settings.py new file mode 100755 index 0000000..e011680 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/models/res_config_settings.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, fields, _ +from odoo.exceptions import UserError +from odoo.tools import html_escape + + +class ResConfigSettings(models.TransientModel): + _inherit = "res.config.settings" + + l10n_in_edi_ewaybill_username = fields.Char("Indian EDI Stock username", + related="company_id.l10n_in_edi_ewaybill_username", readonly=False) + l10n_in_edi_ewaybill_password = fields.Char("Indian EDI Stock password", + related="company_id.l10n_in_edi_ewaybill_password", readonly=False) + + def l10n_in_edi_ewaybill_test(self): + self.l10n_in_check_gst_number() + response = self.env["account.edi.format"]._l10n_in_edi_ewaybill_authenticate(self.company_id) + if response.get("error") or not self.company_id.sudo()._l10n_in_edi_ewaybill_token_is_valid(): + error_message = _("Incorrect username or password, or the GST number on company does not match.") + if response.get("error"): + error_message = "\n".join(["[%s] %s" % (e.get("code"), html_escape(e.get("message"))) for e in response["error"]]) + raise UserError(error_message) + return { + 'type': 'ir.actions.client', + 'tag': 'display_notification', + 'params': { + 'type': 'info', + 'sticky': False, + 'message': _("API credentials validated successfully"), + } + } diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/security/ir.model.access.csv b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/security/ir.model.access.csv new file mode 100755 index 0000000..6861e13 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +l10n_in_edi_ewaybill.access_l10n_in_ewaybill_type,access_l10n_in_ewaybill_type,l10n_in_edi_ewaybill.model_l10n_in_ewaybill_type,base.group_user,1,0,0,0 diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/tests/__init__.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/tests/__init__.py new file mode 100644 index 0000000..711dc50 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/tests/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import test_edi_ewaybill_json diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/tests/test_edi_ewaybill_json.py b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/tests/test_edi_ewaybill_json.py new file mode 100644 index 0000000..11f4a87 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/tests/test_edi_ewaybill_json.py @@ -0,0 +1,183 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo.addons.l10n_in_edi.tests.test_edi_json import TestEdiJson +from odoo.tests import tagged + + +@tagged("post_install_l10n", "post_install", "-at_install") +class TestEdiEwaybillJson(TestEdiJson): + + def test_edi_json(self): + self.env['account.move'].browse(( + self.invoice.id, + self.invoice_full_discount.id, + self.invoice_zero_qty.id, + self.invoice_reverse.id, + )).write({ + "l10n_in_type_id": self.env.ref("l10n_in_edi_ewaybill.type_tax_invoice_sub_type_supply"), + "l10n_in_distance": 20, + "l10n_in_mode": "1", + "l10n_in_vehicle_no": "GJ11AA1234", + "l10n_in_vehicle_type": "R", + }) + json_value = self.env["account.edi.format"]._l10n_in_edi_ewaybill_generate_json(self.invoice) + expected = { + "supplyType": "O", + "docType": "INV", + "subSupplyType": "1", + "transactionType": 1, + "transDistance": "20", + "transMode": "1", + "vehicleNo": "GJ11AA1234", + "vehicleType": "R", + "docNo": "INV/2019/00001", + "docDate": "01/01/2019", + "fromGstin": "36AABCT1332L011", + "fromTrdName": "company_1_data", + "fromAddr1": "Block no. 401", + "fromAddr2": "Street 2", + "fromPlace": "City 1", + "fromPincode": 500001, + "fromStateCode": 36, + "actFromStateCode": 36, + "toGstin": "36BBBFF5679L8ZR", + "toTrdName": "partner_a", + "toAddr1": "Block no. 401", + "toAddr2": "Street 2", + "toPlace": "City 2", + "toPincode": 500001, + "actToStateCode": 36, + "toStateCode": 36, + "itemList": [ + { + "productName": "product_a", + "hsnCode": "01111", + "productDesc": "product_a", + "quantity": 1.0, + "qtyUnit": "UNT", + "taxableAmount": 900.0, + "cgstRate": 2.5, + "sgstRate": 2.5 + }, + { + "productName": "product_with_cess", + "hsnCode": "02222", + "productDesc": "product_with_cess", + "quantity": 1.0, + "qtyUnit": "UNT", + "taxableAmount": 900.0, + "cgstRate": 6.0, + "sgstRate": 6.0, + "cessRate": 5.0 + } + ], + "totalValue": 1800.0, + "cgstValue": 76.5, + "sgstValue": 76.5, + "igstValue": 0.0, + "cessValue": 45.0, + "cessNonAdvolValue": 1.59, + "otherValue": 0.0, + "totInvValue": 1999.59 + } + self.assertDictEqual(json_value, expected, "Indian EDI send json value is not matched") + + # =================================== Different UOM Test =========================================== + self.invoice.button_draft() + self.invoice.invoice_line_ids.product_uom_id = self.env.ref('uom.product_uom_dozen') + self.invoice.action_post() + json_value = self.env["account.edi.format"]._l10n_in_edi_ewaybill_generate_json(self.invoice) + self.assertListEqual( + json_value['itemList'], + [ + { + "productName": "product_a", + "hsnCode": "01111", + "productDesc": "product_a", + "quantity": 1.0, + "qtyUnit": "DOZ", + "taxableAmount": 900.0 * 12, + "cgstRate": 2.5, + "sgstRate": 2.5 + }, + { + "productName": "product_with_cess", + "hsnCode": "02222", + "productDesc": "product_with_cess", + "quantity": 1.0, + "qtyUnit": "DOZ", + "taxableAmount": 900.0 * 12, + "cgstRate": 6.0, + "sgstRate": 6.0, + "cessRate": 5.0 + } + ], + "Indian EDI send json UOM value is not matched" + ) + + # =================================== Credit Note Test ============================================= + credit_note_expected = expected.copy() + credit_note_expected.update({ + 'docDate': '25/12/2023', + 'docNo': 'RINV/2023/00001', + 'supplyType': 'I', + "fromGstin": expected['toGstin'], + "fromTrdName": expected['toTrdName'], + "fromAddr1": expected['toAddr1'], + "fromAddr2": expected['toAddr2'], + "fromPlace": expected['toPlace'], + "fromPincode": expected['toPincode'], + "fromStateCode": expected['toStateCode'], + "actFromStateCode": expected['actToStateCode'], + "toGstin": expected['fromGstin'], + "toTrdName": expected['fromTrdName'], + "toAddr1": expected['fromAddr1'], + "toAddr2": expected['fromAddr2'], + "toPlace": expected['fromPlace'], + "toPincode": expected['fromPincode'], + "toStateCode": expected['fromStateCode'], + "actToStateCode": expected['actFromStateCode'], + }) + self.assertDictEqual( + self.env.ref( + 'l10n_in_edi_ewaybill.edi_in_ewaybill_json_1_03' + )._l10n_in_edi_ewaybill_generate_json(self.invoice_reverse), + credit_note_expected, + ) + + #=================================== Full discount test ===================================== + json_value = self.env["account.edi.format"]._l10n_in_edi_ewaybill_generate_json(self.invoice_full_discount) + expected.update({ + "docNo": "INV/2019/00002", + "itemList": [{ + "productName": "product_a", "hsnCode": "01111", "productDesc": "product_a", "quantity": 1.0, + "qtyUnit": "UNT", "taxableAmount": 0.0, "cgstRate": 0.0, "sgstRate": 0.0, 'igstRate': 0.0, + }], + "totalValue": 0.0, + "cgstValue": 0.0, + "sgstValue": 0.0, + "igstValue": 0.0, + "cessValue": 0.0, + "cessNonAdvolValue": 0.00, + "otherValue": 0.0, + "totInvValue": 0.0 + }) + self.assertDictEqual(json_value, expected, "Indian EDI with 100% discount sent json value is not matched") + + #=================================== Zero quantity test ============================================= + json_value = self.env["account.edi.format"]._l10n_in_edi_ewaybill_generate_json(self.invoice_zero_qty) + expected.update({ + "docNo": "INV/2019/00003", + "itemList": [{ + "productName": "product_a", "hsnCode": "01111", "productDesc": "product_a", "quantity": 0.0, + "qtyUnit": "UNT", "taxableAmount": 0.0, "cgstRate": 0.0, "sgstRate": 0.0, 'igstRate': 0.0, + }], + "totalValue": 0.0, + "cgstValue": 0.0, + "sgstValue": 0.0, + "igstValue": 0.0, + "cessValue": 0.0, + "cessNonAdvolValue": 0.00, + "otherValue": 0.0, + "totInvValue": 0.0 + }) + self.assertDictEqual(json_value, expected, "Indian EDI with 0(zero) quantity sent json value is not matched") diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/views/account_move_views.xml b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/views/account_move_views.xml new file mode 100755 index 0000000..2226f94 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/l10n_in_edi_ewaybill/views/account_move_views.xml @@ -0,0 +1,52 @@ + + + + account.move.form.inherit.l10n.in.ewaybill + account.move + + + + +
    +
    +
    + + + + +
    +
    +
    diff --git a/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/pyproject.toml b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/pyproject.toml new file mode 100644 index 0000000..830c82e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_edi_ewaybill/pyproject.toml @@ -0,0 +1,42 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_in_edi_ewaybill" +version = "16.0.0" +description = "Indian - E-waybill - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-l10n_in_edi>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_in_edi_ewaybill"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/README.md b/odoo-bringout-oca-ocb-l10n_in_pos/README.md new file mode 100644 index 0000000..62d6d49 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/README.md @@ -0,0 +1,47 @@ +# Indian - Point of Sale + +GST Point of Sale + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_pos +``` + +## Dependencies + +This addon depends on: +- l10n_in +- point_of_sale + +## Manifest Information + +- **Name**: Indian - Point of Sale +- **Version**: 1.0 +- **Category**: Accounting/Localizations/Point of Sale +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_in_pos`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/ARCHITECTURE.md new file mode 100644 index 0000000..347750a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_in_pos Module - l10n_in_pos + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/CONFIGURATION.md new file mode 100644 index 0000000..afebc32 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_in_pos. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/DEPENDENCIES.md new file mode 100644 index 0000000..71c7a7d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [l10n_in](../../odoo-bringout-oca-ocb-l10n_in) +- [point_of_sale](../../odoo-bringout-oca-ocb-point_of_sale) diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/FAQ.md new file mode 100644 index 0000000..58d4e0f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_in_pos or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/INSTALL.md new file mode 100644 index 0000000..e37a68a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_pos" +# or +uv pip install odoo-bringout-oca-ocb-l10n_in_pos" +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/MODELS.md new file mode 100644 index 0000000..4898602 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/MODELS.md @@ -0,0 +1,14 @@ +# Models + +Detected core models and extensions in l10n_in_pos. + +```mermaid +classDiagram + class pos_config + class pos_order + class pos_session +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/OVERVIEW.md new file mode 100644 index 0000000..2746a66 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_in_pos. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_in_pos +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/USAGE.md new file mode 100644 index 0000000..b94a6cf --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_in_pos +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_in_pos/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/__init__.py b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/__init__.py new file mode 100644 index 0000000..dc5e6b6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/__manifest__.py b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/__manifest__.py new file mode 100644 index 0000000..c3e6481 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/__manifest__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'Indian - Point of Sale', + 'icon': '/l10n_in/static/description/icon.png', + 'version': '1.0', + 'description': """GST Point of Sale""", + 'category': 'Accounting/Localizations/Point of Sale', + 'depends': [ + 'l10n_in', + 'point_of_sale' + ], + 'demo': [ + 'data/product_demo.xml', + ], + 'auto_install': True, + 'assets': { + 'point_of_sale.assets': [ + 'l10n_in_pos/static/src/js/**/*', + 'l10n_in_pos/static/src/xml/**/*', + ], + }, + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/data/product_demo.xml b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/data/product_demo.xml new file mode 100644 index 0000000..29d8aeb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/data/product_demo.xml @@ -0,0 +1,57 @@ + + + + 9403 + Other furniture and parts thereof. + + + 9403 + Other furniture and parts thereof. + + + 8539.50.00 + Light-emitting diode (LED) lamps + + + 4819.60.00 + Box files, letter trays, storage boxes and similar articles, of a kind used in offices, shops or the like + + + 3921.90.99 + Other plates, sheets film , foil and strip, of plastics + + + 8443.32.90 + Other, capable of connecting to an automatic data processing machine or to a network + + + 9403 + Other furniture and parts thereof. + + + 9403.10.90 + Metal furniture of a kind used in offices + + + 9403.10.90 + Metal furniture of a kind used in offices + + + 8209.00.90 + Plates, sticks, tips and the like for tools, unmounted, of cermets. + + + 9403.10.90 + Metal furniture of a kind used in offices + + + 3926.10.99 + Office supplies of a kind classified as stationary other than pins,clips, and writing instruments + + + 9608 + Ball point pens; felt tipped and other porous-tipped pens and markers; fountain pens, stylograph pens and other pens; duplicating stylos; propelling or sliding pencils; pen-holders, pencilholders and similar holders; parts (including caps and clips) of the foregoing articles, othe than those of heading 9609 + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/i18n/l10n_in_pos.pot b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/i18n/l10n_in_pos.pot new file mode 100644 index 0000000..34ee4cd --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/i18n/l10n_in_pos.pot @@ -0,0 +1,54 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_in_pos +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-06-12 07:24+0000\n" +"PO-Revision-Date: 2023-06-12 07:24+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_in_pos +#: code:addons/l10n_in_pos/models/pos_config.py:0 +#, python-format +msgid "Go to Company configuration" +msgstr "" + +#. module: l10n_in_pos +#. openerp-web +#: code:addons/l10n_in_pos/static/src/xml/pos_receipt.xml:0 +#, python-format +msgid "HSN Code:" +msgstr "" + +#. module: l10n_in_pos +#. openerp-web +#: code:addons/l10n_in_pos/static/src/xml/pos_receipt.xml:0 +#, python-format +msgid "Phone:" +msgstr "" + +#. module: l10n_in_pos +#: model:ir.model,name:l10n_in_pos.model_pos_config +msgid "Point of Sale Configuration" +msgstr "" + +#. module: l10n_in_pos +#: model:ir.model,name:l10n_in_pos.model_pos_order +msgid "Point of Sale Orders" +msgstr "" + +#. module: l10n_in_pos +#: code:addons/l10n_in_pos/models/pos_config.py:0 +#, python-format +msgid "" +"Your company %s needs to have a correct address in order to open the session.\n" +"Set the address of your company (Don't forget the State field)" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/__init__.py b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/__init__.py new file mode 100644 index 0000000..d1d0d79 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import pos_order +from . import pos_session +from . import pos_config diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/pos_config.py b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/pos_config.py new file mode 100644 index 0000000..ad3159d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/pos_config.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo import models +from odoo.exceptions import RedirectWarning +from odoo.tools.translate import _ + + +class PosConfig(models.Model): + _inherit = 'pos.config' + + def open_ui(self): + for config in self: + if config.company_id.country_id.code == 'IN' and not config.company_id.state_id: + msg = _("Your company %s needs to have a correct address in order to open the session.\n" + "Set the address of your company (Don't forget the State field)") % (config.company_id.name) + action = { + "view_mode": "form", + "res_model": "res.company", + "type": "ir.actions.act_window", + "res_id" : config.company_id.id, + "views": [[self.env.ref("base.view_company_form").id, "form"]], + } + raise RedirectWarning(msg, action, _('Go to Company configuration')) + return super(PosConfig, self).open_ui() diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/pos_order.py b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/pos_order.py new file mode 100644 index 0000000..b9daabc --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/pos_order.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models + + +class PosOrder(models.Model): + _inherit = 'pos.order' + + def _prepare_invoice_vals(self): + vals = super()._prepare_invoice_vals() + if self.session_id.company_id.country_id.code == 'IN': + partner = self.partner_id + l10n_in_gst_treatment = partner.l10n_in_gst_treatment + if not l10n_in_gst_treatment and partner.country_id and partner.country_id.code != 'IN': + l10n_in_gst_treatment = 'overseas' + if not l10n_in_gst_treatment: + l10n_in_gst_treatment = partner.vat and 'regular' or 'consumer' + vals['l10n_in_gst_treatment'] = l10n_in_gst_treatment + return vals diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/pos_session.py b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/pos_session.py new file mode 100644 index 0000000..1161e1b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/models/pos_session.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models + + +class PosSession(models.Model): + _inherit = 'pos.session' + + def _loader_params_product_product(self): + result = super()._loader_params_product_product() + result['search_params']['fields'].append('l10n_in_hsn_code') + return result diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/static/src/js/receipt.js b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/static/src/js/receipt.js new file mode 100644 index 0000000..94ef5e5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/static/src/js/receipt.js @@ -0,0 +1,17 @@ +odoo.define('l10n_in_pos.receipt', function (require) { +"use strict"; + +var { Orderline } = require('point_of_sale.models'); +const Registries = require('point_of_sale.Registries'); + + +const L10nInOrderline = (Orderline) => class L10nInOrderline extends Orderline { + export_for_printing() { + var line = super.export_for_printing(...arguments); + line.l10n_in_hsn_code = this.get_product().l10n_in_hsn_code; + return line; + } +} +Registries.Model.extend(Orderline, L10nInOrderline); + +}); diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/static/src/xml/pos_receipt.xml b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/static/src/xml/pos_receipt.xml new file mode 100644 index 0000000..ea461cc --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/l10n_in_pos/static/src/xml/pos_receipt.xml @@ -0,0 +1,30 @@ + + + + + +
    +
    + +
    + Phone: + +
    +
    +
    +
    +
    +
    +
    + + + + +
    + HSN Code: + +
    +
    +
    +
    +
    diff --git a/odoo-bringout-oca-ocb-l10n_in_pos/pyproject.toml b/odoo-bringout-oca-ocb-l10n_in_pos/pyproject.toml new file mode 100644 index 0000000..65b79fb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_pos/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_in_pos" +version = "16.0.0" +description = "Indian - Point of Sale - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-l10n_in>=16.0.0", + "odoo-bringout-oca-ocb-point_of_sale>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_in_pos"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/README.md b/odoo-bringout-oca-ocb-l10n_in_sale/README.md new file mode 100644 index 0000000..1a62272 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/README.md @@ -0,0 +1,47 @@ +# Indian - Sale Report(GST) + +GST Sale Report + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_sale +``` + +## Dependencies + +This addon depends on: +- l10n_in +- sale + +## Manifest Information + +- **Name**: Indian - Sale Report(GST) +- **Version**: 1.0 +- **Category**: Accounting/Localizations/Sale +- **License**: LGPL-3 +- **Installable**: True + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_in_sale`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/ARCHITECTURE.md new file mode 100644 index 0000000..fa3faf0 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_in_sale Module - l10n_in_sale + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/CONFIGURATION.md new file mode 100644 index 0000000..f4a6bd8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_in_sale. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/DEPENDENCIES.md new file mode 100644 index 0000000..64753d7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [l10n_in](../../odoo-bringout-oca-ocb-l10n_in) +- [sale](../../odoo-bringout-oca-ocb-sale) diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/FAQ.md new file mode 100644 index 0000000..bd85a77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_in_sale or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/INSTALL.md new file mode 100644 index 0000000..d2b5a07 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_sale" +# or +uv pip install odoo-bringout-oca-ocb-l10n_in_sale" +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/MODELS.md new file mode 100644 index 0000000..29b60e1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/MODELS.md @@ -0,0 +1,12 @@ +# Models + +Detected core models and extensions in l10n_in_sale. + +```mermaid +classDiagram + class sale_order +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/OVERVIEW.md new file mode 100644 index 0000000..3522435 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_in_sale. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_in_sale +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/USAGE.md new file mode 100644 index 0000000..d2df78a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_in_sale +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_in_sale/doc/WIZARDS.md new file mode 100644 index 0000000..edd44f8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/doc/WIZARDS.md @@ -0,0 +1,8 @@ +# Wizards + +Transient models exposed as UI wizards in l10n_in_sale. + +```mermaid +classDiagram + class SaleAdvancePaymentInv +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/__init__.py b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/__init__.py new file mode 100644 index 0000000..2ae6446 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models +from . import wizard diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/__manifest__.py b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/__manifest__.py new file mode 100644 index 0000000..d9ee709 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/__manifest__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'Indian - Sale Report(GST)', + 'icon': '/l10n_in/static/description/icon.png', + 'version': '1.0', + 'description': """GST Sale Report""", + 'category': 'Accounting/Localizations/Sale', + 'depends': [ + 'l10n_in', + 'sale', + ], + 'data': [ + 'views/report_sale_order.xml', + 'views/sale_views.xml', + ], + 'demo': [ + 'data/product_demo.xml', + ], + 'installable': True, + 'auto_install': True, + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/data/product_demo.xml b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/data/product_demo.xml new file mode 100644 index 0000000..ad3d590 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/data/product_demo.xml @@ -0,0 +1,9 @@ + + + + 8303.00.00 + Armoured or reinforced safes, strong boxes and doors and safe deposit lockers for strong rooms, cash or deed boxes and the like, of base metal + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/models/__init__.py b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/models/__init__.py new file mode 100644 index 0000000..00b62d5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import sale_order diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/models/sale_order.py b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/models/sale_order.py new file mode 100644 index 0000000..5fbfdee --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/models/sale_order.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models + + +class SaleOrder(models.Model): + _inherit = "sale.order" + + l10n_in_reseller_partner_id = fields.Many2one('res.partner', + string='Reseller', domain="[('vat', '!=', False), '|', ('company_id', '=', False), ('company_id', '=', company_id)]", readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}) + l10n_in_journal_id = fields.Many2one('account.journal', string="Journal", compute="_compute_l10n_in_journal_id", store=True, readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}) + l10n_in_gst_treatment = fields.Selection([ + ('regular', 'Registered Business - Regular'), + ('composition', 'Registered Business - Composition'), + ('unregistered', 'Unregistered Business'), + ('consumer', 'Consumer'), + ('overseas', 'Overseas'), + ('special_economic_zone', 'Special Economic Zone'), + ('deemed_export', 'Deemed Export'), + ('uin_holders', 'UIN Holders'), + ], string="GST Treatment", readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]}, compute="_compute_l10n_in_gst_treatment", store=True) + + @api.depends('partner_id') + def _compute_l10n_in_gst_treatment(self): + for order in self: + # set default value as False so CacheMiss error never occurs for this field. + order.l10n_in_gst_treatment = False + if order.country_code == 'IN': + l10n_in_gst_treatment = order.partner_id.l10n_in_gst_treatment + if not l10n_in_gst_treatment and order.partner_id.country_id and order.partner_id.country_id.code != 'IN': + l10n_in_gst_treatment = 'overseas' + if not l10n_in_gst_treatment: + l10n_in_gst_treatment = order.partner_id.vat and 'regular' or 'consumer' + order.l10n_in_gst_treatment = l10n_in_gst_treatment + + @api.depends('company_id') + def _compute_l10n_in_journal_id(self): + for order in self: + if order._origin and order._origin.company_id == order.company_id and order.l10n_in_journal_id.company_id == order.company_id: + continue + # set default value as False so CacheMiss error never occurs for this field. + order.l10n_in_journal_id = False + if order.country_code == 'IN': + domain = [('company_id', '=', order.company_id.id), ('type', '=', 'sale')] + journal = self.env['account.journal'].search(domain, limit=1) + if journal: + order.l10n_in_journal_id = journal.id + + + def _prepare_invoice(self): + invoice_vals = super(SaleOrder, self)._prepare_invoice() + if self.country_code == 'IN': + invoice_vals['l10n_in_reseller_partner_id'] = self.l10n_in_reseller_partner_id.id + if self.l10n_in_journal_id: + invoice_vals['journal_id'] = self.l10n_in_journal_id.id + invoice_vals['l10n_in_gst_treatment'] = self.l10n_in_gst_treatment + return invoice_vals diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/views/report_sale_order.xml b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/views/report_sale_order.xml new file mode 100644 index 0000000..4494435 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/views/report_sale_order.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/views/sale_views.xml b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/views/sale_views.xml new file mode 100644 index 0000000..da8a831 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/views/sale_views.xml @@ -0,0 +1,20 @@ + + + + sale.order.form.inherit.l10n.in.sale + sale.order + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/wizard/__init__.py b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/wizard/__init__.py new file mode 100644 index 0000000..46b1c60 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/wizard/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import sale_make_invoice_advance diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/wizard/sale_make_invoice_advance.py b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/wizard/sale_make_invoice_advance.py new file mode 100644 index 0000000..f22ba44 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/l10n_in_sale/wizard/sale_make_invoice_advance.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models + + +class SaleAdvancePaymentInv(models.TransientModel): + _inherit = "sale.advance.payment.inv" + + def _prepare_invoice_values(self, order, so_line): + res = super()._prepare_invoice_values(order, so_line) + if order.l10n_in_journal_id: + res['journal_id'] = order.l10n_in_journal_id.id + if order.country_code == 'IN': + res['l10n_in_gst_treatment'] = order.l10n_in_gst_treatment + if order.l10n_in_reseller_partner_id: + res['l10n_in_reseller_partner_id'] = order.l10n_in_reseller_partner_id + return res diff --git a/odoo-bringout-oca-ocb-l10n_in_sale/pyproject.toml b/odoo-bringout-oca-ocb-l10n_in_sale/pyproject.toml new file mode 100644 index 0000000..a4c289c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_in_sale" +version = "16.0.0" +description = "Indian - Sale Report(GST) - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-l10n_in>=16.0.0", + "odoo-bringout-oca-ocb-sale>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_in_sale"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/README.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/README.md new file mode 100644 index 0000000..2bcd9e2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/README.md @@ -0,0 +1,52 @@ +# India Sales and Warehouse Management + + + Define default sales journal on the warehouse, + help you to choose correct sales journal on the sales order when + you change the warehouse. + useful when you setup the multiple GSTIN units. + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_sale_stock +``` + +## Dependencies + +This addon depends on: +- l10n_in_sale +- l10n_in_stock + +## Manifest Information + +- **Name**: India Sales and Warehouse Management +- **Version**: 0.1 +- **Category**: Accounting/Localizations/Sale +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_in_sale_stock`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/ARCHITECTURE.md new file mode 100644 index 0000000..fff7c15 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_in_sale_stock Module - l10n_in_sale_stock + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/CONFIGURATION.md new file mode 100644 index 0000000..928260d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_in_sale_stock. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/DEPENDENCIES.md new file mode 100644 index 0000000..68f0720 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [l10n_in_sale](../../odoo-bringout-oca-ocb-l10n_in_sale) +- [l10n_in_stock](../../odoo-bringout-oca-ocb-l10n_in_stock) diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/FAQ.md new file mode 100644 index 0000000..fefb941 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_in_sale_stock or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/INSTALL.md new file mode 100644 index 0000000..610ebe5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_sale_stock" +# or +uv pip install odoo-bringout-oca-ocb-l10n_in_sale_stock" +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/MODELS.md new file mode 100644 index 0000000..78d8b52 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/MODELS.md @@ -0,0 +1,14 @@ +# Models + +Detected core models and extensions in l10n_in_sale_stock. + +```mermaid +classDiagram + class account_move + class sale_order + class stock_warehouse +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/OVERVIEW.md new file mode 100644 index 0000000..67d3e4b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_in_sale_stock. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_in_sale_stock +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/USAGE.md new file mode 100644 index 0000000..b3eddd9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_in_sale_stock +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/__init__.py b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/__init__.py new file mode 100644 index 0000000..dc5e6b6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/__manifest__.py b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/__manifest__.py new file mode 100644 index 0000000..de66aa3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/__manifest__.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': "India Sales and Warehouse Management", + 'icon': '/l10n_in/static/description/icon.png', + + 'summary': """ + Define default sales journal on the warehouse""", + + 'description': """ + Define default sales journal on the warehouse, + help you to choose correct sales journal on the sales order when + you change the warehouse. + useful when you setup the multiple GSTIN units. + """, + + 'author': "Odoo", + 'website': "https://www.odoo.com", + 'category': 'Accounting/Localizations/Sale', + 'version': '0.1', + + 'depends': ['l10n_in_sale', 'l10n_in_stock'], + + 'data': [ + 'views/stock_warehouse_views.xml', + ], + 'auto_install': True, + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/__init__.py b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/__init__.py new file mode 100644 index 0000000..6100d5b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import sale_order +from . import stock_warehouse +from . import account_move diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/account_move.py b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/account_move.py new file mode 100644 index 0000000..af51072 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/account_move.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models + + +class AccountMove(models.Model): + _inherit = "account.move" + + def _l10n_in_get_warehouse_address(self): + res = super()._l10n_in_get_warehouse_address() + if self.invoice_line_ids.sale_line_ids: + company_shipping_id = self.mapped("invoice_line_ids.sale_line_ids.order_id.warehouse_id.partner_id") + if len(company_shipping_id) == 1: + return company_shipping_id + return res diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/sale_order.py b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/sale_order.py new file mode 100644 index 0000000..34ba84e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/sale_order.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, fields, api + + +class SaleOrder(models.Model): + _inherit = "sale.order" + + @api.depends('company_id', 'warehouse_id') + def _compute_l10n_in_journal_id(self): + super()._compute_l10n_in_journal_id() + for order in self: + if order.country_code == 'IN': + if order.warehouse_id.l10n_in_sale_journal_id: + order.l10n_in_journal_id = order.warehouse_id.l10n_in_sale_journal_id.id diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/stock_warehouse.py b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/stock_warehouse.py new file mode 100644 index 0000000..190e0b2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/models/stock_warehouse.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models, fields, api + + +class Stock(models.Model): + _inherit = 'stock.warehouse' + + l10n_in_sale_journal_id = fields.Many2one('account.journal', string="Sale Journal") diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/views/stock_warehouse_views.xml b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/views/stock_warehouse_views.xml new file mode 100644 index 0000000..0329dc0 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/l10n_in_sale_stock/views/stock_warehouse_views.xml @@ -0,0 +1,13 @@ + + + + stock.warehouse.form.inherit.l10n.in.stock + stock.warehouse + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_sale_stock/pyproject.toml b/odoo-bringout-oca-ocb-l10n_in_sale_stock/pyproject.toml new file mode 100644 index 0000000..fb4d988 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_sale_stock/pyproject.toml @@ -0,0 +1,44 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_in_sale_stock" +version = "16.0.0" +description = "India Sales and Warehouse Management - + Define default sales journal on the warehouse" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-l10n_in_sale>=16.0.0", + "odoo-bringout-oca-ocb-l10n_in_stock>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_in_sale_stock"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/README.md b/odoo-bringout-oca-ocb-l10n_in_stock/README.md new file mode 100644 index 0000000..4cd97cf --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/README.md @@ -0,0 +1,47 @@ +# Indian - Stock Report(GST) + +GST Stock Report + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_stock +``` + +## Dependencies + +This addon depends on: +- l10n_in +- stock + +## Manifest Information + +- **Name**: Indian - Stock Report(GST) +- **Version**: 1.0 +- **Category**: Accounting/Localizations +- **License**: LGPL-3 +- **Installable**: True + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_in_stock`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/ARCHITECTURE.md new file mode 100644 index 0000000..83991ff --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_in_stock Module - l10n_in_stock + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/CONFIGURATION.md new file mode 100644 index 0000000..6663d83 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_in_stock. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/DEPENDENCIES.md new file mode 100644 index 0000000..7bf9e72 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [l10n_in](../../odoo-bringout-oca-ocb-l10n_in) +- [stock](../../odoo-bringout-oca-ocb-stock) diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/FAQ.md new file mode 100644 index 0000000..bb088c3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_in_stock or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/INSTALL.md new file mode 100644 index 0000000..a6f631e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_stock" +# or +uv pip install odoo-bringout-oca-ocb-l10n_in_stock" +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/MODELS.md new file mode 100644 index 0000000..eaa0ab6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/MODELS.md @@ -0,0 +1,12 @@ +# Models + +Detected core models and extensions in l10n_in_stock. + +```mermaid +classDiagram + class stock_picking +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/OVERVIEW.md new file mode 100644 index 0000000..42f3d67 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_in_stock. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_in_stock +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/USAGE.md new file mode 100644 index 0000000..762e065 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_in_stock +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_in_stock/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/__init__.py b/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/__init__.py new file mode 100644 index 0000000..dc5e6b6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/__manifest__.py b/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/__manifest__.py new file mode 100644 index 0000000..bc47e5b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/__manifest__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'Indian - Stock Report(GST)', + 'icon': '/l10n_in/static/description/icon.png', + 'version': '1.0', + 'description': """GST Stock Report""", + 'category': 'Accounting/Localizations', + 'depends': [ + 'l10n_in', + 'stock', + ], + 'data': [ + 'views/report_stockpicking_operations.xml', + ], + 'demo': [ + 'data/product_demo.xml', + ], + 'installable': True, + 'auto_install': True, + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/data/product_demo.xml b/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/data/product_demo.xml new file mode 100644 index 0000000..52d4c17 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/data/product_demo.xml @@ -0,0 +1,8 @@ + + + + 4819.60.00 + Box files, letter trays, storage boxes and similar articles, of a kind used in offices, shops or the like + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/models/__init__.py b/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/models/__init__.py new file mode 100644 index 0000000..b263780 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding:utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import stock_picking diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/models/stock_picking.py b/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/models/stock_picking.py new file mode 100644 index 0000000..ec0f5c1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/models/stock_picking.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models + + +class StockPicking(models.Model): + _inherit = 'stock.picking' + + def _should_generate_commercial_invoice(self): + super(StockPicking, self)._should_generate_commercial_invoice() + return True diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/views/report_stockpicking_operations.xml b/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/views/report_stockpicking_operations.xml new file mode 100644 index 0000000..5c8de46 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/l10n_in_stock/views/report_stockpicking_operations.xml @@ -0,0 +1,10 @@ + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_stock/pyproject.toml b/odoo-bringout-oca-ocb-l10n_in_stock/pyproject.toml new file mode 100644 index 0000000..5e27fbd --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_stock/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_in_stock" +version = "16.0.0" +description = "Indian - Stock Report(GST) - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-l10n_in>=16.0.0", + "odoo-bringout-oca-ocb-stock>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_in_stock"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/README.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/README.md new file mode 100644 index 0000000..21a4953 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/README.md @@ -0,0 +1,51 @@ +# Indian - TCS/TDS Accounting Report and Taxes + + +Tax Report TCS/TDS for India +==================================== + +This module adds TCS and TDS Tax Report and load related Taxes in Indian Company. + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_tcs_tds +``` + +## Dependencies + +This addon depends on: +- l10n_in + +## Manifest Information + +- **Name**: Indian - TCS/TDS Accounting Report and Taxes +- **Version**: 1.0 +- **Category**: Accounting/Localizations/Reporting +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_in_tcs_tds`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/ARCHITECTURE.md new file mode 100644 index 0000000..96086de --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_in_tcs_tds Module - l10n_in_tcs_tds + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/CONFIGURATION.md new file mode 100644 index 0000000..a18f16a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_in_tcs_tds. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/DEPENDENCIES.md new file mode 100644 index 0000000..cd0fae6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [l10n_in](../../odoo-bringout-oca-ocb-l10n_in) diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/FAQ.md new file mode 100644 index 0000000..1594894 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_in_tcs_tds or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/INSTALL.md new file mode 100644 index 0000000..90a4238 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_tcs_tds" +# or +uv pip install odoo-bringout-oca-ocb-l10n_in_tcs_tds" +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/MODELS.md new file mode 100644 index 0000000..d0c091f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/MODELS.md @@ -0,0 +1,12 @@ +# Models + +Detected core models and extensions in l10n_in_tcs_tds. + +```mermaid +classDiagram + class res_partner +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/OVERVIEW.md new file mode 100644 index 0000000..1f6ee36 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_in_tcs_tds. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_in_tcs_tds +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/USAGE.md new file mode 100644 index 0000000..313e747 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_in_tcs_tds +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/__init__.py b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/__init__.py new file mode 100644 index 0000000..23ea1e2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/__init__.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models + +from odoo import api, SUPERUSER_ID + +import logging + +_logger = logging.getLogger(__name__) + + +def load_taxes(env): + in_chart_template = env.ref('l10n_in.indian_chart_template_standard') + for company in env['res.company'].search([('chart_template_id', '=', in_chart_template.id)]): + try: + with env.cr.savepoint(): + tax_template_ids = env['ir.model.data'].search([ + ('module', '=', 'l10n_in_tcs_tds'), + ('model', '=', 'account.tax.template'), + ]).mapped('res_id') + generated_tax_res = env['account.tax.template'].browse(tax_template_ids)._generate_tax(company) + taxes_ref = generated_tax_res['tax_template_to_tax'] + except Exception: + taxes_ref = {} + _logger.error("Can't load TDS and TCS taxes for company: %s(%s).", company.name, company.id) + if taxes_ref: + try: + with env.cr.savepoint(): + account_ref = {} + # Generating Accounts from templates. + account_template_ref = in_chart_template.generate_account(taxes_ref, {}, in_chart_template.code_digits, company) + account_ref.update(account_template_ref) + + # writing account values after creation of accounts + for key, value in generated_tax_res['account_dict']['account.tax.repartition.line'].items(): + if value['account_id']: + key.write({ + 'account_id': account_ref.get(value['account_id']), + }) + except Exception: + _logger.error("Can't load TCS and TDS account so account is not set in taxes of company: %s(%s).", company.name, company.id) + + +def l10n_in_post_init(cr, registry): + env = api.Environment(cr, SUPERUSER_ID, {}) + load_taxes(env) diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/__manifest__.py b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/__manifest__.py new file mode 100644 index 0000000..1062ec3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/__manifest__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': "Indian - TCS/TDS Accounting Report and Taxes", + 'version': '1.0', + 'description': """ +Tax Report TCS/TDS for India +==================================== + +This module adds TCS and TDS Tax Report and load related Taxes in Indian Company. + """, + 'category': 'Accounting/Localizations/Reporting', + 'depends': ['l10n_in'], + 'data': [ + 'data/account_tax_group_data.xml', + 'data/account.account.template.csv', + 'data/account_tax_report_tcs_data.xml', + 'data/account_tax_template_tcs_data.xml', + 'data/account_tax_report_tds_data.xml', + 'data/account_tax_template_tds_data.xml', + 'views/res_partner_views.xml', + ], + 'demo': [ + ], + 'post_init_hook': 'l10n_in_post_init', + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account.account.template.csv new file mode 100644 index 0000000..744394a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account.account.template.csv @@ -0,0 +1,3 @@ +"id","name","code","account_type","chart_template_id/id","tag_ids/id","reconcile" +"p11244","TDS Deducted","11244","liability_current","l10n_in.indian_chart_template_standard","","False" +"p11245","TCS Collected","11245","liability_current","l10n_in.indian_chart_template_standard","","False" diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_group_data.xml b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_group_data.xml new file mode 100644 index 0000000..f25eba4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_group_data.xml @@ -0,0 +1,15 @@ + + + + + TCS + + 100 + + + TDS + + 100 + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_report_tcs_data.xml b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_report_tcs_data.xml new file mode 100644 index 0000000..5b5bbd3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_report_tcs_data.xml @@ -0,0 +1,173 @@ + + + + TCS Report + + + + country + + + Balance + balance + + + + + + Section 206C(1): Alcoholic Liquor for human consumption + + + + balance + tax_tags + 206C(1) Alcoholic Liquor + + + + + Section 206C(1): Tendu leaves + + + + balance + tax_tags + 206C(1) Tendu leaves + + + + + Section 206C(1): Timber obtained under a forest lease + + + + balance + tax_tags + 206C(1) Timber (forest lease) + + + + + Section 206C(1): Timber obtained by any mode other than under a forest lease + + + + balance + tax_tags + 206C(1) Timber (other than under a forest lease) + + + + + Section 206C(1): Any other forest produce not being timber or tendu leaves + + + + balance + tax_tags + 206C(1) other forest produce + + + + + Section 206C(1): Scrap + + + + balance + tax_tags + 206C(1) Scrap + + + + + Section 206C(1): Minrals, being coal or lignite or iron ore + + + + balance + tax_tags + 206C(1) Minrals + + + + + Section 206C(1C): Parking lot + + + + balance + tax_tags + 206C(1C) Parking lot + + + + + Section 206C(1C): Toll plaza + + + + balance + tax_tags + 206C(1C) Toll plaza + + + + + Section 206C(1C): Mining and quarrying + + + + balance + tax_tags + 206C(1C) Mining and quarrying + + + + + Section 206C(1F): Motor Vehicle + + + + balance + tax_tags + 206C(1F) + + + + + Section 206C(1G): Sum of money (above 7 lakhs) for remittance out of India + + + + balance + tax_tags + 206C(1G) remittance out of India + + + + + Section 206C(1G): Seller of an overseas tour program package + + + + balance + tax_tags + 206C(1G) overseas tour program + + + + + Section 206C(1H): Sale of Goods + + + + balance + tax_tags + 206C(1H) + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_report_tds_data.xml b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_report_tds_data.xml new file mode 100644 index 0000000..f38aca8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_report_tds_data.xml @@ -0,0 +1,360 @@ + + + + TDS Report + + + + country + + + Balance + balance + + + + + + Section 192: Payment of salary + + + + balance + tax_tags + 192 + + + + + Section 192A: Payment of accumulated balance of provident fund which is taxable in the hands of an employee + + + + balance + tax_tags + 192A + + + + + Section 193: Interest on securities + + + + balance + tax_tags + 193 + + + + + Section 194: Income by way of dividend + + + + balance + tax_tags + 194 + + + + + Section 194A: Income by way of interest other than "Interest on securities" + + + + balance + tax_tags + 194A + + + + + Section 194B: Income by way of winnings from lotteries, crossword puzzles, card games and other games of any sort + + + + balance + tax_tags + 194B + + + + + Section 194BB: Income by way of winnings from horse races + + + + balance + tax_tags + 194BB + + + + + Section 194C: Payment to contractor/sub-contractor + + + + balance + tax_tags + 194C + + + + + Section 194D: Insurance commission + + + + balance + tax_tags + 194D + + + + + Section 194DA: Payment in respect of life insurance policy + + + + balance + tax_tags + 194DA + + + + + Section 194E: Payment to non-resident sportsmen/sports association + + + + balance + tax_tags + 194E + + + + + Section 194EE: Payment in respect of deposit under National Savings scheme + + + + balance + tax_tags + 194EE + + + + + Section 194F: Payment on account of repurchase of unit by Mutual Fund or Unit Trust of India + + + + balance + tax_tags + 194F + + + + + Section 194G: Commission, etc., on sale of lottery tickets + + + + balance + tax_tags + 194G + + + + + Section 194H: Commission or brokerage + + + + balance + tax_tags + 194H + + + + + Section 194-I: Rent + + + + balance + tax_tags + 194I + + + + + Section 194-IA: Payment on transfer of certain immovable property other than agricultural land + + + + balance + tax_tags + 194IA + + + + + Section 194-IB: Payment of rent by individual or HUF not liable to tax audit + + + + balance + tax_tags + 194IB + + + + + Section 194-IC: Payment of monetary consideration under Joint Development Agreements + + + + balance + tax_tags + 194IC + + + + + Section 194J: Fees for professional or technical services + + + + balance + tax_tags + 194J + + + + + Section 194K: Income in respect of units payable to resident person + + + + balance + tax_tags + 194K + + + + + Section 194LA: Payment of compensation on acquisition of certain immovable property + + + + balance + tax_tags + 194LA + + + + + Section 194LBA(1): Business trust shall deduct tax while distributing, any interest received or receivable by it from a SPV or any income received from renting or leasing or letting out any real estate asset owned directly by it, to its unit holders. + + + + balance + tax_tags + 194LBA(1) + + + + + Section 194LB: Payment of interest on infrastructure debt fund + + + + balance + tax_tags + 194LB + + + + + Section 194LBB: Investment fund paying an income to a unit holder [other than income which is exempt under Section 10(23FBB)] + + + + balance + tax_tags + 194LBB + + + + + Section 194LBC: Income in respect of investment made in a securitisation trust (specified in Explanation of section115TCA) + + + + balance + tax_tags + 194LBC + + + + + Section 194M: Payment of commission (not being insurance commission), brokerage, contractual fee, professional fee to a resident person by an Individual or a HUF who are not liable to deduct TDS under section 194C, 194H, or 194J. + + + + balance + tax_tags + 194M + + + + + Section 194N: Cash withdrawal during the previous year from one or more account maintained by a person with a banking company, co-operative society engaged in business of banking or a post office + + + + balance + tax_tags + 194N + + + + + Section 194-O: Payment or credit of amount by the e-commerce operator to e-commerce participant + + + + balance + tax_tags + 194O + + + + + Section 194Q: Purchase of goods + + + + balance + tax_tags + 194Q + + + + + Section 195: Payment of any other sum to a Non -resident + + + + balance + tax_tags + 195 + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_template_tcs_data.xml b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_template_tcs_data.xml new file mode 100644 index 0000000..5f80d9e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_template_tcs_data.xml @@ -0,0 +1,932 @@ + + + + TCS @1% u/s 206C(1): Alcoholic Liquor for human consumption + + TCS @1% u/s 206C(1): Alcoholic Liquor for human consumption + + sale + percent + 1 + consu + + + + + + + + TCS @5% u/s 206C(1): Alcoholic Liquor for human consumption + + TCS @5% u/s 206C(1): Alcoholic Liquor for human consumption + + sale + percent + 5 + consu + + + + + + + + TCS @5% u/s 206C(1): Tendu leaves + TCS @5% u/s 206C(1): Tendu leaves + sale + percent + 5 + consu + + + + + + + + TCS @2.5% u/s 206C(1): Timber obtained under a forest lease + TCS @2.5% u/s 206C(1): Timber obtained under a forest lease + sale + percent + 2.5 + consu + + + + + + + + TCS @5% u/s 206C(1): Timber obtained under a forest lease + TCS @5% u/s 206C(1): Timber obtained under a forest lease + sale + percent + 5 + consu + + + + + + + + TCS @2.5% u/s 206C(1): Timber obtained by any mode other than under a forest lease + TCS @2.5% u/s 206C(1): Timber obtained by any mode other than under a forest lease + sale + percent + 2.5 + consu + + + + + + + + TCS @5% u/s 206C(1): Timber obtained by any mode other than under a forest lease + TCS @5% u/s 206C(1): Timber obtained by any mode other than under a forest lease + sale + percent + 5 + consu + + + + + + + + TCS @2.5% u/s 206C(1): Any other forest produce not being timber or tendu leaves + TCS @2.5% u/s 206C(1): Any other forest produce not being timber or tendu leaves + sale + percent + 2.5 + consu + + + + + + + + TCS @5% u/s 206C(1): Any other forest produce not being timber or tendu leaves + TCS @5% u/s 206C(1): Any other forest produce not being timber or tendu leaves + sale + percent + 5 + consu + + + + + + + + TCS @1% u/s 206C(1): Scrap + TCS @1% u/s 206C(1): Scrap + sale + percent + 1 + consu + + + + + + + + TCS @5% u/s 206C(1): Scrap + TCS @5% u/s 206C(1): Scrap + sale + percent + 5 + consu + + + + + + + + TCS @1% u/s 206C(1): Minrals, being coal or lignite or iron ore + TCS @1% u/s 206C(1): Minrals, being coal or lignite or iron ore + sale + percent + 1 + consu + + + + + + + + TCS @5% u/s 206C(1): Minrals, being coal or lignite or iron ore + TCS @5% u/s 206C(1): Minrals, being coal or lignite or iron ore + sale + percent + 5 + consu + + + + + + + + TCS @2% u/s 206C(1C): Parking lot + TCS @2% u/s 206C(1C): Parking lot + sale + percent + 2 + consu + + + + + + + + TCS @5% u/s 206C(1C): Parking lot + TCS @5% u/s 206C(1C): Parking lot + sale + percent + 5 + consu + + + + + + + + TCS @2% u/s 206C(1C): Toll plaza + TCS @2% u/s 206C(1C): Toll plaza + sale + percent + 2 + consu + + + + + + + + TCS @5% u/s 206C(1C): Toll plaza + TCS @5% u/s 206C(1C): Toll plaza + sale + percent + 5 + consu + + + + + + + + TCS @2% u/s 206C(1C): Mining and quarrying + TCS @2% u/s 206C(1C): Mining and quarrying + sale + percent + 2 + consu + + + + + + + + TCS @5% u/s 206C(1C): Mining and quarrying + TCS @5% u/s 206C(1C): Mining and quarrying + sale + percent + 5 + consu + + + + + + + + TCS @1% u/s 206C(1F): Motor Vehicle + TCS @1% u/s 206C(1F): Motor Vehicle + sale + percent + 1 + consu + + + + + + + + TCS @5% u/s 206C(1F): Motor Vehicle + TCS @5% u/s 206C(1F): Motor Vehicle + sale + percent + 5 + consu + + + + + + + + TCS @5% u/s 206C(1G): Sum of money (above 7 lakhs) for remittance out of India + TCS @5% u/s 206C(1G): Sum of money (above 7 lakhs) for remittance out of India + sale + percent + 5 + consu + + + + + + + + TCS @5% u/s 206C(1G): Seller of an overseas tour program package + TCS @5% u/s 206C(1G): Seller of an overseas tour program package + sale + percent + 5 + consu + + + + + + + + TCS @0.1% u/s 206C(1H): Sale of Goods + TCS @0.1% u/s 206C(1H): Sale of Goods + sale + percent + 0.1 + consu + + + + + + + + TCS @1% u/s 206C(1H): Sale of Goods + TCS @1% u/s 206C(1H): Sale of Goods + sale + percent + 1 + consu + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_template_tds_data.xml b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_template_tds_data.xml new file mode 100644 index 0000000..1c15f45 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/data/account_tax_template_tds_data.xml @@ -0,0 +1,2334 @@ + + + + TDS @10% u/s 192A + TDS @10% u/s 192A + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 192A + TDS @20% u/s 192A + purchase + service + percent + -20 + + + + + + + + TDS @10% u/s 193 + TDS @10% u/s 193 + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 193 + TDS @20% u/s 193 + purchase + service + percent + -20 + + + + + + + + TDS @10% u/s 194 + TDS @10% u/s 194 + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 194 + TDS @20% u/s 194 + purchase + service + percent + -20 + + + + + + + + TDS @10% u/s 194A + TDS @10% u/s 194A + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 194A + TDS @20% u/s 194A + purchase + service + percent + -20 + + + + + + + + TDS @30% u/s 194B + TDS @30% u/s 194B + purchase + service + percent + -30 + + + + + + + + TDS @30% u/s 194BB + TDS @30% u/s 194BB + purchase + service + percent + -30 + + + + + + + + TDS @1% u/s 194C + TDS @1% u/s 194C + purchase + service + percent + -1 + + + + + + + + TDS @2% u/s 194C + TDS @2% u/s 194C + purchase + service + percent + -2 + + + + + + + + TDS @20% u/s 194C + TDS @20% u/s 194C + purchase + service + percent + -20 + + + + + + + + TDS @5% u/s 194D + TDS @5% u/s 194D + purchase + service + percent + -5 + + + + + + + + TDS @10% u/s 194D + TDS @10% u/s 194D + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 194D + TDS @20% u/s 194D + purchase + service + percent + -20 + + + + + + + + TDS @5% u/s 194DA + TDS @5% u/s 194DA + purchase + service + percent + -5 + + + + + + + + TDS @20% u/s 194DA + TDS @20% u/s 194DA + purchase + service + percent + -20 + + + + + + + + TDS @20% u/s 194E + TDS @20% u/s 194E + purchase + service + percent + -20 + + + + + + + + TDS @10% u/s 194EE + TDS @10% u/s 194EE + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 194EE + TDS @20% u/s 194EE + purchase + service + percent + -20 + + + + + + + + TDS @20% u/s 194F + TDS @20% u/s 194F + purchase + service + percent + -20 + + + + + + + + TDS @5% u/s 194G + TDS @5% u/s 194G + purchase + service + percent + -5 + + + + + + + + TDS @20% u/s 194G + TDS @20% u/s 194G + purchase + service + percent + -20 + + + + + + + + TDS @5% u/s 194H + TDS @5% u/s 194H + purchase + service + percent + -5 + + + + + + + + TDS @20% u/s 194H + TDS @20% u/s 194H + purchase + service + percent + -20 + + + + + + + + TDS @2% u/s 194I + TDS @2% u/s 194I + purchase + service + percent + -2 + + + + + + + + TDS @10% u/s 194I + TDS @10% u/s 194I + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 194I + TDS @20% u/s 194I + purchase + service + percent + -20 + + + + + + + + TDS @1% u/s 194IA + TDS @1% u/s 194IA + purchase + service + percent + -1 + + + + + + + + TDS @20% u/s 194IA + TDS @20% u/s 194IA + purchase + service + percent + -20 + + + + + + + + TDS @5% u/s 194IB + TDS @5% u/s 194IB + purchase + service + percent + -5 + + + + + + + + TDS @20% u/s 194IB + TDS @20% u/s 194IB + purchase + service + percent + -20 + + + + + + + + TDS @10% u/s 194IC + TDS @10% u/s 194IC + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 194IC + TDS @20% u/s 194IC + purchase + service + percent + -20 + + + + + + + + TDS @2% u/s 194J + TDS @2% u/s 194J + purchase + service + percent + -2 + + + + + + + + TDS @10% u/s 194J + TDS @10% u/s 194J + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 194J + TDS @20% u/s 194J + purchase + service + percent + -20 + + + + + + + + TDS @10% u/s 194K + TDS @10% u/s 194K + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 194K + TDS @20% u/s 194K + purchase + service + percent + -20 + + + + + + + + TDS @10% u/s 194LA + TDS @10% u/s 194LA + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 194LA + TDS @20% u/s 194LA + purchase + service + percent + -20 + + + + + + + + TDS @10% u/s 194LBA(1) + TDS @10% u/s 194LBA(1) + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 194LBA(1) + TDS @20% u/s 194LBA(1) + purchase + service + percent + -20 + + + + + + + + TDS @10% u/s 194LBB + TDS @10% u/s 194LBB + purchase + service + percent + -10 + + + + + + + + TDS @20% u/s 194LBB + TDS @20% u/s 194LBB + purchase + service + percent + -20 + + + + + + + + TDS @5% u/s 194LB + TDS @5% u/s 194LB + purchase + service + percent + -5 + + + + + + + + TDS @20% u/s 194LB + TDS @20% u/s 194LB + purchase + service + percent + -20 + + + + + + + + TDS @10% u/s 194LBC + TDS @10% u/s 194LBC + purchase + service + percent + -10 + + + + + + + + TDS @25% u/s 194LBC + TDS @25% u/s 194LBC + purchase + service + percent + -25 + + + + + + + + TDS @30% u/s 194LBC + TDS @30% u/s 194LBC + purchase + service + percent + -30 + + + + + + + + TDS @5% u/s 194M + TDS @5% u/s 194M + purchase + service + percent + -5 + + + + + + + + TDS @20% u/s 194M + TDS @20% u/s 194M + purchase + service + percent + -20 + + + + + + + + TDS @2% u/s 194N + TDS @2% u/s 194N + purchase + service + percent + -2 + + + + + + + + TDS @5% u/s 194N + TDS @5% u/s 194N + purchase + service + percent + -5 + + + + + + + + TDS @20% u/s 194N + TDS @20% u/s 194N + purchase + service + percent + -20 + + + + + + + + TDS @1% u/s 194O + TDS @1% u/s 194O + purchase + service + percent + -1 + + + + + + + + TDS @20% u/s 194O + TDS @20% u/s 194O + purchase + service + percent + -20 + + + + + + + + TDS @0.1% u/s 194Q + TDS @0.1% u/s 194Q + purchase + consu + percent + -0.1 + + + + + + + + TDS @10.4% u/s 195 + TDS @10.4% u/s 195 + purchase + service + percent + -10.4 + + + + + + + + TDS @15.6% u/s 195 + TDS @15.6% u/s 195 + purchase + service + percent + -15.6 + + + + + + + + TDS @20.8% u/s 195 + TDS @20.8% u/s 195 + purchase + service + percent + -20.8 + + + + + + + + TDS @31.2% u/s 195 + TDS @31.2% u/s 195 + purchase + service + percent + -31.2 + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/models/__init__.py b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/models/__init__.py new file mode 100644 index 0000000..9ec15f2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import res_partner diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/models/res_partner.py b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/models/res_partner.py new file mode 100644 index 0000000..19a1926 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/models/res_partner.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models + + +class ResPartner(models.Model): + _inherit = 'res.partner' + + l10n_in_pan = fields.Char(string="PAN", help="""PAN enables the department to link all transactions of the person with the department. + These transactions include taxpayments, TDS/TCS credits, returns of income/wealth/gift/FBT, specified transactions, correspondence, and so on. + thus, PAN acts as an identifier for the person with the tax department.""") + + @api.model + def _commercial_fields(self): + res = super()._commercial_fields() + return res + ['l10n_in_pan'] diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/views/res_partner_views.xml b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/views/res_partner_views.xml new file mode 100644 index 0000000..0c0f066 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/l10n_in_tcs_tds/views/res_partner_views.xml @@ -0,0 +1,14 @@ + + + + l10n.in.tcs.tds.res.partner.vat.inherit + res.partner + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_tcs_tds/pyproject.toml b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/pyproject.toml new file mode 100644 index 0000000..9e5df53 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_tcs_tds/pyproject.toml @@ -0,0 +1,42 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_in_tcs_tds" +version = "16.0.0" +description = "Indian - TCS/TDS Accounting Report and Taxes - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-l10n_in>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_in_tcs_tds"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/README.md b/odoo-bringout-oca-ocb-l10n_in_upi/README.md new file mode 100644 index 0000000..558b592 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/README.md @@ -0,0 +1,52 @@ +# Indian - UPI + + +Invoice with UPI QR code +========================= +This module adds QR code in invoice report for UPI payment allowing to make payment via any UPI app. + +To print UPI Qr code add UPI id in company and tick "QR Codes" in configuration + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_upi +``` + +## Dependencies + +This addon depends on: +- l10n_in + +## Manifest Information + +- **Name**: Indian - UPI +- **Version**: 1.0 +- **Category**: Accounting/Localizations +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_in_upi`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/ARCHITECTURE.md new file mode 100644 index 0000000..52b7692 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_in_upi Module - l10n_in_upi + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/CONFIGURATION.md new file mode 100644 index 0000000..49bdf57 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_in_upi. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/DEPENDENCIES.md new file mode 100644 index 0000000..cd0fae6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [l10n_in](../../odoo-bringout-oca-ocb-l10n_in) diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/FAQ.md new file mode 100644 index 0000000..77b8b87 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_in_upi or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/INSTALL.md new file mode 100644 index 0000000..b1dd0b9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_in_upi" +# or +uv pip install odoo-bringout-oca-ocb-l10n_in_upi" +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/MODELS.md new file mode 100644 index 0000000..fa73461 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/MODELS.md @@ -0,0 +1,13 @@ +# Models + +Detected core models and extensions in l10n_in_upi. + +```mermaid +classDiagram + class account_move + class res_company +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/OVERVIEW.md new file mode 100644 index 0000000..629316d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_in_upi. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_in_upi +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/USAGE.md new file mode 100644 index 0000000..17b8ddf --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_in_upi +``` diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_in_upi/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/__init__.py b/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/__init__.py new file mode 100644 index 0000000..be9f4fa --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import models diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/__manifest__.py b/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/__manifest__.py new file mode 100644 index 0000000..7c6d6ec --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/__manifest__.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +{ + 'name': 'Indian - UPI', + 'version': '1.0', + 'description': """ +Invoice with UPI QR code +========================= +This module adds QR code in invoice report for UPI payment allowing to make payment via any UPI app. + +To print UPI Qr code add UPI id in company and tick "QR Codes" in configuration + """, + 'category': 'Accounting/Localizations', + 'depends': ['l10n_in'], + 'data': ['views/res_company_views.xml'], + 'license': 'LGPL-3', + 'auto_install': True, +} diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/models/__init__.py b/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/models/__init__.py new file mode 100644 index 0000000..1bd4ba6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding:utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import account_invoice +from . import res_company diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/models/account_invoice.py b/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/models/account_invoice.py new file mode 100644 index 0000000..a2f0e1d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/models/account_invoice.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +import base64 + +from odoo import models +from odoo.tools.image import image_data_uri + + +class AccountMove(models.Model): + _inherit = "account.move" + + def _generate_qr_code(self, silent_errors=False): + self.ensure_one() + if self.company_id.country_code == 'IN' and self.is_sale_document(include_receipts=True): + payment_url = 'upi://pay?pa=%s&pn=%s&am=%s&tr=%s&tn=%s' % ( + self.company_id.l10n_in_upi_id, + self.company_id.name, + self.amount_residual, + self.payment_reference or self.name, + ("Payment for %s" % self.name)) + barcode = self.env['ir.actions.report'].barcode(barcode_type="QR", value=payment_url, width=120, height=120) + return image_data_uri(base64.b64encode(barcode)) + return super()._generate_qr_code(silent_errors) diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/models/res_company.py b/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/models/res_company.py new file mode 100644 index 0000000..9adfe1f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/models/res_company.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class Company(models.Model): + _inherit = 'res.company' + + l10n_in_upi_id = fields.Char(string="UPI Id") diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/views/res_company_views.xml b/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/views/res_company_views.xml new file mode 100644 index 0000000..3a317fb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/l10n_in_upi/views/res_company_views.xml @@ -0,0 +1,13 @@ + + + + res.company.form.inherit.l10n_in_upi + res.company + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_in_upi/pyproject.toml b/odoo-bringout-oca-ocb-l10n_in_upi/pyproject.toml new file mode 100644 index 0000000..fa63493 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_in_upi/pyproject.toml @@ -0,0 +1,42 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_in_upi" +version = "16.0.0" +description = "Indian - UPI - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-l10n_in>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_in_upi"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_jp/README.md b/odoo-bringout-oca-ocb-l10n_jp/README.md new file mode 100644 index 0000000..c2036d2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/README.md @@ -0,0 +1,62 @@ +# Japan - Accounting + + + +Overview: +--------- + +* Chart of Accounts and Taxes template for companies in Japan. +* This probably does not cover all the necessary accounts for a company. You are expected to add/delete/modify accounts based on this template. + +Note: +----- + +* Fiscal positions '内税' and '外税' have been added to handle special requirements which might arise from POS implementation. [1] Under normal circumstances, you might not need to use those at all. + +[1] See https://github.com/odoo/odoo/pull/6470 for detail. + + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_jp +``` + +## Dependencies + +This addon depends on: +- account +- l10n_multilang + +## Manifest Information + +- **Name**: Japan - Accounting +- **Version**: 2.3 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_jp`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_jp/doc/ARCHITECTURE.md new file mode 100644 index 0000000..f708467 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_jp Module - l10n_jp + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_jp/doc/CONFIGURATION.md new file mode 100644 index 0000000..af186fb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_jp. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_jp/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_jp/doc/DEPENDENCIES.md new file mode 100644 index 0000000..a8ee493 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [account](../../odoo-bringout-oca-ocb-account) +- [l10n_multilang](../../odoo-bringout-oca-ocb-l10n_multilang) diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_jp/doc/FAQ.md new file mode 100644 index 0000000..5bc4043 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_jp or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_jp/doc/INSTALL.md new file mode 100644 index 0000000..774c165 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_jp" +# or +uv pip install odoo-bringout-oca-ocb-l10n_jp" +``` diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_jp/doc/MODELS.md new file mode 100644 index 0000000..91a1f62 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/MODELS.md @@ -0,0 +1,11 @@ +# Models + +Detected core models and extensions in l10n_jp. + +```mermaid +classDiagram +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_jp/doc/OVERVIEW.md new file mode 100644 index 0000000..1bde1f0 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_jp. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_jp +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_jp/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_jp/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_jp/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_jp/doc/USAGE.md new file mode 100644 index 0000000..0071b52 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_jp +``` diff --git a/odoo-bringout-oca-ocb-l10n_jp/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_jp/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/__init__.py b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/__init__.py new file mode 100644 index 0000000..dad3de9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/__init__.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +# Copyright (C) Quartile Limited + +from odoo import api, SUPERUSER_ID + + +def load_translations(cr, registry): + env = api.Environment(cr, SUPERUSER_ID, {}) + env.ref('l10n_jp.l10n_jp_chart_template').process_coa_translations() diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/__manifest__.py b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/__manifest__.py new file mode 100644 index 0000000..f0cceb3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/__manifest__.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +# Copyright (C) Quartile Limited + +{ + 'name': 'Japan - Accounting', + 'version': '2.3', + 'category': 'Accounting/Localizations/Account Charts', + 'description': """ + +Overview: +--------- + +* Chart of Accounts and Taxes template for companies in Japan. +* This probably does not cover all the necessary accounts for a company. \ +You are expected to add/delete/modify accounts based on this template. + +Note: +----- + +* Fiscal positions '内税' and '外税' have been added to handle special \ +requirements which might arise from POS implementation. [1] Under normal \ +circumstances, you might not need to use those at all. + +[1] See https://github.com/odoo/odoo/pull/6470 for detail. + + """, + 'author': 'Quartile Limited', + 'website': 'https://www.quartile.co/', + 'depends': [ + 'account', + 'l10n_multilang', + ], + 'data': [ + 'data/l10n_jp_chart_data.xml', + 'data/account.account.template.csv', + 'data/account.tax.group.csv', + 'data/account_tax_report_data.xml', + 'data/account_tax_template_data.xml', + 'data/account_chart_template_data.xml', + 'data/account.fiscal.position.template.csv', + 'data/account_fiscal_position_tax_template_data.xml', + 'data/account_chart_template_configure_data.xml', + ], + 'demo': [ + 'demo/demo_company.xml', + ], + 'post_init_hook': 'load_translations', + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account.account.template.csv new file mode 100644 index 0000000..5a5407d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account.account.template.csv @@ -0,0 +1,129 @@ +id,chart_template_id/id,code,account_type,name,reconcile +l10n_jp_110000,l10n_jp_chart_template,110000,asset_fixed,Buildings and Structures,FALSE +l10n_jp_110100,l10n_jp_chart_template,110100,asset_fixed,Buildings and Structures - Accumulated Depreciation,FALSE +l10n_jp_110200,l10n_jp_chart_template,110200,asset_fixed,Machinery and Equipment,FALSE +l10n_jp_110300,l10n_jp_chart_template,110300,asset_fixed,Machinery and Equipment - Accumulated Depreciation,FALSE +l10n_jp_110400,l10n_jp_chart_template,110400,asset_fixed,"Tools, Furniture and Fixtures",FALSE +l10n_jp_110500,l10n_jp_chart_template,110500,asset_fixed,"Tools, Furniture and Fixtures - Accumulated Depreciation",FALSE +l10n_jp_110600,l10n_jp_chart_template,110600,asset_fixed,Land,FALSE +l10n_jp_121000,l10n_jp_chart_template,121000,asset_current,Current Assets,FALSE +l10n_jp_121100,l10n_jp_chart_template,121100,asset_current,Stock Valuation Account,FALSE +l10n_jp_121200,l10n_jp_chart_template,121200,asset_current,Stock Interim Account (Received),FALSE +l10n_jp_121300,l10n_jp_chart_template,121300,asset_current,Stock Interim Account (Delivered),FALSE +l10n_jp_122000,l10n_jp_chart_template,122000,asset_current,Merchandise,FALSE +l10n_jp_122100,l10n_jp_chart_template,122100,asset_current,Finished Goods,FALSE +l10n_jp_122200,l10n_jp_chart_template,122200,asset_current,Semi-finished Goods,FALSE +l10n_jp_122300,l10n_jp_chart_template,122300,asset_current,Inventory in Transit,FALSE +l10n_jp_122400,l10n_jp_chart_template,122400,asset_current,Work in Process,FALSE +l10n_jp_122500,l10n_jp_chart_template,122500,asset_current,Raw Materials,FALSE +l10n_jp_122600,l10n_jp_chart_template,122600,asset_current,Materials,FALSE +l10n_jp_122700,l10n_jp_chart_template,122700,asset_current,Advance Payments,FALSE +l10n_jp_122800,l10n_jp_chart_template,122800,asset_current,Prepaid Expenses,FALSE +l10n_jp_122900,l10n_jp_chart_template,122900,asset_current,Advances Paid,FALSE +l10n_jp_123000,l10n_jp_chart_template,123000,asset_current,Suspense Payments,FALSE +l10n_jp_123100,l10n_jp_chart_template,123100,asset_current,Lease/Guarantee Deposits,FALSE +l10n_jp_123200,l10n_jp_chart_template,123200,asset_current,Consumption Tax - Purchase,FALSE +l10n_jp_123300,l10n_jp_chart_template,123300,asset_current,Bad Debt Allowance,FALSE +l10n_jp_123400,l10n_jp_chart_template,123400,asset_current,Accrued Income,FALSE +l10n_jp_123500,l10n_jp_chart_template,123500,asset_current,Securities,FALSE +l10n_jp_chart_template_liquidity_transfer,l10n_jp_chart_template,123600,asset_current,Liquidity Transfer,TRUE +l10n_jp_123700,l10n_jp_chart_template,123700,asset_current,Outstanding Payments,FALSE +l10n_jp_123800,l10n_jp_chart_template,123800,asset_current,Outstanding Receipts,FALSE +l10n_jp_123900,l10n_jp_chart_template,123900,asset_current,Bank Suspense Account,FALSE +l10n_jp_120003,l10n_jp_chart_template,124000,asset_current,Deposit,FALSE +l10n_jp_120004,l10n_jp_chart_template,124100,asset_current,Time Deposit,FALSE +l10n_jp_126000,l10n_jp_chart_template,126000,asset_receivable,Accounts Receivable - Trade,TRUE +l10n_jp_126200,l10n_jp_chart_template,126200,asset_receivable,Accounts Receivable (PoS),TRUE +l10n_jp_126300,l10n_jp_chart_template,126300,asset_receivable,Notes Receivable,TRUE +l10n_jp_126400,l10n_jp_chart_template,126400,asset_receivable,Notes Discount,TRUE +l10n_jp_210000,l10n_jp_chart_template,210000,asset_non_current,Non-current Liabilities,False +l10n_jp_210100,l10n_jp_chart_template,210100,asset_non_current,Software,FALSE +l10n_jp_210200,l10n_jp_chart_template,210200,asset_non_current,Software in Progress,FALSE +l10n_jp_210300,l10n_jp_chart_template,210300,asset_non_current,Other Intangible Asset,FALSE +l10n_jp_210400,l10n_jp_chart_template,210400,asset_non_current,Investment Securities,FALSE +l10n_jp_210500,l10n_jp_chart_template,210500,asset_non_current,Shares of Subsidiaries and Associates,FALSE +l10n_jp_210600,l10n_jp_chart_template,210600,asset_non_current,Long-term Loans Receivable,FALSE +l10n_jp_210700,l10n_jp_chart_template,210700,asset_non_current,Long-term Prepaid Expenses,FALSE +l10n_jp_210800,l10n_jp_chart_template,210800,asset_non_current,Deferred Organization Expenses,FALSE +l10n_jp_220000,l10n_jp_chart_template,220000,liability_payable,Accounts Payable - Trade,TRUE +l10n_jp_220200,l10n_jp_chart_template,220200,liability_payable,Notes Payable,TRUE +l10n_jp_220400,l10n_jp_chart_template,220400,liability_payable,Short-term Loans Payable,TRUE +l10n_jp_220500,l10n_jp_chart_template,220500,liability_payable,Current Portion of Long-term Loans Payable,TRUE +l10n_jp_220600,l10n_jp_chart_template,220600,liability_payable,Accounts Payable - Other,TRUE +l10n_jp_220700,l10n_jp_chart_template,220700,liability_payable,Accounts Payable - Credit Card,TRUE +l10n_jp_220800,l10n_jp_chart_template,220800,liability_payable,Dividends Payable,TRUE +l10n_jp_220900,l10n_jp_chart_template,220900,equity,Capital Stock,FALSE +l10n_jp_221000,l10n_jp_chart_template,221000,equity,Legal Capital Surplus,FALSE +l10n_jp_221100,l10n_jp_chart_template,221100,equity,Other Capital Surplus,FALSE +l10n_jp_221200,l10n_jp_chart_template,221200,equity,Legal Retained Earnings,FALSE +l10n_jp_221300,l10n_jp_chart_template,221300,equity,Reserve for Special Depreciation,FALSE +l10n_jp_221400,l10n_jp_chart_template,221400,equity,Voluntary Retained Earnings,FALSE +l10n_jp_221500,l10n_jp_chart_template,221500,equity,Retained Earnings Brought Forward,FALSE +l10n_jp_330000,l10n_jp_chart_template,330000,liability_current,Current Liabilities,FALSE +l10n_jp_330200,l10n_jp_chart_template,330200,liability_current,Accrued Expenses,FALSE +l10n_jp_330300,l10n_jp_chart_template,330300,liability_current,Income Taxes Payable,FALSE +l10n_jp_330400,l10n_jp_chart_template,330400,liability_current,Advances Received,FALSE +l10n_jp_330500,l10n_jp_chart_template,330500,liability_current,Deposits Received,FALSE +l10n_jp_330600,l10n_jp_chart_template,330600,liability_current,Suspense Receipt,FALSE +l10n_jp_330700,l10n_jp_chart_template,330700,liability_current,Provision for Bonuses,FALSE +l10n_jp_330800,l10n_jp_chart_template,330800,liability_current,Consumption Tax - Sales,FALSE +l10n_jp_330900,l10n_jp_chart_template,330900,liability_current,Bonds Payable,FALSE +l10n_jp_331000,l10n_jp_chart_template,331000,liability_current,Long-term Loans Payable,FALSE +l10n_jp_331100,l10n_jp_chart_template,331100,liability_current,Provision for Retirement Benefits,FALSE +l10n_jp_410000,l10n_jp_chart_template,410000,income,Net Sales,FALSE +l10n_jp_424000,l10n_jp_chart_template,424000,income,Foreign Exchange Gain,FALSE +l10n_jp_425000,l10n_jp_chart_template,425000,income_other,Cash Discount Gain,FALSE +l10n_jp_425200,l10n_jp_chart_template,425200,income_other,Purchase Price Difference,FALSE +l10n_jp_425300,l10n_jp_chart_template,425300,income_other,Inventory Adjustment,FALSE +l10n_jp_425400,l10n_jp_chart_template,425400,income_other,Interest Income,FALSE +l10n_jp_425500,l10n_jp_chart_template,425500,income_other,Dividend Income,FALSE +l10n_jp_425600,l10n_jp_chart_template,425600,income_other,Provision of Exchange Gain,FALSE +l10n_jp_425700,l10n_jp_chart_template,425700,income_other,Actual Exchange Gain,FALSE +l10n_jp_425800,l10n_jp_chart_template,425800,income_other,Gain on Investment Securities,FALSE +l10n_jp_425900,l10n_jp_chart_template,425900,income_other,Gain on Valuation of Investment Securities,FALSE +l10n_jp_426000,l10n_jp_chart_template,426000,income_other,Miscellaneous Income,FALSE +l10n_jp_426100,l10n_jp_chart_template,426100,income_other,Gain on Non-current Asset,FALSE +l10n_jp_426200,l10n_jp_chart_template,426200,income_other,Gain on Valuation of Non-current Asset,FALSE +l10n_jp_510000,l10n_jp_chart_template,510000,expense,Cost of Goods Sold,FALSE +l10n_jp_510100,l10n_jp_chart_template,510100,expense,Cash Difference Loss,FALSE +l10n_jp_510200,l10n_jp_chart_template,510200,expense,Cash Discount Loss,FALSE +l10n_jp_510300,l10n_jp_chart_template,510300,expense,Provision of Allowance for Doubtful Debt,FALSE +l10n_jp_510400,l10n_jp_chart_template,510400,expense,Director's Remuneration,FALSE +l10n_jp_510500,l10n_jp_chart_template,510500,expense,Salaries & Allowance,FALSE +l10n_jp_510600,l10n_jp_chart_template,510600,expense,Bonus,FALSE +l10n_jp_510700,l10n_jp_chart_template,510700,expense,Retirement Payment,FALSE +l10n_jp_510800,l10n_jp_chart_template,510800,expense,Provision for Bonuses,FALSE +l10n_jp_510900,l10n_jp_chart_template,510900,expense,Provision for Retirement Benefits,FALSE +l10n_jp_511000,l10n_jp_chart_template,511000,expense,Legal Welfare Expenses,FALSE +l10n_jp_511100,l10n_jp_chart_template,511100,expense,Welfare Expenses,FALSE +l10n_jp_511200,l10n_jp_chart_template,511200,expense,Insurance Expenses,FALSE +l10n_jp_511300,l10n_jp_chart_template,511300,expense,Subcontract Expenses,FALSE +l10n_jp_511400,l10n_jp_chart_template,511400,expense,Packaging Expenses,FALSE +l10n_jp_511500,l10n_jp_chart_template,511500,expense,Inventory Usage Expenses,FALSE +l10n_jp_511600,l10n_jp_chart_template,511600,expense,Loss on Valuation of Goods,FALSE +l10n_jp_511700,l10n_jp_chart_template,511700,expense,Rental Expenses,FALSE +l10n_jp_511800,l10n_jp_chart_template,511800,expense,Lease Expenses,FALSE +l10n_jp_511900,l10n_jp_chart_template,511900,expense,Advertisement/Promotion Expenses,FALSE +l10n_jp_512000,l10n_jp_chart_template,512000,expense,Communication Expenses,FALSE +l10n_jp_512100,l10n_jp_chart_template,512100,expense,Consumables Expeneses,FALSE +l10n_jp_512200,l10n_jp_chart_template,512200,expense,Travelling Expenses,FALSE +l10n_jp_512300,l10n_jp_chart_template,512300,expense,Entertainment Expenses,FALSE +l10n_jp_512400,l10n_jp_chart_template,512400,expense,Commission Expenses,FALSE +l10n_jp_512500,l10n_jp_chart_template,512500,expense,Membership Fee,FALSE +l10n_jp-512600,l10n_jp_chart_template,512600,expense,Newspaper/Book Expenses,FALSE +l10n_jp_512700,l10n_jp_chart_template,512700,expense,Tax Expenses,FALSE +l10n_jp_512800,l10n_jp_chart_template,512800,expense,Utility Bills,FALSE +l10n_jp_512900,l10n_jp_chart_template,512900,expense,Meeting Expenses,FALSE +l10n_jp_513000,l10n_jp_chart_template,513000,expense,Other Expenses,FALSE +l10n_jp_513100,l10n_jp_chart_template,513100,expense,Interest Expenses,FALSE +l10n_jp_513200,l10n_jp_chart_template,513200,expense,Amortization of Deferred Organization Expenses,FALSE +l10n_jp_513300,l10n_jp_chart_template,513300,expense,Depreciation,FALSE +l10n_jp_513400,l10n_jp_chart_template,513400,expense,Provision of Exchange Loss,FALSE +l10n_jp_513500,l10n_jp_chart_template,513500,expense,Actual Exchange Loss,FALSE +l10n_jp_513600,l10n_jp_chart_template,513600,expense,Loss on Investment Securities,FALSE +l10n_jp_513700,l10n_jp_chart_template,513700,expense,Loss on Valuation of Investment Securities,FALSE +l10n_jp_513900,l10n_jp_chart_template,513900,expense,Loss on Non-current Asset,FALSE +l10n_jp_514000,l10n_jp_chart_template,514000,expense,Loss on Valuation of Non-current Asset,FALSE +l10n_jp_514300,l10n_jp_chart_template,514300,expense,"Corporate, Inhabitant, and Enterprise Taxes",FALSE +l10n_jp_514500,l10n_jp_chart_template,514500,expense,Transportation and warehousing expenses,FALSE +l10n_jp_999002,l10n_jp_chart_template,999002,income,Cash Difference Gain,FALSE diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account.fiscal.position.template.csv b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account.fiscal.position.template.csv new file mode 100644 index 0000000..adcd210 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account.fiscal.position.template.csv @@ -0,0 +1,5 @@ +id,chart_template_id/id,name +l10n_jp_fiscal_position_tax_inclusive,l10n_jp_chart_template,Tax Inclusive +l10n_jp_fiscal_position_tax_exclusive,l10n_jp_chart_template,Tax Exclusive +l10n_jp_fiscal_position_tax_exempt,l10n_jp_chart_template,Oversea Customer +l10n_jp_fiscal_position_tax_reduction,l10n_jp_chart_template,Reduced Tax Rate diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account.tax.group.csv b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account.tax.group.csv new file mode 100644 index 0000000..ddc3204 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account.tax.group.csv @@ -0,0 +1,4 @@ +id,name,country_id/id +l10n_jp_tax_group_exempt,Tax Exempt,base.jp +l10n_jp_tax_group_8,8% 対象,base.jp +l10n_jp_tax_group_10,10% 対象,base.jp diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_chart_template_configure_data.xml b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_chart_template_configure_data.xml new file mode 100644 index 0000000..e6247dd --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_chart_template_configure_data.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_chart_template_data.xml new file mode 100644 index 0000000..7f3fd21 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_chart_template_data.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_fiscal_position_tax_template_data.xml b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_fiscal_position_tax_template_data.xml new file mode 100644 index 0000000..0ef52d8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_fiscal_position_tax_template_data.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_tax_report_data.xml b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_tax_report_data.xml new file mode 100644 index 0000000..6119eeb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_tax_report_data.xml @@ -0,0 +1,234 @@ + + + + Tax Report + + + + country + + + Balance + balance + + + + + Total Tax Amount + GST_SALE_AMOUNT.balance + GST_PURCHASE_AMOUNT.balance + + + GST Sale Amount + GST_SALE_AMOUNT + GST_SALE_8.balance + GST_SALE_10.balance + TAX_EXEMPT.balance + ZERO_RATED_TAX_SALE.balance + + + GST Sale 8% + GST_SALE_8 + + + balance + tax_tags + GST Sale 8% + + + + + GST Sale 10% + GST_SALE_10 + + + balance + tax_tags + GST Sale 10% + + + + + Tax Exempt + TAX_EXEMPT + + + balance + tax_tags + Tax Exempt + + + + + Zero-rated Tax + ZERO_RATED_TAX_SALE + + + balance + tax_tags + Zero-rated Tax (GST Sale Amount) + + + + + + + GST Purchase Amount + GST_PURCHASE_AMOUNT + GST_PURCHASE_8.balance + GST_PURCHASE_10.balance + IMPORTED.balance + ZERO_RATED_TAX_PURCHASE.balance + + + GST Purchase 8% + GST_PURCHASE_8 + + + balance + tax_tags + GST Purchase 8% + + + + + GST Purchase 10% + GST_PURCHASE_10 + + + balance + tax_tags + GST Purchase 10% + + + + + Imported + IMPORTED + + + balance + tax_tags + Imported + + + + + Zero-rated Tax + ZERO_RATED_TAX_PURCHASE + + + balance + tax_tags + Zero-rated Tax (GST Purchase Amount) + + + + + + + + + Taxable Amount + SALE_AMOUNT.balance + PURCHASE_AMOUNT.balance + + + Sale Amount + SALE_AMOUNT + TAXABLE_SALE_AMOUNT_8.balance + TAXABLE_SALE_AMOUNT_10.balance + TAX_EXEMPTED_SALE_AMOUNT.balance + ZERO_RATED_TAX_AMOUNT.balance + + + Taxable Sale Amount (8%) + TAXABLE_SALE_AMOUNT_8 + + + balance + tax_tags + Taxable Sale Amount (8%) + + + + + Taxable Sale Amount (10%) + TAXABLE_SALE_AMOUNT_10 + + + balance + tax_tags + Taxable Sale Amount (10%) + + + + + Tax Exempted Sale Amount + TAX_EXEMPTED_SALE_AMOUNT + + + balance + tax_tags + Tax Exempted Sale Amount + + + + + Zero-rated Tax Amount + ZERO_RATED_TAX_AMOUNT + + + balance + tax_tags + Zero-rated Tax Amount + + + + + + + Purchase Amount + PURCHASE_AMOUNT + TAXABLE_PURCHASE_AMOUNT_8.balance + TAXABLE_PURCHASE_AMOUNT_10.balance + IMPORTED_PURCHASE.balance + ZERO_RATED_PURCHASE.balance + + + Taxable Purchase Amount (8%) + TAXABLE_PURCHASE_AMOUNT_8 + + + balance + tax_tags + Taxable Purchase Amount (8%) + + + + + Taxable Purchase Amount (10%) + TAXABLE_PURCHASE_AMOUNT_10 + + + balance + tax_tags + Taxable Purchase Amount (10%) + + + + + Imported Purchase + IMPORTED_PURCHASE + + + balance + tax_tags + Imported Purchase + + + + + Zero-rated Purchase + ZERO_RATED_PURCHASE + + + balance + tax_tags + Zero-rated Purchase + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_tax_template_data.xml b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_tax_template_data.xml new file mode 100644 index 0000000..f15a291 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/account_tax_template_data.xml @@ -0,0 +1,379 @@ + + + + 1 + + Sale (8%) + GST Sale 8% + percent + 8 + sale + False + True + + + + + + 1 + + GST Exc. Sale (10%) + GST Excluded Sale 10% + percent + 10 + sale + False + True + + + + + + 1 + + GST Inc Sale (8%) + GST Inclusive Sale 8% + percent + 8 + sale + TRUE + True + + + + + + 1 + + GST Inc Sale (10%) + GST Inclusive Sale 10% + percent + 10 + sale + TRUE + True + + + + + + 1 + + GST Tax Exempt Sale + GST Tax Exempt Sale + percent + 0 + sale + False + True + + + + + + 1 + + Non-VAT + Non-VAT + percent + 0 + sale + False + True + + + + + + 1 + + Purchase (8%) + GST Purchase 8% + percent + 8 + purchase + False + True + + + + + + 1 + + Purchase (10%) + GST Purchase 10% + percent + 10 + purchase + False + True + + + + + + 1 + + GST Inc Purchase (8%) + GST Inclusive Purchase 8% + percent + 8 + purchase + True + True + + + + + + 1 + + GST Inc Purchase (10%) + GST Inclusive Purchase 10% + percent + 10 + purchase + True + True + + + + + + 1 + + Oversea Purchase + Oversea Purchase + percent + 0 + purchase + False + True + + + + + + 1 + + GST Tax Exempt Purchase + GST Tax Exempt Purchase + percent + 0 + purchase + False + True + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/l10n_jp_chart_data.xml b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/l10n_jp_chart_data.xml new file mode 100644 index 0000000..545cde3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/data/l10n_jp_chart_data.xml @@ -0,0 +1,13 @@ + + + + Japan - Chart of Accounts + 1201 + 1202 + 1236 + 6 + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/demo/demo_company.xml new file mode 100644 index 0000000..1073d6c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/demo/demo_company.xml @@ -0,0 +1,34 @@ + + + + JP Company + 7482543580381 + 池上通り + 品川区 + + + 140-0004 + +81 90-1234-5678 + info@company.jpexample.com + www.jpexample.com + + + + JP Company + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/i18n/ja_JP.po b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/i18n/ja_JP.po new file mode 100644 index 0000000..d8f1f46 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/i18n/ja_JP.po @@ -0,0 +1,1512 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_jp +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-02-15 09:41+0000\n" +"PO-Revision-Date: 2023-02-15 09:41+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_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220700 +#: model:account.account,name:l10n_jp.2_l10n_jp_220700 +#: model:account.account,name:l10n_jp.3_l10n_jp_220700 +#: model:account.account,name:l10n_jp.4_l10n_jp_220700 +#: model:account.account.template,name:l10n_jp.l10n_jp_220700 +msgid "Accounts Payable - Credit Card" +msgstr "未払金(クレジット)" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220600 +#: model:account.account,name:l10n_jp.2_l10n_jp_220600 +#: model:account.account,name:l10n_jp.3_l10n_jp_220600 +#: model:account.account,name:l10n_jp.4_l10n_jp_220600 +#: model:account.account.template,name:l10n_jp.l10n_jp_220600 +msgid "Accounts Payable - Other" +msgstr "未払金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220000 +#: model:account.account,name:l10n_jp.2_l10n_jp_220000 +#: model:account.account,name:l10n_jp.3_l10n_jp_220000 +#: model:account.account,name:l10n_jp.4_l10n_jp_220000 +#: model:account.account.template,name:l10n_jp.l10n_jp_220000 +msgid "Accounts Payable - Trade" +msgstr "買掛金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_126200 +#: model:account.account,name:l10n_jp.2_l10n_jp_126200 +#: model:account.account,name:l10n_jp.3_l10n_jp_126200 +#: model:account.account,name:l10n_jp.4_l10n_jp_126200 +#: model:account.account.template,name:l10n_jp.l10n_jp_126200 +msgid "Accounts Receivable (PoS)" +msgstr "売掛金(PoS)" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_126000 +#: model:account.account,name:l10n_jp.2_l10n_jp_126000 +#: model:account.account,name:l10n_jp.3_l10n_jp_126000 +#: model:account.account,name:l10n_jp.4_l10n_jp_126000 +#: model:account.account.template,name:l10n_jp.l10n_jp_126000 +msgid "Accounts Receivable - Trade" +msgstr "売掛金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330200 +#: model:account.account,name:l10n_jp.2_l10n_jp_330200 +#: model:account.account,name:l10n_jp.3_l10n_jp_330200 +#: model:account.account,name:l10n_jp.4_l10n_jp_330200 +#: model:account.account.template,name:l10n_jp.l10n_jp_330200 +msgid "Accrued Expenses" +msgstr "未払費用" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123400 +#: model:account.account,name:l10n_jp.2_l10n_jp_123400 +#: model:account.account,name:l10n_jp.3_l10n_jp_123400 +#: model:account.account,name:l10n_jp.4_l10n_jp_123400 +#: model:account.account.template,name:l10n_jp.l10n_jp_123400 +msgid "Accrued Income" +msgstr "未収収益" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425700 +#: model:account.account,name:l10n_jp.2_l10n_jp_425700 +#: model:account.account,name:l10n_jp.3_l10n_jp_425700 +#: model:account.account,name:l10n_jp.4_l10n_jp_425700 +#: model:account.account.template,name:l10n_jp.l10n_jp_425700 +msgid "Actual Exchange Gain" +msgstr "実現為替差益" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513500 +#: model:account.account,name:l10n_jp.2_l10n_jp_513500 +#: model:account.account,name:l10n_jp.3_l10n_jp_513500 +#: model:account.account,name:l10n_jp.4_l10n_jp_513500 +#: model:account.account.template,name:l10n_jp.l10n_jp_513500 +msgid "Actual Exchange Loss" +msgstr "実現為替差損" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122700 +#: model:account.account,name:l10n_jp.2_l10n_jp_122700 +#: model:account.account,name:l10n_jp.3_l10n_jp_122700 +#: model:account.account,name:l10n_jp.4_l10n_jp_122700 +#: model:account.account.template,name:l10n_jp.l10n_jp_122700 +msgid "Advance Payments" +msgstr "前渡金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122900 +#: model:account.account,name:l10n_jp.2_l10n_jp_122900 +#: model:account.account,name:l10n_jp.3_l10n_jp_122900 +#: model:account.account,name:l10n_jp.4_l10n_jp_122900 +#: model:account.account.template,name:l10n_jp.l10n_jp_122900 +msgid "Advances Paid" +msgstr "立替金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330400 +#: model:account.account,name:l10n_jp.2_l10n_jp_330400 +#: model:account.account,name:l10n_jp.3_l10n_jp_330400 +#: model:account.account,name:l10n_jp.4_l10n_jp_330400 +#: model:account.account.template,name:l10n_jp.l10n_jp_330400 +msgid "Advances Received" +msgstr "前受金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511900 +#: model:account.account,name:l10n_jp.2_l10n_jp_511900 +#: model:account.account,name:l10n_jp.3_l10n_jp_511900 +#: model:account.account,name:l10n_jp.4_l10n_jp_511900 +#: model:account.account.template,name:l10n_jp.l10n_jp_511900 +msgid "Advertisement/Promotion Expenses" +msgstr "広告宣伝費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513200 +#: model:account.account,name:l10n_jp.2_l10n_jp_513200 +#: model:account.account,name:l10n_jp.3_l10n_jp_513200 +#: model:account.account,name:l10n_jp.4_l10n_jp_513200 +#: model:account.account.template,name:l10n_jp.l10n_jp_513200 +msgid "Amortization of Deferred Organization Expenses" +msgstr "創立費償却" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123300 +#: model:account.account,name:l10n_jp.2_l10n_jp_123300 +#: model:account.account,name:l10n_jp.3_l10n_jp_123300 +#: model:account.account,name:l10n_jp.4_l10n_jp_123300 +#: model:account.account.template,name:l10n_jp.l10n_jp_123300 +msgid "Bad Debt Allowance" +msgstr "貸倒引当金" + +#. module: l10n_jp +#: model:account.report.column,name:l10n_jp.tax_report_balance +msgid "Balance" +msgstr "総合計" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123900 +#: model:account.account,name:l10n_jp.2_l10n_jp_123900 +#: model:account.account,name:l10n_jp.3_l10n_jp_123900 +#: model:account.account,name:l10n_jp.4_l10n_jp_123900 +#: model:account.account.template,name:l10n_jp.l10n_jp_123900 +msgid "Bank Suspense Account" +msgstr "銀行仮勘定" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330900 +#: model:account.account,name:l10n_jp.2_l10n_jp_330900 +#: model:account.account,name:l10n_jp.3_l10n_jp_330900 +#: model:account.account,name:l10n_jp.4_l10n_jp_330900 +#: model:account.account.template,name:l10n_jp.l10n_jp_330900 +msgid "Bonds Payable" +msgstr "社債" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510600 +#: model:account.account,name:l10n_jp.2_l10n_jp_510600 +#: model:account.account,name:l10n_jp.3_l10n_jp_510600 +#: model:account.account,name:l10n_jp.4_l10n_jp_510600 +#: model:account.account.template,name:l10n_jp.l10n_jp_510600 +msgid "Bonus" +msgstr "賞与" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110000 +#: model:account.account,name:l10n_jp.2_l10n_jp_110000 +#: model:account.account,name:l10n_jp.3_l10n_jp_110000 +#: model:account.account,name:l10n_jp.4_l10n_jp_110000 +#: model:account.account.template,name:l10n_jp.l10n_jp_110000 +msgid "Buildings and Structures" +msgstr "建物及び構築物" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110100 +#: model:account.account,name:l10n_jp.2_l10n_jp_110100 +#: model:account.account,name:l10n_jp.3_l10n_jp_110100 +#: model:account.account,name:l10n_jp.4_l10n_jp_110100 +#: model:account.account.template,name:l10n_jp.l10n_jp_110100 +msgid "Buildings and Structures - Accumulated Depreciation" +msgstr "建物及び構築物減償累計額" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220900 +#: model:account.account,name:l10n_jp.2_l10n_jp_220900 +#: model:account.account,name:l10n_jp.3_l10n_jp_220900 +#: model:account.account,name:l10n_jp.4_l10n_jp_220900 +#: model:account.account.template,name:l10n_jp.l10n_jp_220900 +msgid "Capital Stock" +msgstr "資本金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_999002 +#: model:account.account,name:l10n_jp.2_l10n_jp_999002 +#: model:account.account,name:l10n_jp.3_l10n_jp_999002 +#: model:account.account,name:l10n_jp.4_l10n_jp_999002 +#: model:account.account.template,name:l10n_jp.l10n_jp_999002 +msgid "Cash Difference Gain" +msgstr "現金差益" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510100 +#: model:account.account,name:l10n_jp.2_l10n_jp_510100 +#: model:account.account,name:l10n_jp.3_l10n_jp_510100 +#: model:account.account,name:l10n_jp.4_l10n_jp_510100 +#: model:account.account.template,name:l10n_jp.l10n_jp_510100 +msgid "Cash Difference Loss" +msgstr "現金差損" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425000 +#: model:account.account,name:l10n_jp.2_l10n_jp_425000 +#: model:account.account,name:l10n_jp.3_l10n_jp_425000 +#: model:account.account,name:l10n_jp.4_l10n_jp_425000 +#: model:account.account.template,name:l10n_jp.l10n_jp_425000 +msgid "Cash Discount Gain" +msgstr "割引差益" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510200 +#: model:account.account,name:l10n_jp.2_l10n_jp_510200 +#: model:account.account,name:l10n_jp.3_l10n_jp_510200 +#: model:account.account,name:l10n_jp.4_l10n_jp_510200 +#: model:account.account.template,name:l10n_jp.l10n_jp_510200 +msgid "Cash Discount Loss" +msgstr "割引差損" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512400 +#: model:account.account,name:l10n_jp.2_l10n_jp_512400 +#: model:account.account,name:l10n_jp.3_l10n_jp_512400 +#: model:account.account,name:l10n_jp.4_l10n_jp_512400 +#: model:account.account.template,name:l10n_jp.l10n_jp_512400 +msgid "Commission Expenses" +msgstr "支払手数料" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512000 +#: model:account.account,name:l10n_jp.2_l10n_jp_512000 +#: model:account.account,name:l10n_jp.3_l10n_jp_512000 +#: model:account.account,name:l10n_jp.4_l10n_jp_512000 +#: model:account.account.template,name:l10n_jp.l10n_jp_512000 +msgid "Communication Expenses" +msgstr "通信費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512100 +#: model:account.account,name:l10n_jp.2_l10n_jp_512100 +#: model:account.account,name:l10n_jp.3_l10n_jp_512100 +#: model:account.account,name:l10n_jp.4_l10n_jp_512100 +#: model:account.account.template,name:l10n_jp.l10n_jp_512100 +msgid "Consumables Expeneses" +msgstr "消耗品費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123200 +#: model:account.account,name:l10n_jp.2_l10n_jp_123200 +#: model:account.account,name:l10n_jp.3_l10n_jp_123200 +#: model:account.account,name:l10n_jp.4_l10n_jp_123200 +#: model:account.account.template,name:l10n_jp.l10n_jp_123200 +msgid "Consumption Tax - Purchase" +msgstr "仮払消費税" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330800 +#: model:account.account,name:l10n_jp.2_l10n_jp_330800 +#: model:account.account,name:l10n_jp.3_l10n_jp_330800 +#: model:account.account,name:l10n_jp.4_l10n_jp_330800 +#: model:account.account.template,name:l10n_jp.l10n_jp_330800 +msgid "Consumption Tax - Sales" +msgstr "仮受消費税" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_514300 +#: model:account.account,name:l10n_jp.2_l10n_jp_514300 +#: model:account.account,name:l10n_jp.3_l10n_jp_514300 +#: model:account.account,name:l10n_jp.4_l10n_jp_514300 +#: model:account.account.template,name:l10n_jp.l10n_jp_514300 +msgid "Corporate, Inhabitant, and Enterprise Taxes" +msgstr "法人税、住民税及び事業税" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510000 +#: model:account.account,name:l10n_jp.2_l10n_jp_510000 +#: model:account.account,name:l10n_jp.3_l10n_jp_510000 +#: model:account.account,name:l10n_jp.4_l10n_jp_510000 +#: model:account.account.template,name:l10n_jp.l10n_jp_510000 +msgid "Cost of Goods Sold" +msgstr "商品売上原価" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_121000 +#: model:account.account,name:l10n_jp.2_l10n_jp_121000 +#: model:account.account,name:l10n_jp.3_l10n_jp_121000 +#: model:account.account,name:l10n_jp.4_l10n_jp_121000 +#: model:account.account.template,name:l10n_jp.l10n_jp_121000 +msgid "Current Assets" +msgstr "流動資産" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330000 +#: model:account.account,name:l10n_jp.2_l10n_jp_330000 +#: model:account.account,name:l10n_jp.3_l10n_jp_330000 +#: model:account.account,name:l10n_jp.4_l10n_jp_330000 +#: model:account.account.template,name:l10n_jp.l10n_jp_330000 +msgid "Current Liabilities" +msgstr "流動負債" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220500 +#: model:account.account,name:l10n_jp.2_l10n_jp_220500 +#: model:account.account,name:l10n_jp.3_l10n_jp_220500 +#: model:account.account,name:l10n_jp.4_l10n_jp_220500 +#: model:account.account.template,name:l10n_jp.l10n_jp_220500 +msgid "Current Portion of Long-term Loans Payable" +msgstr "一年以内返済長期借入金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210800 +#: model:account.account,name:l10n_jp.2_l10n_jp_210800 +#: model:account.account,name:l10n_jp.3_l10n_jp_210800 +#: model:account.account,name:l10n_jp.4_l10n_jp_210800 +#: model:account.account.template,name:l10n_jp.l10n_jp_210800 +msgid "Deferred Organization Expenses" +msgstr "創立費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_120003 +#: model:account.account,name:l10n_jp.2_l10n_jp_120003 +#: model:account.account,name:l10n_jp.3_l10n_jp_120003 +#: model:account.account,name:l10n_jp.4_l10n_jp_120003 +#: model:account.account.template,name:l10n_jp.l10n_jp_120003 +msgid "Deposit" +msgstr "普通預金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330500 +#: model:account.account,name:l10n_jp.2_l10n_jp_330500 +#: model:account.account,name:l10n_jp.3_l10n_jp_330500 +#: model:account.account,name:l10n_jp.4_l10n_jp_330500 +#: model:account.account.template,name:l10n_jp.l10n_jp_330500 +msgid "Deposits Received" +msgstr "預り金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513300 +#: model:account.account,name:l10n_jp.2_l10n_jp_513300 +#: model:account.account,name:l10n_jp.3_l10n_jp_513300 +#: model:account.account,name:l10n_jp.4_l10n_jp_513300 +#: model:account.account.template,name:l10n_jp.l10n_jp_513300 +msgid "Depreciation" +msgstr "減価償却費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510400 +#: model:account.account,name:l10n_jp.2_l10n_jp_510400 +#: model:account.account,name:l10n_jp.3_l10n_jp_510400 +#: model:account.account,name:l10n_jp.4_l10n_jp_510400 +#: model:account.account.template,name:l10n_jp.l10n_jp_510400 +msgid "Director's Remuneration" +msgstr "役員報酬" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425500 +#: model:account.account,name:l10n_jp.2_l10n_jp_425500 +#: model:account.account,name:l10n_jp.3_l10n_jp_425500 +#: model:account.account,name:l10n_jp.4_l10n_jp_425500 +#: model:account.account.template,name:l10n_jp.l10n_jp_425500 +msgid "Dividend Income" +msgstr "受取配当金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220800 +#: model:account.account,name:l10n_jp.2_l10n_jp_220800 +#: model:account.account,name:l10n_jp.3_l10n_jp_220800 +#: model:account.account,name:l10n_jp.4_l10n_jp_220800 +#: model:account.account.template,name:l10n_jp.l10n_jp_220800 +msgid "Dividends Payable" +msgstr "未払配当金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512300 +#: model:account.account,name:l10n_jp.2_l10n_jp_512300 +#: model:account.account,name:l10n_jp.3_l10n_jp_512300 +#: model:account.account,name:l10n_jp.4_l10n_jp_512300 +#: model:account.account.template,name:l10n_jp.l10n_jp_512300 +msgid "Entertainment Expenses" +msgstr "交際費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122100 +#: model:account.account,name:l10n_jp.2_l10n_jp_122100 +#: model:account.account,name:l10n_jp.3_l10n_jp_122100 +#: model:account.account,name:l10n_jp.4_l10n_jp_122100 +#: model:account.account.template,name:l10n_jp.l10n_jp_122100 +msgid "Finished Goods" +msgstr "製品" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_424000 +#: model:account.account,name:l10n_jp.2_l10n_jp_424000 +#: model:account.account,name:l10n_jp.3_l10n_jp_424000 +#: model:account.account,name:l10n_jp.4_l10n_jp_424000 +#: model:account.account.template,name:l10n_jp.l10n_jp_424000 +msgid "Foreign Exchange Gain" +msgstr "為替差益" + +#. module: l10n_jp +#: model:account.tax.group,name:l10n_jp.l10n_jp_tax_group_10 +msgid "GST 10%" +msgstr "消費税 10%" + +#. module: l10n_jp +#: model:account.tax.group,name:l10n_jp.l10n_jp_tax_group_8 +msgid "GST 8%" +msgstr "消費税 8%" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_purchase_incl_10 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_purchase_incl_10 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_purchase_incl_10 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_purchase_incl_10 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_purchase_incl_10 +msgid "GST Inc Purchase (10%)" +msgstr "仮払消費税(内) 10%" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_purchase_incl_8 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_purchase_incl_8 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_purchase_incl_8 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_purchase_incl_8 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_purchase_incl_8 +msgid "GST Inc Purchase (8%)" +msgstr "仮払消費税(内) 8%" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_sale_incl_10 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_sale_incl_10 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_sale_incl_10 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_sale_incl_10 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_sale_incl_10 +msgid "GST Inc Sale (10%)" +msgstr "仮受消費税(内) 10%" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_sale_incl_8 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_sale_incl_8 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_sale_incl_8 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_sale_incl_8 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_sale_incl_8 +msgid "GST Inc Sale (8%)" +msgstr "仮受消費税(内) 8%" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_purchase_incl_10 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_purchase_incl_10 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_purchase_incl_10 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_purchase_incl_10 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_purchase_incl_10 +msgid "GST Inclusive Purchase 10%" +msgstr "仮払消費税(内) 10%" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_purchase_incl_8 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_purchase_incl_8 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_purchase_incl_8 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_purchase_incl_8 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_purchase_incl_8 +msgid "GST Inclusive Purchase 8%" +msgstr "仮払消費税(内) 8%" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_sale_incl_10 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_sale_incl_10 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_sale_incl_10 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_sale_incl_10 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_sale_incl_10 +msgid "GST Inclusive Sale 10%" +msgstr "仮受消費税(内) 10%" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_sale_incl_8 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_sale_incl_8 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_sale_incl_8 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_sale_incl_8 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_sale_incl_8 +msgid "GST Inclusive Sale 8%" +msgstr "仮受消費税(内) 8%" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_pmt_susp_cons_10 +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_purchase_exc_10 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_purchase_exc_10 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_purchase_exc_10 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_purchase_exc_10 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_purchase_exc_10 +msgid "GST Purchase 10%" +msgstr "仮払消費税(外) 10%" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_pmt_susp_cons_8 +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_purchase_exc_8 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_purchase_exc_8 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_purchase_exc_8 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_purchase_exc_8 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_purchase_exc_8 +msgid "GST Purchase 8%" +msgstr "仮払消費税(外) 8%" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_pmt +msgid "GST Purchase Amount" +msgstr "仮払税額" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_tx_output_10 +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_sale_exc_10 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_sale_exc_10 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_sale_exc_10 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_sale_exc_10 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_sale_exc_10 +msgid "GST Sale 10%" +msgstr "仮受消費税(外) 10%" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_tx_output_8 +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_sale_exc_8 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_sale_exc_8 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_sale_exc_8 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_sale_exc_8 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_sale_exc_8 +msgid "GST Sale 8%" +msgstr "仮受消費税(外) 8%" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_tx +msgid "GST Sale Amount" +msgstr "仮受税額" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_purchase_exempt +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_purchase_exempt +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_purchase_exempt +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_purchase_exempt +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_purchase_exempt +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_purchase_exempt +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_purchase_exempt +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_purchase_exempt +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_purchase_exempt +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_purchase_exempt +msgid "GST Tax Exempt Purchase" +msgstr "非課税購買" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_sale_exempt +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_sale_exempt +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_sale_exempt +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_sale_exempt +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_sale_exempt +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_sale_exempt +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_sale_exempt +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_sale_exempt +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_sale_exempt +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_sale_exempt +msgid "GST Tax Exempt Sale" +msgstr "輸出免税" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425800 +#: model:account.account,name:l10n_jp.2_l10n_jp_425800 +#: model:account.account,name:l10n_jp.3_l10n_jp_425800 +#: model:account.account,name:l10n_jp.4_l10n_jp_425800 +#: model:account.account.template,name:l10n_jp.l10n_jp_425800 +msgid "Gain on Investment Securities" +msgstr "投資有価証券売却益(外益)" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_426100 +#: model:account.account,name:l10n_jp.2_l10n_jp_426100 +#: model:account.account,name:l10n_jp.3_l10n_jp_426100 +#: model:account.account,name:l10n_jp.4_l10n_jp_426100 +#: model:account.account.template,name:l10n_jp.l10n_jp_426100 +msgid "Gain on Non-current Asset" +msgstr "固定資産売却益" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425900 +#: model:account.account,name:l10n_jp.2_l10n_jp_425900 +#: model:account.account,name:l10n_jp.3_l10n_jp_425900 +#: model:account.account,name:l10n_jp.4_l10n_jp_425900 +#: model:account.account.template,name:l10n_jp.l10n_jp_425900 +msgid "Gain on Valuation of Investment Securities" +msgstr "投資有価証券評価益(外益)" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_426200 +#: model:account.account,name:l10n_jp.2_l10n_jp_426200 +#: model:account.account,name:l10n_jp.3_l10n_jp_426200 +#: model:account.account,name:l10n_jp.4_l10n_jp_426200 +#: model:account.account.template,name:l10n_jp.l10n_jp_426200 +msgid "Gain on Valuation of Non-current Asset" +msgstr "固定資産評価益" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_pmt_import_8 +msgid "Imported" +msgstr "輸入" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_purchases_import +msgid "Imported Purchase" +msgstr "輸入仕入" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330300 +#: model:account.account,name:l10n_jp.2_l10n_jp_330300 +#: model:account.account,name:l10n_jp.3_l10n_jp_330300 +#: model:account.account,name:l10n_jp.4_l10n_jp_330300 +#: model:account.account.template,name:l10n_jp.l10n_jp_330300 +msgid "Income Taxes Payable" +msgstr "未払法人税等" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511200 +#: model:account.account,name:l10n_jp.2_l10n_jp_511200 +#: model:account.account,name:l10n_jp.3_l10n_jp_511200 +#: model:account.account,name:l10n_jp.4_l10n_jp_511200 +#: model:account.account.template,name:l10n_jp.l10n_jp_511200 +msgid "Insurance Expenses" +msgstr "保険料" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513100 +#: model:account.account,name:l10n_jp.2_l10n_jp_513100 +#: model:account.account,name:l10n_jp.3_l10n_jp_513100 +#: model:account.account,name:l10n_jp.4_l10n_jp_513100 +#: model:account.account.template,name:l10n_jp.l10n_jp_513100 +msgid "Interest Expenses" +msgstr "支払利息" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425400 +#: model:account.account,name:l10n_jp.2_l10n_jp_425400 +#: model:account.account,name:l10n_jp.3_l10n_jp_425400 +#: model:account.account,name:l10n_jp.4_l10n_jp_425400 +#: model:account.account.template,name:l10n_jp.l10n_jp_425400 +msgid "Interest Income" +msgstr "受取利息" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425300 +#: model:account.account,name:l10n_jp.2_l10n_jp_425300 +#: model:account.account,name:l10n_jp.3_l10n_jp_425300 +#: model:account.account,name:l10n_jp.4_l10n_jp_425300 +#: model:account.account.template,name:l10n_jp.l10n_jp_425300 +msgid "Inventory Adjustment" +msgstr "棚卸調整" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511500 +#: model:account.account,name:l10n_jp.2_l10n_jp_511500 +#: model:account.account,name:l10n_jp.3_l10n_jp_511500 +#: model:account.account,name:l10n_jp.4_l10n_jp_511500 +#: model:account.account.template,name:l10n_jp.l10n_jp_511500 +msgid "Inventory Usage Expenses" +msgstr "棚卸減耗費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122300 +#: model:account.account,name:l10n_jp.2_l10n_jp_122300 +#: model:account.account,name:l10n_jp.3_l10n_jp_122300 +#: model:account.account,name:l10n_jp.4_l10n_jp_122300 +#: model:account.account.template,name:l10n_jp.l10n_jp_122300 +msgid "Inventory in Transit" +msgstr "積送品" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210400 +#: model:account.account,name:l10n_jp.2_l10n_jp_210400 +#: model:account.account,name:l10n_jp.3_l10n_jp_210400 +#: model:account.account,name:l10n_jp.4_l10n_jp_210400 +#: model:account.account.template,name:l10n_jp.l10n_jp_210400 +msgid "Investment Securities" +msgstr "投資有価証券" + +#. module: l10n_jp +#: model:account.chart.template,name:l10n_jp.l10n_jp_chart_template +msgid "Japan - Chart of Accounts" +msgstr "日本勘定設定テンプレート" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110600 +#: model:account.account,name:l10n_jp.2_l10n_jp_110600 +#: model:account.account,name:l10n_jp.3_l10n_jp_110600 +#: model:account.account,name:l10n_jp.4_l10n_jp_110600 +#: model:account.account.template,name:l10n_jp.l10n_jp_110600 +msgid "Land" +msgstr "土地" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511800 +#: model:account.account,name:l10n_jp.2_l10n_jp_511800 +#: model:account.account,name:l10n_jp.3_l10n_jp_511800 +#: model:account.account,name:l10n_jp.4_l10n_jp_511800 +#: model:account.account.template,name:l10n_jp.l10n_jp_511800 +msgid "Lease Expenses" +msgstr "リース料" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123100 +#: model:account.account,name:l10n_jp.2_l10n_jp_123100 +#: model:account.account,name:l10n_jp.3_l10n_jp_123100 +#: model:account.account,name:l10n_jp.4_l10n_jp_123100 +#: model:account.account.template,name:l10n_jp.l10n_jp_123100 +msgid "Lease/Guarantee Deposits" +msgstr "敷金・保証金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_221000 +#: model:account.account,name:l10n_jp.2_l10n_jp_221000 +#: model:account.account,name:l10n_jp.3_l10n_jp_221000 +#: model:account.account,name:l10n_jp.4_l10n_jp_221000 +#: model:account.account.template,name:l10n_jp.l10n_jp_221000 +msgid "Legal Capital Surplus" +msgstr "資本準備金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_221200 +#: model:account.account,name:l10n_jp.2_l10n_jp_221200 +#: model:account.account,name:l10n_jp.3_l10n_jp_221200 +#: model:account.account,name:l10n_jp.4_l10n_jp_221200 +#: model:account.account.template,name:l10n_jp.l10n_jp_221200 +msgid "Legal Retained Earnings" +msgstr "利益準備金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511000 +#: model:account.account,name:l10n_jp.2_l10n_jp_511000 +#: model:account.account,name:l10n_jp.3_l10n_jp_511000 +#: model:account.account,name:l10n_jp.4_l10n_jp_511000 +#: model:account.account.template,name:l10n_jp.l10n_jp_511000 +msgid "Legal Welfare Expenses" +msgstr "法定福利費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_chart_template_liquidity_transfer +#: model:account.account,name:l10n_jp.2_l10n_jp_chart_template_liquidity_transfer +#: model:account.account,name:l10n_jp.3_l10n_jp_chart_template_liquidity_transfer +#: model:account.account,name:l10n_jp.4_l10n_jp_chart_template_liquidity_transfer +#: model:account.account.template,name:l10n_jp.l10n_jp_chart_template_liquidity_transfer +msgid "Liquidity Transfer" +msgstr "仮振込" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_331000 +#: model:account.account,name:l10n_jp.2_l10n_jp_331000 +#: model:account.account,name:l10n_jp.3_l10n_jp_331000 +#: model:account.account,name:l10n_jp.4_l10n_jp_331000 +#: model:account.account.template,name:l10n_jp.l10n_jp_331000 +msgid "Long-term Loans Payable" +msgstr "長期借入金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210600 +#: model:account.account,name:l10n_jp.2_l10n_jp_210600 +#: model:account.account,name:l10n_jp.3_l10n_jp_210600 +#: model:account.account,name:l10n_jp.4_l10n_jp_210600 +#: model:account.account.template,name:l10n_jp.l10n_jp_210600 +msgid "Long-term Loans Receivable" +msgstr "長期貸付金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210700 +#: model:account.account,name:l10n_jp.2_l10n_jp_210700 +#: model:account.account,name:l10n_jp.3_l10n_jp_210700 +#: model:account.account,name:l10n_jp.4_l10n_jp_210700 +#: model:account.account.template,name:l10n_jp.l10n_jp_210700 +msgid "Long-term Prepaid Expenses" +msgstr "長期前払費用" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513600 +#: model:account.account,name:l10n_jp.2_l10n_jp_513600 +#: model:account.account,name:l10n_jp.3_l10n_jp_513600 +#: model:account.account,name:l10n_jp.4_l10n_jp_513600 +#: model:account.account.template,name:l10n_jp.l10n_jp_513600 +msgid "Loss on Investment Securities" +msgstr "投資有価証券売却損(外損)" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513900 +#: model:account.account,name:l10n_jp.2_l10n_jp_513900 +#: model:account.account,name:l10n_jp.3_l10n_jp_513900 +#: model:account.account,name:l10n_jp.4_l10n_jp_513900 +#: model:account.account.template,name:l10n_jp.l10n_jp_513900 +msgid "Loss on Non-current Asset" +msgstr "固定資産売却損" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511600 +#: model:account.account,name:l10n_jp.2_l10n_jp_511600 +#: model:account.account,name:l10n_jp.3_l10n_jp_511600 +#: model:account.account,name:l10n_jp.4_l10n_jp_511600 +#: model:account.account.template,name:l10n_jp.l10n_jp_511600 +msgid "Loss on Valuation of Goods" +msgstr "商品評価損" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513700 +#: model:account.account,name:l10n_jp.2_l10n_jp_513700 +#: model:account.account,name:l10n_jp.3_l10n_jp_513700 +#: model:account.account,name:l10n_jp.4_l10n_jp_513700 +#: model:account.account.template,name:l10n_jp.l10n_jp_513700 +msgid "Loss on Valuation of Investment Securities" +msgstr "投資有価証券評価損(外損)" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_514000 +#: model:account.account,name:l10n_jp.2_l10n_jp_514000 +#: model:account.account,name:l10n_jp.3_l10n_jp_514000 +#: model:account.account,name:l10n_jp.4_l10n_jp_514000 +#: model:account.account.template,name:l10n_jp.l10n_jp_514000 +msgid "Loss on Valuation of Non-current Asset" +msgstr "固定資産評価損" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110200 +#: model:account.account,name:l10n_jp.2_l10n_jp_110200 +#: model:account.account,name:l10n_jp.3_l10n_jp_110200 +#: model:account.account,name:l10n_jp.4_l10n_jp_110200 +#: model:account.account.template,name:l10n_jp.l10n_jp_110200 +msgid "Machinery and Equipment" +msgstr "機械及び装置" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110300 +#: model:account.account,name:l10n_jp.2_l10n_jp_110300 +#: model:account.account,name:l10n_jp.3_l10n_jp_110300 +#: model:account.account,name:l10n_jp.4_l10n_jp_110300 +#: model:account.account.template,name:l10n_jp.l10n_jp_110300 +msgid "Machinery and Equipment - Accumulated Depreciation" +msgstr "機械及び装置物減償累計額" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122600 +#: model:account.account,name:l10n_jp.2_l10n_jp_122600 +#: model:account.account,name:l10n_jp.3_l10n_jp_122600 +#: model:account.account,name:l10n_jp.4_l10n_jp_122600 +#: model:account.account.template,name:l10n_jp.l10n_jp_122600 +msgid "Materials" +msgstr "資材" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512900 +#: model:account.account,name:l10n_jp.2_l10n_jp_512900 +#: model:account.account,name:l10n_jp.3_l10n_jp_512900 +#: model:account.account,name:l10n_jp.4_l10n_jp_512900 +#: model:account.account.template,name:l10n_jp.l10n_jp_512900 +msgid "Meeting Expenses" +msgstr "会議費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512500 +#: model:account.account,name:l10n_jp.2_l10n_jp_512500 +#: model:account.account,name:l10n_jp.3_l10n_jp_512500 +#: model:account.account,name:l10n_jp.4_l10n_jp_512500 +#: model:account.account.template,name:l10n_jp.l10n_jp_512500 +msgid "Membership Fee" +msgstr "諸会費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122000 +#: model:account.account,name:l10n_jp.2_l10n_jp_122000 +#: model:account.account,name:l10n_jp.3_l10n_jp_122000 +#: model:account.account,name:l10n_jp.4_l10n_jp_122000 +#: model:account.account.template,name:l10n_jp.l10n_jp_122000 +msgid "Merchandise" +msgstr "商品" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_426000 +#: model:account.account,name:l10n_jp.2_l10n_jp_426000 +#: model:account.account,name:l10n_jp.3_l10n_jp_426000 +#: model:account.account,name:l10n_jp.4_l10n_jp_426000 +#: model:account.account.template,name:l10n_jp.l10n_jp_426000 +msgid "Miscellaneous Income" +msgstr "雑収入" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_410000 +#: model:account.account,name:l10n_jp.2_l10n_jp_410000 +#: model:account.account,name:l10n_jp.3_l10n_jp_410000 +#: model:account.account,name:l10n_jp.4_l10n_jp_410000 +#: model:account.account.template,name:l10n_jp.l10n_jp_410000 +msgid "Net Sales" +msgstr "売上高" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp-512600 +#: model:account.account,name:l10n_jp.2_l10n_jp-512600 +#: model:account.account,name:l10n_jp.3_l10n_jp-512600 +#: model:account.account,name:l10n_jp.4_l10n_jp-512600 +#: model:account.account.template,name:l10n_jp.l10n_jp-512600 +msgid "Newspaper/Book Expenses" +msgstr "新聞図書費" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_sale_non_vat +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_sale_non_vat +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_sale_non_vat +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_sale_non_vat +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_sale_non_vat +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_sale_non_vat +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_sale_non_vat +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_sale_non_vat +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_sale_non_vat +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_sale_non_vat +msgid "Non-VAT" +msgstr "非課税販売" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210000 +#: model:account.account,name:l10n_jp.2_l10n_jp_210000 +#: model:account.account,name:l10n_jp.3_l10n_jp_210000 +#: model:account.account,name:l10n_jp.4_l10n_jp_210000 +#: model:account.account.template,name:l10n_jp.l10n_jp_210000 +msgid "Non-current Liabilities" +msgstr "非流動資産" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_126400 +#: model:account.account,name:l10n_jp.2_l10n_jp_126400 +#: model:account.account,name:l10n_jp.3_l10n_jp_126400 +#: model:account.account,name:l10n_jp.4_l10n_jp_126400 +#: model:account.account.template,name:l10n_jp.l10n_jp_126400 +msgid "Notes Discount" +msgstr "割引手形" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220200 +#: model:account.account,name:l10n_jp.2_l10n_jp_220200 +#: model:account.account,name:l10n_jp.3_l10n_jp_220200 +#: model:account.account,name:l10n_jp.4_l10n_jp_220200 +#: model:account.account.template,name:l10n_jp.l10n_jp_220200 +msgid "Notes Payable" +msgstr "支払手形" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_126300 +#: model:account.account,name:l10n_jp.2_l10n_jp_126300 +#: model:account.account,name:l10n_jp.3_l10n_jp_126300 +#: model:account.account,name:l10n_jp.4_l10n_jp_126300 +#: model:account.account.template,name:l10n_jp.l10n_jp_126300 +msgid "Notes Receivable" +msgstr "受取手形" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_221100 +#: model:account.account,name:l10n_jp.2_l10n_jp_221100 +#: model:account.account,name:l10n_jp.3_l10n_jp_221100 +#: model:account.account,name:l10n_jp.4_l10n_jp_221100 +#: model:account.account.template,name:l10n_jp.l10n_jp_221100 +msgid "Other Capital Surplus" +msgstr "その他資本剰余金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513000 +#: model:account.account,name:l10n_jp.2_l10n_jp_513000 +#: model:account.account,name:l10n_jp.3_l10n_jp_513000 +#: model:account.account,name:l10n_jp.4_l10n_jp_513000 +#: model:account.account.template,name:l10n_jp.l10n_jp_513000 +msgid "Other Expenses" +msgstr "雑費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210300 +#: model:account.account,name:l10n_jp.2_l10n_jp_210300 +#: model:account.account,name:l10n_jp.3_l10n_jp_210300 +#: model:account.account,name:l10n_jp.4_l10n_jp_210300 +#: model:account.account.template,name:l10n_jp.l10n_jp_210300 +msgid "Other Intangible Asset" +msgstr "その他無形固定資産" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123700 +#: model:account.account,name:l10n_jp.2_l10n_jp_123700 +#: model:account.account,name:l10n_jp.3_l10n_jp_123700 +#: model:account.account,name:l10n_jp.4_l10n_jp_123700 +#: model:account.account.template,name:l10n_jp.l10n_jp_123700 +msgid "Outstanding Payments" +msgstr "確認待ち支払" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123800 +#: model:account.account,name:l10n_jp.2_l10n_jp_123800 +#: model:account.account,name:l10n_jp.3_l10n_jp_123800 +#: model:account.account,name:l10n_jp.4_l10n_jp_123800 +#: model:account.account.template,name:l10n_jp.l10n_jp_123800 +msgid "Outstanding Receipts" +msgstr "確認待ち入金" + +#. module: l10n_jp +#: model:account.fiscal.position,name:l10n_jp.1_l10n_jp_fiscal_position_tax_exempt +#: model:account.fiscal.position,name:l10n_jp.2_l10n_jp_fiscal_position_tax_exempt +#: model:account.fiscal.position,name:l10n_jp.3_l10n_jp_fiscal_position_tax_exempt +#: model:account.fiscal.position,name:l10n_jp.4_l10n_jp_fiscal_position_tax_exempt +#: model:account.fiscal.position.template,name:l10n_jp.l10n_jp_fiscal_position_tax_exempt +msgid "Oversea Customer" +msgstr "海外取引先" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_purchase_imp +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_purchase_imp +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_purchase_imp +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_purchase_imp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_purchase_imp +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_purchase_imp +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_purchase_imp +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_purchase_imp +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_purchase_imp +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_purchase_imp +msgid "Oversea Purchase" +msgstr "海外仕入" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511400 +#: model:account.account,name:l10n_jp.2_l10n_jp_511400 +#: model:account.account,name:l10n_jp.3_l10n_jp_511400 +#: model:account.account,name:l10n_jp.4_l10n_jp_511400 +#: model:account.account.template,name:l10n_jp.l10n_jp_511400 +msgid "Packaging Expenses" +msgstr "荷造運賃" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122800 +#: model:account.account,name:l10n_jp.2_l10n_jp_122800 +#: model:account.account,name:l10n_jp.3_l10n_jp_122800 +#: model:account.account,name:l10n_jp.4_l10n_jp_122800 +#: model:account.account.template,name:l10n_jp.l10n_jp_122800 +msgid "Prepaid Expenses" +msgstr "前払費用" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330700 +#: model:account.account,name:l10n_jp.1_l10n_jp_510800 +#: model:account.account,name:l10n_jp.2_l10n_jp_330700 +#: model:account.account,name:l10n_jp.2_l10n_jp_510800 +#: model:account.account,name:l10n_jp.3_l10n_jp_330700 +#: model:account.account,name:l10n_jp.3_l10n_jp_510800 +#: model:account.account,name:l10n_jp.4_l10n_jp_330700 +#: model:account.account,name:l10n_jp.4_l10n_jp_510800 +#: model:account.account.template,name:l10n_jp.l10n_jp_330700 +#: model:account.account.template,name:l10n_jp.l10n_jp_510800 +msgid "Provision for Bonuses" +msgstr "賞与引当金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_331100 +#: model:account.account,name:l10n_jp.1_l10n_jp_510900 +#: model:account.account,name:l10n_jp.2_l10n_jp_331100 +#: model:account.account,name:l10n_jp.2_l10n_jp_510900 +#: model:account.account,name:l10n_jp.3_l10n_jp_331100 +#: model:account.account,name:l10n_jp.3_l10n_jp_510900 +#: model:account.account,name:l10n_jp.4_l10n_jp_331100 +#: model:account.account,name:l10n_jp.4_l10n_jp_510900 +#: model:account.account.template,name:l10n_jp.l10n_jp_331100 +#: model:account.account.template,name:l10n_jp.l10n_jp_510900 +msgid "Provision for Retirement Benefits" +msgstr "退職給付引当金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510300 +#: model:account.account,name:l10n_jp.2_l10n_jp_510300 +#: model:account.account,name:l10n_jp.3_l10n_jp_510300 +#: model:account.account,name:l10n_jp.4_l10n_jp_510300 +#: model:account.account.template,name:l10n_jp.l10n_jp_510300 +msgid "Provision of Allowance for Doubtful Debt" +msgstr "貸倒引当金繰入額" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425600 +#: model:account.account,name:l10n_jp.2_l10n_jp_425600 +#: model:account.account,name:l10n_jp.3_l10n_jp_425600 +#: model:account.account,name:l10n_jp.4_l10n_jp_425600 +#: model:account.account.template,name:l10n_jp.l10n_jp_425600 +msgid "Provision of Exchange Gain" +msgstr "未実現為替差益" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513400 +#: model:account.account,name:l10n_jp.2_l10n_jp_513400 +#: model:account.account,name:l10n_jp.3_l10n_jp_513400 +#: model:account.account,name:l10n_jp.4_l10n_jp_513400 +#: model:account.account.template,name:l10n_jp.l10n_jp_513400 +msgid "Provision of Exchange Loss" +msgstr "未実現為替差損" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_purchase_exc_10 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_purchase_exc_10 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_purchase_exc_10 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_purchase_exc_10 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_purchase_exc_10 +msgid "Purchase (10%)" +msgstr "仮払消費税(外) 10%" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_purchase_exc_8 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_purchase_exc_8 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_purchase_exc_8 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_purchase_exc_8 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_purchase_exc_8 +msgid "Purchase (8%)" +msgstr "仮払消費税(外) 8%" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_purchases +msgid "Purchase Amount" +msgstr "購買基準額" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425200 +#: model:account.account,name:l10n_jp.2_l10n_jp_425200 +#: model:account.account,name:l10n_jp.3_l10n_jp_425200 +#: model:account.account,name:l10n_jp.4_l10n_jp_425200 +#: model:account.account.template,name:l10n_jp.l10n_jp_425200 +msgid "Purchase Price Difference" +msgstr "購買価格差異" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122500 +#: model:account.account,name:l10n_jp.2_l10n_jp_122500 +#: model:account.account,name:l10n_jp.3_l10n_jp_122500 +#: model:account.account,name:l10n_jp.4_l10n_jp_122500 +#: model:account.account.template,name:l10n_jp.l10n_jp_122500 +msgid "Raw Materials" +msgstr "原材料" + +#. module: l10n_jp +#: model:account.fiscal.position,name:l10n_jp.1_l10n_jp_fiscal_position_tax_reduction +#: model:account.fiscal.position,name:l10n_jp.2_l10n_jp_fiscal_position_tax_reduction +#: model:account.fiscal.position,name:l10n_jp.3_l10n_jp_fiscal_position_tax_reduction +#: model:account.fiscal.position,name:l10n_jp.4_l10n_jp_fiscal_position_tax_reduction +#: model:account.fiscal.position.template,name:l10n_jp.l10n_jp_fiscal_position_tax_reduction +msgid "Reduced Tax Rate" +msgstr "軽減税率" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511700 +#: model:account.account,name:l10n_jp.2_l10n_jp_511700 +#: model:account.account,name:l10n_jp.3_l10n_jp_511700 +#: model:account.account,name:l10n_jp.4_l10n_jp_511700 +#: model:account.account.template,name:l10n_jp.l10n_jp_511700 +msgid "Rental Expenses" +msgstr "地代家賃" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_221300 +#: model:account.account,name:l10n_jp.2_l10n_jp_221300 +#: model:account.account,name:l10n_jp.3_l10n_jp_221300 +#: model:account.account,name:l10n_jp.4_l10n_jp_221300 +#: model:account.account.template,name:l10n_jp.l10n_jp_221300 +msgid "Reserve for Special Depreciation" +msgstr "特別償却準備金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_221500 +#: model:account.account,name:l10n_jp.2_l10n_jp_221500 +#: model:account.account,name:l10n_jp.3_l10n_jp_221500 +#: model:account.account,name:l10n_jp.4_l10n_jp_221500 +#: model:account.account.template,name:l10n_jp.l10n_jp_221500 +msgid "Retained Earnings Brought Forward" +msgstr "繰越利益剰余金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510700 +#: model:account.account,name:l10n_jp.2_l10n_jp_510700 +#: model:account.account,name:l10n_jp.3_l10n_jp_510700 +#: model:account.account,name:l10n_jp.4_l10n_jp_510700 +#: model:account.account.template,name:l10n_jp.l10n_jp_510700 +msgid "Retirement Payment" +msgstr "退職金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510500 +#: model:account.account,name:l10n_jp.2_l10n_jp_510500 +#: model:account.account,name:l10n_jp.3_l10n_jp_510500 +#: model:account.account,name:l10n_jp.4_l10n_jp_510500 +#: model:account.account.template,name:l10n_jp.l10n_jp_510500 +msgid "Salaries & Allowance" +msgstr "給料及び手当" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_sale_exc_10 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_sale_exc_10 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_sale_exc_10 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_sale_exc_10 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_sale_exc_10 +msgid "Sale (10%)" +msgstr "仮受消費税(外) 10%" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_sale_exc_8 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_sale_exc_8 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_sale_exc_8 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_sale_exc_8 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_sale_exc_8 +msgid "Sale (8%)" +msgstr "仮受消費税(外) 8%" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_sales +msgid "Sale Amount" +msgstr "販売基準額" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123500 +#: model:account.account,name:l10n_jp.2_l10n_jp_123500 +#: model:account.account,name:l10n_jp.3_l10n_jp_123500 +#: model:account.account,name:l10n_jp.4_l10n_jp_123500 +#: model:account.account.template,name:l10n_jp.l10n_jp_123500 +msgid "Securities" +msgstr "有価証券" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122200 +#: model:account.account,name:l10n_jp.2_l10n_jp_122200 +#: model:account.account,name:l10n_jp.3_l10n_jp_122200 +#: model:account.account,name:l10n_jp.4_l10n_jp_122200 +#: model:account.account.template,name:l10n_jp.l10n_jp_122200 +msgid "Semi-finished Goods" +msgstr "半製品" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210500 +#: model:account.account,name:l10n_jp.2_l10n_jp_210500 +#: model:account.account,name:l10n_jp.3_l10n_jp_210500 +#: model:account.account,name:l10n_jp.4_l10n_jp_210500 +#: model:account.account.template,name:l10n_jp.l10n_jp_210500 +msgid "Shares of Subsidiaries and Associates" +msgstr "関係会社株式" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220400 +#: model:account.account,name:l10n_jp.2_l10n_jp_220400 +#: model:account.account,name:l10n_jp.3_l10n_jp_220400 +#: model:account.account,name:l10n_jp.4_l10n_jp_220400 +#: model:account.account.template,name:l10n_jp.l10n_jp_220400 +msgid "Short-term Loans Payable" +msgstr "短期借入金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210100 +#: model:account.account,name:l10n_jp.2_l10n_jp_210100 +#: model:account.account,name:l10n_jp.3_l10n_jp_210100 +#: model:account.account,name:l10n_jp.4_l10n_jp_210100 +#: model:account.account.template,name:l10n_jp.l10n_jp_210100 +msgid "Software" +msgstr "ソフトウェア" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210200 +#: model:account.account,name:l10n_jp.2_l10n_jp_210200 +#: model:account.account,name:l10n_jp.3_l10n_jp_210200 +#: model:account.account,name:l10n_jp.4_l10n_jp_210200 +#: model:account.account.template,name:l10n_jp.l10n_jp_210200 +msgid "Software in Progress" +msgstr "ソフトウェア仮勘定" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_121300 +#: model:account.account,name:l10n_jp.2_l10n_jp_121300 +#: model:account.account,name:l10n_jp.3_l10n_jp_121300 +#: model:account.account,name:l10n_jp.4_l10n_jp_121300 +#: model:account.account.template,name:l10n_jp.l10n_jp_121300 +msgid "Stock Interim Account (Delivered)" +msgstr "請求待ち出荷" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_121200 +#: model:account.account,name:l10n_jp.2_l10n_jp_121200 +#: model:account.account,name:l10n_jp.3_l10n_jp_121200 +#: model:account.account,name:l10n_jp.4_l10n_jp_121200 +#: model:account.account.template,name:l10n_jp.l10n_jp_121200 +msgid "Stock Interim Account (Received)" +msgstr "請求待ち入荷" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_121100 +#: model:account.account,name:l10n_jp.2_l10n_jp_121100 +#: model:account.account,name:l10n_jp.3_l10n_jp_121100 +#: model:account.account,name:l10n_jp.4_l10n_jp_121100 +#: model:account.account.template,name:l10n_jp.l10n_jp_121100 +msgid "Stock Valuation Account" +msgstr "在庫評価" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511300 +#: model:account.account,name:l10n_jp.2_l10n_jp_511300 +#: model:account.account,name:l10n_jp.3_l10n_jp_511300 +#: model:account.account,name:l10n_jp.4_l10n_jp_511300 +#: model:account.account.template,name:l10n_jp.l10n_jp_511300 +msgid "Subcontract Expenses" +msgstr "外注費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123000 +#: model:account.account,name:l10n_jp.2_l10n_jp_123000 +#: model:account.account,name:l10n_jp.3_l10n_jp_123000 +#: model:account.account,name:l10n_jp.4_l10n_jp_123000 +#: model:account.account.template,name:l10n_jp.l10n_jp_123000 +msgid "Suspense Payments" +msgstr "仮払金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330600 +#: model:account.account,name:l10n_jp.2_l10n_jp_330600 +#: model:account.account,name:l10n_jp.3_l10n_jp_330600 +#: model:account.account,name:l10n_jp.4_l10n_jp_330600 +#: model:account.account.template,name:l10n_jp.l10n_jp_330600 +msgid "Suspense Receipt" +msgstr "仮受金" + +#. module: l10n_jp +#: model:account.fiscal.position,name:l10n_jp.1_l10n_jp_fiscal_position_tax_exclusive +#: model:account.fiscal.position,name:l10n_jp.2_l10n_jp_fiscal_position_tax_exclusive +#: model:account.fiscal.position,name:l10n_jp.3_l10n_jp_fiscal_position_tax_exclusive +#: model:account.fiscal.position,name:l10n_jp.4_l10n_jp_fiscal_position_tax_exclusive +#: model:account.fiscal.position.template,name:l10n_jp.l10n_jp_fiscal_position_tax_exclusive +msgid "Tax Exclusive" +msgstr "外税" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_tx_duty_free +#: model:account.tax.group,name:l10n_jp.l10n_jp_tax_group_exempt +msgid "Tax Exempt" +msgstr "免税" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_sales_duty_free +msgid "Tax Exempted Sale Amount" +msgstr "免税売上" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512700 +#: model:account.account,name:l10n_jp.2_l10n_jp_512700 +#: model:account.account,name:l10n_jp.3_l10n_jp_512700 +#: model:account.account,name:l10n_jp.4_l10n_jp_512700 +#: model:account.account.template,name:l10n_jp.l10n_jp_512700 +msgid "Tax Expenses" +msgstr "租税公課" + +#. module: l10n_jp +#: model:account.fiscal.position,name:l10n_jp.1_l10n_jp_fiscal_position_tax_inclusive +#: model:account.fiscal.position,name:l10n_jp.2_l10n_jp_fiscal_position_tax_inclusive +#: model:account.fiscal.position,name:l10n_jp.3_l10n_jp_fiscal_position_tax_inclusive +#: model:account.fiscal.position,name:l10n_jp.4_l10n_jp_fiscal_position_tax_inclusive +#: model:account.fiscal.position.template,name:l10n_jp.l10n_jp_fiscal_position_tax_inclusive +msgid "Tax Inclusive" +msgstr "内税" + +#. module: l10n_jp +#: model:account.report,name:l10n_jp.tax_report +msgid "Tax Report" +msgstr "税レポート" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis +msgid "Taxable Amount" +msgstr "税計算基準額" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_purchases_taxable_10 +msgid "Taxable Purchase Amount (10%)" +msgstr "課税対象仕入(10%)" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_purchases_taxable_8 +msgid "Taxable Purchase Amount (8%)" +msgstr "課税対象仕入(8%)" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_sales_taxable_10 +msgid "Taxable Sale Amount (10%)" +msgstr "課税対象売上(10%)" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_sales_taxable_8 +msgid "Taxable Sale Amount (8%)" +msgstr "課税対象売上(8%)" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_120004 +#: model:account.account,name:l10n_jp.2_l10n_jp_120004 +#: model:account.account,name:l10n_jp.3_l10n_jp_120004 +#: model:account.account,name:l10n_jp.4_l10n_jp_120004 +#: model:account.account.template,name:l10n_jp.l10n_jp_120004 +msgid "Time Deposit" +msgstr "定期預金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110400 +#: model:account.account,name:l10n_jp.2_l10n_jp_110400 +#: model:account.account,name:l10n_jp.3_l10n_jp_110400 +#: model:account.account,name:l10n_jp.4_l10n_jp_110400 +#: model:account.account.template,name:l10n_jp.l10n_jp_110400 +msgid "Tools, Furniture and Fixtures" +msgstr "工具、器具及び備品" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110500 +#: model:account.account,name:l10n_jp.2_l10n_jp_110500 +#: model:account.account,name:l10n_jp.3_l10n_jp_110500 +#: model:account.account,name:l10n_jp.4_l10n_jp_110500 +#: model:account.account.template,name:l10n_jp.l10n_jp_110500 +msgid "Tools, Furniture and Fixtures - Accumulated Depreciation" +msgstr "工具、器具及び備品減償累計額" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay +msgid "Total Tax Amount" +msgstr "支払対象税額" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_514500 +#: model:account.account,name:l10n_jp.2_l10n_jp_514500 +#: model:account.account,name:l10n_jp.3_l10n_jp_514500 +#: model:account.account,name:l10n_jp.4_l10n_jp_514500 +#: model:account.account.template,name:l10n_jp.l10n_jp_514500 +msgid "Transportation and warehousing expenses" +msgstr "運送費及び保管費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512200 +#: model:account.account,name:l10n_jp.2_l10n_jp_512200 +#: model:account.account,name:l10n_jp.3_l10n_jp_512200 +#: model:account.account,name:l10n_jp.4_l10n_jp_512200 +#: model:account.account.template,name:l10n_jp.l10n_jp_512200 +msgid "Travelling Expenses" +msgstr "旅費交通費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512800 +#: model:account.account,name:l10n_jp.2_l10n_jp_512800 +#: model:account.account,name:l10n_jp.3_l10n_jp_512800 +#: model:account.account,name:l10n_jp.4_l10n_jp_512800 +#: model:account.account.template,name:l10n_jp.l10n_jp_512800 +msgid "Utility Bills" +msgstr "水道光熱費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_221400 +#: model:account.account,name:l10n_jp.2_l10n_jp_221400 +#: model:account.account,name:l10n_jp.3_l10n_jp_221400 +#: model:account.account,name:l10n_jp.4_l10n_jp_221400 +#: model:account.account.template,name:l10n_jp.l10n_jp_221400 +msgid "Voluntary Retained Earnings" +msgstr "任意積立金" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511100 +#: model:account.account,name:l10n_jp.2_l10n_jp_511100 +#: model:account.account,name:l10n_jp.3_l10n_jp_511100 +#: model:account.account,name:l10n_jp.4_l10n_jp_511100 +#: model:account.account.template,name:l10n_jp.l10n_jp_511100 +msgid "Welfare Expenses" +msgstr "福利厚生費" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122400 +#: model:account.account,name:l10n_jp.2_l10n_jp_122400 +#: model:account.account,name:l10n_jp.3_l10n_jp_122400 +#: model:account.account,name:l10n_jp.4_l10n_jp_122400 +#: model:account.account.template,name:l10n_jp.l10n_jp_122400 +msgid "Work in Process" +msgstr "仕掛品" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_purchases_tax_free +msgid "Zero-rated Purchase" +msgstr "不課税仕入" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_pmt_tax_free +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_tx_tax_free +msgid "Zero-rated Tax" +msgstr "不課税" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_sales_tax_free +msgid "Zero-rated Tax Amount" +msgstr "不課税売上" diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/i18n/l10n_jp.pot b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/i18n/l10n_jp.pot new file mode 100644 index 0000000..a9db3c6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/i18n/l10n_jp.pot @@ -0,0 +1,1512 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_jp +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-02-15 09:39+0000\n" +"PO-Revision-Date: 2023-02-15 09:39+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_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220700 +#: model:account.account,name:l10n_jp.2_l10n_jp_220700 +#: model:account.account,name:l10n_jp.3_l10n_jp_220700 +#: model:account.account,name:l10n_jp.4_l10n_jp_220700 +#: model:account.account.template,name:l10n_jp.l10n_jp_220700 +msgid "Accounts Payable - Credit Card" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220600 +#: model:account.account,name:l10n_jp.2_l10n_jp_220600 +#: model:account.account,name:l10n_jp.3_l10n_jp_220600 +#: model:account.account,name:l10n_jp.4_l10n_jp_220600 +#: model:account.account.template,name:l10n_jp.l10n_jp_220600 +msgid "Accounts Payable - Other" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220000 +#: model:account.account,name:l10n_jp.2_l10n_jp_220000 +#: model:account.account,name:l10n_jp.3_l10n_jp_220000 +#: model:account.account,name:l10n_jp.4_l10n_jp_220000 +#: model:account.account.template,name:l10n_jp.l10n_jp_220000 +msgid "Accounts Payable - Trade" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_126200 +#: model:account.account,name:l10n_jp.2_l10n_jp_126200 +#: model:account.account,name:l10n_jp.3_l10n_jp_126200 +#: model:account.account,name:l10n_jp.4_l10n_jp_126200 +#: model:account.account.template,name:l10n_jp.l10n_jp_126200 +msgid "Accounts Receivable (PoS)" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_126000 +#: model:account.account,name:l10n_jp.2_l10n_jp_126000 +#: model:account.account,name:l10n_jp.3_l10n_jp_126000 +#: model:account.account,name:l10n_jp.4_l10n_jp_126000 +#: model:account.account.template,name:l10n_jp.l10n_jp_126000 +msgid "Accounts Receivable - Trade" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330200 +#: model:account.account,name:l10n_jp.2_l10n_jp_330200 +#: model:account.account,name:l10n_jp.3_l10n_jp_330200 +#: model:account.account,name:l10n_jp.4_l10n_jp_330200 +#: model:account.account.template,name:l10n_jp.l10n_jp_330200 +msgid "Accrued Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123400 +#: model:account.account,name:l10n_jp.2_l10n_jp_123400 +#: model:account.account,name:l10n_jp.3_l10n_jp_123400 +#: model:account.account,name:l10n_jp.4_l10n_jp_123400 +#: model:account.account.template,name:l10n_jp.l10n_jp_123400 +msgid "Accrued Income" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425700 +#: model:account.account,name:l10n_jp.2_l10n_jp_425700 +#: model:account.account,name:l10n_jp.3_l10n_jp_425700 +#: model:account.account,name:l10n_jp.4_l10n_jp_425700 +#: model:account.account.template,name:l10n_jp.l10n_jp_425700 +msgid "Actual Exchange Gain" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513500 +#: model:account.account,name:l10n_jp.2_l10n_jp_513500 +#: model:account.account,name:l10n_jp.3_l10n_jp_513500 +#: model:account.account,name:l10n_jp.4_l10n_jp_513500 +#: model:account.account.template,name:l10n_jp.l10n_jp_513500 +msgid "Actual Exchange Loss" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122700 +#: model:account.account,name:l10n_jp.2_l10n_jp_122700 +#: model:account.account,name:l10n_jp.3_l10n_jp_122700 +#: model:account.account,name:l10n_jp.4_l10n_jp_122700 +#: model:account.account.template,name:l10n_jp.l10n_jp_122700 +msgid "Advance Payments" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122900 +#: model:account.account,name:l10n_jp.2_l10n_jp_122900 +#: model:account.account,name:l10n_jp.3_l10n_jp_122900 +#: model:account.account,name:l10n_jp.4_l10n_jp_122900 +#: model:account.account.template,name:l10n_jp.l10n_jp_122900 +msgid "Advances Paid" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330400 +#: model:account.account,name:l10n_jp.2_l10n_jp_330400 +#: model:account.account,name:l10n_jp.3_l10n_jp_330400 +#: model:account.account,name:l10n_jp.4_l10n_jp_330400 +#: model:account.account.template,name:l10n_jp.l10n_jp_330400 +msgid "Advances Received" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511900 +#: model:account.account,name:l10n_jp.2_l10n_jp_511900 +#: model:account.account,name:l10n_jp.3_l10n_jp_511900 +#: model:account.account,name:l10n_jp.4_l10n_jp_511900 +#: model:account.account.template,name:l10n_jp.l10n_jp_511900 +msgid "Advertisement/Promotion Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513200 +#: model:account.account,name:l10n_jp.2_l10n_jp_513200 +#: model:account.account,name:l10n_jp.3_l10n_jp_513200 +#: model:account.account,name:l10n_jp.4_l10n_jp_513200 +#: model:account.account.template,name:l10n_jp.l10n_jp_513200 +msgid "Amortization of Deferred Organization Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123300 +#: model:account.account,name:l10n_jp.2_l10n_jp_123300 +#: model:account.account,name:l10n_jp.3_l10n_jp_123300 +#: model:account.account,name:l10n_jp.4_l10n_jp_123300 +#: model:account.account.template,name:l10n_jp.l10n_jp_123300 +msgid "Bad Debt Allowance" +msgstr "" + +#. module: l10n_jp +#: model:account.report.column,name:l10n_jp.tax_report_balance +msgid "Balance" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123900 +#: model:account.account,name:l10n_jp.2_l10n_jp_123900 +#: model:account.account,name:l10n_jp.3_l10n_jp_123900 +#: model:account.account,name:l10n_jp.4_l10n_jp_123900 +#: model:account.account.template,name:l10n_jp.l10n_jp_123900 +msgid "Bank Suspense Account" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330900 +#: model:account.account,name:l10n_jp.2_l10n_jp_330900 +#: model:account.account,name:l10n_jp.3_l10n_jp_330900 +#: model:account.account,name:l10n_jp.4_l10n_jp_330900 +#: model:account.account.template,name:l10n_jp.l10n_jp_330900 +msgid "Bonds Payable" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510600 +#: model:account.account,name:l10n_jp.2_l10n_jp_510600 +#: model:account.account,name:l10n_jp.3_l10n_jp_510600 +#: model:account.account,name:l10n_jp.4_l10n_jp_510600 +#: model:account.account.template,name:l10n_jp.l10n_jp_510600 +msgid "Bonus" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110000 +#: model:account.account,name:l10n_jp.2_l10n_jp_110000 +#: model:account.account,name:l10n_jp.3_l10n_jp_110000 +#: model:account.account,name:l10n_jp.4_l10n_jp_110000 +#: model:account.account.template,name:l10n_jp.l10n_jp_110000 +msgid "Buildings and Structures" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110100 +#: model:account.account,name:l10n_jp.2_l10n_jp_110100 +#: model:account.account,name:l10n_jp.3_l10n_jp_110100 +#: model:account.account,name:l10n_jp.4_l10n_jp_110100 +#: model:account.account.template,name:l10n_jp.l10n_jp_110100 +msgid "Buildings and Structures - Accumulated Depreciation" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220900 +#: model:account.account,name:l10n_jp.2_l10n_jp_220900 +#: model:account.account,name:l10n_jp.3_l10n_jp_220900 +#: model:account.account,name:l10n_jp.4_l10n_jp_220900 +#: model:account.account.template,name:l10n_jp.l10n_jp_220900 +msgid "Capital Stock" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_999002 +#: model:account.account,name:l10n_jp.2_l10n_jp_999002 +#: model:account.account,name:l10n_jp.3_l10n_jp_999002 +#: model:account.account,name:l10n_jp.4_l10n_jp_999002 +#: model:account.account.template,name:l10n_jp.l10n_jp_999002 +msgid "Cash Difference Gain" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510100 +#: model:account.account,name:l10n_jp.2_l10n_jp_510100 +#: model:account.account,name:l10n_jp.3_l10n_jp_510100 +#: model:account.account,name:l10n_jp.4_l10n_jp_510100 +#: model:account.account.template,name:l10n_jp.l10n_jp_510100 +msgid "Cash Difference Loss" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425000 +#: model:account.account,name:l10n_jp.2_l10n_jp_425000 +#: model:account.account,name:l10n_jp.3_l10n_jp_425000 +#: model:account.account,name:l10n_jp.4_l10n_jp_425000 +#: model:account.account.template,name:l10n_jp.l10n_jp_425000 +msgid "Cash Discount Gain" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510200 +#: model:account.account,name:l10n_jp.2_l10n_jp_510200 +#: model:account.account,name:l10n_jp.3_l10n_jp_510200 +#: model:account.account,name:l10n_jp.4_l10n_jp_510200 +#: model:account.account.template,name:l10n_jp.l10n_jp_510200 +msgid "Cash Discount Loss" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512400 +#: model:account.account,name:l10n_jp.2_l10n_jp_512400 +#: model:account.account,name:l10n_jp.3_l10n_jp_512400 +#: model:account.account,name:l10n_jp.4_l10n_jp_512400 +#: model:account.account.template,name:l10n_jp.l10n_jp_512400 +msgid "Commission Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512000 +#: model:account.account,name:l10n_jp.2_l10n_jp_512000 +#: model:account.account,name:l10n_jp.3_l10n_jp_512000 +#: model:account.account,name:l10n_jp.4_l10n_jp_512000 +#: model:account.account.template,name:l10n_jp.l10n_jp_512000 +msgid "Communication Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512100 +#: model:account.account,name:l10n_jp.2_l10n_jp_512100 +#: model:account.account,name:l10n_jp.3_l10n_jp_512100 +#: model:account.account,name:l10n_jp.4_l10n_jp_512100 +#: model:account.account.template,name:l10n_jp.l10n_jp_512100 +msgid "Consumables Expeneses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123200 +#: model:account.account,name:l10n_jp.2_l10n_jp_123200 +#: model:account.account,name:l10n_jp.3_l10n_jp_123200 +#: model:account.account,name:l10n_jp.4_l10n_jp_123200 +#: model:account.account.template,name:l10n_jp.l10n_jp_123200 +msgid "Consumption Tax - Purchase" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330800 +#: model:account.account,name:l10n_jp.2_l10n_jp_330800 +#: model:account.account,name:l10n_jp.3_l10n_jp_330800 +#: model:account.account,name:l10n_jp.4_l10n_jp_330800 +#: model:account.account.template,name:l10n_jp.l10n_jp_330800 +msgid "Consumption Tax - Sales" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_514300 +#: model:account.account,name:l10n_jp.2_l10n_jp_514300 +#: model:account.account,name:l10n_jp.3_l10n_jp_514300 +#: model:account.account,name:l10n_jp.4_l10n_jp_514300 +#: model:account.account.template,name:l10n_jp.l10n_jp_514300 +msgid "Corporate, Inhabitant, and Enterprise Taxes" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510000 +#: model:account.account,name:l10n_jp.2_l10n_jp_510000 +#: model:account.account,name:l10n_jp.3_l10n_jp_510000 +#: model:account.account,name:l10n_jp.4_l10n_jp_510000 +#: model:account.account.template,name:l10n_jp.l10n_jp_510000 +msgid "Cost of Goods Sold" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_121000 +#: model:account.account,name:l10n_jp.2_l10n_jp_121000 +#: model:account.account,name:l10n_jp.3_l10n_jp_121000 +#: model:account.account,name:l10n_jp.4_l10n_jp_121000 +#: model:account.account.template,name:l10n_jp.l10n_jp_121000 +msgid "Current Assets" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330000 +#: model:account.account,name:l10n_jp.2_l10n_jp_330000 +#: model:account.account,name:l10n_jp.3_l10n_jp_330000 +#: model:account.account,name:l10n_jp.4_l10n_jp_330000 +#: model:account.account.template,name:l10n_jp.l10n_jp_330000 +msgid "Current Liabilities" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220500 +#: model:account.account,name:l10n_jp.2_l10n_jp_220500 +#: model:account.account,name:l10n_jp.3_l10n_jp_220500 +#: model:account.account,name:l10n_jp.4_l10n_jp_220500 +#: model:account.account.template,name:l10n_jp.l10n_jp_220500 +msgid "Current Portion of Long-term Loans Payable" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210800 +#: model:account.account,name:l10n_jp.2_l10n_jp_210800 +#: model:account.account,name:l10n_jp.3_l10n_jp_210800 +#: model:account.account,name:l10n_jp.4_l10n_jp_210800 +#: model:account.account.template,name:l10n_jp.l10n_jp_210800 +msgid "Deferred Organization Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_120003 +#: model:account.account,name:l10n_jp.2_l10n_jp_120003 +#: model:account.account,name:l10n_jp.3_l10n_jp_120003 +#: model:account.account,name:l10n_jp.4_l10n_jp_120003 +#: model:account.account.template,name:l10n_jp.l10n_jp_120003 +msgid "Deposit" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330500 +#: model:account.account,name:l10n_jp.2_l10n_jp_330500 +#: model:account.account,name:l10n_jp.3_l10n_jp_330500 +#: model:account.account,name:l10n_jp.4_l10n_jp_330500 +#: model:account.account.template,name:l10n_jp.l10n_jp_330500 +msgid "Deposits Received" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513300 +#: model:account.account,name:l10n_jp.2_l10n_jp_513300 +#: model:account.account,name:l10n_jp.3_l10n_jp_513300 +#: model:account.account,name:l10n_jp.4_l10n_jp_513300 +#: model:account.account.template,name:l10n_jp.l10n_jp_513300 +msgid "Depreciation" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510400 +#: model:account.account,name:l10n_jp.2_l10n_jp_510400 +#: model:account.account,name:l10n_jp.3_l10n_jp_510400 +#: model:account.account,name:l10n_jp.4_l10n_jp_510400 +#: model:account.account.template,name:l10n_jp.l10n_jp_510400 +msgid "Director's Remuneration" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425500 +#: model:account.account,name:l10n_jp.2_l10n_jp_425500 +#: model:account.account,name:l10n_jp.3_l10n_jp_425500 +#: model:account.account,name:l10n_jp.4_l10n_jp_425500 +#: model:account.account.template,name:l10n_jp.l10n_jp_425500 +msgid "Dividend Income" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220800 +#: model:account.account,name:l10n_jp.2_l10n_jp_220800 +#: model:account.account,name:l10n_jp.3_l10n_jp_220800 +#: model:account.account,name:l10n_jp.4_l10n_jp_220800 +#: model:account.account.template,name:l10n_jp.l10n_jp_220800 +msgid "Dividends Payable" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512300 +#: model:account.account,name:l10n_jp.2_l10n_jp_512300 +#: model:account.account,name:l10n_jp.3_l10n_jp_512300 +#: model:account.account,name:l10n_jp.4_l10n_jp_512300 +#: model:account.account.template,name:l10n_jp.l10n_jp_512300 +msgid "Entertainment Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122100 +#: model:account.account,name:l10n_jp.2_l10n_jp_122100 +#: model:account.account,name:l10n_jp.3_l10n_jp_122100 +#: model:account.account,name:l10n_jp.4_l10n_jp_122100 +#: model:account.account.template,name:l10n_jp.l10n_jp_122100 +msgid "Finished Goods" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_424000 +#: model:account.account,name:l10n_jp.2_l10n_jp_424000 +#: model:account.account,name:l10n_jp.3_l10n_jp_424000 +#: model:account.account,name:l10n_jp.4_l10n_jp_424000 +#: model:account.account.template,name:l10n_jp.l10n_jp_424000 +msgid "Foreign Exchange Gain" +msgstr "" + +#. module: l10n_jp +#: model:account.tax.group,name:l10n_jp.l10n_jp_tax_group_10 +msgid "GST 10%" +msgstr "" + +#. module: l10n_jp +#: model:account.tax.group,name:l10n_jp.l10n_jp_tax_group_8 +msgid "GST 8%" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_purchase_incl_10 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_purchase_incl_10 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_purchase_incl_10 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_purchase_incl_10 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_purchase_incl_10 +msgid "GST Inc Purchase (10%)" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_purchase_incl_8 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_purchase_incl_8 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_purchase_incl_8 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_purchase_incl_8 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_purchase_incl_8 +msgid "GST Inc Purchase (8%)" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_sale_incl_10 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_sale_incl_10 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_sale_incl_10 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_sale_incl_10 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_sale_incl_10 +msgid "GST Inc Sale (10%)" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_sale_incl_8 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_sale_incl_8 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_sale_incl_8 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_sale_incl_8 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_sale_incl_8 +msgid "GST Inc Sale (8%)" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_purchase_incl_10 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_purchase_incl_10 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_purchase_incl_10 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_purchase_incl_10 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_purchase_incl_10 +msgid "GST Inclusive Purchase 10%" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_purchase_incl_8 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_purchase_incl_8 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_purchase_incl_8 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_purchase_incl_8 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_purchase_incl_8 +msgid "GST Inclusive Purchase 8%" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_sale_incl_10 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_sale_incl_10 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_sale_incl_10 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_sale_incl_10 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_sale_incl_10 +msgid "GST Inclusive Sale 10%" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_sale_incl_8 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_sale_incl_8 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_sale_incl_8 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_sale_incl_8 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_sale_incl_8 +msgid "GST Inclusive Sale 8%" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_pmt_susp_cons_10 +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_purchase_exc_10 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_purchase_exc_10 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_purchase_exc_10 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_purchase_exc_10 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_purchase_exc_10 +msgid "GST Purchase 10%" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_pmt_susp_cons_8 +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_purchase_exc_8 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_purchase_exc_8 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_purchase_exc_8 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_purchase_exc_8 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_purchase_exc_8 +msgid "GST Purchase 8%" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_pmt +msgid "GST Purchase Amount" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_tx_output_10 +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_sale_exc_10 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_sale_exc_10 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_sale_exc_10 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_sale_exc_10 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_sale_exc_10 +msgid "GST Sale 10%" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_tx_output_8 +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_sale_exc_8 +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_sale_exc_8 +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_sale_exc_8 +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_sale_exc_8 +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_sale_exc_8 +msgid "GST Sale 8%" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_tx +msgid "GST Sale Amount" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_purchase_exempt +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_purchase_exempt +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_purchase_exempt +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_purchase_exempt +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_purchase_exempt +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_purchase_exempt +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_purchase_exempt +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_purchase_exempt +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_purchase_exempt +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_purchase_exempt +msgid "GST Tax Exempt Purchase" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_sale_exempt +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_sale_exempt +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_sale_exempt +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_sale_exempt +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_sale_exempt +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_sale_exempt +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_sale_exempt +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_sale_exempt +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_sale_exempt +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_sale_exempt +msgid "GST Tax Exempt Sale" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425800 +#: model:account.account,name:l10n_jp.2_l10n_jp_425800 +#: model:account.account,name:l10n_jp.3_l10n_jp_425800 +#: model:account.account,name:l10n_jp.4_l10n_jp_425800 +#: model:account.account.template,name:l10n_jp.l10n_jp_425800 +msgid "Gain on Investment Securities" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_426100 +#: model:account.account,name:l10n_jp.2_l10n_jp_426100 +#: model:account.account,name:l10n_jp.3_l10n_jp_426100 +#: model:account.account,name:l10n_jp.4_l10n_jp_426100 +#: model:account.account.template,name:l10n_jp.l10n_jp_426100 +msgid "Gain on Non-current Asset" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425900 +#: model:account.account,name:l10n_jp.2_l10n_jp_425900 +#: model:account.account,name:l10n_jp.3_l10n_jp_425900 +#: model:account.account,name:l10n_jp.4_l10n_jp_425900 +#: model:account.account.template,name:l10n_jp.l10n_jp_425900 +msgid "Gain on Valuation of Investment Securities" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_426200 +#: model:account.account,name:l10n_jp.2_l10n_jp_426200 +#: model:account.account,name:l10n_jp.3_l10n_jp_426200 +#: model:account.account,name:l10n_jp.4_l10n_jp_426200 +#: model:account.account.template,name:l10n_jp.l10n_jp_426200 +msgid "Gain on Valuation of Non-current Asset" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_pmt_import_8 +msgid "Imported" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_purchases_import +msgid "Imported Purchase" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330300 +#: model:account.account,name:l10n_jp.2_l10n_jp_330300 +#: model:account.account,name:l10n_jp.3_l10n_jp_330300 +#: model:account.account,name:l10n_jp.4_l10n_jp_330300 +#: model:account.account.template,name:l10n_jp.l10n_jp_330300 +msgid "Income Taxes Payable" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511200 +#: model:account.account,name:l10n_jp.2_l10n_jp_511200 +#: model:account.account,name:l10n_jp.3_l10n_jp_511200 +#: model:account.account,name:l10n_jp.4_l10n_jp_511200 +#: model:account.account.template,name:l10n_jp.l10n_jp_511200 +msgid "Insurance Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513100 +#: model:account.account,name:l10n_jp.2_l10n_jp_513100 +#: model:account.account,name:l10n_jp.3_l10n_jp_513100 +#: model:account.account,name:l10n_jp.4_l10n_jp_513100 +#: model:account.account.template,name:l10n_jp.l10n_jp_513100 +msgid "Interest Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425400 +#: model:account.account,name:l10n_jp.2_l10n_jp_425400 +#: model:account.account,name:l10n_jp.3_l10n_jp_425400 +#: model:account.account,name:l10n_jp.4_l10n_jp_425400 +#: model:account.account.template,name:l10n_jp.l10n_jp_425400 +msgid "Interest Income" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425300 +#: model:account.account,name:l10n_jp.2_l10n_jp_425300 +#: model:account.account,name:l10n_jp.3_l10n_jp_425300 +#: model:account.account,name:l10n_jp.4_l10n_jp_425300 +#: model:account.account.template,name:l10n_jp.l10n_jp_425300 +msgid "Inventory Adjustment" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511500 +#: model:account.account,name:l10n_jp.2_l10n_jp_511500 +#: model:account.account,name:l10n_jp.3_l10n_jp_511500 +#: model:account.account,name:l10n_jp.4_l10n_jp_511500 +#: model:account.account.template,name:l10n_jp.l10n_jp_511500 +msgid "Inventory Usage Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122300 +#: model:account.account,name:l10n_jp.2_l10n_jp_122300 +#: model:account.account,name:l10n_jp.3_l10n_jp_122300 +#: model:account.account,name:l10n_jp.4_l10n_jp_122300 +#: model:account.account.template,name:l10n_jp.l10n_jp_122300 +msgid "Inventory in Transit" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210400 +#: model:account.account,name:l10n_jp.2_l10n_jp_210400 +#: model:account.account,name:l10n_jp.3_l10n_jp_210400 +#: model:account.account,name:l10n_jp.4_l10n_jp_210400 +#: model:account.account.template,name:l10n_jp.l10n_jp_210400 +msgid "Investment Securities" +msgstr "" + +#. module: l10n_jp +#: model:account.chart.template,name:l10n_jp.l10n_jp_chart_template +msgid "Japan - Chart of Accounts" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110600 +#: model:account.account,name:l10n_jp.2_l10n_jp_110600 +#: model:account.account,name:l10n_jp.3_l10n_jp_110600 +#: model:account.account,name:l10n_jp.4_l10n_jp_110600 +#: model:account.account.template,name:l10n_jp.l10n_jp_110600 +msgid "Land" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511800 +#: model:account.account,name:l10n_jp.2_l10n_jp_511800 +#: model:account.account,name:l10n_jp.3_l10n_jp_511800 +#: model:account.account,name:l10n_jp.4_l10n_jp_511800 +#: model:account.account.template,name:l10n_jp.l10n_jp_511800 +msgid "Lease Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123100 +#: model:account.account,name:l10n_jp.2_l10n_jp_123100 +#: model:account.account,name:l10n_jp.3_l10n_jp_123100 +#: model:account.account,name:l10n_jp.4_l10n_jp_123100 +#: model:account.account.template,name:l10n_jp.l10n_jp_123100 +msgid "Lease/Guarantee Deposits" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_221000 +#: model:account.account,name:l10n_jp.2_l10n_jp_221000 +#: model:account.account,name:l10n_jp.3_l10n_jp_221000 +#: model:account.account,name:l10n_jp.4_l10n_jp_221000 +#: model:account.account.template,name:l10n_jp.l10n_jp_221000 +msgid "Legal Capital Surplus" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_221200 +#: model:account.account,name:l10n_jp.2_l10n_jp_221200 +#: model:account.account,name:l10n_jp.3_l10n_jp_221200 +#: model:account.account,name:l10n_jp.4_l10n_jp_221200 +#: model:account.account.template,name:l10n_jp.l10n_jp_221200 +msgid "Legal Retained Earnings" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511000 +#: model:account.account,name:l10n_jp.2_l10n_jp_511000 +#: model:account.account,name:l10n_jp.3_l10n_jp_511000 +#: model:account.account,name:l10n_jp.4_l10n_jp_511000 +#: model:account.account.template,name:l10n_jp.l10n_jp_511000 +msgid "Legal Welfare Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_chart_template_liquidity_transfer +#: model:account.account,name:l10n_jp.2_l10n_jp_chart_template_liquidity_transfer +#: model:account.account,name:l10n_jp.3_l10n_jp_chart_template_liquidity_transfer +#: model:account.account,name:l10n_jp.4_l10n_jp_chart_template_liquidity_transfer +#: model:account.account.template,name:l10n_jp.l10n_jp_chart_template_liquidity_transfer +msgid "Liquidity Transfer" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_331000 +#: model:account.account,name:l10n_jp.2_l10n_jp_331000 +#: model:account.account,name:l10n_jp.3_l10n_jp_331000 +#: model:account.account,name:l10n_jp.4_l10n_jp_331000 +#: model:account.account.template,name:l10n_jp.l10n_jp_331000 +msgid "Long-term Loans Payable" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210600 +#: model:account.account,name:l10n_jp.2_l10n_jp_210600 +#: model:account.account,name:l10n_jp.3_l10n_jp_210600 +#: model:account.account,name:l10n_jp.4_l10n_jp_210600 +#: model:account.account.template,name:l10n_jp.l10n_jp_210600 +msgid "Long-term Loans Receivable" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210700 +#: model:account.account,name:l10n_jp.2_l10n_jp_210700 +#: model:account.account,name:l10n_jp.3_l10n_jp_210700 +#: model:account.account,name:l10n_jp.4_l10n_jp_210700 +#: model:account.account.template,name:l10n_jp.l10n_jp_210700 +msgid "Long-term Prepaid Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513600 +#: model:account.account,name:l10n_jp.2_l10n_jp_513600 +#: model:account.account,name:l10n_jp.3_l10n_jp_513600 +#: model:account.account,name:l10n_jp.4_l10n_jp_513600 +#: model:account.account.template,name:l10n_jp.l10n_jp_513600 +msgid "Loss on Investment Securities" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513900 +#: model:account.account,name:l10n_jp.2_l10n_jp_513900 +#: model:account.account,name:l10n_jp.3_l10n_jp_513900 +#: model:account.account,name:l10n_jp.4_l10n_jp_513900 +#: model:account.account.template,name:l10n_jp.l10n_jp_513900 +msgid "Loss on Non-current Asset" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511600 +#: model:account.account,name:l10n_jp.2_l10n_jp_511600 +#: model:account.account,name:l10n_jp.3_l10n_jp_511600 +#: model:account.account,name:l10n_jp.4_l10n_jp_511600 +#: model:account.account.template,name:l10n_jp.l10n_jp_511600 +msgid "Loss on Valuation of Goods" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513700 +#: model:account.account,name:l10n_jp.2_l10n_jp_513700 +#: model:account.account,name:l10n_jp.3_l10n_jp_513700 +#: model:account.account,name:l10n_jp.4_l10n_jp_513700 +#: model:account.account.template,name:l10n_jp.l10n_jp_513700 +msgid "Loss on Valuation of Investment Securities" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_514000 +#: model:account.account,name:l10n_jp.2_l10n_jp_514000 +#: model:account.account,name:l10n_jp.3_l10n_jp_514000 +#: model:account.account,name:l10n_jp.4_l10n_jp_514000 +#: model:account.account.template,name:l10n_jp.l10n_jp_514000 +msgid "Loss on Valuation of Non-current Asset" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110200 +#: model:account.account,name:l10n_jp.2_l10n_jp_110200 +#: model:account.account,name:l10n_jp.3_l10n_jp_110200 +#: model:account.account,name:l10n_jp.4_l10n_jp_110200 +#: model:account.account.template,name:l10n_jp.l10n_jp_110200 +msgid "Machinery and Equipment" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110300 +#: model:account.account,name:l10n_jp.2_l10n_jp_110300 +#: model:account.account,name:l10n_jp.3_l10n_jp_110300 +#: model:account.account,name:l10n_jp.4_l10n_jp_110300 +#: model:account.account.template,name:l10n_jp.l10n_jp_110300 +msgid "Machinery and Equipment - Accumulated Depreciation" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122600 +#: model:account.account,name:l10n_jp.2_l10n_jp_122600 +#: model:account.account,name:l10n_jp.3_l10n_jp_122600 +#: model:account.account,name:l10n_jp.4_l10n_jp_122600 +#: model:account.account.template,name:l10n_jp.l10n_jp_122600 +msgid "Materials" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512900 +#: model:account.account,name:l10n_jp.2_l10n_jp_512900 +#: model:account.account,name:l10n_jp.3_l10n_jp_512900 +#: model:account.account,name:l10n_jp.4_l10n_jp_512900 +#: model:account.account.template,name:l10n_jp.l10n_jp_512900 +msgid "Meeting Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512500 +#: model:account.account,name:l10n_jp.2_l10n_jp_512500 +#: model:account.account,name:l10n_jp.3_l10n_jp_512500 +#: model:account.account,name:l10n_jp.4_l10n_jp_512500 +#: model:account.account.template,name:l10n_jp.l10n_jp_512500 +msgid "Membership Fee" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122000 +#: model:account.account,name:l10n_jp.2_l10n_jp_122000 +#: model:account.account,name:l10n_jp.3_l10n_jp_122000 +#: model:account.account,name:l10n_jp.4_l10n_jp_122000 +#: model:account.account.template,name:l10n_jp.l10n_jp_122000 +msgid "Merchandise" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_426000 +#: model:account.account,name:l10n_jp.2_l10n_jp_426000 +#: model:account.account,name:l10n_jp.3_l10n_jp_426000 +#: model:account.account,name:l10n_jp.4_l10n_jp_426000 +#: model:account.account.template,name:l10n_jp.l10n_jp_426000 +msgid "Miscellaneous Income" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_410000 +#: model:account.account,name:l10n_jp.2_l10n_jp_410000 +#: model:account.account,name:l10n_jp.3_l10n_jp_410000 +#: model:account.account,name:l10n_jp.4_l10n_jp_410000 +#: model:account.account.template,name:l10n_jp.l10n_jp_410000 +msgid "Net Sales" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp-512600 +#: model:account.account,name:l10n_jp.2_l10n_jp-512600 +#: model:account.account,name:l10n_jp.3_l10n_jp-512600 +#: model:account.account,name:l10n_jp.4_l10n_jp-512600 +#: model:account.account.template,name:l10n_jp.l10n_jp-512600 +msgid "Newspaper/Book Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_sale_non_vat +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_sale_non_vat +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_sale_non_vat +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_sale_non_vat +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_sale_non_vat +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_sale_non_vat +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_sale_non_vat +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_sale_non_vat +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_sale_non_vat +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_sale_non_vat +msgid "Non-VAT" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210000 +#: model:account.account,name:l10n_jp.2_l10n_jp_210000 +#: model:account.account,name:l10n_jp.3_l10n_jp_210000 +#: model:account.account,name:l10n_jp.4_l10n_jp_210000 +#: model:account.account.template,name:l10n_jp.l10n_jp_210000 +msgid "Non-current Liabilities" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_126400 +#: model:account.account,name:l10n_jp.2_l10n_jp_126400 +#: model:account.account,name:l10n_jp.3_l10n_jp_126400 +#: model:account.account,name:l10n_jp.4_l10n_jp_126400 +#: model:account.account.template,name:l10n_jp.l10n_jp_126400 +msgid "Notes Discount" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220200 +#: model:account.account,name:l10n_jp.2_l10n_jp_220200 +#: model:account.account,name:l10n_jp.3_l10n_jp_220200 +#: model:account.account,name:l10n_jp.4_l10n_jp_220200 +#: model:account.account.template,name:l10n_jp.l10n_jp_220200 +msgid "Notes Payable" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_126300 +#: model:account.account,name:l10n_jp.2_l10n_jp_126300 +#: model:account.account,name:l10n_jp.3_l10n_jp_126300 +#: model:account.account,name:l10n_jp.4_l10n_jp_126300 +#: model:account.account.template,name:l10n_jp.l10n_jp_126300 +msgid "Notes Receivable" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_221100 +#: model:account.account,name:l10n_jp.2_l10n_jp_221100 +#: model:account.account,name:l10n_jp.3_l10n_jp_221100 +#: model:account.account,name:l10n_jp.4_l10n_jp_221100 +#: model:account.account.template,name:l10n_jp.l10n_jp_221100 +msgid "Other Capital Surplus" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513000 +#: model:account.account,name:l10n_jp.2_l10n_jp_513000 +#: model:account.account,name:l10n_jp.3_l10n_jp_513000 +#: model:account.account,name:l10n_jp.4_l10n_jp_513000 +#: model:account.account.template,name:l10n_jp.l10n_jp_513000 +msgid "Other Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210300 +#: model:account.account,name:l10n_jp.2_l10n_jp_210300 +#: model:account.account,name:l10n_jp.3_l10n_jp_210300 +#: model:account.account,name:l10n_jp.4_l10n_jp_210300 +#: model:account.account.template,name:l10n_jp.l10n_jp_210300 +msgid "Other Intangible Asset" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123700 +#: model:account.account,name:l10n_jp.2_l10n_jp_123700 +#: model:account.account,name:l10n_jp.3_l10n_jp_123700 +#: model:account.account,name:l10n_jp.4_l10n_jp_123700 +#: model:account.account.template,name:l10n_jp.l10n_jp_123700 +msgid "Outstanding Payments" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123800 +#: model:account.account,name:l10n_jp.2_l10n_jp_123800 +#: model:account.account,name:l10n_jp.3_l10n_jp_123800 +#: model:account.account,name:l10n_jp.4_l10n_jp_123800 +#: model:account.account.template,name:l10n_jp.l10n_jp_123800 +msgid "Outstanding Receipts" +msgstr "" + +#. module: l10n_jp +#: model:account.fiscal.position,name:l10n_jp.1_l10n_jp_fiscal_position_tax_exempt +#: model:account.fiscal.position,name:l10n_jp.2_l10n_jp_fiscal_position_tax_exempt +#: model:account.fiscal.position,name:l10n_jp.3_l10n_jp_fiscal_position_tax_exempt +#: model:account.fiscal.position,name:l10n_jp.4_l10n_jp_fiscal_position_tax_exempt +#: model:account.fiscal.position.template,name:l10n_jp.l10n_jp_fiscal_position_tax_exempt +msgid "Oversea Customer" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,description:l10n_jp.1_l10n_jp_tax_purchase_imp +#: model:account.tax,description:l10n_jp.2_l10n_jp_tax_purchase_imp +#: model:account.tax,description:l10n_jp.3_l10n_jp_tax_purchase_imp +#: model:account.tax,description:l10n_jp.4_l10n_jp_tax_purchase_imp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_purchase_imp +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_purchase_imp +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_purchase_imp +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_purchase_imp +#: model:account.tax.template,description:l10n_jp.l10n_jp_tax_purchase_imp +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_purchase_imp +msgid "Oversea Purchase" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511400 +#: model:account.account,name:l10n_jp.2_l10n_jp_511400 +#: model:account.account,name:l10n_jp.3_l10n_jp_511400 +#: model:account.account,name:l10n_jp.4_l10n_jp_511400 +#: model:account.account.template,name:l10n_jp.l10n_jp_511400 +msgid "Packaging Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122800 +#: model:account.account,name:l10n_jp.2_l10n_jp_122800 +#: model:account.account,name:l10n_jp.3_l10n_jp_122800 +#: model:account.account,name:l10n_jp.4_l10n_jp_122800 +#: model:account.account.template,name:l10n_jp.l10n_jp_122800 +msgid "Prepaid Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330700 +#: model:account.account,name:l10n_jp.1_l10n_jp_510800 +#: model:account.account,name:l10n_jp.2_l10n_jp_330700 +#: model:account.account,name:l10n_jp.2_l10n_jp_510800 +#: model:account.account,name:l10n_jp.3_l10n_jp_330700 +#: model:account.account,name:l10n_jp.3_l10n_jp_510800 +#: model:account.account,name:l10n_jp.4_l10n_jp_330700 +#: model:account.account,name:l10n_jp.4_l10n_jp_510800 +#: model:account.account.template,name:l10n_jp.l10n_jp_330700 +#: model:account.account.template,name:l10n_jp.l10n_jp_510800 +msgid "Provision for Bonuses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_331100 +#: model:account.account,name:l10n_jp.1_l10n_jp_510900 +#: model:account.account,name:l10n_jp.2_l10n_jp_331100 +#: model:account.account,name:l10n_jp.2_l10n_jp_510900 +#: model:account.account,name:l10n_jp.3_l10n_jp_331100 +#: model:account.account,name:l10n_jp.3_l10n_jp_510900 +#: model:account.account,name:l10n_jp.4_l10n_jp_331100 +#: model:account.account,name:l10n_jp.4_l10n_jp_510900 +#: model:account.account.template,name:l10n_jp.l10n_jp_331100 +#: model:account.account.template,name:l10n_jp.l10n_jp_510900 +msgid "Provision for Retirement Benefits" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510300 +#: model:account.account,name:l10n_jp.2_l10n_jp_510300 +#: model:account.account,name:l10n_jp.3_l10n_jp_510300 +#: model:account.account,name:l10n_jp.4_l10n_jp_510300 +#: model:account.account.template,name:l10n_jp.l10n_jp_510300 +msgid "Provision of Allowance for Doubtful Debt" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425600 +#: model:account.account,name:l10n_jp.2_l10n_jp_425600 +#: model:account.account,name:l10n_jp.3_l10n_jp_425600 +#: model:account.account,name:l10n_jp.4_l10n_jp_425600 +#: model:account.account.template,name:l10n_jp.l10n_jp_425600 +msgid "Provision of Exchange Gain" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_513400 +#: model:account.account,name:l10n_jp.2_l10n_jp_513400 +#: model:account.account,name:l10n_jp.3_l10n_jp_513400 +#: model:account.account,name:l10n_jp.4_l10n_jp_513400 +#: model:account.account.template,name:l10n_jp.l10n_jp_513400 +msgid "Provision of Exchange Loss" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_purchase_exc_10 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_purchase_exc_10 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_purchase_exc_10 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_purchase_exc_10 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_purchase_exc_10 +msgid "Purchase (10%)" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_purchase_exc_8 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_purchase_exc_8 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_purchase_exc_8 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_purchase_exc_8 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_purchase_exc_8 +msgid "Purchase (8%)" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_purchases +msgid "Purchase Amount" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_425200 +#: model:account.account,name:l10n_jp.2_l10n_jp_425200 +#: model:account.account,name:l10n_jp.3_l10n_jp_425200 +#: model:account.account,name:l10n_jp.4_l10n_jp_425200 +#: model:account.account.template,name:l10n_jp.l10n_jp_425200 +msgid "Purchase Price Difference" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122500 +#: model:account.account,name:l10n_jp.2_l10n_jp_122500 +#: model:account.account,name:l10n_jp.3_l10n_jp_122500 +#: model:account.account,name:l10n_jp.4_l10n_jp_122500 +#: model:account.account.template,name:l10n_jp.l10n_jp_122500 +msgid "Raw Materials" +msgstr "" + +#. module: l10n_jp +#: model:account.fiscal.position,name:l10n_jp.1_l10n_jp_fiscal_position_tax_reduction +#: model:account.fiscal.position,name:l10n_jp.2_l10n_jp_fiscal_position_tax_reduction +#: model:account.fiscal.position,name:l10n_jp.3_l10n_jp_fiscal_position_tax_reduction +#: model:account.fiscal.position,name:l10n_jp.4_l10n_jp_fiscal_position_tax_reduction +#: model:account.fiscal.position.template,name:l10n_jp.l10n_jp_fiscal_position_tax_reduction +msgid "Reduced Tax Rate" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511700 +#: model:account.account,name:l10n_jp.2_l10n_jp_511700 +#: model:account.account,name:l10n_jp.3_l10n_jp_511700 +#: model:account.account,name:l10n_jp.4_l10n_jp_511700 +#: model:account.account.template,name:l10n_jp.l10n_jp_511700 +msgid "Rental Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_221300 +#: model:account.account,name:l10n_jp.2_l10n_jp_221300 +#: model:account.account,name:l10n_jp.3_l10n_jp_221300 +#: model:account.account,name:l10n_jp.4_l10n_jp_221300 +#: model:account.account.template,name:l10n_jp.l10n_jp_221300 +msgid "Reserve for Special Depreciation" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_221500 +#: model:account.account,name:l10n_jp.2_l10n_jp_221500 +#: model:account.account,name:l10n_jp.3_l10n_jp_221500 +#: model:account.account,name:l10n_jp.4_l10n_jp_221500 +#: model:account.account.template,name:l10n_jp.l10n_jp_221500 +msgid "Retained Earnings Brought Forward" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510700 +#: model:account.account,name:l10n_jp.2_l10n_jp_510700 +#: model:account.account,name:l10n_jp.3_l10n_jp_510700 +#: model:account.account,name:l10n_jp.4_l10n_jp_510700 +#: model:account.account.template,name:l10n_jp.l10n_jp_510700 +msgid "Retirement Payment" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_510500 +#: model:account.account,name:l10n_jp.2_l10n_jp_510500 +#: model:account.account,name:l10n_jp.3_l10n_jp_510500 +#: model:account.account,name:l10n_jp.4_l10n_jp_510500 +#: model:account.account.template,name:l10n_jp.l10n_jp_510500 +msgid "Salaries & Allowance" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_sale_exc_10 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_sale_exc_10 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_sale_exc_10 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_sale_exc_10 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_sale_exc_10 +msgid "Sale (10%)" +msgstr "" + +#. module: l10n_jp +#: model:account.tax,name:l10n_jp.1_l10n_jp_tax_sale_exc_8 +#: model:account.tax,name:l10n_jp.2_l10n_jp_tax_sale_exc_8 +#: model:account.tax,name:l10n_jp.3_l10n_jp_tax_sale_exc_8 +#: model:account.tax,name:l10n_jp.4_l10n_jp_tax_sale_exc_8 +#: model:account.tax.template,name:l10n_jp.l10n_jp_tax_sale_exc_8 +msgid "Sale (8%)" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_sales +msgid "Sale Amount" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123500 +#: model:account.account,name:l10n_jp.2_l10n_jp_123500 +#: model:account.account,name:l10n_jp.3_l10n_jp_123500 +#: model:account.account,name:l10n_jp.4_l10n_jp_123500 +#: model:account.account.template,name:l10n_jp.l10n_jp_123500 +msgid "Securities" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122200 +#: model:account.account,name:l10n_jp.2_l10n_jp_122200 +#: model:account.account,name:l10n_jp.3_l10n_jp_122200 +#: model:account.account,name:l10n_jp.4_l10n_jp_122200 +#: model:account.account.template,name:l10n_jp.l10n_jp_122200 +msgid "Semi-finished Goods" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210500 +#: model:account.account,name:l10n_jp.2_l10n_jp_210500 +#: model:account.account,name:l10n_jp.3_l10n_jp_210500 +#: model:account.account,name:l10n_jp.4_l10n_jp_210500 +#: model:account.account.template,name:l10n_jp.l10n_jp_210500 +msgid "Shares of Subsidiaries and Associates" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_220400 +#: model:account.account,name:l10n_jp.2_l10n_jp_220400 +#: model:account.account,name:l10n_jp.3_l10n_jp_220400 +#: model:account.account,name:l10n_jp.4_l10n_jp_220400 +#: model:account.account.template,name:l10n_jp.l10n_jp_220400 +msgid "Short-term Loans Payable" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210100 +#: model:account.account,name:l10n_jp.2_l10n_jp_210100 +#: model:account.account,name:l10n_jp.3_l10n_jp_210100 +#: model:account.account,name:l10n_jp.4_l10n_jp_210100 +#: model:account.account.template,name:l10n_jp.l10n_jp_210100 +msgid "Software" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_210200 +#: model:account.account,name:l10n_jp.2_l10n_jp_210200 +#: model:account.account,name:l10n_jp.3_l10n_jp_210200 +#: model:account.account,name:l10n_jp.4_l10n_jp_210200 +#: model:account.account.template,name:l10n_jp.l10n_jp_210200 +msgid "Software in Progress" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_121300 +#: model:account.account,name:l10n_jp.2_l10n_jp_121300 +#: model:account.account,name:l10n_jp.3_l10n_jp_121300 +#: model:account.account,name:l10n_jp.4_l10n_jp_121300 +#: model:account.account.template,name:l10n_jp.l10n_jp_121300 +msgid "Stock Interim Account (Delivered)" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_121200 +#: model:account.account,name:l10n_jp.2_l10n_jp_121200 +#: model:account.account,name:l10n_jp.3_l10n_jp_121200 +#: model:account.account,name:l10n_jp.4_l10n_jp_121200 +#: model:account.account.template,name:l10n_jp.l10n_jp_121200 +msgid "Stock Interim Account (Received)" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_121100 +#: model:account.account,name:l10n_jp.2_l10n_jp_121100 +#: model:account.account,name:l10n_jp.3_l10n_jp_121100 +#: model:account.account,name:l10n_jp.4_l10n_jp_121100 +#: model:account.account.template,name:l10n_jp.l10n_jp_121100 +msgid "Stock Valuation Account" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511300 +#: model:account.account,name:l10n_jp.2_l10n_jp_511300 +#: model:account.account,name:l10n_jp.3_l10n_jp_511300 +#: model:account.account,name:l10n_jp.4_l10n_jp_511300 +#: model:account.account.template,name:l10n_jp.l10n_jp_511300 +msgid "Subcontract Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_123000 +#: model:account.account,name:l10n_jp.2_l10n_jp_123000 +#: model:account.account,name:l10n_jp.3_l10n_jp_123000 +#: model:account.account,name:l10n_jp.4_l10n_jp_123000 +#: model:account.account.template,name:l10n_jp.l10n_jp_123000 +msgid "Suspense Payments" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_330600 +#: model:account.account,name:l10n_jp.2_l10n_jp_330600 +#: model:account.account,name:l10n_jp.3_l10n_jp_330600 +#: model:account.account,name:l10n_jp.4_l10n_jp_330600 +#: model:account.account.template,name:l10n_jp.l10n_jp_330600 +msgid "Suspense Receipt" +msgstr "" + +#. module: l10n_jp +#: model:account.fiscal.position,name:l10n_jp.1_l10n_jp_fiscal_position_tax_exclusive +#: model:account.fiscal.position,name:l10n_jp.2_l10n_jp_fiscal_position_tax_exclusive +#: model:account.fiscal.position,name:l10n_jp.3_l10n_jp_fiscal_position_tax_exclusive +#: model:account.fiscal.position,name:l10n_jp.4_l10n_jp_fiscal_position_tax_exclusive +#: model:account.fiscal.position.template,name:l10n_jp.l10n_jp_fiscal_position_tax_exclusive +msgid "Tax Exclusive" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_tx_duty_free +#: model:account.tax.group,name:l10n_jp.l10n_jp_tax_group_exempt +msgid "Tax Exempt" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_sales_duty_free +msgid "Tax Exempted Sale Amount" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512700 +#: model:account.account,name:l10n_jp.2_l10n_jp_512700 +#: model:account.account,name:l10n_jp.3_l10n_jp_512700 +#: model:account.account,name:l10n_jp.4_l10n_jp_512700 +#: model:account.account.template,name:l10n_jp.l10n_jp_512700 +msgid "Tax Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.fiscal.position,name:l10n_jp.1_l10n_jp_fiscal_position_tax_inclusive +#: model:account.fiscal.position,name:l10n_jp.2_l10n_jp_fiscal_position_tax_inclusive +#: model:account.fiscal.position,name:l10n_jp.3_l10n_jp_fiscal_position_tax_inclusive +#: model:account.fiscal.position,name:l10n_jp.4_l10n_jp_fiscal_position_tax_inclusive +#: model:account.fiscal.position.template,name:l10n_jp.l10n_jp_fiscal_position_tax_inclusive +msgid "Tax Inclusive" +msgstr "" + +#. module: l10n_jp +#: model:account.report,name:l10n_jp.tax_report +msgid "Tax Report" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis +msgid "Taxable Amount" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_purchases_taxable_10 +msgid "Taxable Purchase Amount (10%)" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_purchases_taxable_8 +msgid "Taxable Purchase Amount (8%)" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_sales_taxable_10 +msgid "Taxable Sale Amount (10%)" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_sales_taxable_8 +msgid "Taxable Sale Amount (8%)" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_120004 +#: model:account.account,name:l10n_jp.2_l10n_jp_120004 +#: model:account.account,name:l10n_jp.3_l10n_jp_120004 +#: model:account.account,name:l10n_jp.4_l10n_jp_120004 +#: model:account.account.template,name:l10n_jp.l10n_jp_120004 +msgid "Time Deposit" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110400 +#: model:account.account,name:l10n_jp.2_l10n_jp_110400 +#: model:account.account,name:l10n_jp.3_l10n_jp_110400 +#: model:account.account,name:l10n_jp.4_l10n_jp_110400 +#: model:account.account.template,name:l10n_jp.l10n_jp_110400 +msgid "Tools, Furniture and Fixtures" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_110500 +#: model:account.account,name:l10n_jp.2_l10n_jp_110500 +#: model:account.account,name:l10n_jp.3_l10n_jp_110500 +#: model:account.account,name:l10n_jp.4_l10n_jp_110500 +#: model:account.account.template,name:l10n_jp.l10n_jp_110500 +msgid "Tools, Furniture and Fixtures - Accumulated Depreciation" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay +msgid "Total Tax Amount" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_514500 +#: model:account.account,name:l10n_jp.2_l10n_jp_514500 +#: model:account.account,name:l10n_jp.3_l10n_jp_514500 +#: model:account.account,name:l10n_jp.4_l10n_jp_514500 +#: model:account.account.template,name:l10n_jp.l10n_jp_514500 +msgid "Transportation and warehousing expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512200 +#: model:account.account,name:l10n_jp.2_l10n_jp_512200 +#: model:account.account,name:l10n_jp.3_l10n_jp_512200 +#: model:account.account,name:l10n_jp.4_l10n_jp_512200 +#: model:account.account.template,name:l10n_jp.l10n_jp_512200 +msgid "Travelling Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_512800 +#: model:account.account,name:l10n_jp.2_l10n_jp_512800 +#: model:account.account,name:l10n_jp.3_l10n_jp_512800 +#: model:account.account,name:l10n_jp.4_l10n_jp_512800 +#: model:account.account.template,name:l10n_jp.l10n_jp_512800 +msgid "Utility Bills" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_221400 +#: model:account.account,name:l10n_jp.2_l10n_jp_221400 +#: model:account.account,name:l10n_jp.3_l10n_jp_221400 +#: model:account.account,name:l10n_jp.4_l10n_jp_221400 +#: model:account.account.template,name:l10n_jp.l10n_jp_221400 +msgid "Voluntary Retained Earnings" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_511100 +#: model:account.account,name:l10n_jp.2_l10n_jp_511100 +#: model:account.account,name:l10n_jp.3_l10n_jp_511100 +#: model:account.account,name:l10n_jp.4_l10n_jp_511100 +#: model:account.account.template,name:l10n_jp.l10n_jp_511100 +msgid "Welfare Expenses" +msgstr "" + +#. module: l10n_jp +#: model:account.account,name:l10n_jp.1_l10n_jp_122400 +#: model:account.account,name:l10n_jp.2_l10n_jp_122400 +#: model:account.account,name:l10n_jp.3_l10n_jp_122400 +#: model:account.account,name:l10n_jp.4_l10n_jp_122400 +#: model:account.account.template,name:l10n_jp.l10n_jp_122400 +msgid "Work in Process" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_purchases_tax_free +msgid "Zero-rated Purchase" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_pmt_tax_free +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_to_pay_temp_tx_tax_free +msgid "Zero-rated Tax" +msgstr "" + +#. module: l10n_jp +#: model:account.report.line,name:l10n_jp.l10n_jp_tax_report_comp_basis_sales_tax_free +msgid "Zero-rated Tax Amount" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/migrations/2.3/pre-migrate.py b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/migrations/2.3/pre-migrate.py new file mode 100644 index 0000000..da9f2b7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/migrations/2.3/pre-migrate.py @@ -0,0 +1,27 @@ +# 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, {}) + if not env.ref('l10n_jp.l10n_jp_tax_group_exempt', raise_if_not_found=False): + cr.execute(""" + UPDATE ir_model_data + SET name = 'l10n_jp_tax_group_exempt' + WHERE name = 'tax_group_0' + AND module = 'l10n_jp' + """) + if not env.ref('l10n_jp.l10n_jp_tax_group_8', raise_if_not_found=False): + cr.execute(""" + UPDATE ir_model_data + SET name = 'l10n_jp_tax_group_8' + WHERE name = 'tax_group_8' + AND module = 'l10n_jp' + """) + if not env.ref('l10n_jp.l10n_jp_tax_group_10', raise_if_not_found=False): + cr.execute(""" + UPDATE ir_model_data + SET name = 'l10n_jp_tax_group_10' + WHERE name = 'tax_group_10' + AND module = 'l10n_jp' + """) diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/static/description/icon.png b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a30f177f0db29f90a1c5ae6118396bfcb55527b GIT binary patch literal 1663 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Yt4rT@hhUEVyOBom#zXte(xJE^#%$&KPt81dG ztLJ$JMRRi-b8|a?|F9J+SO5S2-`?IeI3&W>)@kk9O{rgF0iTn`}6nDyN?f(%Kv`<@v>)5W@cegaaB+6#0e9p*3>lG**Rxt7kYaK zCMRdLcl6AgzbGaq=}CU`*E5&z1!jEMy!S=tj44xRoM%=puc&_zSN!Alg9{v*?^ka- zfBwQHVWXSIejm3T`1kMM*Hf47hh|TmI@8A|xT>nIrlut)r`XZa`gI;vZcv94Q!^ro#uE%vPx2sC_ z-_BiqGj~;aMNN0l#DIX%jT<*_*|P2F)92pa!Ryy=tgCBnZEf%G?_aZKQ(yli_xYhW z7#LVwJzX3_GVa~I@xA=A8^eK*#mPTayh~+Q6t=m)xuM(l`i<|UGm``+U1*!svf*?_ zIzC1mYj|FHh&`2+F`)-tqQsgYd6;5e7{|8uwb%d@A|I&QnyP=VgVlEif3N3=lC?iNJ!%I3G;0&1;}d87wu!iD zF0<0svHJVYKy{g*4~yUKS&=_Cq@e#Vx44<~T-}Og-@-f(F8-FdS8Mjxz3-+yRq-$mV*p&9iEe{oOfEi zxiT^9|4ucJO9dKbat%pl#iH` zRBBQFjsNYXZStZztkb(EnHWB(Dh-L1+P@*tUXz9E&>R)pxNo`n7lYNs`|VKDs^u1&g7tdHf0GZh5yU0xch2KUglHl z3J8{SH~sDZm3#3f|8uHYugtw(3F>(92D%r9haA=pYnIlo@_qll_r$e_6GB3-$fj_qa%Zy*aO>Ri*FU$qzguI4 z*o)p@p;xm@m3tlgL(WA=OST<$_n&IASFG)@`=X%Lmv`6(exu{P9PE9#5Ee ztHFAA#}$c`C2Gpwg0`-3nKf0aY~7xy5N;9IUdObo&b~u(cH&p2?%3;Sbd~9*=GjWW ziJC7OPgyQevhVt|=aXA$Dd%Dg~HyHkXv?MG2RJr#G}3srhAIZ zDz5#xy8l^a>165Bqdye0*783V+hBLTH|pB_m+4+k&$N>M82l(%SN3`K>f*P}fBRR4 zo+~z8604P|y8qd$1eU_+lh608%6h)pZ|mX}^LGZ+YOFeZHdxv8YP7lF+ALo4JEyp| zgz$U~m~ohQ`=am1GFRrT5%>N2?X193x2!IcJ8Yt}ugzfI7kG0~%laD?`)=EN?RVsQ zJa5~~x`R~+YjT%~$1zeX-b`ZJB>k_#2-qNmF8u6N+TpCp* zgiHbz_)Q#zr=DrpD)F87S4kQoyB0D$ kz1ADkQNFY9zUWhXf2MGa4wlkg3=9kmp00i_>zopr0Q6%xBme*a literal 0 HcmV?d00001 diff --git a/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/static/description/icon.svg b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/static/description/icon.svg new file mode 100644 index 0000000..4ffb35c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/l10n_jp/static/description/icon.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_jp/pyproject.toml b/odoo-bringout-oca-ocb-l10n_jp/pyproject.toml new file mode 100644 index 0000000..011bea8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_jp/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_jp" +version = "16.0.0" +description = "Japan - Accounting - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account>=16.0.0", + "odoo-bringout-oca-ocb-l10n_multilang>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_jp"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_my/README.md b/odoo-bringout-oca-ocb-l10n_my/README.md new file mode 100644 index 0000000..1313e16 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/README.md @@ -0,0 +1,50 @@ +# Malaysia - Accounting + + +This is the base module to manage the accounting chart for Malaysia in Odoo. +============================================================================== + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_my +``` + +## Dependencies + +This addon depends on: +- account +- l10n_multilang + +## Manifest Information + +- **Name**: Malaysia - Accounting +- **Version**: 1.0 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_my`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_my/doc/ARCHITECTURE.md new file mode 100644 index 0000000..a097a44 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_my Module - l10n_my + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_my/doc/CONFIGURATION.md new file mode 100644 index 0000000..a525f16 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_my. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_my/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_my/doc/DEPENDENCIES.md new file mode 100644 index 0000000..a8ee493 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- [account](../../odoo-bringout-oca-ocb-account) +- [l10n_multilang](../../odoo-bringout-oca-ocb-l10n_multilang) diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_my/doc/FAQ.md new file mode 100644 index 0000000..c4c65ab --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_my or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_my/doc/INSTALL.md new file mode 100644 index 0000000..aef53ee --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_my" +# or +uv pip install odoo-bringout-oca-ocb-l10n_my" +``` diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_my/doc/MODELS.md new file mode 100644 index 0000000..fd8089c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/MODELS.md @@ -0,0 +1,11 @@ +# Models + +Detected core models and extensions in l10n_my. + +```mermaid +classDiagram +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_my/doc/OVERVIEW.md new file mode 100644 index 0000000..88d6b53 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_my. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_my +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_my/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_my/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_my/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_my/doc/USAGE.md new file mode 100644 index 0000000..3fb5874 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_my +``` diff --git a/odoo-bringout-oca-ocb-l10n_my/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_my/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_my/l10n_my/__init__.py b/odoo-bringout-oca-ocb-l10n_my/l10n_my/__init__.py new file mode 100644 index 0000000..4c75c64 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/l10n_my/__init__.py @@ -0,0 +1,6 @@ +from odoo import api, SUPERUSER_ID + + +def load_translations(cr, registry): + env = api.Environment(cr, SUPERUSER_ID, {}) + env.ref("l10n_my.l10n_my_chart_template").process_coa_translations() diff --git a/odoo-bringout-oca-ocb-l10n_my/l10n_my/__manifest__.py b/odoo-bringout-oca-ocb-l10n_my/l10n_my/__manifest__.py new file mode 100644 index 0000000..b2a8b46 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/l10n_my/__manifest__.py @@ -0,0 +1,28 @@ +{ + "name": "Malaysia - Accounting", + "author": "Odoo PS", + "version": "1.0", + "category": "Accounting/Localizations/Account Charts", + "description": """ +This is the base module to manage the accounting chart for Malaysia in Odoo. +============================================================================== + """, + "depends": [ + "account", + "l10n_multilang", + ], + "data": [ + "data/l10n_my_chart_data.xml", + "data/account.account.template.csv", + "data/account_chart_template_data.xml", + "data/account.tax.group.csv", + "data/account_tax_template_data.xml", + "data/account_chart_template_configure_data.xml", + ], + 'demo': [ + 'demo/demo_company.xml', + ], + "icon": "/base/static/img/country_flags/my.png", + "post_init_hook": "load_translations", + "license": "LGPL-3", +} diff --git a/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account.account.template.csv new file mode 100644 index 0000000..74398d9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account.account.template.csv @@ -0,0 +1,76 @@ +id,name,code,account_type,chart_template_id/id,tag_ids/id,reconcile +l10n_my_11,Fixed Assets,11,asset_fixed,l10n_my.l10n_my_chart_template,,False +l10n_my_1110,Furniture and Fixtures,1110,asset_non_current,l10n_my.l10n_my_chart_template,,False +l10n_my_1130,Equipment,1130,asset_non_current,l10n_my.l10n_my_chart_template,,False +l10n_my_1140,Decoration,1140,asset_non_current,l10n_my.l10n_my_chart_template,,False +l10n_my_1160,Investments,1160,asset_non_current,l10n_my.l10n_my_chart_template,,False +l10n_my_12,Current Assets,12,asset_current,l10n_my.l10n_my_chart_template,,False +l10n_my_1240,Account Receivable,1240,asset_receivable,l10n_my.l10n_my_chart_template,,True +l10n_my_1241,Utility & Rental Deposit,1241,asset_current,l10n_my.l10n_my_chart_template,,True +l10n_my_1242,Supplier Prepayments,1242,asset_current,l10n_my.l10n_my_chart_template,,False +l10n_my_1243,Account Receivable (PoS),1243,asset_receivable,l10n_my.l10n_my_chart_template,,True +l10n_my_1245,Sundry Deposits,1245,asset_current,l10n_my.l10n_my_chart_template,,False +l10n_my_1246,Other Receivable,1246,asset_receivable,l10n_my.l10n_my_chart_template,,True +l10n_my_1250,Stock Interim Account (Received),1250,asset_current,l10n_my.l10n_my_chart_template,,False +l10n_my_1260,Stock Interim Account (Delivered),1260,asset_current,l10n_my.l10n_my_chart_template,,False +l10n_my_1270,Stock Valuation Account,1270,asset_current,l10n_my.l10n_my_chart_template,,False +l10n_my_21,Non-current Liabilities,21,liability_non_current,l10n_my.l10n_my_chart_template,,False +l10n_my_22,Current Liabilities,22,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_2210,Accruals,2210,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_22101,Accruals - KWSP,22101,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_22102,Accruals - PCB,22102,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_22103,Accruals - SOCSO,22103,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_22104,Accruals - EIS,22104,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_2211,Account Payable,2211,liability_payable,l10n_my.l10n_my_chart_template,,True +l10n_my_2212,Receipt in Advance (Customer Prepayments),2212,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_2213,SST Control Account,2213,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_2214,Provision for Taxation,2214,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_2215,Proposed Dividend,2215,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_2216,Other Payable,2216,liability_payable,l10n_my.l10n_my_chart_template,,True +l10n_my_31,Paid Capital,31,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_32,Accumulated Profit & Loss,32,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_33,Profit & Loss Account,33,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_34,Short-term Borrowing,34,liability_current,l10n_my.l10n_my_chart_template,,False +l10n_my_41,Trade Income,41,income,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_42,Other Income and Gains,42,income,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_4210,Sundry Income,4210,income,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_4220,Exchange Adjustment,4220,income,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_4230,Bank Interest Income,4230,income,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_4240,Foreign Exchange Gain,4240,income,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_51,Costs,51,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5101,Trade Costs,5101,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5105,Misc. Costs,5105,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5106,Costs of Transportation,5106,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5111,Declaration Fees,5111,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5112,Packing Fees,5112,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_52,Expenses,52,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5201,Bank Charges,5201,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5202,Entertainment,5202,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5203,Electricity & Water Fees,5203,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5205,Postage & Stamps,5205,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5206,Printing & Stationery,5206,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5207,Rent & Rates,5207,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5208,Sundry Expenses,5208,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5209,Telecommunication Expenses,5209,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5210,Traffic Fees,5210,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5211,IT Expenses,5211,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5214,Insurance,5214,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5215,Sales Commission,5215,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5216,Overseas Traveling,5216,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5218,Wages & Salaries,5218,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_52181,KWSP Contribution,52181,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_52182,PCB Contribution,52182,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_52183,EIS Contribution,52183,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5219,Bonus Payment,5219,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5221,SST,5221,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5222,Local Delivery,5222,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5223,Management Fees,5223,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5224,Depreciation,5224,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5225,Audit Fees,5225,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5226,Bad Debts,5226,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5228,Legal & Professional Fees,5228,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5229,Dividend,5229,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5231,Disposal,5231,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5234,Repair and Maintenance,5234,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5235,Advertising,5235,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False +l10n_my_5240,Foreign Exchange Loss,5240,expense,l10n_my.l10n_my_chart_template,account.account_tag_operating,False diff --git a/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account.tax.group.csv b/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account.tax.group.csv new file mode 100644 index 0000000..daf09b3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account.tax.group.csv @@ -0,0 +1,2 @@ +id,name,country_id/id +tax_group_sst,SST,base.my diff --git a/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account_chart_template_configure_data.xml b/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account_chart_template_configure_data.xml new file mode 100644 index 0000000..057c317 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account_chart_template_configure_data.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account_chart_template_data.xml new file mode 100644 index 0000000..b7cac68 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account_chart_template_data.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account_tax_template_data.xml b/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account_tax_template_data.xml new file mode 100644 index 0000000..2fed357 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/account_tax_template_data.xml @@ -0,0 +1,140 @@ + + + + + SST 5% + 1 + 5% + sale + percent + consu + 5.0 + + + + + + + + SST 6% + 1 + 6% + sale + percent + service + 6.0 + + + + + + + + + SST 8% + 1 + 8% + sale + percent + service + 8.0 + + + + + + + + SST 10% + 1 + 10% + sale + percent + consu + 10.0 + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/l10n_my_chart_data.xml b/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/l10n_my_chart_data.xml new file mode 100644 index 0000000..1862aec --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/l10n_my/data/l10n_my_chart_data.xml @@ -0,0 +1,13 @@ + + + + Malaysia - Chart of Accounts + 1200 + 1210 + 111220 + 6 + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_my/l10n_my/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_my/l10n_my/demo/demo_company.xml new file mode 100644 index 0000000..482d160 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/l10n_my/demo/demo_company.xml @@ -0,0 +1,35 @@ + + + + MY Company + MY647828492048102 + 1 Wisma Dato Dagang + Jln Raja Alang Kampung Bahru Mala + Kuala Lumpur + + + 50300 + +60 0326921917 + info@company.myexample.com + www.myexample.com + + + + MY Company + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_my/pyproject.toml b/odoo-bringout-oca-ocb-l10n_my/pyproject.toml new file mode 100644 index 0000000..f11778c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_my/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_my" +version = "16.0.0" +description = "Malaysia - Accounting - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account>=16.0.0", + "odoo-bringout-oca-ocb-l10n_multilang>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_my"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_nz/README.md b/odoo-bringout-oca-ocb-l10n_nz/README.md new file mode 100644 index 0000000..8610970 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/README.md @@ -0,0 +1,55 @@ +# New Zealand - Accounting + + +New Zealand Accounting Module +============================= + +New Zealand accounting basic charts and localizations. + +Also: + - activates a number of regional currencies. + - sets up New Zealand taxes. + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_nz +``` + +## Dependencies + +This addon depends on: +- account + +## Manifest Information + +- **Name**: New Zealand - Accounting +- **Version**: 1.1 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_nz`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_nz/doc/ARCHITECTURE.md new file mode 100644 index 0000000..fb64136 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_nz Module - l10n_nz + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_nz/doc/CONFIGURATION.md new file mode 100644 index 0000000..b587ae4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_nz. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_nz/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_nz/doc/DEPENDENCIES.md new file mode 100644 index 0000000..99c6b28 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [account](../../odoo-bringout-oca-ocb-account) diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_nz/doc/FAQ.md new file mode 100644 index 0000000..447df4f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_nz or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_nz/doc/INSTALL.md new file mode 100644 index 0000000..4782714 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_nz" +# or +uv pip install odoo-bringout-oca-ocb-l10n_nz" +``` diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_nz/doc/MODELS.md new file mode 100644 index 0000000..bbc3b18 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/MODELS.md @@ -0,0 +1,11 @@ +# Models + +Detected core models and extensions in l10n_nz. + +```mermaid +classDiagram +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_nz/doc/OVERVIEW.md new file mode 100644 index 0000000..781be6c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_nz. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_nz +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_nz/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_nz/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_nz/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_nz/doc/USAGE.md new file mode 100644 index 0000000..350db69 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_nz +``` diff --git a/odoo-bringout-oca-ocb-l10n_nz/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_nz/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/__init__.py b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/__init__.py new file mode 100644 index 0000000..b32af46 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +# Copyright (C) 2015 Willow IT Pty Ltd (). diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/__manifest__.py b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/__manifest__.py new file mode 100644 index 0000000..7b480d9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/__manifest__.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +# Copyright (C) 2015 Willow IT Pty Ltd (). + +{ + 'name': 'New Zealand - Accounting', + 'version': '1.1', + 'category': 'Accounting/Localizations/Account Charts', + 'description': """ +New Zealand Accounting Module +============================= + +New Zealand accounting basic charts and localizations. + +Also: + - activates a number of regional currencies. + - sets up New Zealand taxes. + """, + 'author': 'Richard deMeester - Willow IT', + 'website': 'http://www.willowit.com', + 'depends': ['account'], + 'data': [ + 'data/l10n_nz_chart_data.xml', + 'data/account.account.template.csv', + 'data/account_chart_template_data.xml', + 'data/account.tax.group.csv', + 'data/account_tax_report_data.xml', + 'data/account_tax_template_data.xml', + 'data/account_fiscal_position_tax_template_data.xml', + 'data/account_chart_template_configure_data.xml', + 'data/res_currency_data.xml', + ], + 'demo': [ + 'demo/demo_company.xml', + ], + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account.account.template.csv new file mode 100644 index 0000000..7c48bb5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account.account.template.csv @@ -0,0 +1,99 @@ +id,chart_template_id:id,code,name,account_type,reconcile +nz_11110,l10n_nz.l10n_nz_chart_template,11110,Bank,asset_cash,FALSE +nz_11130,l10n_nz.l10n_nz_chart_template,11130,Petty Cash,asset_cash,FALSE +nz_11140,l10n_nz.l10n_nz_chart_template,11140,Cash Drawer,asset_cash,FALSE +nz_11180,l10n_nz.l10n_nz_chart_template,11180,Undeposited Funds,asset_current,TRUE +nz_11190,l10n_nz.l10n_nz_chart_template,11190,Electronic Clearing,asset_current,TRUE +nz_11200,l10n_nz.l10n_nz_chart_template,11200,Trade Debtors,asset_receivable,TRUE +nz_11210,l10n_nz.l10n_nz_chart_template,11210,Less Prov'n for Doubtful Debts,asset_current,FALSE +nz_11220,l10n_nz.l10n_nz_chart_template,11220,Trade Debtors (PoS),asset_receivable,TRUE +nz_11310,l10n_nz.l10n_nz_chart_template,11310,Raw Materials,asset_current,FALSE +nz_11320,l10n_nz.l10n_nz_chart_template,11320,Finished Goods,asset_current,FALSE +nz_11330,l10n_nz.l10n_nz_chart_template,11330,Trading Stock on Hand,asset_current,FALSE +nz_11340,l10n_nz.l10n_nz_chart_template,11340,Goods Shipped Not Invoiced,asset_current,FALSE +nz_12100,l10n_nz.l10n_nz_chart_template,12100,Deposits Paid,asset_prepayments,FALSE +nz_12200,l10n_nz.l10n_nz_chart_template,12200,Prepaid Insurance,asset_current,FALSE +nz_13110,l10n_nz.l10n_nz_chart_template,13110,Manufacturing Plant at Cost,asset_fixed,FALSE +nz_13120,l10n_nz.l10n_nz_chart_template,13120,Manufac. Plant Accum Dep,asset_fixed,FALSE +nz_13130,l10n_nz.l10n_nz_chart_template,13130,Manufacturing Equipment Cost,asset_fixed,FALSE +nz_13140,l10n_nz.l10n_nz_chart_template,13140,Manufac. Equip Accum Dep,asset_fixed,FALSE +nz_13210,l10n_nz.l10n_nz_chart_template,13210,Furniture & Fixtures at Cost,asset_fixed,FALSE +nz_13220,l10n_nz.l10n_nz_chart_template,13220,Furniture & Fixtures Accum Dep,asset_fixed,FALSE +nz_13310,l10n_nz.l10n_nz_chart_template,13310,Office Equip at Cost,asset_fixed,FALSE +nz_13320,l10n_nz.l10n_nz_chart_template,13320,Office Equip Accum Dep,asset_fixed,FALSE +nz_13410,l10n_nz.l10n_nz_chart_template,13410,Motor Vehicles at Cost,asset_fixed,FALSE +nz_13420,l10n_nz.l10n_nz_chart_template,13420,Motor Vehicles Accum Dep,asset_fixed,FALSE +nz_21110,l10n_nz.l10n_nz_chart_template,21110,Credit Card,liability_current,FALSE +nz_21200,l10n_nz.l10n_nz_chart_template,21200,Trade Creditors,liability_payable,TRUE +nz_21210,l10n_nz.l10n_nz_chart_template,21210,A/P Accrual - Inventory,liability_current,FALSE +nz_21310,l10n_nz.l10n_nz_chart_template,21310,GST Collected,liability_current,FALSE +nz_21330,l10n_nz.l10n_nz_chart_template,21330,GST Paid,asset_current,FALSE +nz_21350,l10n_nz.l10n_nz_chart_template,21350,Fuel Tax Credits Accrued,liability_current,FALSE +nz_21360,l10n_nz.l10n_nz_chart_template,21360,Import Duty Payable,liability_current,FALSE +nz_21370,l10n_nz.l10n_nz_chart_template,21370,Voluntary Withholdings Payable,liability_current,FALSE +nz_21380,l10n_nz.l10n_nz_chart_template,21380,Tax Withholdings Payable,liability_current,FALSE +nz_21410,l10n_nz.l10n_nz_chart_template,21410,Payroll Accruals Payable,liability_current,FALSE +nz_21420,l10n_nz.l10n_nz_chart_template,21420,PAYG Withholding Payable,liability_current,FALSE +nz_21600,l10n_nz.l10n_nz_chart_template,21600,Customer Deposits,liability_current,FALSE +nz_21700,l10n_nz.l10n_nz_chart_template,21700,Other Current Liabilities,liability_current,FALSE +nz_22100,l10n_nz.l10n_nz_chart_template,22100,Mortgages Payable,liability_non_current,FALSE +nz_22200,l10n_nz.l10n_nz_chart_template,22200,Notes Payable,liability_non_current,FALSE +nz_22300,l10n_nz.l10n_nz_chart_template,22300,Other Long Term Liabilities,liability_non_current,FALSE +nz_31100,l10n_nz.l10n_nz_chart_template,31100,Capital Investment,equity,FALSE +nz_31200,l10n_nz.l10n_nz_chart_template,31200,Capital Drawings,equity,FALSE +nz_38000,l10n_nz.l10n_nz_chart_template,38000,Retained Earnings,equity,FALSE +nz_39000,l10n_nz.l10n_nz_chart_template,39000,Current Year Earnings,equity_unaffected,FALSE +nz_39999,l10n_nz.l10n_nz_chart_template,39999,Historical Balancing,equity,FALSE +nz_41110,l10n_nz.l10n_nz_chart_template,41110,Sales Product #1,income,FALSE +nz_41120,l10n_nz.l10n_nz_chart_template,41120,Sales Product #2,income,FALSE +nz_41130,l10n_nz.l10n_nz_chart_template,41130,Sales Product #3,income,FALSE +nz_42000,l10n_nz.l10n_nz_chart_template,42000,Wholesale Sales,income,FALSE +nz_43000,l10n_nz.l10n_nz_chart_template,43000,Consignment Sales,income,FALSE +nz_44000,l10n_nz.l10n_nz_chart_template,44000,Freight Income,income,FALSE +nz_45000,l10n_nz.l10n_nz_chart_template,45000,Late Fees Collected,income_other,FALSE +nz_46000,l10n_nz.l10n_nz_chart_template,46000,Miscellaneous Income,income_other,FALSE +nz_47000,l10n_nz.l10n_nz_chart_template,47000,Fuel Tax Credits,income_other,FALSE +nz_51110,l10n_nz.l10n_nz_chart_template,51110,Cost of Goods Sold #1,expense_direct_cost,FALSE +nz_51120,l10n_nz.l10n_nz_chart_template,51120,Cost of Goods Sold # 2,expense_direct_cost,FALSE +nz_51130,l10n_nz.l10n_nz_chart_template,51130,Cost of Goods Sold # 3,expense_direct_cost,FALSE +nz_52000,l10n_nz.l10n_nz_chart_template,52000,Wholesale Cost of Sales,expense_direct_cost,FALSE +nz_53000,l10n_nz.l10n_nz_chart_template,53000,Consignment Cost of Sales,expense_direct_cost,FALSE +nz_54000,l10n_nz.l10n_nz_chart_template,54000,Wages for Production Labour,expense_direct_cost,FALSE +nz_55000,l10n_nz.l10n_nz_chart_template,55000,Materials & Supplies,expense_direct_cost,FALSE +nz_56000,l10n_nz.l10n_nz_chart_template,56000,Freight,expense_direct_cost,FALSE +nz_57000,l10n_nz.l10n_nz_chart_template,57000,Other Costs,expense_direct_cost,FALSE +nz_61000,l10n_nz.l10n_nz_chart_template,61000,Advertising,expense,FALSE +nz_61200,l10n_nz.l10n_nz_chart_template,61200,Car & Truck Expenses,expense,FALSE +nz_61300,l10n_nz.l10n_nz_chart_template,61300,Commissions Paid,expense,FALSE +nz_61500,l10n_nz.l10n_nz_chart_template,61500,Depreciation Expense,expense_depreciation,FALSE +nz_61610,l10n_nz.l10n_nz_chart_template,61610,Discounts Given,expense,FALSE +nz_61620,l10n_nz.l10n_nz_chart_template,61620,Discounts Taken,expense,FALSE +nz_61630,l10n_nz.l10n_nz_chart_template,61630,Exchange Rate Losses (Gains),expense,FALSE +nz_61700,l10n_nz.l10n_nz_chart_template,61700,Freight Paid,expense,FALSE +nz_61800,l10n_nz.l10n_nz_chart_template,61800,Insurance,expense,FALSE +nz_61910,l10n_nz.l10n_nz_chart_template,61910,Overdraft Interest,expense,FALSE +nz_61920,l10n_nz.l10n_nz_chart_template,61920,Mortgage Interest,expense,FALSE +nz_61930,l10n_nz.l10n_nz_chart_template,61930,Other Interest,expense,FALSE +nz_62000,l10n_nz.l10n_nz_chart_template,62000,Late Fees Paid,expense,FALSE +nz_62110,l10n_nz.l10n_nz_chart_template,62110,Machinery & Equipment,expense,FALSE +nz_62120,l10n_nz.l10n_nz_chart_template,62120,Other Business Property,expense,FALSE +nz_62200,l10n_nz.l10n_nz_chart_template,62200,Legal & Professional Services,expense,FALSE +nz_62300,l10n_nz.l10n_nz_chart_template,62300,Office Expenses,expense,FALSE +nz_62410,l10n_nz.l10n_nz_chart_template,62410,Staff Amenities,expense,FALSE +nz_62420,l10n_nz.l10n_nz_chart_template,62420,Superannuation,expense,FALSE +nz_62430,l10n_nz.l10n_nz_chart_template,62430,Wages & Salaries,expense,FALSE +nz_62440,l10n_nz.l10n_nz_chart_template,62440,Workers' Compensation,expense,FALSE +nz_62450,l10n_nz.l10n_nz_chart_template,62450,Other Employer Expenses,expense,FALSE +nz_62500,l10n_nz.l10n_nz_chart_template,62500,Repairs,expense,FALSE +nz_62550,l10n_nz.l10n_nz_chart_template,62550,Shrinkage/Spoilage,expense,FALSE +nz_62600,l10n_nz.l10n_nz_chart_template,62600,Supplies,expense,FALSE +nz_62700,l10n_nz.l10n_nz_chart_template,62700,Taxes,expense,FALSE +nz_62800,l10n_nz.l10n_nz_chart_template,62800,Telephone,expense,FALSE +nz_62910,l10n_nz.l10n_nz_chart_template,62910,Gas,expense,FALSE +nz_62920,l10n_nz.l10n_nz_chart_template,62920,Electricity,expense,FALSE +nz_62930,l10n_nz.l10n_nz_chart_template,62930,Water,expense,FALSE +nz_63110,l10n_nz.l10n_nz_chart_template,63110,Travel,expense,FALSE +nz_63120,l10n_nz.l10n_nz_chart_template,63120,Meals & Entertainment,expense,FALSE +nz_81000,l10n_nz.l10n_nz_chart_template,81000,Interest Income,income_other,FALSE +nz_91000,l10n_nz.l10n_nz_chart_template,91000,Interest Expense,expense,FALSE +nz_92000,l10n_nz.l10n_nz_chart_template,92000,Income Tax Expense,expense,FALSE diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account.tax.group.csv b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account.tax.group.csv new file mode 100644 index 0000000..f255fa5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account.tax.group.csv @@ -0,0 +1,5 @@ +id,name,country_id/id +tax_group_0,TAX 0%,base.nz +tax_group_gst_15,GST 15%,base.nz +tax_group_15,TAX 15%,base.nz +tax_group_100000000,GST 100%,base.nz diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_chart_template_configure_data.xml b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_chart_template_configure_data.xml new file mode 100644 index 0000000..f54ef64 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_chart_template_configure_data.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_chart_template_data.xml new file mode 100644 index 0000000..74d2c88 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_chart_template_data.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_fiscal_position_tax_template_data.xml b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_fiscal_position_tax_template_data.xml new file mode 100644 index 0000000..541de9f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_fiscal_position_tax_template_data.xml @@ -0,0 +1,31 @@ + + + + OS Partner + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_tax_report_data.xml b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_tax_report_data.xml new file mode 100644 index 0000000..c90ea33 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_tax_report_data.xml @@ -0,0 +1,154 @@ + + + + Tax Report + + + + country + + + Balance + balance + + + + + Sales and Income + NZBOX5.balance + NZBOX6.balance + NZBOX9.balance + 100 + + + [BOX 5] Total sales and income for the period(including GST and zero-rated Supplies) + NZBOX5 + 110 + + + balance + tax_tags + BOX 5 + + + + + [BOX 6] Zero-rated supplies in Box 5 + NZBOX6 + 120 + + + balance + tax_tags + BOX 6 + + + + + [BOX 7] The amount in Box 6 is subracted from Box 5 + NZBOX7 + 130 + NZBOX5.balance - NZBOX6.balance + + + [BOX 8] Multiply the amount in Box 7 by 3 and then divide by 23 + NZBOX8 + 140 + (NZBOX7.balance * 3)/23 + + + [BOX 9] Enter any adjustments from your calculation sheet + NZBOX9 + 150 + + + balance + tax_tags + BOX 9 + + + + + [BOX 10] Total GST collected on sales and income + NZBOX10 + 160 + NZBOX8.balance + NZBOX9.balance + + + + + Purchases and Expenses + NZBOX11.balance + NZBOX13.balance + 200 + + + [BOX 11] Total purchases and expenses(including GST) for which tax invoicing requirements have been met + NZBOX11 + 210 + + + balance + tax_tags + BOX 11 + + + + + [BOX 12] Multiply BOX11 by 3 and then divide by 23 + NZBOX12 + 220 + (NZBOX11.balance * 3)/23 + + + [BOX 13] Credit adjustments from your calculation sheet + NZBOX13 + 230 + + + balance + aggregation + NZBOX13_tags.balance + NZBOX13_manual.balance + + + + + [BOX 13] Amount computed from tax tags + NZBOX13_tags + 233 + + + balance + tax_tags + BOX 13 + + + + + [BOX 13] Manual adjustments + NZBOX13_manual + 236 + + + balance + external + sum + editable;rounding=2 + + + + + + + [BOX 14] Total GST credit for purchases and expenses + NZBOX14 + 240 + NZBOX12.balance + NZBOX13.balance + + + + + [BOX 15] Difference between BOX10 and BOX14 + 300 + NZBOX10.balance - NZBOX14.balance + + + + diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_tax_template_data.xml b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_tax_template_data.xml new file mode 100644 index 0000000..df7bac0 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/account_tax_template_data.xml @@ -0,0 +1,225 @@ + + + + + Sale (15%) + 1 + GST Sales + sale + percent + 15 + FALSE + + + + + + + GST Inc Sale (15%) + 2 + GST Inclusive Sales + sale + percent + 15 + TRUE + + + + + + + Zero/Export (0%) Sale + 3 + Zero Rated (Export) Sales + sale + percent + 0 + FALSE + + + + + + + Purch (15%) + 1 + GST Purchases + purchase + percent + 15 + FALSE + + + + + + + GST Inc Purch (15%) + 2 + GST Inclusive Purchases + purchase + percent + 15 + TRUE + + + + + + + Zero/Import (0%) Purch + 3 + Zero Rated Purchases + purchase + percent + 0 + FALSE + + + + + + + Purch (Imports Taxable) + 4 + Purchase (Taxable Imports) - Tax Paid Separately + purchase + percent + 0 + FALSE + + + + + + + GST Only - Imports + 5 + GST Only on Imports + purchase + division + 100 + TRUE + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/l10n_nz_chart_data.xml b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/l10n_nz_chart_data.xml new file mode 100644 index 0000000..d2b4aa6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/l10n_nz_chart_data.xml @@ -0,0 +1,17 @@ + + + + + + + New Zealand Tax and Account Chart Template (by Willow IT) + 1111 + 1113 + 11170 + 5 + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/res_currency_data.xml b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/res_currency_data.xml new file mode 100644 index 0000000..f133375 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/data/res_currency_data.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/demo/demo_company.xml new file mode 100644 index 0000000..0d3d49c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/demo/demo_company.xml @@ -0,0 +1,35 @@ + + + + NZ Company + 49098576 + 9429047488083 + Victoria Street + Hamilton + + + 3247 + +64 21 123 4567 + info@company.nzexample.com + www.nzexample.com + + + + NZ Company + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/migrations/1.2/post-migrate.py b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/migrations/1.2/post-migrate.py new file mode 100644 index 0000000..467ca9e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/migrations/1.2/post-migrate.py @@ -0,0 +1,10 @@ +def migrate(cr, version): + cr.execute(""" + UPDATE account_report_expression e + SET label = 'balance' + FROM ir_model_data d + WHERE e.id = d.res_id + AND d.module = 'l10n_nz' + AND d.name = 'tax_report_box13_formula' + AND e.label = '_upg_1.2balance' + """) diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/migrations/1.2/pre-migrate.py b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/migrations/1.2/pre-migrate.py new file mode 100644 index 0000000..1917265 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/migrations/1.2/pre-migrate.py @@ -0,0 +1,10 @@ +def migrate(cr, version): + cr.execute(""" + UPDATE account_report_expression e + SET label = '_upg_1.2balance' + FROM ir_model_data d + WHERE e.id = d.res_id + AND d.module = 'l10n_nz' + AND d.name = 'tax_report_box13_formula' + AND e.label = 'balance' + """) diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/static/description/icon.png b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bf6a5e20ebcb9b57490014f95b113493a0a8e98b GIT binary patch literal 2122 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Yt4rT@hhUEVyOBooL83KGlTp1+uy1FI?heWu# zdYYTtn48NnK7( zv7@8Mj2W{vY+ExkvrafCbtd$dmR5Ot2fDa;r={h`#ijG8lH)``1bn;hT;LD-YNP*K}@4D_!yN)AwCr<!83H zquEAMW?Mvz8ZNPLs7%i1K#9(1a_K6z>P>)3zC z*%R;oEI0UeSN=o-&0GU9jm7V%bUGfd*A+M z_o{!7j?drqJ*U>Q#me9E>&<<4t;=fv1#az*`ki|GeSN6xii1~{oB7=Nc6)tb{NDfP z%BH<~X;twfAoRY<{`3296z_1f{2Ci`=iC0>+utm@m$u^9-1zrPSN(c4KVEzJ#F)(V1HtwpqJK9}{k3@e@94D1nxL)E?<>3Wix__0?S3S@`0m%z zI1x`X%fyw!udT8dSNH#kIsSIFXKiRZpZuFwg^X9<9ZbDbP`sa?)o_F3tL9(YQp;k@ zuGVgwvFH9*rps@)-`#jGb?x4?CVkgQYyC7{ot54FJ@<P z^W=?@I+Ny~k9>Zzp=GU=KLxCJyr@UmiBW6Gu$YsDY&`ZH@La#&qnq6>%^8hth&4R zO>xMAtY@V*kIYv+3JBNT{-R`$sXJ@dq2SN9;(uA9xF`&Q|=tn;InWQk*B(z!J6ro5==Hv=Q*|F;HidkyWJsf%8Dy08oG*96c+0!SiB084c;lE zCCB1<^TyVT8qJ^n|9Y@eM0v6+TPowHl}E01A34{U5*6&npe1=?xsb8v$z`5F*H}1S z>11~L6nh2sGBhbMPZj=ggvBxSr3;rsB%{gF!>&p9=O}tvdOcWKwAka#Z1s+yREBv{ zdfRrZtgKitL5usVuA#tFj{q;xAM5uxOkrKH=uum ze()s`j;2jNJ4uL{foJbD z`>T{kW<0Db*1Gf>V_$iFBV=h2&)}T_VEl>&a{Gq#hOB(;Lvc=nD zd=+?xcar0qmA5B2MRS^JUKEmfWS_p$M^$*m3L_@bt1lc}RU-{nVqZk+%7(8A5T-G@yGywp&PXu@X literal 0 HcmV?d00001 diff --git a/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/static/description/icon.svg b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/static/description/icon.svg new file mode 100644 index 0000000..d4124a1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/l10n_nz/static/description/icon.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_nz/pyproject.toml b/odoo-bringout-oca-ocb-l10n_nz/pyproject.toml new file mode 100644 index 0000000..fa20e1c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_nz/pyproject.toml @@ -0,0 +1,42 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_nz" +version = "16.0.0" +description = "New Zealand - Accounting - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_nz"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_ph/README.md b/odoo-bringout-oca-ocb-l10n_ph/README.md new file mode 100644 index 0000000..596354d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/README.md @@ -0,0 +1,48 @@ +# Philippines - Accounting + +Odoo addon: l10n_ph + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_ph +``` + +## Dependencies + +This addon depends on: +- account +- base_vat +- l10n_multilang + +## Manifest Information + +- **Name**: Philippines - Accounting +- **Version**: 1.0 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_ph`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_ph/doc/ARCHITECTURE.md new file mode 100644 index 0000000..28ef844 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_ph Module - l10n_ph + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_ph/doc/CONFIGURATION.md new file mode 100644 index 0000000..3ca2e1e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_ph. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_ph/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_ph/doc/DEPENDENCIES.md new file mode 100644 index 0000000..363a11d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/DEPENDENCIES.md @@ -0,0 +1,7 @@ +# Dependencies + +This addon depends on: + +- [account](../../odoo-bringout-oca-ocb-account) +- [base_vat](../../odoo-bringout-oca-ocb-base_vat) +- [l10n_multilang](../../odoo-bringout-oca-ocb-l10n_multilang) diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_ph/doc/FAQ.md new file mode 100644 index 0000000..aa7fb31 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_ph or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_ph/doc/INSTALL.md new file mode 100644 index 0000000..65055ff --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_ph" +# or +uv pip install odoo-bringout-oca-ocb-l10n_ph" +``` diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_ph/doc/MODELS.md new file mode 100644 index 0000000..db52f8b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/MODELS.md @@ -0,0 +1,16 @@ +# Models + +Detected core models and extensions in l10n_ph. + +```mermaid +classDiagram + class account_move + class account_payment + class account_tax + class account_tax_template + class res_partner +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_ph/doc/OVERVIEW.md new file mode 100644 index 0000000..9109555 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_ph. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_ph +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_ph/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_ph/doc/SECURITY.md new file mode 100644 index 0000000..851c14a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/SECURITY.md @@ -0,0 +1,34 @@ +# Security + +Access control and security definitions in l10n_ph. + +## Access Control Lists (ACLs) + +Model access permissions defined in: +- **[ir.model.access.csv](../l10n_ph/security/ir.model.access.csv)** + - 1 model access rules + +## Record Rules + +Row-level security rules defined in: + +```mermaid +graph TB + subgraph "Security Layers" + A[Users] --> B[Groups] + B --> C[Access Control Lists] + C --> D[Models] + B --> E[Record Rules] + E --> F[Individual Records] + end +``` + +Security files overview: +- **[ir.model.access.csv](../l10n_ph/security/ir.model.access.csv)** + - Model access permissions (CRUD rights) + +Notes +- Access Control Lists define which groups can access which models +- Record Rules provide row-level security (filter records by user/group) +- Security groups organize users and define permission sets +- All security is enforced at the ORM level by Odoo diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_ph/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_ph/doc/USAGE.md new file mode 100644 index 0000000..bcbe3e4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_ph +``` diff --git a/odoo-bringout-oca-ocb-l10n_ph/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_ph/doc/WIZARDS.md new file mode 100644 index 0000000..21593b1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/doc/WIZARDS.md @@ -0,0 +1,8 @@ +# Wizards + +Transient models exposed as UI wizards in l10n_ph. + +```mermaid +classDiagram + class Generate2307Wizard +``` diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/__init__.py b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/__init__.py new file mode 100644 index 0000000..33bbab5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/__init__.py @@ -0,0 +1,4 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models +from . import wizard diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/__manifest__.py b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/__manifest__.py new file mode 100644 index 0000000..5adefaf --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/__manifest__.py @@ -0,0 +1,35 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + "name": "Philippines - Accounting", + "summary": """ + This is the module to manage the accounting chart for The Philippines. + """, + "category": "Accounting/Localizations/Account Charts", + "version": "1.0", + "author": "Odoo PS", + "website": "https://www.odoo.com", + "depends": [ + "account", + "base_vat", + "l10n_multilang", + ], + "data": [ + "data/account_chart_template_data.xml", + "data/account.account.template.csv", + "data/account_chart_template_post_data.xml", + "data/account_tax_group.xml", + "data/account_tax_template.xml", + "data/account_fiscal_position_template.xml", + "data/account_fiscal_position_tax_template.xml", + "data/account_chart_template_configure_data.xml", + "wizard/generate_2307_wizard_views.xml", + "views/account_move_views.xml", + "views/account_payment_views.xml", + "views/account_tax_views.xml", + "views/res_partner_views.xml", + "security/ir.model.access.csv", + ], + "license": "LGPL-3", + "icon": "/base/static/img/country_flags/ph.png", +} diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account.account.template.csv new file mode 100644 index 0000000..0efec41 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account.account.template.csv @@ -0,0 +1,98 @@ +id,name,code,account_type,chart_template_id/id,reconcile +l10n_ph_100000,Bank Suspense Account,100000,asset_current,l10n_ph_chart_template,False +l10n_ph_110000,Accounts Receivable,110000,asset_receivable,l10n_ph_chart_template,True +l10n_ph_110003,Accounts Receivable (POS),110003,asset_receivable,l10n_ph_chart_template,True +l10n_ph_110100,Advances to Suppliers,110100,asset_prepayments,l10n_ph_chart_template,False +l10n_ph_110101,Deposits,110101,asset_prepayments,l10n_ph_chart_template,False +l10n_ph_110102,Employees Receivable-Cash Advance,110102,asset_current,l10n_ph_chart_template,False +l10n_ph_110103,Employees Receivable-Loan,110103,asset_current,l10n_ph_chart_template,False +l10n_ph_110104,ER - Others,110104,asset_current,l10n_ph_chart_template,False +l10n_ph_110105,Prepaid Insurance,110105,asset_prepayments,l10n_ph_chart_template,False +l10n_ph_110106,Prepaid Pension - contribution,110106,asset_prepayments,l10n_ph_chart_template,False +l10n_ph_110200,Prepaid Tax - Tax Credit Certificate,110200,asset_current,l10n_ph_chart_template,False +l10n_ph_110201,Input VAT 12%,110201,asset_current,l10n_ph_chart_template,False +l10n_ph_110202,Deferred Input VAT 12%,110202,asset_current,l10n_ph_chart_template,False +l10n_ph_110203,Deferred Tax Asset,110203,asset_current,l10n_ph_chart_template,False +l10n_ph_110205,Creditable Income Tax,110205,asset_current,l10n_ph_chart_template,False +l10n_ph_110206,Tax Withheld by Customer,110206,asset_current,l10n_ph_chart_template,False +l10n_ph_110207,Deferred Tax Withheld by Customer,110207,asset_current,l10n_ph_chart_template,False +l10n_ph_110300,Inventory,110300,asset_current,l10n_ph_chart_template,False +l10n_ph_110301,Purchases,110301,asset_current,l10n_ph_chart_template,False +l10n_ph_110302,Stock Interim (Received),110302,asset_current,l10n_ph_chart_template,True +l10n_ph_110303,Stock Interim (Delivered),110303,asset_current,l10n_ph_chart_template,True +l10n_ph_110304,Stock Interim (Production),110304,asset_current,l10n_ph_chart_template,True +l10n_ph_110400,Other Non-current Asset,110400,asset_non_current,l10n_ph_chart_template,False +l10n_ph_110500,Building and Leasehold Improvements,110500,asset_fixed,l10n_ph_chart_template,False +l10n_ph_110501,"Furniture, Fixtures and Equipment",110501,asset_fixed,l10n_ph_chart_template,False +l10n_ph_110502,Vehicles,110502,asset_fixed,l10n_ph_chart_template,False +l10n_ph_110503,Computers,110503,asset_fixed,l10n_ph_chart_template,False +l10n_ph_110504,Accum Depreciation-Bldg & Leasehold Imp,110504,asset_fixed,l10n_ph_chart_template,False +l10n_ph_110505,"Accum Depreciation-Furniture, Fixtures and Equipment",110505,asset_fixed,l10n_ph_chart_template,False +l10n_ph_110506,Accum Depreciation-Vehicles,110506,asset_fixed,l10n_ph_chart_template,False +l10n_ph_110507,Accum Depreciation-Computers,110507,asset_fixed,l10n_ph_chart_template,False +l10n_ph_200000,Accounts Payable,200000,liability_payable,l10n_ph_chart_template,True +l10n_ph_200200,Dividends Payable - Common Shares,200200,liability_current,l10n_ph_chart_template,False +l10n_ph_200201,Unearned Revenue,200201,liability_current,l10n_ph_chart_template,False +l10n_ph_200202,Customer Deposits Received,200202,liability_current,l10n_ph_chart_template,False +l10n_ph_200300,Output VAT 12% - Actual,200300,liability_current,l10n_ph_chart_template,False +l10n_ph_200301,Deferred Output VAT 12% - Actual,200301,liability_current,l10n_ph_chart_template,False +l10n_ph_200302,Tax Payable-Withholding Tax Compensation,200302,liability_current,l10n_ph_chart_template,False +l10n_ph_200303,Tax Pay-Withholding Tax Source,200303,liability_current,l10n_ph_chart_template,False +l10n_ph_200304,Deferred Tax Pay-Withholding Tax Source,200304,liability_current,l10n_ph_chart_template,False +l10n_ph_200305,Taxes Payable-Final Withholding Tax,200305,liability_current,l10n_ph_chart_template,False +l10n_ph_200306,Tax Payable-Withholding Tax at Source (Accrual),200306,liability_current,l10n_ph_chart_template,False +l10n_ph_200307,Income Tax Payable,200307,liability_current,l10n_ph_chart_template,False +l10n_ph_200308,Accrued Fringe Benefit Tax,200308,liability_current,l10n_ph_chart_template,False +l10n_ph_200400,Other Non-current Liability,200400,liability_non_current,l10n_ph_chart_template,False +l10n_ph_300000,Capital Stock,300000,equity,l10n_ph_chart_template,False +l10n_ph_300001,Additional Paid in Capital,300001,equity,l10n_ph_chart_template,False +l10n_ph_300002,Retained Earnings,300002,equity,l10n_ph_chart_template,False +l10n_ph_430400,Sales/Revenues,430400,income,l10n_ph_chart_template,False +l10n_ph_510000,Cost of Goods Sold,510000,expense_direct_cost,l10n_ph_chart_template,False +l10n_ph_511100,COGS - Purchases,511100,expense_direct_cost,l10n_ph_chart_template,False +l10n_ph_511600,COGS - Freight Costs,511600,expense_direct_cost,l10n_ph_chart_template,False +l10n_ph_511700,COGS - Direct Labor,511700,expense_direct_cost,l10n_ph_chart_template,False +l10n_ph_511800,COGS - Factory/Processing Overhead,511800,expense_direct_cost,l10n_ph_chart_template,False +l10n_ph_620000,Admin Expense,620000,expense,l10n_ph_chart_template,False +l10n_ph_620001,Marketing Expense,620001,expense,l10n_ph_chart_template,False +l10n_ph_620100,Lease-Corporate Offices,620100,expense,l10n_ph_chart_template,False +l10n_ph_621000,Insurance Expenses,621000,expense,l10n_ph_chart_template,False +l10n_ph_622000,Repairs & Maintenance,622000,expense,l10n_ph_chart_template,False +l10n_ph_623000,Salaries & Wages,623000,expense,l10n_ph_chart_template,False +l10n_ph_623001,Overtime Pay,623001,expense,l10n_ph_chart_template,False +l10n_ph_623002,SSS Contribution,623002,expense,l10n_ph_chart_template,False +l10n_ph_623003,HDMF Contribution,623003,expense,l10n_ph_chart_template,False +l10n_ph_623004,PHIC Contribution,623004,expense,l10n_ph_chart_template,False +l10n_ph_623005,Meal Allowance,623005,expense,l10n_ph_chart_template,False +l10n_ph_623006,Other Allowance,623006,expense,l10n_ph_chart_template,False +l10n_ph_623007,13th Month Pay,623007,expense,l10n_ph_chart_template,False +l10n_ph_623008,Retirement Expenses,623008,expense,l10n_ph_chart_template,False +l10n_ph_623009,Training and Webinar,623009,expense,l10n_ph_chart_template,False +l10n_ph_623014,Sick Leave Expenses,623014,expense,l10n_ph_chart_template,False +l10n_ph_623015,Vacation Leave Expenses,623015,expense,l10n_ph_chart_template,False +l10n_ph_624000,Taxes and Licenses,624000,expense,l10n_ph_chart_template,False +l10n_ph_625000,Utilities Expenses,625000,expense,l10n_ph_chart_template,False +l10n_ph_626000,Security Services,626000,expense,l10n_ph_chart_template,False +l10n_ph_626001,Professional Fees,626001,expense,l10n_ph_chart_template,False +l10n_ph_627000,Travel and Transportation,627000,expense,l10n_ph_chart_template,False +l10n_ph_628000,Advertising and Promotion,628000,expense,l10n_ph_chart_template,False +l10n_ph_629000,Depreciation Expense,629000,expense_depreciation,l10n_ph_chart_template,False +l10n_ph_632000,Commission Expense,632000,expense,l10n_ph_chart_template,False +l10n_ph_633000,Supplies Expenses,633000,expense,l10n_ph_chart_template,False +l10n_ph_634000,Miscellaneous Expenses,634000,expense,l10n_ph_chart_template,False +l10n_ph_634001,Bank Fees,634001,expense,l10n_ph_chart_template,False +l10n_ph_635000,Prov DA-Billed Accts,635000,expense,l10n_ph_chart_template,False +l10n_ph_635001,Prov-Probable Expenses,635001,expense,l10n_ph_chart_template,False +l10n_ph_635002,Prov for Inc Tax - Creditable,635002,expense,l10n_ph_chart_template,False +l10n_ph_635003,Provision for Tax - Final,635003,expense,l10n_ph_chart_template,False +l10n_ph_710100,Forex Gain,710100,income_other,l10n_ph_chart_template,False +l10n_ph_710101,Forex Loss,710101,expense,l10n_ph_chart_template,False +l10n_ph_710102,Cash Difference Gain,710102,income_other,l10n_ph_chart_template,False +l10n_ph_710103,Cash Difference Loss,710103,expense,l10n_ph_chart_template,False +l10n_ph_710200,Gain/Loss- Sale FA,710200,expense,l10n_ph_chart_template,False +l10n_ph_710201,Loss on FA Disposal,710201,expense,l10n_ph_chart_template,False +l10n_ph_710300,Interest Inc-Savings,710300,income_other,l10n_ph_chart_template,False +l10n_ph_710301,Interest Income-Savings Local,710301,income_other,l10n_ph_chart_template,False +l10n_ph_710400,Other Income,710400,income_other,l10n_ph_chart_template,False +l10n_ph_710500,Interest Expense-Suppliers' Credit Local,710500,income_other,l10n_ph_chart_template,False +l10n_ph_999999,Undistributed Profits/Losses,999999,equity_unaffected,l10n_ph_chart_template,False diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_chart_template_configure_data.xml b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_chart_template_configure_data.xml new file mode 100644 index 0000000..d2cfa0f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_chart_template_configure_data.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_chart_template_data.xml new file mode 100644 index 0000000..b3748c0 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_chart_template_data.xml @@ -0,0 +1,13 @@ + + + + Philippines Account Template + 1000 + 1001 + 1002 + 6 + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_chart_template_post_data.xml b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_chart_template_post_data.xml new file mode 100644 index 0000000..87e71ca --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_chart_template_post_data.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_fiscal_position_tax_template.xml b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_fiscal_position_tax_template.xml new file mode 100644 index 0000000..92ba642 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_fiscal_position_tax_template.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_fiscal_position_template.xml b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_fiscal_position_template.xml new file mode 100644 index 0000000..af60c16 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_fiscal_position_template.xml @@ -0,0 +1,18 @@ + + + + 1 + VAT Registered + + + + + + + 2 + VAT Exempt + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_tax_group.xml b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_tax_group.xml new file mode 100644 index 0000000..f0590a8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_tax_group.xml @@ -0,0 +1,27 @@ + + + + VAT 12% + + + VAT Exempt + + + WHT 0.5% + + + WHT 1% + + + WHT 2% + + + WHT 5% + + + WHT 10% + + + WHT 15% + + diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_tax_template.xml b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_tax_template.xml new file mode 100644 index 0000000..3f8b9cc --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/data/account_tax_template.xml @@ -0,0 +1,1049 @@ + + + + 10 + + 12% VAT + 12% VAT + sale + 12 + percent + + + + + + 10 + + VAT Exempt + VAT Exempt + sale + 0 + percent + + + + + + 20 + + 12% VAT + 12% VAT + purchase + 12 + percent + + + + + + 20 + + VAT Exempt + VAT Exempt + purchase + 0 + percent + + + + + + 30 + + 5% WI010 - Prof Fees + Prof Fees + WI010 + purchase + -5 + percent + + + + + + 30 + + 10% WI011 - Prof Fees + Prof Fees + WI011 + purchase + -10 + percent + + + + + + 40 + + 5% WI100 - Gross rental of property + Gross rental of property + WI100 + purchase + -5 + percent + + + + + + 50 + + 2% WI120 - Contractors + Contractors + WI120 + purchase + -2 + percent + + + + + + 60 + + 5% WI139 - Commission of service fees + Commission of service fees + WI139 + purchase + -5 + percent + + + + + + 60 + + 10% WI140 - Commission of service fees + Commission of service fees + WI140 + purchase + -10 + percent + + + + + + 70 + + 0.5% WI158 - Credit card companies + Credit card companies + WI158 + purchase + -0.5 + percent + + + + + + 80 + + 1% WI640 - Supplier of goods + Supplier of goods + WI640 + purchase + -1 + percent + + + + + + 80 + + 2% WI157 - Supplier of services + Supplier of services + WI157 + purchase + -2 + percent + + + + + + 90 + + 1% WI158 - Supplier of goods by top w/holding agents + Supplier of goods by top w/holding agents + WI158 + purchase + -1 + percent + + + + + + 90 + + 2% WI160 - Supplier of goods by top w/holding agents + Supplier of goods by top w/holding agents + WI160 + purchase + -2 + percent + + + + + + 100 + + 5% WI515 - Commission, rebates, discounts + Commission, rebates, discounts + WI515 + purchase + -5 + percent + + + + + + 100 + + 10% WI516 - Commission, rebates, discounts + Commission, rebates, discounts + WI516 + purchase + -10 + percent + + + + + + 110 + + 10% WC010 - Prof Fees + Prof Fees + WC010 + purchase + -10 + percent + + + + + + 110 + + 15% WC011 - Prof Fees + Prof Fees + WC011 + purchase + -15 + percent + + + + + + 120 + + 5% WC100 - Gross rental of property + Gross rental of property + WC100 + purchase + -5 + percent + + + + + + 130 + + 2% WC120 - Contractors + Contractors + WC120 + purchase + -2 + percent + + + + + + 140 + + 10% WC139 - Commission of service fees + Commission of service fees + WC139 + purchase + -10 + percent + + + + + + 140 + + 15% WC140 - Commission of service fees + Commission of service fees + WC140 + purchase + -15 + percent + + + + + + 150 + + 0.5% WC158 - Credit card companies + Credit card companies + WC158 + purchase + -0.5 + percent + + + + + + 160 + + 1% WC640 - Supplier of goods + Supplier of goods + WC640 + purchase + -1 + percent + + + + + + 160 + + 2% WC157 - Supplier of services + Supplier of services + WC157 + purchase + -2 + percent + + + + + + 170 + + 1% WC158 - Supplier of goods by top w/holding agents + Supplier of goods by top w/holding agents + WC158 + purchase + -1 + percent + + + + + + 170 + + 2% WC160 - Supplier of goods by top w/holding agents + Supplier of goods by top w/holding agents + WC160 + purchase + -2 + percent + + + + + + 180 + + 5% WC515 - Commission, rebates, discounts + Commission, rebates, discounts + WC515 + purchase + -5 + percent + + + + + + 180 + + 10% WC516 - Commission, rebates, discounts + Commission, rebates, discounts + WC516 + purchase + -10 + percent + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/__init__.py b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/__init__.py new file mode 100644 index 0000000..e32724d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/__init__.py @@ -0,0 +1,7 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import res_partner +from . import account_move +from . import account_payment +from . import account_tax +from . import account_tax_template diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_move.py b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_move.py new file mode 100644 index 0000000..4a435f7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_move.py @@ -0,0 +1,19 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import _, models +from odoo.exceptions import UserError + + +class AccountMove(models.Model): + _inherit = "account.move" + + def action_open_l10n_ph_2307_wizard(self): + vendor_bills = self.filtered_domain([('move_type', '=', 'in_invoice')]) + if vendor_bills: + wizard_action = self.env["ir.actions.act_window"]._for_xml_id("l10n_ph.view_l10n_ph_2307_wizard_act_window") + wizard_action.update({ + 'context': {'default_moves_to_export': vendor_bills.ids} + }) + return wizard_action + else: + raise UserError(_('Only Vendor Bills are available.')) diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_payment.py b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_payment.py new file mode 100644 index 0000000..7af7c26 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_payment.py @@ -0,0 +1,19 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import _, models +from odoo.exceptions import UserError + + +class AccountPayment(models.Model): + _inherit = "account.payment" + + def action_open_l10n_ph_2307_wizard(self): + self.ensure_one() + if self.payment_type == 'outbound': + wizard_action = self.env["ir.actions.act_window"]._for_xml_id("l10n_ph.view_l10n_ph_2307_wizard_act_window") + wizard_action.update({ + 'context': {'default_moves_to_export': self.reconciled_bill_ids.ids} + }) + return wizard_action + else: + raise UserError(_('Only Outbound Payment is available.')) diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_tax.py b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_tax.py new file mode 100644 index 0000000..cfe382a --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_tax.py @@ -0,0 +1,9 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class AccountTax(models.Model): + _inherit = "account.tax" + + l10n_ph_atc = fields.Char("Philippines ATC") diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_tax_template.py b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_tax_template.py new file mode 100644 index 0000000..f1334ae --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/account_tax_template.py @@ -0,0 +1,14 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models + + +class AccountTaxTemplate(models.Model): + _inherit = "account.tax.template" + + l10n_ph_atc = fields.Char("Philippines ATC") + + def _get_tax_vals(self, company, tax_template_to_tax): + val = super()._get_tax_vals(company, tax_template_to_tax) + val.update({"l10n_ph_atc": self.l10n_ph_atc}) + return val diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/res_partner.py b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/res_partner.py new file mode 100644 index 0000000..0e1813c --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/models/res_partner.py @@ -0,0 +1,25 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, api, models + + +class ResPartner(models.Model): + _inherit = "res.partner" + + branch_code = fields.Char("Branch Code", default='000', compute='_compute_branch_code', store=True) + first_name = fields.Char("First Name") + middle_name = fields.Char("Middle Name") + last_name = fields.Char("Last Name") + + @api.model + def _commercial_fields(self): + return super()._commercial_fields() + ['branch_code'] + + @api.depends('vat', 'country_id') + def _compute_branch_code(self): + for partner in self: + branch_code = '000' + if partner.country_id.code == 'PH' and partner.vat: + match = partner.__check_vat_ph_re.match(partner.vat) + branch_code = match and match.group(1) and match.group(1)[1:] or branch_code + partner.branch_code = branch_code diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/security/ir.model.access.csv b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/security/ir.model.access.csv new file mode 100644 index 0000000..3f1e3ca --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +generate_2307_wizard,access_generate_2307_wizard,model_l10n_ph_2307_wizard,account.group_account_invoice,1,1,1,1 diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/tests/__init__.py b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/tests/__init__.py new file mode 100644 index 0000000..8cce589 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/tests/__init__.py @@ -0,0 +1,3 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import test_bir_2307 diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/tests/test_bir_2307.py b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/tests/test_bir_2307.py new file mode 100644 index 0000000..3a40ee6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/tests/test_bir_2307.py @@ -0,0 +1,135 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo.addons.account.tests.common import AccountTestInvoicingCommon +from odoo.tests import tagged + +import xlrd +import io +import base64 + + +@tagged("post_install_l10n", "post_install", "-at_install") +class TestBir2037(AccountTestInvoicingCommon): + + @classmethod + def setUpClass(cls, chart_template_ref="l10n_ph.l10n_ph_chart_template"): + super().setUpClass(chart_template_ref=chart_template_ref) + + cls.partner = cls.env['res.partner'].create({ + 'vat': '123-456-789-001', + 'branch_code': '001', + 'name': 'Jose Mangahas Cuyegkeng', + 'first_name': 'Jose', + 'middle_name': 'Mangahas', + 'last_name': 'Cuyegkeng', + 'street': "250 Amorsolo Street", + 'city': "Manila", + 'country_id': cls.env.ref('base.ph').id, + 'zip': "+900–1-096", + }) + + cls.partner_a.write({ + 'vat': '123-456-789-001', + 'branch_code': '001', + 'name': 'JMC Company', + 'street': "250 Amorsolo Street", + 'city': "Manila", + 'country_id': cls.env.ref('base.ph').id, + 'zip': "+900–1-096", + 'is_company': True, + }) + + def test_01_no_atc(self): + """ Ensure that generating the file on a document where no taxes has an ATC set will work, although gives an empty file. """ + tax = self._create_tax('10% VAT', 10) + bill = self._create_invoice( + move_type='in_invoice', + invoice_amount=100, + taxes=tax, + ) + bill.action_post() + wizard = self.env['l10n_ph_2307.wizard'].with_context(default_moves_to_export=bill.ids).create({}) + wizard.action_generate() + report_file = io.BytesIO(base64.b64decode(wizard.generate_xls_file)) + xl = xlrd.open_workbook(file_contents=report_file.read()) + sheet = xl.sheet_by_index(0) + + result = [] + for row in range(1, sheet.nrows): + result.append(sheet.row_values(row)) + self.assertEqual(result, []) + + def test_02_simple_atc(self): + """ Ensure that generating the file on a document with a single ATC tax and check the results. """ + tax = self._create_tax('10% ATC', -10, l10n_ph_atc='WI010') + bill = self._create_invoice( + move_type='in_invoice', + invoice_amount=1000, + taxes=tax, + partner_id=self.partner.id, + date_invoice='2025-01-01', + ) + bill.action_post() + wizard = self.env['l10n_ph_2307.wizard'].with_context(default_moves_to_export=bill.ids).create({}) + wizard.action_generate() + report_file = io.BytesIO(base64.b64decode(wizard.generate_xls_file)) + xl = xlrd.open_workbook(file_contents=report_file.read()) + sheet = xl.sheet_by_index(0) + + result = [] + for row in range(1, sheet.nrows): + result.append(sheet.row_values(row)) + self.assertEqual(result, [ + ['01/01/2025', '123456789', '001', '', 'Cuyegkeng', 'Jose', 'Mangahas', '250 Amorsolo Street, Manila, Philippines', '+900–1-096', '', 'WI010', 1000.0, -10.0, -100.0] + ]) + + def test_03_atc_affected_by_vat(self): + """ Ensure that generating the file on a document where the ATC tax is affected works as expected. """ + vat = self._create_tax('15% VAT', 15, include_base_amount=True) + atc = self._create_tax('10% ATC', -10, l10n_ph_atc='WI010', is_base_affected=True) + atc.description = '10% ATC' + bill = self._create_invoice( + move_type='in_invoice', + invoice_amount=1000, + taxes=(vat | atc), + partner_id=self.partner.id, + date_invoice='2025-01-01', + ) + bill.action_post() + wizard = self.env['l10n_ph_2307.wizard'].with_context(default_moves_to_export=bill.ids).create({}) + wizard.action_generate() + report_file = io.BytesIO(base64.b64decode(wizard.generate_xls_file)) + xl = xlrd.open_workbook(file_contents=report_file.read()) + sheet = xl.sheet_by_index(0) + + result = [] + for row in range(1, sheet.nrows): + result.append(sheet.row_values(row)) + self.assertEqual(result, [ + ['01/01/2025', '123456789', '001', '', 'Cuyegkeng', 'Jose', 'Mangahas', '250 Amorsolo Street, Manila, Philippines', '+900–1-096', '10% ATC', 'WI010', 1150.0, -10.0, -115.0] + ]) + + def test_04_multi_currency(self): + """ Ensure that generating the file on a document of another currency than the company's gives the correct result. """ + tax = self._create_tax('10% ATC', -10, l10n_ph_atc='WI010') + bill = self._create_invoice( + move_type='in_invoice', + invoice_amount=2000, + taxes=tax, + partner_id=self.partner_a.id, + date_invoice='2025-01-01', + currency_id=self.currency_data['currency'].id, + ) + bill.action_post() + wizard = self.env['l10n_ph_2307.wizard'].with_context(default_moves_to_export=bill.ids).create({}) + wizard.action_generate() + report_file = io.BytesIO(base64.b64decode(wizard.generate_xls_file)) + xl = xlrd.open_workbook(file_contents=report_file.read()) + sheet = xl.sheet_by_index(0) + + result = [] + for row in range(1, sheet.nrows): + result.append(sheet.row_values(row)) + # We expect the values in company currency in the file. + self.assertEqual(result, [ + ['01/01/2025', '123456789', '001', 'JMC Company', '', '', '', '250 Amorsolo Street, Manila, Philippines', '+900–1-096', '', 'WI010', 1000.0, -10.0, -100.0] + ]) diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/account_move_views.xml b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/account_move_views.xml new file mode 100644 index 0000000..94a4ad5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/account_move_views.xml @@ -0,0 +1,12 @@ + + + + Download BIR 2307 XLS + + + + list,form + code + action = records.action_open_l10n_ph_2307_wizard() + + diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/account_payment_views.xml b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/account_payment_views.xml new file mode 100644 index 0000000..b050ea7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/account_payment_views.xml @@ -0,0 +1,12 @@ + + + + Download BIR 2307 XLS + + + + form + code + action = record.action_open_l10n_ph_2307_wizard() + + diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/account_tax_views.xml b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/account_tax_views.xml new file mode 100644 index 0000000..7d35d3f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/account_tax_views.xml @@ -0,0 +1,19 @@ + + + + account.tax.view.form.inherit.l10n_ph + account.tax + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/res_partner_views.xml b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/res_partner_views.xml new file mode 100644 index 0000000..9979409 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/views/res_partner_views.xml @@ -0,0 +1,16 @@ + + + + res.partner.form.inherit.l10n_ph_bir + res.partner + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/wizard/__init__.py b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/wizard/__init__.py new file mode 100644 index 0000000..ac9c128 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/wizard/__init__.py @@ -0,0 +1,3 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import generate_2307_wizard diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/wizard/generate_2307_wizard.py b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/wizard/generate_2307_wizard.py new file mode 100644 index 0000000..bed1ee4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/wizard/generate_2307_wizard.py @@ -0,0 +1,104 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import base64 +import io +import re +import xlwt + +from odoo import fields, models +from odoo.tools.misc import format_date + + +COLUMN_HEADER_MAP = { + "Reporting_Month": "invoice_date", + "Vendor_TIN": "vat", + "branchCode": "branch_code", + "companyName": "company_name", + "surName": "last_name", + "firstName": "first_name", + "middleName": "middle_name", + "address": "address", + "zip_code": "zip", + "nature": "tax_description", + "ATC": "atc", + "income_payment": "price_subtotal", + "ewt_rate": "amount", + "tax_amount": "tax_amount", +} + +class Generate2307Wizard(models.TransientModel): + _name = "l10n_ph_2307.wizard" + _description = "Exports 2307 data to a XLS file." + + moves_to_export = fields.Many2many("account.move", string="Joural To Include") + generate_xls_file = fields.Binary( + "Generated file", + help="Technical field used to temporarily hold the generated XLS file before its downloaded." + ) + + def _write_single_row(self, worksheet, worksheet_row, values): + for index, field in enumerate(COLUMN_HEADER_MAP.values()): + worksheet.write(worksheet_row, index, label=values[field]) + + def _write_rows(self, worksheet, moves): + worksheet_row = 0 + for move in moves: + worksheet_row += 1 + partner = move.commercial_partner_id + partner_address_info = [partner.street, partner.street2, partner.city, partner.state_id.name, partner.country_id.name] + first_name = middle_name = last_name = '' + if partner.company_type == 'person': + first_name = partner.first_name or '' + middle_name = partner.middle_name or '' + last_name = partner.last_name or '' + values = { + 'invoice_date': format_date(self.env, move.invoice_date, date_format="MM/dd/yyyy"), + 'vat': re.sub(r'\-', '', partner.vat)[:9] if partner.vat else '', + 'branch_code': partner.branch_code or '000', + 'company_name': partner.name if partner.company_type == 'company' else '', + 'first_name': first_name, + 'middle_name': middle_name, + 'last_name': last_name, + 'address': ', '.join([val for val in partner_address_info if val]), + 'zip': partner.zip or '', + } + aggregated_taxes = move._prepare_invoice_aggregated_taxes() + for invoice_line, tax_details_for_line in aggregated_taxes['tax_details_per_record'].items(): + for tax_detail in tax_details_for_line['tax_details'].values(): + tax = tax_detail['tax'] + if not tax.l10n_ph_atc: + continue + values['tax_description'] = tax.description or '' + values['atc'] = tax.l10n_ph_atc + values['price_subtotal'] = tax_detail['base_amount'] + values['amount'] = tax.amount + values['tax_amount'] = tax_detail['tax_amount'] + self._write_single_row(worksheet, worksheet_row, values) + worksheet_row += 1 + + def action_generate(self): + """ Generate a xls format file for importing to + https://bir-excel-uploader.com/excel-file-to-bir-dat-format/#bir-form-2307-settings. + This website will then generate a BIR 2307 format excel file for uploading to the + PH government. + """ + self.ensure_one() + + file_data = io.BytesIO() + workbook = xlwt.Workbook(encoding='utf-8') + worksheet = workbook.add_sheet('Form2307') + + for index, col_header in enumerate(COLUMN_HEADER_MAP.keys()): + worksheet.write(0, index, label=col_header) + + self._write_rows(worksheet, self.moves_to_export) + + workbook.save(file_data) + file_data.seek(0) + self.generate_xls_file = base64.b64encode(file_data.read()) + + return { + "type": "ir.actions.act_url", + "target": "self", + "url": "/web/content?model=l10n_ph_2307.wizard&download=true&field=generate_xls_file&filename=Form_2307.xls&id={}".format(self.id), + } diff --git a/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/wizard/generate_2307_wizard_views.xml b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/wizard/generate_2307_wizard_views.xml new file mode 100644 index 0000000..bf81e50 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/l10n_ph/wizard/generate_2307_wizard_views.xml @@ -0,0 +1,36 @@ + + + + l10n_ph_2307.wizard.form + l10n_ph_2307.wizard + +
    + This will export a XLS file for BIR 2307. + + + + + + + + + + + + + + +
    +
    +
    +
    +
    + + BIR 2307 Report + l10n_ph_2307.wizard + form + new + +
    diff --git a/odoo-bringout-oca-ocb-l10n_ph/pyproject.toml b/odoo-bringout-oca-ocb-l10n_ph/pyproject.toml new file mode 100644 index 0000000..fcfce53 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_ph/pyproject.toml @@ -0,0 +1,46 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_ph" +version = "16.0.0" +description = "Philippines - Accounting - + This is the module to manage the accounting chart for The Philippines. + " +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account>=16.0.0", + "odoo-bringout-oca-ocb-base_vat>=16.0.0", + "odoo-bringout-oca-ocb-l10n_multilang>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_ph"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_sg/README.md b/odoo-bringout-oca-ocb-l10n_sg/README.md new file mode 100644 index 0000000..14fb45e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/README.md @@ -0,0 +1,56 @@ +# Singapore - Accounting + + +Singapore accounting chart and localization. +======================================================= + +This module add, for accounting: + - The Chart of Accounts of Singapore + - Field UEN (Unique Entity Number) on company and partner + - Field PermitNo and PermitNoDate on invoice + + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_sg +``` + +## Dependencies + +This addon depends on: +- base +- account + +## Manifest Information + +- **Name**: Singapore - Accounting +- **Version**: 2.2 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_sg`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_sg/doc/ARCHITECTURE.md new file mode 100644 index 0000000..722ff71 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_sg Module - l10n_sg + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_sg/doc/CONFIGURATION.md new file mode 100644 index 0000000..d0e88aa --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_sg. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_sg/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_sg/doc/DEPENDENCIES.md new file mode 100644 index 0000000..c93531e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/DEPENDENCIES.md @@ -0,0 +1,6 @@ +# Dependencies + +This addon depends on: + +- base +- [account](../../odoo-bringout-oca-ocb-account) diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_sg/doc/FAQ.md new file mode 100644 index 0000000..c30b33f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_sg or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_sg/doc/INSTALL.md new file mode 100644 index 0000000..b46fdc2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_sg" +# or +uv pip install odoo-bringout-oca-ocb-l10n_sg" +``` diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_sg/doc/MODELS.md new file mode 100644 index 0000000..707ebe6 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/MODELS.md @@ -0,0 +1,17 @@ +# Models + +Detected core models and extensions in l10n_sg. + +```mermaid +classDiagram + class res_company + class res_partner + class account_chart_template + class account_move + class res_company + class res_partner +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_sg/doc/OVERVIEW.md new file mode 100644 index 0000000..97981f9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_sg. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_sg +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_sg/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_sg/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_sg/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_sg/doc/USAGE.md new file mode 100644 index 0000000..2981708 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_sg +``` diff --git a/odoo-bringout-oca-ocb-l10n_sg/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_sg/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/__init__.py b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/__init__.py new file mode 100644 index 0000000..db21f74 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/__init__.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +# Copyright (C) 2014 Tech Receptives (). +from . import models + +def _preserve_tag_on_taxes(cr, registry): + from odoo.addons.account.models.chart_template import preserve_existing_tags_on_taxes + preserve_existing_tags_on_taxes(cr, registry, 'l10n_sg') diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/__manifest__.py b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/__manifest__.py new file mode 100644 index 0000000..3ed5107 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/__manifest__.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +# Copyright (C) 2014 Tech Receptives () + +{ + 'name': 'Singapore - Accounting', + 'author': 'Tech Receptives', + 'version': '2.2', + 'category': 'Accounting/Localizations/Account Charts', + 'description': """ +Singapore accounting chart and localization. +======================================================= + +This module add, for accounting: + - The Chart of Accounts of Singapore + - Field UEN (Unique Entity Number) on company and partner + - Field PermitNo and PermitNoDate on invoice + + """, + 'depends': ['base', 'account'], + 'data': [ + 'data/l10n_sg_chart_data.xml', + 'data/account_tax_group_data.xml', + 'data/account_tax_report_data.xml', + 'data/account_tax_data.xml', + 'data/account_tax_template_data_2024.xml', + 'data/account_chart_template_data.xml', + 'views/account_invoice_view.xml', + 'views/res_company_view.xml', + 'views/res_partner_view.xml', + ], + 'demo': [ + 'demo/demo_company.xml', + ], + 'post_init_hook': '_preserve_tag_on_taxes', + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_chart_template_data.xml new file mode 100644 index 0000000..9fff6f4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_chart_template_data.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_data.xml b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_data.xml new file mode 100644 index 0000000..a63e5a8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_data.xml @@ -0,0 +1,1135 @@ + + + + + + Sales Tax 8% SR + 8% SR + + 8 + percent + sale + + + + + + + + Sales Tax 0% ES33 + 0% ES33 + + 0 + percent + sale + + + + + + + + Sales Tax 7% DS + 7% DS + + 7 + percent + sale + + + + + + + + Sales Tax 8% DS + 8% DS + + 8 + percent + sale + + + + + + + + Sales Tax 0% ESN33 + 0% ESN33 + + 0 + percent + sale + + + + + + + + Sales Tax 0% OS + 0% OS + + 0 + percent + sale + + + + + + + + Sales Tax 0% ZR + 0% ZR + + 0 + percent + sale + + + + + + + + Sales Tax 7% SR + 7% SR + + 7 + percent + sale + + + + + + + + Sales Tax SRCA-S + SRCA-S + + 0 + percent + sale + + + + + + + + Sales Tax 7% SRCA-C + 7% SRCA-C + + 7 + percent + sale + + + + + + + + Sales Tax 8% SRCA-C + 8% SRCA-C + + 8 + percent + sale + + + + + + + + + + Purchase Tax 8% TX8 + 8% TX8 + + 8 + percent + purchase + + + + + + + + Purchase Tax 7% TX-N33 + 7% TX-N33 + + 7 + percent + purchase + + + + + + + + Purchase Tax 8% TX-N33 + 8% TX-N33 + + 8 + percent + purchase + + + + + + + + Purchase Tax 7% TX-E33 + 7% TX-E33 + + 7 + percent + purchase + + + + + + + + Purchase Tax 8% TX-E33 + 8% TX-E33 + + 8 + percent + purchase + + + + + + + + Purchase Tax 7% BL + 7% BL + + 7 + percent + purchase + + + + + + + + Purchase Tax 8% BL + 8% BL + + 8 + percent + purchase + + + + + + + + Purchase Tax 7% IM + 7% IM + + 7 + percent + purchase + + + + + + + + Purchase Tax 8% IM + 8% IM + + 8 + percent + purchase + + + + + + + + Purchase Tax 7% TX-RE + 7% TX-RE + + 7 + percent + purchase + + + + + + + + Purchase Tax 8% TX-RE + 8% TX-RE + + 8 + percent + purchase + + + + + + + + Purchase Tax 7% IGDS + 7% IGDS + + 7 + percent + purchase + + + + + + + + Purchase Tax 8% IGDS + 8% IGDS + + 8 + percent + purchase + + + + + + + + Purchase Tax 0% NR + 0% NR + + 0 + percent + purchase + + + + + + + + Purchase Tax 0% ZP + 0% ZP + + 0 + percent + purchase + + + + + + + + Purchase Tax 0% OP + 0% OP + + 0 + percent + purchase + + + + + + + + Purchase Tax 0% EP + 0% EP + + 0 + percent + purchase + + + + + + + + Purchase Tax MES + 0% MES + + 0 + percent + purchase + + + + + + + + Purchase Tax 7% TX7 + 7% TX7 + + 7 + percent + purchase + + + + + + + + Purchase Tax 7% TXCA + 7% TXCA + + 7 + percent + purchase + + + + + + + + Purchase Tax 8% TXCA + 8% TXCA + + 8 + percent + purchase + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_group_data.xml b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_group_data.xml new file mode 100644 index 0000000..f7de685 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_group_data.xml @@ -0,0 +1,18 @@ + + + + + TAX 0% + + + + TAX 8% + + + + TAX 7% + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_report_data.xml b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_report_data.xml new file mode 100644 index 0000000..774242e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_report_data.xml @@ -0,0 +1,145 @@ + + + + Singapore Tax Report + + + + country + + + Balance + balance + + + + + Supplies + BOX1.balance + BOX2.balance + BOX3.balance + + + Box 1 - Total value of standard-rated supplies + BOX1 + + + balance + tax_tags + Box 1 + + + + + Box 2 - Total value of zero-rated supplies + BOX2 + + + balance + tax_tags + Box 2 + + + + + Box 3 - Total value of exempt supplies + BOX3 + + + balance + tax_tags + Box 3 + + + + + Box 4 - Total value of (1) + (2) + (3) + BOX1.balance + BOX2.balance + BOX3.balance + + + + + Purchases + BOX_5.balance + + + Box 5 - Total value of taxable purchases + BOX_5 + + + balance + tax_tags + Box 5 + + + + + + + Taxes + BOX6.balance + BOX7.balance + + + Box 6 - Output tax due + BOX6 + + + balance + tax_tags + Box 6 + + + + + Box 7 - Less : Input tax and refunds claimed + BOX7 + + + balance + tax_tags + Box 7 + + + + + Box 8 - Equals : Net GST to be paid to IRAS + BOX6.balance - BOX7.balance + + + + + Applicable to Taxable Persons under Major Exported Scheme / Approved 3rd Party Logistics Company / Other Approved Schemes Only + BOX_9.balance + + + Box 9 - Total value of goods imported under this scheme + BOX_9 + + + balance + tax_tags + Box 9 + + + + + + + Revenue + BOX_13.balance + + + Box 13 - Revenue for the accounting period + BOX_13 + + + balance + aggregation + OPINC.balance + cross_report + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_template_data_2024.xml b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_template_data_2024.xml new file mode 100644 index 0000000..6806e02 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/account_tax_template_data_2024.xml @@ -0,0 +1,412 @@ + + + + + TAX 9% + + + + + Sales Tax 9% DS + 9% DS + + 9 + percent + sale + + + + + + + + Sales Tax 9% SR + 9% SR + + 9 + percent + sale + + + + + + + + Sales Tax 9% SRCA-C + 9% SRCA-C + + 9 + percent + sale + + + + + + + + Purchase Tax 9% TX-N33 + 9% TX-N33 + + 9 + percent + purchase + + + + + + + + Purchase Tax 9% TX-E33 + 9% TX-E33 + + 9 + percent + purchase + + + + + + + + Purchase Tax 9% BL + 9% BL + + 9 + percent + purchase + + + + + + + + Purchase Tax 9% IM + 9% IM + + 9 + percent + purchase + + + + + + + + Purchase Tax 9% TX-RE + 9% TX-RE + + 9 + percent + purchase + + + + + + + + Purchase Tax 9% IGDS + 9% IGDS + + 9 + percent + purchase + + + + + + + + Purchase Tax 9% TX9 + 9% TX9 + + 9 + percent + purchase + + + + + + + + Purchase Tax 9% TXCA + 9% TXCA + + 9 + percent + purchase + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/l10n_sg_chart_data.xml b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/l10n_sg_chart_data.xml new file mode 100644 index 0000000..e7413bd --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/data/l10n_sg_chart_data.xml @@ -0,0 +1,1188 @@ + + + + + + Singapore Chart of Accounts - Standard + 10140 + 10141 + 101100 + 6 + + + + + + Allowance for Bad Debts + 101110 + asset_current + + + + + + Development Costs + 104100 + asset_non_current + + + + + + Employee Cash Advances + 101120 + asset_current + + + + + + Inventory + 101130 + asset_current + + + + + + Investments - Other + 101140 + asset_current + + + + + + Loans to Officers + 101150 + asset_current + + + + + + Loans to Others + 101160 + asset_current + + + + + + Loans to Shareholders + 101170 + asset_current + + + + + + Prepaid Expenses + 101180 + asset_current + + + + + + Retainage + 101190 + asset_current + + + + + + Undeposited Funds + 101200 + asset_current + + + + + + Other Current Assets + 101210 + asset_current + + + + + + Accumulated Amortisation + 103100 + expense_depreciation + + + + + + Accumulated Depreciation + 103110 + expense_depreciation + + + + + + Accumulated Depletion + 103120 + expense_depreciation + + + + + + Buildings + 102100 + asset_fixed + + + + + + Depletable Assets + 102110 + asset_fixed + + + + + + Furniture and Fixtures + 102120 + asset_fixed + + + + + + Leasehold Improvements + 102130 + asset_fixed + + + + + + Machinery and Equipment + 102140 + asset_fixed + + + + + + Vehicles + 102150 + asset_fixed + + + + + + Other Assets + 102160 + asset_fixed + + + + + + Intangible Assets + 104110 + asset_non_current + + + + + + Accumulated Amortization of Non-current Assets + 103130 + expense_depreciation + + + + + + Available-for-sale Financial Assets + 101220 + asset_current + + + + + + Deferred Tax + 101230 + asset_current + + + + + + Goodwill + 104120 + asset_non_current + + + + + + Investments + 104130 + asset_non_current + + + + + + Lease Buyout + 104140 + asset_non_current + + + + + + Licences + 104150 + asset_non_current + + + + + + Organisational Costs + 104160 + asset_non_current + + + + + + Other Intangible Assets + 104170 + asset_non_current + + + + + + Other Non-current Assets + 104180 + asset_non_current + + + + + + Prepayments and Accrued Income + 101240 + asset_current + + + + + + Security Deposits + 101250 + asset_current + + + + + + Trade Receivable Account + 100010 + asset_receivable + + + + + + Other Receivable Account + 100020 + asset_receivable + + + + + + Trade Receivable Account (PoS) + 100030 + asset_receivable + + + + + + Purchase Tax Account TX-N33 + 101260 + asset_current + + + + + + Purchase Tax Account TX-E33 + 101270 + asset_current + + + + + + Purchase Tax Account BL + 101280 + asset_current + + + + + + Purchase Tax Account IM + 101290 + asset_current + + + + + + Purchase Tax Account TX-RE + 101300 + asset_current + + + + + + Purchase Tax Account IGDS + 101310 + asset_current + + + + + + Purchase Tax Account NR + 101320 + asset_current + + + + + + Purchase Tax Account ZP + 101330 + asset_current + + + + + + Purchase Tax Account OP + 101340 + asset_current + + + + + + Purchase Tax Account EP + 101350 + asset_current + + + + + + Purchase Tax Account MES + 101360 + asset_current + + + + + + Purchase Tax Account TX9 + 101370 + asset_current + + + + + + Purchase Tax Account TXCA + 101380 + asset_current + + + + + + Current Portion of Employee Benefits Obligations + 201000 + liability_current + + + + + + Current Portion of Obligations under Finance Leases + 201010 + liability_current + + + + + + Current Tax Liability + 201020 + liability_current + + + + + + Insurance Payable + 201030 + liability_current + + + + + + Interest Payables + 201040 + liability_current + + + + + + Line of Credit + 201050 + liability_current + + + + + + Loan Payable + 201060 + liability_current + + + + + + Payroll Clearing + 201070 + liability_current + + + + + + Payroll Liabilities + 201080 + liability_current + + + + + + Prepaid Expenses Payable + 201090 + liability_current + + + + + + Provision for Warranty Obligations + 201100 + liability_current + + + + + + Rents in Trust - Liability + 201110 + liability_current + + + + + + GST Payable + 201120 + liability_current + + + + + + Short Term Borrowings + 201130 + liability_current + + + + + + Client Trust Accounts - Liabilities + 201140 + liability_current + + + + + + Accruals and Deferred Income + 201150 + liability_current + + + + + + Bank Loans + 202000 + liability_non_current + + + + + + Obligations under Finance Leases + 201160 + liability_current + + + + + + Long Term Borrowings + 202010 + liability_non_current + + + + + + Long Term Employee Benefit Obligations + 202020 + liability_non_current + + + + + + Notes Payable + 202030 + liability_non_current + + + + + + Shareholder Notes Payable + 202040 + liability_non_current + + + + + + Other Non-current Liabilities + 202050 + liability_non_current + + + + + + Trade Payable Account + 200010 + liability_payable + + + + + + Other Payable Account + 200020 + liability_payable + + + + + + Partner's Equity + 203000 + equity + + + + + + Accumulated Adjustment + 203010 + equity + + + + + + Ordinary Shares + 203020 + equity + + + + + + Opening Balance Equity + 203030 + equity + + + + + + Owner's Equity + 203040 + equity + + + + + + Paid-in Capital or Surplus + 203050 + equity + + + + + + Preferred Shares + 203060 + equity + + + + + + Retained Earnings + 203070 + equity + + + + + + Share Capital + 203080 + equity + + + + + + Treasury Shares + 203090 + equity + + + + + + Sales Tax Account ES33 + 201170 + liability_current + + + + + + Sales Tax Account DS + 201180 + liability_current + + + + + + Sales Tax Account ESN33 + 201190 + liability_current + + + + + + Sales Tax Account OS + 201200 + liability_current + + + + + + Sales Tax Account ZR + 201210 + liability_current + + + + + + Sales Tax Account SR + 201220 + liability_current + + + + + + Sales Tax Account SRCA-S + 201230 + liability_current + + + + + + Sales Tax Account SRCA-C + 201240 + liability_current + + + + + + Discounts/Refunds -Given + 300001 + income + + + + + + Non-profit Revenue + 300002 + income + + + + + + Other Primary Revenue + 300003 + income + + + + + + Sales of Product Revenue + 300004 + income + + + + + + Service/Fee Revenue + 300005 + income + + + + + + Unapplied Cash Payment Income + 300006 + income + + + + + + Dividend Revenue + 301001 + income_other + + + + + + Gain/Loss on Sale of Fixed Assets or Investments + 301002 + income_other + + + + + + Interest Earned + 301003 + income_other + + + + + + Other Investment Revenue + 301004 + income_other + + + + + + Other Miscellaneous Revenue + 301005 + income_other + + + + + + Tax-exempt Interest + 301006 + income_other + + + + + + Cost of Labour - COS + 401001 + expense_direct_cost + + + + + + Equipment Rental - COS + 401002 + expense_direct_cost + + + + + + Freight and Delivery - COS + 401003 + expense_direct_cost + + + + + + Other Costs of Sales - COS + 401004 + expense_direct_cost + + + + + + Supplies and Materials - COS + 401005 + expense_direct_cost + + + + + + Administrative Expenses + 501001 + expense + + + + + + Advertising/Promotional + 501002 + expense + + + + + + Auto + 501003 + expense + + + + + + Bad Debts + 501004 + expense + + + + + + Bank Charges + 501005 + expense + + + + + + Charitable Contributions + 501006 + expense + + + + + + Cost of Labour + 501007 + expense + + + + + + Distribution Costs + 501008 + expense + + + + + + Dues and Subscriptions + 501009 + expense + + + + + + Entertainment + 501010 + expense + + + + + + Meals and Entertainment + 501011 + expense + + + + + + Equipment Rental + 501012 + expense + + + + + + Finance Costs + 501013 + expense + + + + + + Insurance + 501014 + expense + + + + + + Interest Paid + 501015 + expense + + + + + + Legal and Professional Fees + 501016 + expense + + + + + + Other Miscellaneous Service Cost + 501017 + expense + + + + + + Payroll Expenses + 501018 + expense + + + + + + Promotional Meals + 501019 + expense + + + + + + Rent or Lease of Buildings + 501020 + expense + + + + + + Repair and Maintenance + 501021 + expense + + + + + + Shipping, Freight, and Delivery + 501022 + expense + + + + + + Supplies + 501023 + expense + + + + + + Taxes Paid + 501024 + expense + + + + + + Travel + 501025 + expense + + + + + + Travel Meals + 501026 + expense + + + + + + Utilities + 501027 + expense + + + + + + Unapplied Cash Bill Payment Expense + 501028 + expense + + + + + + Amortisation + 502001 + expense + + + + + + Depreciation + 502002 + expense + + + + + + Exchange Gain or Loss + 502003 + expense + + + + + + Other Expense + 502004 + expense + + + + + + Penalties and Settlements + 502005 + expense + + + + + + Discounts Taken + 502006 + expense + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/demo/demo_company.xml new file mode 100644 index 0000000..bcabbd8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/demo/demo_company.xml @@ -0,0 +1,34 @@ + + + + SG Company + 197401143C + 201131415A + Tyersall Avenue + Central Singapore + + 248048 + +65 9123 4567 + info@company.sg.example.com + www.sg.example.com + + + + SG Company + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/migrations/2.1/post-migrate_update_tax.py b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/migrations/2.1/post-migrate_update_tax.py new file mode 100644 index 0000000..b8e0213 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/migrations/2.1/post-migrate_update_tax.py @@ -0,0 +1,6 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo.addons.account.models.chart_template import update_taxes_from_templates + + +def migrate(cr, version): + update_taxes_from_templates(cr, 'l10n_sg.sg_chart_template') diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/migrations/2.2/end-migrate_update_taxes.py b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/migrations/2.2/end-migrate_update_taxes.py new file mode 100644 index 0000000..b8e0213 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/migrations/2.2/end-migrate_update_taxes.py @@ -0,0 +1,6 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo.addons.account.models.chart_template import update_taxes_from_templates + + +def migrate(cr, version): + update_taxes_from_templates(cr, 'l10n_sg.sg_chart_template') diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/migrations/9.0.2.0/pre-set_tags_and_taxes_updatable.py b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/migrations/9.0.2.0/pre-set_tags_and_taxes_updatable.py new file mode 100644 index 0000000..8d963db --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/migrations/9.0.2.0/pre-set_tags_and_taxes_updatable.py @@ -0,0 +1,6 @@ +from openerp.modules.registry import RegistryManager + +def migrate(cr, version): + registry = RegistryManager.get(cr.dbname) + from openerp.addons.account.models.chart_template import migrate_set_tags_and_taxes_updatable + migrate_set_tags_and_taxes_updatable(cr, registry, 'l10n_sg') diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/__init__.py b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/__init__.py new file mode 100644 index 0000000..14eb4ef --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/__init__.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +# Copyright (C) 2014 Tech Receptives (). + +from . import account_move +from . import chart_template +from . import res_company +from . import res_partner diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/account_move.py b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/account_move.py new file mode 100644 index 0000000..9168e75 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/account_move.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- + +from odoo import fields, models + + +class AccountMove(models.Model): + _inherit = 'account.move' + + l10n_sg_permit_number = fields.Char(string="Permit No.") + + l10n_sg_permit_number_date = fields.Date(string="Date of permit number") diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/chart_template.py b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/chart_template.py new file mode 100644 index 0000000..a4b8062 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/chart_template.py @@ -0,0 +1,15 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo import models + + +class AccountChartTemplate(models.Model): + _inherit = 'account.chart.template' + + def _load(self, company): + res = super()._load(company) + if company.chart_template_id == self.env.ref('l10n_sg.sg_chart_template'): + company.write({ + 'account_sale_tax_id': self.env.ref(f'l10n_sg.{company.id}_sg_sale_tax_sr_9').id, + 'account_purchase_tax_id': self.env.ref(f'l10n_sg.{company.id}_sg_purchase_tax_tx8_9').id, + }) + return res diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/res_company.py b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/res_company.py new file mode 100644 index 0000000..e2759bd --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/res_company.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- + +from odoo import fields, models + +class ResCompany(models.Model): + _name = 'res.company' + _description = 'Companies' + _inherit = 'res.company' + + l10n_sg_unique_entity_number = fields.Char(string='UEN', related="partner_id.l10n_sg_unique_entity_number", readonly=False) + + def _get_view(self, view_id=None, view_type='form', **options): + arch, view = super()._get_view(view_id, view_type, **options) + company_vat_label = self.env.company.country_id.vat_label + if company_vat_label: + for node in arch.iterfind(".//field[@name='vat']"): + node.set("string", company_vat_label) + return arch, view diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/res_partner.py b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/res_partner.py new file mode 100644 index 0000000..1bf9802 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/models/res_partner.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- + +from odoo import fields, models + +class ResPartner(models.Model): + _name = 'res.partner' + _inherit = 'res.partner' + + l10n_sg_unique_entity_number = fields.Char(string='UEN') diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/static/description/icon.png b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..446f1f2b0ff10a6a7e4ca329eba867e9c2237fa5 GIT binary patch literal 1784 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Yt4rT@hhUEVyOBooLOagpDTvx1IJ#*%QuC9r$ zuAcuHbj;0d%+2lm{llW7QvUz{9~=^4Z|`br>y(<7{qO(3zY1>G#H{-ICKeQw`1%GX zCZ?B^l>cMU&d4luaB%PGo#5jW7!i?l`SO)Zmo8rxHvRwa-+u;e2M4$G^gLhRkf^A{ zfPnCzps2vWh_J9YXJ=1O&w%oZ$}1vfjZGc#@fnMkEVr_9sI07YbMyJfpf!2Q^s=(5 z#Y>iDX6D-3IwvHg{bke%4UNmoE3>q;i;9k~t8ZGkXo-i1-=xXY{t8?FmUq4?W;u20 z%!r7@%*?{@@Py#t7<+rSoSdQuicXDnvvYNE@lH$2kBdt#E3f{`VRZKF z`OM6$Y18KH-+y@i{AE9X{`@g()sO1FpMlv;O>KWBE&e0z@ay@jPoF;jTCw$ytkWND zze>-@@`{>^+MX#P3Ee#tf7-|V=$-qQ-5?+!^yic3x1?--F5Tqg6MFvqg^SuATefU_ z`tpnpk(LHy{)b7{r&xG)@=G!H|cj)^Uu}We;+*c zeb?dNMIC+plYZ+3{62R6w|B+k2UzxEva`~Kq}KC|Di-u|(Q`rSP3 zcV5e%Yj^$_1SLF7?N@C>J9eb+hGg`K0a6a>Djk7XwIH%J2IbCByKlc z$18D0uGN4`cd=@sii3h;=Bx=9FT9ys($=@+@vV~gd#_Jl&9>u4#HM*mzQ6mm|8ZaQ z=fCe>@_MrU*=d|EyTtnUMRpthbG5H5YWZLKS<9qXY`Amr$i(+YmOPdXnEPNw$)nf} z-HWfNJXqm6zv^ee&P&NfPnT97v?=YFC>;Lp*Sl9gYkgjxIvf1-)ANh=_5Hf{TsF^L z?h*Xr+4@6YnLA$IsV{F+_&UKymuvrjwJx8k_clTkS9sedbvoVeALh@-{56n z%Zb3v@!W^xUp%_Xo!NHsUe({wCXrod@}noHWrggUCjNb$z@COjHv8XlO?Hi(c`7a4 z^W4?vO$xmpdz2!VTY0Z>=)SVgFj3Ah_PYL>GkePSO;$O&K)+?axXYKT=}NnPr$x=L zN^ZZCa!5t>-Veu!IgYWh9#iVRtUTTr^fmaIM%&Jhr*HV*mv>-0cOaCj;bV&>*V6hs z|CcU&Z04TGqtidhpyg7;;z_go5(4$_c3+Q{l+4TyUSn%rxMD3++-bd=A40FKV7}ex zXnW#uX?noIh;2?=ca;k+-j+A5@i&vsYbmo`R%-$`?47wbKa~BOSCbBFbKbOE!);b; zf&}EIvpqB3WVI%^K;z`5ncFU{KFr2-NaFN5z2C2zTQnv7pG~V3mRxmv^R&V%!C~Upx@`VcD`v;9 z6~UaV1f`Zcl{##1-WB36(OeZ3f9Z!=UT>EZ57(4cp6yvJJ3@{v4dh(Ko)oMXrhGPf zqtnmDKdvl@R{lBvdv;K*!2DZlw(c%j8J96h>dO;xE!Uri(^mE!ni}5KjiF>e(u!cBwMuD)XOaA#Jzy#LPNva_Mvm!C*homsne;obk`tCmT8RT5ma zR3bF{$y&kLS$d~Kax(m~cf9s~5Y(8Y-)gw_;kwr|?P9bfGW7gRxAVOA`g>!_y#npn zSy#Uwx469`VbWE-oAo;`+Idwu%(_tZ`redXZ=b(eV#57<>;7|_X0Cda5m+mutMzKR zYiqSdREV;BcUQp{jk}$jroXy4{m+8A=UfV7WUgGEsc}x8wV3e|`y?&d)vSllHC$&~ z6)rF3Wi|caR?Fp^>n30QC4b@djLR?g9AW- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/views/account_invoice_view.xml b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/views/account_invoice_view.xml new file mode 100644 index 0000000..c7be420 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/views/account_invoice_view.xml @@ -0,0 +1,16 @@ + + + + + l10n_sg.invoice.form + account.move + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/views/res_company_view.xml b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/views/res_company_view.xml new file mode 100644 index 0000000..d4bdd05 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/views/res_company_view.xml @@ -0,0 +1,15 @@ + + + + + l10n_sg.company.form + res.company + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/views/res_partner_view.xml b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/views/res_partner_view.xml new file mode 100644 index 0000000..c1c7ac4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/l10n_sg/views/res_partner_view.xml @@ -0,0 +1,15 @@ + + + + + l10n_sg.partner.form + res.partner + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_sg/pyproject.toml b/odoo-bringout-oca-ocb-l10n_sg/pyproject.toml new file mode 100644 index 0000000..f828f6d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_sg/pyproject.toml @@ -0,0 +1,43 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_sg" +version = "16.0.0" +description = "Singapore - Accounting - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-base>=16.0.0", + "odoo-bringout-oca-ocb-account>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_sg"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_th/README.md b/odoo-bringout-oca-ocb-l10n_th/README.md new file mode 100644 index 0000000..e976f1f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/README.md @@ -0,0 +1,51 @@ +# Thailand - Accounting + + +Chart of Accounts for Thailand. +=============================== + +Thai accounting chart and localization. + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_th +``` + +## Dependencies + +This addon depends on: +- account + +## Manifest Information + +- **Name**: Thailand - Accounting +- **Version**: 2.0 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_th`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_th/doc/ARCHITECTURE.md new file mode 100644 index 0000000..d3f3ee1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_th Module - l10n_th + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_th/doc/CONFIGURATION.md new file mode 100644 index 0000000..ad72021 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_th. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_th/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_th/doc/DEPENDENCIES.md new file mode 100644 index 0000000..99c6b28 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/DEPENDENCIES.md @@ -0,0 +1,5 @@ +# Dependencies + +This addon depends on: + +- [account](../../odoo-bringout-oca-ocb-account) diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_th/doc/FAQ.md new file mode 100644 index 0000000..7c59b63 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_th or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_th/doc/INSTALL.md new file mode 100644 index 0000000..44154e4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_th" +# or +uv pip install odoo-bringout-oca-ocb-l10n_th" +``` diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_th/doc/MODELS.md new file mode 100644 index 0000000..51b77f8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/MODELS.md @@ -0,0 +1,14 @@ +# Models + +Detected core models and extensions in l10n_th. + +```mermaid +classDiagram + class account_move + class ir_actions_report + class res_partner +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_th/doc/OVERVIEW.md new file mode 100644 index 0000000..ac6a999 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_th. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_th +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_th/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_th/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_th/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_th/doc/USAGE.md new file mode 100644 index 0000000..b571f68 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_th +``` diff --git a/odoo-bringout-oca-ocb-l10n_th/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_th/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/__init__.py b/odoo-bringout-oca-ocb-l10n_th/l10n_th/__init__.py new file mode 100644 index 0000000..a5f8620 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/__init__.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import models + +def _preserve_tag_on_taxes(cr, registry): + from odoo.addons.account.models.chart_template import preserve_existing_tags_on_taxes + preserve_existing_tags_on_taxes(cr, registry, 'l10n_th') diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/__manifest__.py b/odoo-bringout-oca-ocb-l10n_th/l10n_th/__manifest__.py new file mode 100644 index 0000000..92ea2c8 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/__manifest__.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'Thailand - Accounting', + 'version': '2.0', + 'category': 'Accounting/Localizations/Account Charts', + 'description': """ +Chart of Accounts for Thailand. +=============================== + +Thai accounting chart and localization. + """, + 'author': 'Almacom', + 'website': 'http://almacom.co.th/', + 'depends': ['account'], + 'data': [ + 'data/account_tax_group_data.xml', + 'data/l10n_th_chart_data.xml', + 'data/account.account.template.csv', + 'data/l10n_th_chart_post_data.xml', + 'data/account_tax_report_data.xml', + 'data/account_tax_template_data.xml', + 'data/account_chart_template_data.xml', + 'views/report_invoice.xml', + ], + 'demo': [ + 'demo/demo_company.xml', + ], + 'post_init_hook': '_preserve_tag_on_taxes', + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account.account.template.csv new file mode 100644 index 0000000..04acb6e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account.account.template.csv @@ -0,0 +1,28 @@ +"id","name","code","account_type","chart_template_id/id","reconcile" +"a_recv","Account Receivable","1200","asset_receivable","l10n_th.chart","True" +"a_recv_pos","Account Receivable (PoS)","1210","asset_receivable","l10n_th.chart","True" +"a_cheque","Outstanding Cheques","1201","liability_current","l10n_th.chart","True" +"a_invent","Inventory","1300","asset_current","l10n_th.chart","False" +"a_building_depr","Accumulated Depreciation - Building","1411","expense_depreciation","l10n_th.chart","False" +"a_equipment_dept","Accumulated Depreciation - Equipment","1421","expense_depreciation","l10n_th.chart","False" +"a_input_vat","Input VAT","1510","asset_current","l10n_th.chart","False" +"a_wht_income","Withholding Income Tax","1520","asset_current","l10n_th.chart","False" +"a_pay","Account Payable","2101","liability_payable","l10n_th.chart","True" +"a_accr_exp","Accrued Expenses","2102","liability_current","l10n_th.chart","True" +"a_uninvoiced_receipts","Uninvoiced Receipts","2103","liability_current","l10n_th.chart","True" +"a_loan","Loans","2200","liability_current","l10n_th.chart","True" +"a_output_vat","Output VAT","2310","liability_current","l10n_th.chart","False" +"a_wht","Withholding Tax","2320","liability_current","l10n_th.chart","False" +"a_common_stock","Capital Stock","3100","equity","l10n_th.chart","False" +"a_retained_earnings","Retained Earnings","3200","equity","l10n_th.chart","False" +"a_dividends","Dividends","3300","equity","l10n_th.chart","False" +"a_income_summary","Income Summary","3400","equity","l10n_th.chart","False" +"a_sales","Income","4100","income","l10n_th.chart","False" +"a_income_gain","Gain Account","4200","income_other","l10n_th.chart","False" +"a_exp_cogs","Cost of Revenue","5100","expense_direct_cost","l10n_th.chart","False" +"a_exp_salary","Salary","5201","expense","l10n_th.chart","False" +"a_exp_rent","Rent","5202","expense","l10n_th.chart","False" +"a_exp_office","Office Expenses","5203","expense","l10n_th.chart","False" +"a_exp_interest","Interest expenses","5300","expense","l10n_th.chart","False" +"a_exp_income_tax","Income tax expenses","5400","expense","l10n_th.chart","False" +"a_exp_loss","Loss Account","5500","expense","l10n_th.chart","False" diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_chart_template_data.xml new file mode 100644 index 0000000..942a9ff --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_chart_template_data.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_tax_group_data.xml b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_tax_group_data.xml new file mode 100644 index 0000000..ba65190 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_tax_group_data.xml @@ -0,0 +1,26 @@ + + + + + TAX 1% + + + + TAX 2% + + + + TAX 3% + + + + TAX 5% + + + + VAT 7% + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_tax_report_data.xml b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_tax_report_data.xml new file mode 100644 index 0000000..b63e7f2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_tax_report_data.xml @@ -0,0 +1,286 @@ + + + + Tax Report + + + + country + + + Balance + balance + + + + + Output Tax + OUTPUTTAX_SALEAMOUNT.balance + OUTPUTTAX_SALE_ZERO.balance + OUTPUTTAX_EXEMPTED.balance + OUTPUTTAX_TAX.balance + + + 1. Sales amount + OUTPUTTAX_SALEAMOUNT + + + balance + tax_tags + 1. Sales amount + + + + + 2. Less sales subject to 0% tax rate + OUTPUTTAX_SALE_ZERO + + + balance + tax_tags + 2. Less sales subject to 0% tax rate + + + + + 3. Less exempted sales + OUTPUTTAX_EXEMPTED + + + balance + tax_tags + 3. Less exempted sales + + + + + 4. Taxable sales amount(1. -2. -3.) + OUTPUTTAX_SALEAMOUNT.balance-(OUTPUTTAX_SALE_ZERO.balance+OUTPUTTAX_EXEMPTED.balance) + + + 5. Output tax + OUTPUTTAX_TAX + + + balance + tax_tags + 5. Output tax + + + + + + + Input Tax + INPUTTAX + 6_PURCHASE_AMOUNT_THAT_IS_ENTITLED_TO_DEDUCTION_OF_INPUT_TAX_FROM_OUTPUT_TAX_IN_TAX_COMPUTATION.balance + INPUTTAX_TAX.balance + + + 6. Purchase amount that is entitled to deduction of input tax from output tax in tax computation + 6_PURCHASE_AMOUNT_THAT_IS_ENTITLED_TO_DEDUCTION_OF_INPUT_TAX_FROM_OUTPUT_TAX_IN_TAX_COMPUTATION + + + balance + tax_tags + 6. Purchase amount that is entitled to deduction of input tax from output tax in tax computation + + + + + 7. Input tax (according to invoice of purchase amount in 6.) + INPUTTAX_TAX + + + balance + tax_tags + 7. Input tax (according to invoice of purchase amount in 6.) + + + + + + + Value Added Tax + 10_EXCESS_TAX_PAYMENT_CARRIED_FORWARD_FROM_LAST_PERIOD.balance + + + 8. Tax payable (5. minus 7. (if 5. is greater than 7.)) + + + balance + aggregation + OUTPUTTAX_TAX.balance - INPUTTAX_TAX.balance + if_above(THB(0)) + + + + + 9. Excess tax payable (7. minus 5. (if 5. is less than 7.)) + + + balance + aggregation + INPUTTAX_TAX.balance - OUTPUTTAX_TAX.balance + if_above(THB(0)) + + + + + 10. Excess tax payment carried forward from last period + 10_EXCESS_TAX_PAYMENT_CARRIED_FORWARD_FROM_LAST_PERIOD + + + balance + external + sum + editable;rounding=2 + + + + + + + Net Tax + 11_NET_TAX_PAYABLE_IF_8_IS_GREATER_THAN_10.balance + 12_NET_EXCESS_TAX_PAYABLE_IF_10_IS_GREATER_THAN_8_OR_9_PLUS_10.balance + + + 11. Net tax payable (if 8. is greater than 10.) + 11_NET_TAX_PAYABLE_IF_8_IS_GREATER_THAN_10 + + + balance + tax_tags + 11. Net tax payable (if 8. is greater than 10.) + + + + + 12. Net excess tax payable ((if 10. is greater than 8.) or (9. plus 10.)) + 12_NET_EXCESS_TAX_PAYABLE_IF_10_IS_GREATER_THAN_8_OR_9_PLUS_10 + + + balance + tax_tags + 12. Net excess tax payable ((if 10. is greater than 8.) or (9. plus 10.)) + + + + + + + + + + PND53 + + + country + + + Balance + balance + + + + + Total Income + INCOME_PND53 + + + balance + tax_tags + Income PND53 + + + + + Total Remittance + P53 + + + balance + tax_tags + PND53 + + + + + Surcharge + S53 + + + balance + tax_tags + SUR53 + + + + + Total + + + balance + aggregation + P53.balance + S53.balance + + + + + + + + PND3 + + + country + + + Balance + balance + + + + + Total Income + INCOME_PND3 + + + balance + tax_tags + Income PND3 + + + + + Total Remittance + P3 + + + balance + tax_tags + PND3 + + + + + Surcharge + S3 + + + balance + tax_tags + SUR3 + + + + + Total + + + balance + aggregation + P3.balance + S3.balance + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_tax_template_data.xml b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_tax_template_data.xml new file mode 100644 index 0000000..7131b7b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/account_tax_template_data.xml @@ -0,0 +1,507 @@ + + + + + Input VAT 7% + percent + + purchase + + + + + + + Output VAT 7% + percent + + sale + + + + + + + Input VAT 0% + percent + + purchase + + + + + + Output VAT 0% + percent + + sale + + + + + + Input VAT Exempted + percent + + purchase + + + + + + Output VAT Exempted + percent + + sale + + + + + + Company Withholding Tax 1% (Transportation) + percent + + purchase + + + + + + + Company Withholding Tax 2% (Advertising) + percent + + purchase + + + + + + + Company Withholding Tax 3% (Service) + percent + + purchase + + + + + + + Company Withholding Tax 5% (Rental) + percent + + purchase + + + + + + + Personal Withholding Tax 1% (Transportation) + percent + + purchase + + + + + + + Personal Withholding Tax 2% (Advertising) + percent + + purchase + + + + + + + Personal Withholding Tax 3% (Service) + percent + + purchase + + + + + + + Personal Withholding Tax 5% (Rental) + percent + + purchase + + + + + + + Withholding Income Tax 1% (Transportation) + percent + + sale + + + + + + + Withholding Income Tax 2% (Advertising) + percent + + sale + + + + + + + Withholding Income Tax 3% (Service) + percent + + sale + + + + + + + Withholding Income Tax 5% (Rental) + percent + + sale + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/l10n_th_chart_data.xml b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/l10n_th_chart_data.xml new file mode 100644 index 0000000..1f7aaf1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/l10n_th_chart_data.xml @@ -0,0 +1,13 @@ + + + + + + Thailand - Chart of Accounts + 1100 + 1110 + 16 + + + + diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/l10n_th_chart_post_data.xml b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/l10n_th_chart_post_data.xml new file mode 100644 index 0000000..2c8bb90 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/data/l10n_th_chart_post_data.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_th/l10n_th/demo/demo_company.xml new file mode 100644 index 0000000..9aa6fce --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/demo/demo_company.xml @@ -0,0 +1,34 @@ + + + + TH Company + + A5 + บ้านสันทราย + + + 50220 + +66 81 234 5678 + info@company.thexample.com + www.thexample.com + + + + TH Company + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/i18n/th.po b/odoo-bringout-oca-ocb-l10n_th/l10n_th/i18n/th.po new file mode 100644 index 0000000..7ad7bba --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/i18n/th.po @@ -0,0 +1,170 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_th +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-03-22 02:16+0000\n" +"PO-Revision-Date: 2023-03-22 02:16+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_th +#: model:account.report.line,name:l10n_th.tax_report_out_tax_sale +msgid "1. Sales amount" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_vat_payment_last_period +msgid "10. Excess tax payment carried forward from last period" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_net_vat_payable +msgid "11. Net tax payable (if 8. is greater than 10.)" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_net_vat_excess +msgid "" +"12. Net excess tax payable ((if 10. is greater than 8.) or (9. plus 10.))" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_out_tax_less_sales_0_rate +msgid "2. Less sales subject to 0% tax rate " +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_out_tax_less_exempted_sales +msgid "3. Less exempted sales" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_out_tax_taxable_sales_amount +msgid "4. Taxable sales amount(1. -2. -3.)" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_out_tax +msgid "5. Output tax" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_input_tax_purchase_from_out_tax +msgid "" +"6. Purchase amount that is entitled to deduction of input tax from output " +"tax in tax computation" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_input_tax +msgid "7. Input tax (according to invoice of purchase amount in 6.)" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_vat_payable +msgid "8. Tax payable (5. minus 7. (if 5. is greater than 7.))" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_vat_excess +msgid "9. Excess tax payable (7. minus 5. (if 5. is less than 7.))" +msgstr "" + +#. module: l10n_th +#: model:account.report.column,name:l10n_th.tax_report_balance +#: model:account.report.column,name:l10n_th.tax_report_pnd3_balance +#: model:account.report.column,name:l10n_th.tax_report_pnd53_balance +msgid "Balance" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_input_tax_title +msgid "Input Tax" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_net_vat +msgid "Net Tax" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_out_tax_title +msgid "Output Tax" +msgstr "" + +#. module: l10n_th +#: model:account.report,name:l10n_th.tax_report_pnd3 +msgid "PND3" +msgstr "" + +#. module: l10n_th +#: model:account.report,name:l10n_th.tax_report_pnd53 +msgid "PND53" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_surcharge_pnd3_line +#: model:account.report.line,name:l10n_th.tax_report_surcharge_pnd53_line +msgid "Surcharge" +msgstr "เงินเพิ่ม (ถ้ามี)" + +#. module: l10n_th +#: model:account.tax.group,name:l10n_th.tax_group_1 +msgid "TAX 1%" +msgstr "" + +#. module: l10n_th +#: model:account.tax.group,name:l10n_th.tax_group_2 +msgid "TAX 2%" +msgstr "" + +#. module: l10n_th +#: model:account.tax.group,name:l10n_th.tax_group_3 +msgid "TAX 3%" +msgstr "" + +#. module: l10n_th +#: model:account.tax.group,name:l10n_th.tax_group_5 +msgid "TAX 5%" +msgstr "" + +#. module: l10n_th +#: model:account.report,name:l10n_th.tax_report +msgid "Tax Report" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_total_pnd3_line +#: model:account.report.line,name:l10n_th.tax_report_total_pnd53_line +msgid "Total" +msgstr "รวมยอดภาษีที่นำส่งทั้งสิ้น และเงินเพิ่ม (2. + 3.)" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_total_income_pnd3_line +#: model:account.report.line,name:l10n_th.tax_report_total_income_pnd53_line +msgid "Total Income" +msgstr "รวมยอดเงินได้ทั้งสิ้น" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_total_remittance_pnd3_line +#: model:account.report.line,name:l10n_th.tax_report_total_remittance_pnd53_line +msgid "Total Remittance" +msgstr "รวมยอดภาษีที่นำส่งทั้งสิ้น" + +#. module: l10n_th +#: model:account.tax.group,name:l10n_th.tax_group_vat_7 +msgid "VAT 7%" +msgstr "" + +#. module: l10n_th +#: model:account.report.line,name:l10n_th.tax_report_vat +msgid "Value Added Tax" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/models/__init__.py b/odoo-bringout-oca-ocb-l10n_th/l10n_th/models/__init__.py new file mode 100644 index 0000000..ebb2c8b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/models/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from . import res_partner +from . import account_move +from . import ir_actions_report diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/models/account_move.py b/odoo-bringout-oca-ocb-l10n_th/l10n_th/models/account_move.py new file mode 100644 index 0000000..6b7bf09 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/models/account_move.py @@ -0,0 +1,10 @@ +from odoo import models + +class AccountMove(models.Model): + _inherit = "account.move" + + def _get_name_invoice_report(self): + self.ensure_one() + if self.company_id.account_fiscal_country_id.code == 'TH': + return 'l10n_th.report_invoice_document' + return super()._get_name_invoice_report() diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/models/ir_actions_report.py b/odoo-bringout-oca-ocb-l10n_th/l10n_th/models/ir_actions_report.py new file mode 100644 index 0000000..fcff5fa --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/models/ir_actions_report.py @@ -0,0 +1,15 @@ +from odoo import _, models +from odoo.exceptions import UserError + + +class IrActionsReport(models.Model): + _inherit = 'ir.actions.report' + + def _render_qweb_pdf(self, report_ref, res_ids=None, data=None): + # Check for reports only available for invoices. + if self._get_report(report_ref).report_name == 'l10n_th.report_commercial_invoice': + invoices = self.env['account.move'].browse(res_ids) + if any(not x.is_invoice(include_receipts=True) for x in invoices): + raise UserError(_("Only invoices could be printed.")) + + return super()._render_qweb_pdf(report_ref, res_ids=res_ids, data=data) diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/models/res_partner.py b/odoo-bringout-oca-ocb-l10n_th/l10n_th/models/res_partner.py new file mode 100644 index 0000000..229ac05 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/models/res_partner.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. +from odoo import models, fields + +class ResPartner(models.Model): + _inherit = "res.partner" + + l10n_th_branch_name = fields.Char(compute="_l10n_th_get_branch_name") + + def _l10n_th_get_branch_name(self): + for partner in self: + if not partner.is_company or partner.country_code != 'TH': + partner.l10n_th_branch_name = "" + else: + code = partner.company_registry + partner.l10n_th_branch_name = f"Branch {code}" if code else "Headquarter" diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/static/description/icon.png b/odoo-bringout-oca-ocb-l10n_th/l10n_th/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6b8aefb25188c460a25ece13a3945c410eecbd3d GIT binary patch literal 1670 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Yt4rT@hhUEVyOBooLaszxqTvx1IZEkKibLN7s zu8IHu|NqaxU~X>X?;jQwl_D=1=<4bj91>w~?`mu7^nd+^r%zrhhz0%r{pbJWDc8g# zQ`55h`X&|>lq4pm`}zi#n3!i|7CJb%_w-Ki@d->%&kG0$cW`hkuc(ZQN^ETE@bwL; zw6t}0_FTMVd1Per+%cdwaLK`liK8mR-7ZdD7%*GozyC%$-+QSQZ)@S5#aT92^xG7!ep4 z85x-r6cklc(`aw+VrS=UWo7T}9XM_pE`ABN=mMePjF^t z;r#iFCQO_f5)yMpMm{(=R#Pd!+S)NJJZACYWuc+bE-v17cCMwRRURHbX=(Y{*@flh z)n(duGg-t)&#u+dHAYz9}#;yt`*&N=Tfmt5;lHdQ5E66%o;@ z>iTP95@F$SPEMXtQSoZ>zM-M&R!~s1p;kmdKTbab0N zdtP7vq@^#|Y8e=quXwsRhGg7(d*gfbWe14^AG3RRdaT)OB$Cq_bxKQGRDd;7$=M~) zLGWhY(Y@dARlf%jzs+ZwtZ}-gy7TkL%0K_EEU&GwJ74&IsVAdp`m-G4cWL`8d;$~B ziGNQ+65c~-Ml-s_0XU8u0;nV8s$ zG%J(1o9){JH!PU6OgMSU^1}>VPU^nq{k0jKXaRi`TkgF0ePCl?&=rTrD@Br~EPkq^80;>%^0~o$zE5uh7HDZ@Y`DW3Ehq<2uJ!2b{ctc$cAJ#nm7uWlw>aD)i z6~~V|bMDo@Dt#L$$TXGnYoL3?y17{^SXN9f`m}lC+NM(*UoKVBiD?fB*co6ex+kUg zim5=$w4<5qZkIppe^pl&b@=`CoU0e9#hA5ZS>#^suthOuYeS-rpA24Pq^POI zn6*rAVW6ei+bc&M-b+1Q8M9*UrV^XrPa;PG>j}0!pnHC2)&bY4>z>E2xqV=N>Fv+6FW2V$cd-8c^hlIf^!sU_WF(F& zsrKApxz%s!5qQBdCzNHq*xIGr&)LeYQp_!>irV#j?frShru@=hr`3P-nZf^0te{TB zY*j<`GW{NfP2pkxj(*v;_g7o~`gv`p%S?jr8@>;nxYX*9P~w%i-pyTi!X8s8-4#<}-z>bKx%Ez2?))Av%QqJvg_Hy> zoU_GVa^|GyJOS; zJ0ux&MY2s~>RTn(n~x-eLfD+UPNjGRM(QPn?Aas2y>HS@jkcYPUA&WuM3>xXU+{9d zVez^Rfg4S?KA8TpeLrJJlTFF + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_th/l10n_th/views/report_invoice.xml b/odoo-bringout-oca-ocb-l10n_th/l10n_th/views/report_invoice.xml new file mode 100644 index 0000000..ac978be --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/l10n_th/views/report_invoice.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + Commercial Invoice + account.move + qweb-pdf + l10n_th.report_commercial_invoice + l10n_th.report_commercial_invoice + + report + + + diff --git a/odoo-bringout-oca-ocb-l10n_th/pyproject.toml b/odoo-bringout-oca-ocb-l10n_th/pyproject.toml new file mode 100644 index 0000000..26a4c72 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_th/pyproject.toml @@ -0,0 +1,42 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_th" +version = "16.0.0" +description = "Thailand - Accounting - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_th"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_tw/README.md b/odoo-bringout-oca-ocb-l10n_tw/README.md new file mode 100644 index 0000000..b2d9f15 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/README.md @@ -0,0 +1,51 @@ +# Taiwan - Accounting + + +This is the base module to manage the accounting chart for Taiwan in Odoo. +============================================================================== + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_tw +``` + +## Dependencies + +This addon depends on: +- account +- base_address_extended +- l10n_multilang + +## Manifest Information + +- **Name**: Taiwan - Accounting +- **Version**: 1.0 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_tw`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_tw/doc/ARCHITECTURE.md new file mode 100644 index 0000000..a1cb6c5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_tw Module - l10n_tw + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_tw/doc/CONFIGURATION.md new file mode 100644 index 0000000..bf621e2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_tw. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_tw/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_tw/doc/DEPENDENCIES.md new file mode 100644 index 0000000..9c4b6a2 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/DEPENDENCIES.md @@ -0,0 +1,7 @@ +# Dependencies + +This addon depends on: + +- [account](../../odoo-bringout-oca-ocb-account) +- [base_address_extended](../../odoo-bringout-oca-ocb-base_address_extended) +- [l10n_multilang](../../odoo-bringout-oca-ocb-l10n_multilang) diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_tw/doc/FAQ.md new file mode 100644 index 0000000..6c160ee --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_tw or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_tw/doc/INSTALL.md new file mode 100644 index 0000000..67ffc34 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_tw" +# or +uv pip install odoo-bringout-oca-ocb-l10n_tw" +``` diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_tw/doc/MODELS.md new file mode 100644 index 0000000..761b40d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/MODELS.md @@ -0,0 +1,11 @@ +# Models + +Detected core models and extensions in l10n_tw. + +```mermaid +classDiagram +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_tw/doc/OVERVIEW.md new file mode 100644 index 0000000..0b03d78 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_tw. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_tw +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_tw/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_tw/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_tw/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_tw/doc/USAGE.md new file mode 100644 index 0000000..dddf3ad --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_tw +``` diff --git a/odoo-bringout-oca-ocb-l10n_tw/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_tw/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/__init__.py b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/__init__.py new file mode 100644 index 0000000..2eabd8e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/__init__.py @@ -0,0 +1,6 @@ +from odoo import api, SUPERUSER_ID + + +def load_translations(cr, registry): + env = api.Environment(cr, SUPERUSER_ID, {}) + env.ref("l10n_tw.l10n_tw_chart_template").process_coa_translations() diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/__manifest__.py b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/__manifest__.py new file mode 100644 index 0000000..bf7cc57 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/__manifest__.py @@ -0,0 +1,33 @@ +{ + "name": "Taiwan - Accounting", + "author": "Odoo PS", + "version": "1.0", + "category": "Accounting/Localizations/Account Charts", + "description": """ +This is the base module to manage the accounting chart for Taiwan in Odoo. +============================================================================== + """, + "depends": [ + "account", + "base_address_extended", + "l10n_multilang", + ], + "data": [ + "data/l10n_tw_chart_data.xml", + "data/account.account.template.csv", + "data/res.country.state.csv", + "data/account_chart_template_data.xml", + "data/account.tax.group.csv", + "data/account_tax_template_data.xml", + "data/account_chart_template_configure_data.xml", + "data/res_currency_data.xml", + "data/res_country_data.xml", + "data/res.city.csv", + ], + 'demo': [ + 'demo/demo_company.xml', + ], + "icon": "/base/static/img/country_flags/tw.png", + "post_init_hook": "load_translations", + "license": "LGPL-3", +} diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account.account.template.csv new file mode 100644 index 0000000..290e99f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account.account.template.csv @@ -0,0 +1,125 @@ +id,chart_template_id/id,code,name,account_type,reconcile +tw_118100,l10n_tw.l10n_tw_chart_template,118100,Notes receivable,asset_receivable,TRUE +tw_119100,l10n_tw.l10n_tw_chart_template,119100,Accounts receivable,asset_receivable,TRUE +tw_119150,l10n_tw.l10n_tw_chart_template,119150,Accounts receivable (PoS),asset_receivable,TRUE +tw_121100,l10n_tw.l10n_tw_chart_template,121100,Earned revenue receivable,asset_receivable,TRUE +tw_123100,l10n_tw.l10n_tw_chart_template,123100,Merchandise inventory,asset_current,FALSE +tw_123150,l10n_tw.l10n_tw_chart_template,123150,Other inventory (pending acceptance),asset_current,TRUE +tw_123500,l10n_tw.l10n_tw_chart_template,123500,Finished goods,asset_current,FALSE +tw_123700,l10n_tw.l10n_tw_chart_template,123700,Work in progress,asset_current,FALSE +tw_123900,l10n_tw.l10n_tw_chart_template,123900,Raw materials,asset_current,FALSE +tw_124000,l10n_tw.l10n_tw_chart_template,124000,Supplies,asset_current,FALSE +tw_124500,l10n_tw.l10n_tw_chart_template,124500,Stock Interim Account (Input),asset_current,FALSE +tw_124600,l10n_tw.l10n_tw_chart_template,124600,Stock Interim Account (Output),asset_current,FALSE +tw_126400,l10n_tw.l10n_tw_chart_template,126400,Office supplies,asset_prepayments,FALSE +tw_126500,l10n_tw.l10n_tw_chart_template,126500,Other prepaid expenses,asset_prepayments,FALSE +tw_126600,l10n_tw.l10n_tw_chart_template,126600,Prepayment for purchases,asset_prepayments,FALSE +tw_126800,l10n_tw.l10n_tw_chart_template,126800,Business tax paid (or Input VAT),asset_prepayments,FALSE +tw_126900,l10n_tw.l10n_tw_chart_template,126900,Overpaid sales tax,asset_prepayments,FALSE +tw_127000,l10n_tw.l10n_tw_chart_template,127000,Other prepayments,asset_prepayments,FALSE +tw_128100,l10n_tw.l10n_tw_chart_template,128100,Temporary payments,asset_current,FALSE +tw_128200,l10n_tw.l10n_tw_chart_template,128200,Payment on behalf of others,asset_current,FALSE +tw_128400,l10n_tw.l10n_tw_chart_template,128400,Refundable deposits,asset_current,FALSE +tw_137100,l10n_tw.l10n_tw_chart_template,137100,Investments accounted for using equity method,asset_non_current,FALSE +tw_139100,l10n_tw.l10n_tw_chart_template,139100,"Land, cost",asset_non_current,FALSE +tw_141100,l10n_tw.l10n_tw_chart_template,141100,"Buildings and structures, cost",asset_non_current,FALSE +tw_141300,l10n_tw.l10n_tw_chart_template,141300,"Accumulated depreciation, buildings and structures",asset_non_current,FALSE +tw_142100,l10n_tw.l10n_tw_chart_template,142100,"Machinery and equipment, cost",asset_non_current,FALSE +tw_142200,l10n_tw.l10n_tw_chart_template,142200,"Accumulated depreciation, machinery and equipment",asset_non_current,FALSE +tw_143100,l10n_tw.l10n_tw_chart_template,143100,"Office equipment, cost",asset_non_current,FALSE +tw_143200,l10n_tw.l10n_tw_chart_template,143200,"Accumulated depreciation, office equipment",asset_non_current,FALSE +tw_144100,l10n_tw.l10n_tw_chart_template,144100,"Leased assets, cost",asset_non_current,FALSE +tw_144200,l10n_tw.l10n_tw_chart_template,144200,"Accumulated depreciation, leased assets",asset_non_current,FALSE +tw_155100,l10n_tw.l10n_tw_chart_template,155100,"Other intangible assets, net",asset_non_current,FALSE +tw_155200,l10n_tw.l10n_tw_chart_template,155200,"Accumulated amortization, other intangible assets",asset_non_current,FALSE +tw_156100,l10n_tw.l10n_tw_chart_template,156100,Deferred tax assets,asset_non_current,FALSE +tw_158200,l10n_tw.l10n_tw_chart_template,158200,Prepayments for business facilities,asset_non_current,FALSE +tw_158300,l10n_tw.l10n_tw_chart_template,158300,Guarantee deposits paid,asset_non_current,FALSE +tw_158400,l10n_tw.l10n_tw_chart_template,158400,"Owner (shareholder) accounts, debit",asset_non_current,FALSE +tw_158600,l10n_tw.l10n_tw_chart_template,158600,"Other non-current assets, others",asset_non_current,FALSE +tw_211200,l10n_tw.l10n_tw_chart_template,211200,Bank loan,liability_current,FALSE +tw_216100,l10n_tw.l10n_tw_chart_template,216100,Notes payable,liability_payable,TRUE +tw_217100,l10n_tw.l10n_tw_chart_template,217100,Accounts payable,liability_payable,TRUE +tw_219400,l10n_tw.l10n_tw_chart_template,219400,Business tax payable,liability_payable,TRUE +tw_219700,l10n_tw.l10n_tw_chart_template,219700,Other accrued expenses,liability_payable,TRUE +tw_219900,l10n_tw.l10n_tw_chart_template,219900,Payable on machinery and equipment,liability_payable,TRUE +tw_220100,l10n_tw.l10n_tw_chart_template,220100,Dividends payable,liability_payable,TRUE +tw_220400,l10n_tw.l10n_tw_chart_template,220400,Business tax received (or Output VAT),liability_current,FALSE +tw_222100,l10n_tw.l10n_tw_chart_template,222100,Advance sales receipts,liability_current,FALSE +tw_222300,l10n_tw.l10n_tw_chart_template,222300,Other advance receipts,liability_current,FALSE +tw_225100,l10n_tw.l10n_tw_chart_template,225100,Temporary credits,liability_current,FALSE +tw_225200,l10n_tw.l10n_tw_chart_template,225200,Receipts under custody,liability_current,FALSE +tw_239300,l10n_tw.l10n_tw_chart_template,239300,"Owner (shareholder) accounts, credit",liability_current,FALSE +tw_311100,l10n_tw.l10n_tw_chart_template,311100,Ordinary share,equity,FALSE +tw_321100,l10n_tw.l10n_tw_chart_template,321100,"Capital surplus, additional paid-in capital arising from ordinary share",equity,FALSE +tw_335100,l10n_tw.l10n_tw_chart_template,335100,Accumulated profit and loss,equity,FALSE +tw_341500,l10n_tw.l10n_tw_chart_template,341500,"Other equity interest, others",equity,FALSE +tw_411100,l10n_tw.l10n_tw_chart_template,411100,Sales revenue,income,FALSE +tw_411300,l10n_tw.l10n_tw_chart_template,411300,Sales returns,income,FALSE +tw_411400,l10n_tw.l10n_tw_chart_template,411400,Sales discounts and allowances,income,FALSE +tw_414100,l10n_tw.l10n_tw_chart_template,414100,Other operating revenue,income,FALSE +tw_412100,l10n_tw.l10n_tw_chart_template,412100,Labor Income,income,FALSE +tw_413100,l10n_tw.l10n_tw_chart_template,413100,Engineering Income,income_other,FALSE +tw_423200,l10n_tw.l10n_tw_chart_template,423200,Engineering Income redfund or discount,income_other,FALSE +tw_511100,l10n_tw.l10n_tw_chart_template,511100,Cost of sales,expense_direct_cost,FALSE +tw_512100,l10n_tw.l10n_tw_chart_template,512100,Purchase of goods,expense_direct_cost,FALSE +tw_512300,l10n_tw.l10n_tw_chart_template,512300,Purchases returns,expense_direct_cost,FALSE +tw_512400,l10n_tw.l10n_tw_chart_template,512400,Purchases discounts and allowances,expense_direct_cost,FALSE +tw_513100,l10n_tw.l10n_tw_chart_template,513100,Purchase of raw materials,expense_direct_cost,FALSE +tw_513300,l10n_tw.l10n_tw_chart_template,513300,Raw materials purchase returns,expense_direct_cost,FALSE +tw_513400,l10n_tw.l10n_tw_chart_template,513400,Raw materials purchase discounts and allowances,expense_direct_cost,FALSE +tw_514100,l10n_tw.l10n_tw_chart_template,514100,Direct labor,expense_direct_cost,FALSE +tw_515200,l10n_tw.l10n_tw_chart_template,515200,Rent expense,expense_direct_cost,FALSE +tw_515700,l10n_tw.l10n_tw_chart_template,515700,Repairs and maintenance expense,expense_direct_cost,FALSE +tw_515800,l10n_tw.l10n_tw_chart_template,515800,Packing expenses,expense_direct_cost,FALSE +tw_515900,l10n_tw.l10n_tw_chart_template,515900,Utilities expense,expense_direct_cost,FALSE +tw_516000,l10n_tw.l10n_tw_chart_template,516000,Insurance expense,expense_direct_cost,FALSE +tw_516100,l10n_tw.l10n_tw_chart_template,516100,Processing expense,expense_direct_cost,FALSE +tw_516300,l10n_tw.l10n_tw_chart_template,516300,Depreciations,expense_direct_cost,FALSE +tw_516500,l10n_tw.l10n_tw_chart_template,516500,Meal expense,expense_direct_cost,FALSE +tw_516800,l10n_tw.l10n_tw_chart_template,516800,Indirect materials,expense_direct_cost,FALSE +tw_516900,l10n_tw.l10n_tw_chart_template,516900,Other overheads,expense_direct_cost,FALSE +tw_591100,l10n_tw.l10n_tw_chart_template,591100,Other operating costs,expense_direct_cost,FALSE +tw_611100,l10n_tw.l10n_tw_chart_template,611100,Wages and salaries,expense,FALSE +tw_611200,l10n_tw.l10n_tw_chart_template,611200,Rent expense,expense,FALSE +tw_611300,l10n_tw.l10n_tw_chart_template,611300,Stationery supplies,expense,FALSE +tw_611400,l10n_tw.l10n_tw_chart_template,611400,Traveling Expense,expense,FALSE +tw_611500,l10n_tw.l10n_tw_chart_template,611500,Freight,expense,FALSE +tw_611600,l10n_tw.l10n_tw_chart_template,611600,Postage expenses,expense,FALSE +tw_611700,l10n_tw.l10n_tw_chart_template,611700,Repairs and maintenance expense,expense,FALSE +tw_611800,l10n_tw.l10n_tw_chart_template,611800,Advertisement expense,expense,FALSE +tw_611900,l10n_tw.l10n_tw_chart_template,611900,Utilities expense,expense,FALSE +tw_612000,l10n_tw.l10n_tw_chart_template,612000,Insurance expense,expense,FALSE +tw_612100,l10n_tw.l10n_tw_chart_template,612100,Entertainment expense,expense,FALSE +tw_612200,l10n_tw.l10n_tw_chart_template,612200,Donation expense,expense,FALSE +tw_612300,l10n_tw.l10n_tw_chart_template,612300,Taxes,expense,FALSE +tw_612400,l10n_tw.l10n_tw_chart_template,612400,Losses on doubtful debts,expense,FALSE +tw_612500,l10n_tw.l10n_tw_chart_template,612500,Depreciations,expense,FALSE +tw_612600,l10n_tw.l10n_tw_chart_template,612600,Depletions and amortizations,expense,FALSE +tw_612700,l10n_tw.l10n_tw_chart_template,612700,Losses on export sales,expense,FALSE +tw_612800,l10n_tw.l10n_tw_chart_template,612800,Meal expense,expense,FALSE +tw_612900,l10n_tw.l10n_tw_chart_template,612900,Employee benefits/welfare,expense,FALSE +tw_613000,l10n_tw.l10n_tw_chart_template,613000,Research and development expense,expense,FALSE +tw_613100,l10n_tw.l10n_tw_chart_template,613100,Commissions expense,expense,FALSE +tw_613200,l10n_tw.l10n_tw_chart_template,613200,Training expense,expense,FALSE +tw_613300,l10n_tw.l10n_tw_chart_template,613300,Services expense,expense,FALSE +tw_613400,l10n_tw.l10n_tw_chart_template,613400,Other operating expenses,expense,FALSE +tw_711100,l10n_tw.l10n_tw_chart_template,711100,Interest revenue,income_other,FALSE +tw_712100,l10n_tw.l10n_tw_chart_template,712100,Rent income,income_other,FALSE +tw_714100,l10n_tw.l10n_tw_chart_template,714100,Dividend revenue,income_other,FALSE +tw_715100,l10n_tw.l10n_tw_chart_template,715100,Interest expense,expense,FALSE +tw_717100,l10n_tw.l10n_tw_chart_template,717100,Investment income accounted for using equity method,income_other,FALSE +tw_717200,l10n_tw.l10n_tw_chart_template,717200,Investment loss accounted for using equity method,expense,FALSE +tw_718100,l10n_tw.l10n_tw_chart_template,718100,Foreign exchange gains,income_other,FALSE +tw_718200,l10n_tw.l10n_tw_chart_template,718200,Foreign exchange losses,expense,FALSE +tw_718500,l10n_tw.l10n_tw_chart_template,718500,Cash difference gains,income_other,FALSE +tw_718600,l10n_tw.l10n_tw_chart_template,718600,Cash difference losses,expense,FALSE +tw_719100,l10n_tw.l10n_tw_chart_template,719100,Gains on disposals of investment property,income_other,FALSE +tw_719200,l10n_tw.l10n_tw_chart_template,719200,Losses on disposals of investment property,expense,FALSE +tw_720100,l10n_tw.l10n_tw_chart_template,720100,"Net gain or loss on disposals of property, plant and equipment",income_other,FALSE +tw_720200,l10n_tw.l10n_tw_chart_template,720200,"Gains on disposals of property, plant and equipment",expense,FALSE +tw_723200,l10n_tw.l10n_tw_chart_template,723200,Commissions revenue,income_other,FALSE +tw_724700,l10n_tw.l10n_tw_chart_template,724700,Other revenue,income_other,FALSE +tw_821100,l10n_tw.l10n_tw_chart_template,821100,Tax expense (income),expense,FALSE +tw_841100,l10n_tw.l10n_tw_chart_template,841100,Closed Units' asset or profit (post tax),income,FALSE +tw_871100,l10n_tw.l10n_tw_chart_template,871100,Unrealized gains and losses on available-for-sale financial assets,income_other,FALSE diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account.tax.group.csv b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account.tax.group.csv new file mode 100644 index 0000000..19171ab --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account.tax.group.csv @@ -0,0 +1,2 @@ +id,name,country_id/id +tax_group_gst_5,GST 5%,base.tw diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account_chart_template_configure_data.xml b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account_chart_template_configure_data.xml new file mode 100644 index 0000000..2a1e83e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account_chart_template_configure_data.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account_chart_template_data.xml new file mode 100644 index 0000000..b488ea9 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account_chart_template_data.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account_tax_template_data.xml b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account_tax_template_data.xml new file mode 100644 index 0000000..8d80df3 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/account_tax_template_data.xml @@ -0,0 +1,104 @@ + + + + + Sale (5%) + 1 + GST Sales + sale + percent + 5.0 + + + + + + + + GST Inc Sale (5%) + 2 + GST Inclusive Sale + sale + percent + 5.0 + + + + + + + + + Purchase (5%) + 1 + GST Purchase + purchase + percent + 5.0 + + + + + + + + GST Inc Purchase (5%) + GST Inclusive Purchases + purchase + percent + 5.0 + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/l10n_tw_chart_data.xml b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/l10n_tw_chart_data.xml new file mode 100644 index 0000000..da2913f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/l10n_tw_chart_data.xml @@ -0,0 +1,13 @@ + + + + Taiwan Tax and Account Chart Template + 6 + 1113 + 1111 + 1114 + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res.city.csv b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res.city.csv new file mode 100644 index 0000000..1300c24 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res.city.csv @@ -0,0 +1,372 @@ +id,country_id/id,name,zipcode,state_id/id +city_tw_100,base.tw,中正區,100,l10n_tw.state_tw_tpc +city_tw_103,base.tw,大同區,103,l10n_tw.state_tw_tpc +city_tw_104,base.tw,中山區,104,l10n_tw.state_tw_tpc +city_tw_105,base.tw,松山區,105,l10n_tw.state_tw_tpc +city_tw_106,base.tw,大安區,106,l10n_tw.state_tw_tpc +city_tw_108,base.tw,萬華區,108,l10n_tw.state_tw_tpc +city_tw_110,base.tw,信義區,110,l10n_tw.state_tw_tpc +city_tw_111,base.tw,士林區,111,l10n_tw.state_tw_tpc +city_tw_112,base.tw,北投區,112,l10n_tw.state_tw_tpc +city_tw_114,base.tw,內湖區,114,l10n_tw.state_tw_tpc +city_tw_115,base.tw,南港區,115,l10n_tw.state_tw_tpc +city_tw_116,base.tw,文山區,116,l10n_tw.state_tw_tpc +city_tw_200,base.tw,仁愛區,200,l10n_tw.state_tw_klc +city_tw_201,base.tw,信義區,201,l10n_tw.state_tw_klc +city_tw_202,base.tw,中正區,202,l10n_tw.state_tw_klc +city_tw_203,base.tw,中山區,203,l10n_tw.state_tw_klc +city_tw_204,base.tw,安樂區,204,l10n_tw.state_tw_klc +city_tw_205,base.tw,暖暖區,205,l10n_tw.state_tw_klc +city_tw_206,base.tw,七堵區,206,l10n_tw.state_tw_klc +city_tw_207,base.tw,萬里區,207,l10n_tw.state_tw_klc +city_tw_208,base.tw,金山區,208,l10n_tw.state_tw_klc +city_tw_209,base.tw,南竿鄉,209,l10n_tw.state_tw_lcc +city_tw_210,base.tw,北竿鄉,210,l10n_tw.state_tw_lcc +city_tw_211,base.tw,莒光鄉,211,l10n_tw.state_tw_lcc +city_tw_212,base.tw,東引鄉,212,l10n_tw.state_tw_lcc +city_tw_220,base.tw,板橋區,220,l10n_tw.state_tw_ntpc +city_tw_221,base.tw,汐止區,221,l10n_tw.state_tw_ntpc +city_tw_222,base.tw,深坑區,222,l10n_tw.state_tw_ntpc +city_tw_223,base.tw,石碇區,223,l10n_tw.state_tw_ntpc +city_tw_224,base.tw,瑞芳區,224,l10n_tw.state_tw_ntpc +city_tw_226,base.tw,平溪區,226,l10n_tw.state_tw_ntpc +city_tw_227,base.tw,雙溪區,227,l10n_tw.state_tw_ntpc +city_tw_228,base.tw,貢寮區,228,l10n_tw.state_tw_ntpc +city_tw_231,base.tw,新店區,231,l10n_tw.state_tw_ntpc +city_tw_232,base.tw,坪林區,232,l10n_tw.state_tw_ntpc +city_tw_233,base.tw,烏來區,233,l10n_tw.state_tw_ntpc +city_tw_234,base.tw,永和區,234,l10n_tw.state_tw_ntpc +city_tw_235,base.tw,中和區,235,l10n_tw.state_tw_ntpc +city_tw_236,base.tw,土城區,236,l10n_tw.state_tw_ntpc +city_tw_237,base.tw,三峽區,237,l10n_tw.state_tw_ntpc +city_tw_238,base.tw,樹林區,238,l10n_tw.state_tw_ntpc +city_tw_239,base.tw,鶯歌區,239,l10n_tw.state_tw_ntpc +city_tw_241,base.tw,三重區,241,l10n_tw.state_tw_ntpc +city_tw_242,base.tw,新莊區,242,l10n_tw.state_tw_ntpc +city_tw_243,base.tw,泰山區,243,l10n_tw.state_tw_ntpc +city_tw_244,base.tw,林口區,244,l10n_tw.state_tw_ntpc +city_tw_247,base.tw,蘆洲區,247,l10n_tw.state_tw_ntpc +city_tw_248,base.tw,五股區,248,l10n_tw.state_tw_ntpc +city_tw_249,base.tw,八里區,249,l10n_tw.state_tw_ntpc +city_tw_251,base.tw,淡水區,251,l10n_tw.state_tw_ntpc +city_tw_252,base.tw,三芝區,252,l10n_tw.state_tw_ntpc +city_tw_253,base.tw,石門區,253,l10n_tw.state_tw_ntpc +city_tw_260,base.tw,宜蘭市,260,l10n_tw.state_tw_ilh +city_tw_261,base.tw,頭城鎮,261,l10n_tw.state_tw_ilh +city_tw_262,base.tw,礁溪鄉,262,l10n_tw.state_tw_ilh +city_tw_263,base.tw,壯圍鄉,263,l10n_tw.state_tw_ilh +city_tw_264,base.tw,員山鄉,264,l10n_tw.state_tw_ilh +city_tw_265,base.tw,羅東鎮,265,l10n_tw.state_tw_ilh +city_tw_266,base.tw,三星鄉,266,l10n_tw.state_tw_ilh +city_tw_267,base.tw,大同鄉,267,l10n_tw.state_tw_ilh +city_tw_268,base.tw,五結鄉,268,l10n_tw.state_tw_ilh +city_tw_269,base.tw,冬山鄉,269,l10n_tw.state_tw_ilh +city_tw_270,base.tw,蘇澳鎮,270,l10n_tw.state_tw_ilh +city_tw_272,base.tw,南澳鄉,272,l10n_tw.state_tw_ilh +city_tw_290,base.tw,釣魚臺,290,l10n_tw.state_tw_ilh +city_tw_300,base.tw,北區,300,l10n_tw.state_tw_hct +city_tw_300_1,base.tw,東區,300,l10n_tw.state_tw_hct +city_tw_300_2,base.tw,香山區,300,l10n_tw.state_tw_hct +city_tw_302,base.tw,竹北市,302,l10n_tw.state_tw_hch +city_tw_303,base.tw,湖口鄉,303,l10n_tw.state_tw_hch +city_tw_304,base.tw,新豐鄉,304,l10n_tw.state_tw_hch +city_tw_305,base.tw,新埔鎮,305,l10n_tw.state_tw_hch +city_tw_306,base.tw,關西鎮,306,l10n_tw.state_tw_hch +city_tw_307,base.tw,芎林鄉,307,l10n_tw.state_tw_hch +city_tw_308,base.tw,寶山鄉,308,l10n_tw.state_tw_hch +city_tw_310,base.tw,竹東鎮,310,l10n_tw.state_tw_hch +city_tw_311,base.tw,五峰鄉,311,l10n_tw.state_tw_hch +city_tw_312,base.tw,橫山鄉,312,l10n_tw.state_tw_hch +city_tw_313,base.tw,尖石鄉,313,l10n_tw.state_tw_hch +city_tw_314,base.tw,北埔鄉,314,l10n_tw.state_tw_hch +city_tw_315,base.tw,峨眉鄉,315,l10n_tw.state_tw_hch +city_tw_320,base.tw,中壢區,320,l10n_tw.state_tw_tyc +city_tw_324,base.tw,平鎮區,324,l10n_tw.state_tw_tyc +city_tw_325,base.tw,龍潭區,325,l10n_tw.state_tw_tyc +city_tw_326,base.tw,楊梅區,326,l10n_tw.state_tw_tyc +city_tw_327,base.tw,新屋區,327,l10n_tw.state_tw_tyc +city_tw_328,base.tw,觀音區,328,l10n_tw.state_tw_tyc +city_tw_330,base.tw,桃園區,330,l10n_tw.state_tw_tyc +city_tw_333,base.tw,龜山區,333,l10n_tw.state_tw_tyc +city_tw_334,base.tw,八德區,334,l10n_tw.state_tw_tyc +city_tw_335,base.tw,大溪區,335,l10n_tw.state_tw_tyc +city_tw_336,base.tw,復興區,336,l10n_tw.state_tw_tyc +city_tw_337,base.tw,大園區,337,l10n_tw.state_tw_tyc +city_tw_338,base.tw,蘆竹區,338,l10n_tw.state_tw_tyc +city_tw_350,base.tw,竹南鎮,350,l10n_tw.state_tw_mlh +city_tw_351,base.tw,頭份市,351,l10n_tw.state_tw_mlh +city_tw_352,base.tw,三灣鄉,352,l10n_tw.state_tw_mlh +city_tw_353,base.tw,南庄鄉,353,l10n_tw.state_tw_mlh +city_tw_354,base.tw,獅潭鄉,354,l10n_tw.state_tw_mlh +city_tw_356,base.tw,後龍鎮,356,l10n_tw.state_tw_mlh +city_tw_357,base.tw,通霄鎮,357,l10n_tw.state_tw_mlh +city_tw_358,base.tw,苑裡鎮,358,l10n_tw.state_tw_mlh +city_tw_360,base.tw,苗栗市,360,l10n_tw.state_tw_mlh +city_tw_361,base.tw,造橋鄉,361,l10n_tw.state_tw_mlh +city_tw_362,base.tw,頭屋鄉,362,l10n_tw.state_tw_mlh +city_tw_363,base.tw,公館鄉,363,l10n_tw.state_tw_mlh +city_tw_364,base.tw,大湖鄉,364,l10n_tw.state_tw_mlh +city_tw_365,base.tw,泰安鄉,365,l10n_tw.state_tw_mlh +city_tw_366,base.tw,銅鑼鄉,366,l10n_tw.state_tw_mlh +city_tw_367,base.tw,三義鄉,367,l10n_tw.state_tw_mlh +city_tw_368,base.tw,西湖鄉,368,l10n_tw.state_tw_mlh +city_tw_369,base.tw,卓蘭鎮,369,l10n_tw.state_tw_mlh +city_tw_400,base.tw,中區,400,l10n_tw.state_tw_tcc +city_tw_401,base.tw,東區,401,l10n_tw.state_tw_tcc +city_tw_402,base.tw,南區,402,l10n_tw.state_tw_tcc +city_tw_403,base.tw,西區,403,l10n_tw.state_tw_tcc +city_tw_404,base.tw,北區,404,l10n_tw.state_tw_tcc +city_tw_406,base.tw,北屯區,406,l10n_tw.state_tw_tcc +city_tw_407,base.tw,西屯區,407,l10n_tw.state_tw_tcc +city_tw_408,base.tw,南屯區,408,l10n_tw.state_tw_tcc +city_tw_411,base.tw,太平區,411,l10n_tw.state_tw_tcc +city_tw_412,base.tw,大里區,412,l10n_tw.state_tw_tcc +city_tw_413,base.tw,霧峰區,413,l10n_tw.state_tw_tcc +city_tw_414,base.tw,烏日區,414,l10n_tw.state_tw_tcc +city_tw_420,base.tw,豐原區,420,l10n_tw.state_tw_tcc +city_tw_421,base.tw,后里區,421,l10n_tw.state_tw_tcc +city_tw_422,base.tw,石岡區,422,l10n_tw.state_tw_tcc +city_tw_423,base.tw,東勢區,423,l10n_tw.state_tw_tcc +city_tw_424,base.tw,和平區,424,l10n_tw.state_tw_tcc +city_tw_426,base.tw,新社區,426,l10n_tw.state_tw_tcc +city_tw_427,base.tw,潭子區,427,l10n_tw.state_tw_tcc +city_tw_428,base.tw,大雅區,428,l10n_tw.state_tw_tcc +city_tw_429,base.tw,神岡區,429,l10n_tw.state_tw_tcc +city_tw_432,base.tw,大肚區,432,l10n_tw.state_tw_tcc +city_tw_433,base.tw,沙鹿區,433,l10n_tw.state_tw_tcc +city_tw_434,base.tw,龍井區,434,l10n_tw.state_tw_tcc +city_tw_435,base.tw,梧棲區,435,l10n_tw.state_tw_tcc +city_tw_436,base.tw,清水區,436,l10n_tw.state_tw_tcc +city_tw_437,base.tw,大甲區,437,l10n_tw.state_tw_tcc +city_tw_438,base.tw,外埔區,438,l10n_tw.state_tw_tcc +city_tw_439,base.tw,大安區,439,l10n_tw.state_tw_tcc +city_tw_500,base.tw,彰化市,500,l10n_tw.state_tw_chh +city_tw_502,base.tw,芬園鄉,502,l10n_tw.state_tw_chh +city_tw_503,base.tw,花壇鄉,503,l10n_tw.state_tw_chh +city_tw_504,base.tw,秀水鄉,504,l10n_tw.state_tw_chh +city_tw_505,base.tw,鹿港鎮,505,l10n_tw.state_tw_chh +city_tw_506,base.tw,福興鄉,506,l10n_tw.state_tw_chh +city_tw_507,base.tw,線西鄉,507,l10n_tw.state_tw_chh +city_tw_508,base.tw,和美鎮,508,l10n_tw.state_tw_chh +city_tw_509,base.tw,伸港鄉,509,l10n_tw.state_tw_chh +city_tw_510,base.tw,員林市,510,l10n_tw.state_tw_chh +city_tw_511,base.tw,社頭鄉,511,l10n_tw.state_tw_chh +city_tw_512,base.tw,永靖鄉,512,l10n_tw.state_tw_chh +city_tw_513,base.tw,埔心鄉,513,l10n_tw.state_tw_chh +city_tw_514,base.tw,溪湖鎮,514,l10n_tw.state_tw_chh +city_tw_515,base.tw,大村鄉,515,l10n_tw.state_tw_chh +city_tw_516,base.tw,埔鹽鄉,516,l10n_tw.state_tw_chh +city_tw_520,base.tw,田中鎮,520,l10n_tw.state_tw_chh +city_tw_521,base.tw,北斗鎮,521,l10n_tw.state_tw_chh +city_tw_522,base.tw,田尾鄉,522,l10n_tw.state_tw_chh +city_tw_523,base.tw,埤頭鄉,523,l10n_tw.state_tw_chh +city_tw_524,base.tw,溪州鄉,524,l10n_tw.state_tw_chh +city_tw_525,base.tw,竹塘鄉,525,l10n_tw.state_tw_chh +city_tw_526,base.tw,二林鎮,526,l10n_tw.state_tw_chh +city_tw_527,base.tw,大城鄉,527,l10n_tw.state_tw_chh +city_tw_528,base.tw,芳苑鄉,528,l10n_tw.state_tw_chh +city_tw_530,base.tw,二水鄉,530,l10n_tw.state_tw_chh +city_tw_540,base.tw,南投市,540,l10n_tw.state_tw_ntc +city_tw_541,base.tw,中寮鄉,541,l10n_tw.state_tw_ntc +city_tw_542,base.tw,草屯鎮,542,l10n_tw.state_tw_ntc +city_tw_544,base.tw,國姓鄉,544,l10n_tw.state_tw_ntc +city_tw_545,base.tw,埔里鎮,545,l10n_tw.state_tw_ntc +city_tw_546,base.tw,仁愛鄉,546,l10n_tw.state_tw_ntc +city_tw_551,base.tw,名間鄉,551,l10n_tw.state_tw_ntc +city_tw_552,base.tw,集集鎮,552,l10n_tw.state_tw_ntc +city_tw_553,base.tw,水里鄉,553,l10n_tw.state_tw_ntc +city_tw_555,base.tw,魚池鄉,555,l10n_tw.state_tw_ntc +city_tw_556,base.tw,信義鄉,556,l10n_tw.state_tw_ntc +city_tw_557,base.tw,竹山鎮,557,l10n_tw.state_tw_ntc +city_tw_558,base.tw,鹿谷鄉,558,l10n_tw.state_tw_ntc +city_tw_600,base.tw,東區,600,l10n_tw.state_tw_cic +city_tw_600_1,base.tw,西區,600,l10n_tw.state_tw_cic +city_tw_602,base.tw,番路鄉,602,l10n_tw.state_tw_cih +city_tw_603,base.tw,梅山鄉,603,l10n_tw.state_tw_cih +city_tw_604,base.tw,竹崎鄉,604,l10n_tw.state_tw_cih +city_tw_605,base.tw,阿里山鄉,605,l10n_tw.state_tw_cih +city_tw_606,base.tw,中埔鄉,606,l10n_tw.state_tw_cih +city_tw_607,base.tw,大埔鄉,607,l10n_tw.state_tw_cih +city_tw_608,base.tw,水上鄉,608,l10n_tw.state_tw_cih +city_tw_611,base.tw,鹿草鄉,611,l10n_tw.state_tw_cih +city_tw_612,base.tw,太保市,612,l10n_tw.state_tw_cih +city_tw_613,base.tw,朴子市,613,l10n_tw.state_tw_cih +city_tw_614,base.tw,東石鄉,614,l10n_tw.state_tw_cih +city_tw_615,base.tw,六腳鄉,615,l10n_tw.state_tw_cih +city_tw_616,base.tw,新港鄉,616,l10n_tw.state_tw_cih +city_tw_621,base.tw,民雄鄉,621,l10n_tw.state_tw_cih +city_tw_622,base.tw,大林鎮,622,l10n_tw.state_tw_cih +city_tw_623,base.tw,溪口鄉,623,l10n_tw.state_tw_cih +city_tw_624,base.tw,義竹鄉,624,l10n_tw.state_tw_cih +city_tw_625,base.tw,布袋鎮,625,l10n_tw.state_tw_cih +city_tw_630,base.tw,斗南鎮,630,l10n_tw.state_tw_ylh +city_tw_631,base.tw,大埤鄉,631,l10n_tw.state_tw_ylh +city_tw_632,base.tw,虎尾鎮,632,l10n_tw.state_tw_ylh +city_tw_633,base.tw,土庫鎮,633,l10n_tw.state_tw_ylh +city_tw_634,base.tw,褒忠鄉,634,l10n_tw.state_tw_ylh +city_tw_635,base.tw,東勢鄉,635,l10n_tw.state_tw_ylh +city_tw_636,base.tw,台西鄉,636,l10n_tw.state_tw_ylh +city_tw_637,base.tw,崙背鄉,637,l10n_tw.state_tw_ylh +city_tw_638,base.tw,麥寮鄉,638,l10n_tw.state_tw_ylh +city_tw_640,base.tw,斗六市,640,l10n_tw.state_tw_ylh +city_tw_643,base.tw,林內鄉,643,l10n_tw.state_tw_ylh +city_tw_646,base.tw,古坑鄉,646,l10n_tw.state_tw_ylh +city_tw_647,base.tw,莿桐鄉,647,l10n_tw.state_tw_ylh +city_tw_648,base.tw,西螺鎮,648,l10n_tw.state_tw_ylh +city_tw_649,base.tw,二崙鄉,649,l10n_tw.state_tw_ylh +city_tw_651,base.tw,北港鎮,651,l10n_tw.state_tw_ylh +city_tw_652,base.tw,水林鄉,652,l10n_tw.state_tw_ylh +city_tw_653,base.tw,口湖鄉,653,l10n_tw.state_tw_ylh +city_tw_654,base.tw,四湖鄉,654,l10n_tw.state_tw_ylh +city_tw_655,base.tw,元長鄉,655,l10n_tw.state_tw_ylh +city_tw_700,base.tw,中西區,700,l10n_tw.state_tw_tnh +city_tw_701,base.tw,東區,701,l10n_tw.state_tw_tnh +city_tw_702,base.tw,南區,702,l10n_tw.state_tw_tnh +city_tw_704,base.tw,北區,704,l10n_tw.state_tw_tnh +city_tw_708,base.tw,安平區,708,l10n_tw.state_tw_tnh +city_tw_709,base.tw,安南區,709,l10n_tw.state_tw_tnh +city_tw_710,base.tw,永康區,710,l10n_tw.state_tw_tnh +city_tw_711,base.tw,歸仁區,711,l10n_tw.state_tw_tnh +city_tw_712,base.tw,新化區,712,l10n_tw.state_tw_tnh +city_tw_713,base.tw,左鎮區,713,l10n_tw.state_tw_tnh +city_tw_714,base.tw,玉井區,714,l10n_tw.state_tw_tnh +city_tw_715,base.tw,楠西區,715,l10n_tw.state_tw_tnh +city_tw_716,base.tw,南化區,716,l10n_tw.state_tw_tnh +city_tw_717,base.tw,仁德區,717,l10n_tw.state_tw_tnh +city_tw_718,base.tw,關廟區,718,l10n_tw.state_tw_tnh +city_tw_719,base.tw,龍崎區,719,l10n_tw.state_tw_tnh +city_tw_720,base.tw,官田區,720,l10n_tw.state_tw_tnh +city_tw_721,base.tw,麻豆區,721,l10n_tw.state_tw_tnh +city_tw_722,base.tw,佳里區,722,l10n_tw.state_tw_tnh +city_tw_723,base.tw,西港區,723,l10n_tw.state_tw_tnh +city_tw_724,base.tw,七股區,724,l10n_tw.state_tw_tnh +city_tw_725,base.tw,將軍區,725,l10n_tw.state_tw_tnh +city_tw_726,base.tw,學甲區,726,l10n_tw.state_tw_tnh +city_tw_727,base.tw,北門區,727,l10n_tw.state_tw_tnh +city_tw_730,base.tw,新營區,730,l10n_tw.state_tw_tnh +city_tw_731,base.tw,後壁區,731,l10n_tw.state_tw_tnh +city_tw_732,base.tw,白河區,732,l10n_tw.state_tw_tnh +city_tw_733,base.tw,東山區,733,l10n_tw.state_tw_tnh +city_tw_734,base.tw,六甲區,734,l10n_tw.state_tw_tnh +city_tw_735,base.tw,下營區,735,l10n_tw.state_tw_tnh +city_tw_736,base.tw,柳營區,736,l10n_tw.state_tw_tnh +city_tw_737,base.tw,鹽水區,737,l10n_tw.state_tw_tnh +city_tw_741,base.tw,善化區,741,l10n_tw.state_tw_tnh +city_tw_742,base.tw,大內區,742,l10n_tw.state_tw_tnh +city_tw_743,base.tw,山上區,743,l10n_tw.state_tw_tnh +city_tw_744,base.tw,新市區,744,l10n_tw.state_tw_tnh +city_tw_745,base.tw,安定區,745,l10n_tw.state_tw_tnh +city_tw_800,base.tw,新興區,800,l10n_tw.state_tw_khc +city_tw_801,base.tw,前金區,801,l10n_tw.state_tw_khc +city_tw_802,base.tw,苓雅區,802,l10n_tw.state_tw_khc +city_tw_803,base.tw,鹽埕區,803,l10n_tw.state_tw_khc +city_tw_804,base.tw,鼓山區,804,l10n_tw.state_tw_khc +city_tw_805,base.tw,旗津區,805,l10n_tw.state_tw_khc +city_tw_806,base.tw,前鎮區,806,l10n_tw.state_tw_khc +city_tw_807,base.tw,三民區,807,l10n_tw.state_tw_khc +city_tw_811,base.tw,楠梓區,811,l10n_tw.state_tw_khc +city_tw_812,base.tw,小港區,812,l10n_tw.state_tw_khc +city_tw_813,base.tw,左營區,813,l10n_tw.state_tw_khc +city_tw_814,base.tw,仁武區,814,l10n_tw.state_tw_khc +city_tw_815,base.tw,大社區,815,l10n_tw.state_tw_khc +city_tw_817,base.tw,東沙群島,817,l10n_tw.state_tw_khc +city_tw_819,base.tw,南沙群島,819,l10n_tw.state_tw_khc +city_tw_820,base.tw,岡山區,820,l10n_tw.state_tw_khc +city_tw_821,base.tw,路竹區,821,l10n_tw.state_tw_khc +city_tw_822,base.tw,阿蓮區,822,l10n_tw.state_tw_khc +city_tw_823,base.tw,田寮區,823,l10n_tw.state_tw_khc +city_tw_824,base.tw,燕巢區,824,l10n_tw.state_tw_khc +city_tw_825,base.tw,橋頭區,825,l10n_tw.state_tw_khc +city_tw_826,base.tw,梓官區,826,l10n_tw.state_tw_khc +city_tw_827,base.tw,彌陀區,827,l10n_tw.state_tw_khc +city_tw_828,base.tw,永安區,828,l10n_tw.state_tw_khc +city_tw_829,base.tw,湖內區,829,l10n_tw.state_tw_khc +city_tw_830,base.tw,鳳山區,830,l10n_tw.state_tw_khc +city_tw_831,base.tw,大寮區,831,l10n_tw.state_tw_khc +city_tw_832,base.tw,林園區,832,l10n_tw.state_tw_khc +city_tw_833,base.tw,鳥松區,833,l10n_tw.state_tw_khc +city_tw_840,base.tw,大樹區,840,l10n_tw.state_tw_khc +city_tw_842,base.tw,旗山區,842,l10n_tw.state_tw_khc +city_tw_843,base.tw,美濃區,843,l10n_tw.state_tw_khc +city_tw_844,base.tw,六龜區,844,l10n_tw.state_tw_khc +city_tw_845,base.tw,內門區,845,l10n_tw.state_tw_khc +city_tw_846,base.tw,杉林區,846,l10n_tw.state_tw_khc +city_tw_847,base.tw,甲仙區,847,l10n_tw.state_tw_khc +city_tw_848,base.tw,桃源區,848,l10n_tw.state_tw_khc +city_tw_849,base.tw,那瑪夏區,849,l10n_tw.state_tw_khc +city_tw_851,base.tw,茂林區,851,l10n_tw.state_tw_khc +city_tw_852,base.tw,茄萣區,852,l10n_tw.state_tw_khc +city_tw_880,base.tw,馬公市,880,l10n_tw.state_tw_phc +city_tw_881,base.tw,西嶼鄉,881,l10n_tw.state_tw_phc +city_tw_882,base.tw,望安鄉,882,l10n_tw.state_tw_phc +city_tw_883,base.tw,七美鄉,883,l10n_tw.state_tw_phc +city_tw_884,base.tw,白沙鄉,884,l10n_tw.state_tw_phc +city_tw_885,base.tw,湖西鄉,885,l10n_tw.state_tw_phc +city_tw_890,base.tw,金沙鎮,890,l10n_tw.state_tw_kmc +city_tw_891,base.tw,金湖鎮,891,l10n_tw.state_tw_kmc +city_tw_892,base.tw,金寧鄉,892,l10n_tw.state_tw_kmc +city_tw_893,base.tw,金城鎮,893,l10n_tw.state_tw_kmc +city_tw_894,base.tw,烈嶼鄉,894,l10n_tw.state_tw_kmc +city_tw_896,base.tw,烏坵鄉,896,l10n_tw.state_tw_kmc +city_tw_900,base.tw,屏東市,900,l10n_tw.state_tw_pth +city_tw_901,base.tw,三地門鄉,901,l10n_tw.state_tw_pth +city_tw_902,base.tw,霧台鄉,902,l10n_tw.state_tw_pth +city_tw_903,base.tw,瑪家鄉,903,l10n_tw.state_tw_pth +city_tw_904,base.tw,九如鄉,904,l10n_tw.state_tw_pth +city_tw_905,base.tw,里港鄉,905,l10n_tw.state_tw_pth +city_tw_906,base.tw,高樹鄉,906,l10n_tw.state_tw_pth +city_tw_907,base.tw,鹽埔鄉,907,l10n_tw.state_tw_pth +city_tw_908,base.tw,長治鄉,908,l10n_tw.state_tw_pth +city_tw_909,base.tw,麟洛鄉,909,l10n_tw.state_tw_pth +city_tw_911,base.tw,竹田鄉,911,l10n_tw.state_tw_pth +city_tw_912,base.tw,內埔鄉,912,l10n_tw.state_tw_pth +city_tw_913,base.tw,萬丹鄉,913,l10n_tw.state_tw_pth +city_tw_920,base.tw,潮州鎮,920,l10n_tw.state_tw_pth +city_tw_921,base.tw,泰武鄉,921,l10n_tw.state_tw_pth +city_tw_922,base.tw,來義鄉,922,l10n_tw.state_tw_pth +city_tw_923,base.tw,萬巒鄉,923,l10n_tw.state_tw_pth +city_tw_924,base.tw,崁頂鄉,924,l10n_tw.state_tw_pth +city_tw_925,base.tw,新埤鄉,925,l10n_tw.state_tw_pth +city_tw_926,base.tw,南州鄉,926,l10n_tw.state_tw_pth +city_tw_927,base.tw,林邊鄉,927,l10n_tw.state_tw_pth +city_tw_928,base.tw,東港鎮,928,l10n_tw.state_tw_pth +city_tw_929,base.tw,琉球鄉,929,l10n_tw.state_tw_pth +city_tw_931,base.tw,佳冬鄉,931,l10n_tw.state_tw_pth +city_tw_932,base.tw,新園鄉,932,l10n_tw.state_tw_pth +city_tw_940,base.tw,枋寮鄉,940,l10n_tw.state_tw_pth +city_tw_941,base.tw,枋山鄉,941,l10n_tw.state_tw_pth +city_tw_942,base.tw,春日鄉,942,l10n_tw.state_tw_pth +city_tw_943,base.tw,獅子鄉,943,l10n_tw.state_tw_pth +city_tw_944,base.tw,車城鄉,944,l10n_tw.state_tw_pth +city_tw_945,base.tw,牡丹鄉,945,l10n_tw.state_tw_pth +city_tw_946,base.tw,恆春鎮,946,l10n_tw.state_tw_pth +city_tw_947,base.tw,滿州鄉,947,l10n_tw.state_tw_pth +city_tw_950,base.tw,台東市,950,l10n_tw.state_tw_tth +city_tw_951,base.tw,綠島鄉,951,l10n_tw.state_tw_tth +city_tw_952,base.tw,蘭嶼鄉,952,l10n_tw.state_tw_tth +city_tw_953,base.tw,延平鄉,953,l10n_tw.state_tw_tth +city_tw_954,base.tw,卑南鄉,954,l10n_tw.state_tw_tth +city_tw_955,base.tw,鹿野鄉,955,l10n_tw.state_tw_tth +city_tw_956,base.tw,關山鎮,956,l10n_tw.state_tw_tth +city_tw_957,base.tw,海端鄉,957,l10n_tw.state_tw_tth +city_tw_958,base.tw,池上鄉,958,l10n_tw.state_tw_tth +city_tw_959,base.tw,東河鄉,959,l10n_tw.state_tw_tth +city_tw_961,base.tw,成功鎮,961,l10n_tw.state_tw_tth +city_tw_962,base.tw,長濱鄉,962,l10n_tw.state_tw_tth +city_tw_963,base.tw,太麻里鄉,963,l10n_tw.state_tw_tth +city_tw_964,base.tw,金峰鄉,964,l10n_tw.state_tw_tth +city_tw_965,base.tw,大武鄉,965,l10n_tw.state_tw_tth +city_tw_966,base.tw,達仁鄉,966,l10n_tw.state_tw_tth +city_tw_970,base.tw,花蓮市,970,l10n_tw.state_tw_hlh +city_tw_971,base.tw,新城鄉,971,l10n_tw.state_tw_hlh +city_tw_972,base.tw,秀林鄉,972,l10n_tw.state_tw_hlh +city_tw_973,base.tw,吉安鄉,973,l10n_tw.state_tw_hlh +city_tw_974,base.tw,壽豐鄉,974,l10n_tw.state_tw_hlh +city_tw_975,base.tw,鳳林鎮,975,l10n_tw.state_tw_hlh +city_tw_976,base.tw,光復鄉,976,l10n_tw.state_tw_hlh +city_tw_977,base.tw,豐濱鄉,977,l10n_tw.state_tw_hlh +city_tw_978,base.tw,瑞穗鄉,978,l10n_tw.state_tw_hlh +city_tw_979,base.tw,萬榮鄉,979,l10n_tw.state_tw_hlh +city_tw_981,base.tw,玉里鎮,981,l10n_tw.state_tw_hlh +city_tw_982,base.tw,卓溪鄉,982,l10n_tw.state_tw_hlh +city_tw_983,base.tw,富里鄉,983,l10n_tw.state_tw_hlh diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res.country.state.csv b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res.country.state.csv new file mode 100644 index 0000000..2b202ba --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res.country.state.csv @@ -0,0 +1,23 @@ +id,country_id/id,name,code +state_tw_chh,base.tw,彰化縣,CHH +state_tw_cic,base.tw,嘉義市,CIC +state_tw_cih,base.tw,嘉義縣,CIH +state_tw_hch,base.tw,新竹縣,HCH +state_tw_hct,base.tw,新竹市,HCT +state_tw_hlh,base.tw,花蓮縣,HLH +state_tw_ilh,base.tw,宜蘭縣,ILH +state_tw_khc,base.tw,高雄市,KHC +state_tw_klc,base.tw,基隆市,KLC +state_tw_kmc,base.tw,金門縣,KMC +state_tw_lcc,base.tw,連江縣,LCC +state_tw_mlh,base.tw,苗栗縣,MLH +state_tw_ntc,base.tw,南投縣,NTC +state_tw_ntpc,base.tw,新北市,NTPC +state_tw_phc,base.tw,澎湖縣,PHC +state_tw_pth,base.tw,屏東縣,PTH +state_tw_tcc,base.tw,台中市,TCC +state_tw_tnh,base.tw,台南市,TNH +state_tw_tpc,base.tw,台北市,TPC +state_tw_tth,base.tw,台東縣,TTH +state_tw_tyc,base.tw,桃園市,TYC +state_tw_ylh,base.tw,雲林縣,YLH diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res_country_data.xml b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res_country_data.xml new file mode 100644 index 0000000..391b661 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res_country_data.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res_currency_data.xml b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res_currency_data.xml new file mode 100644 index 0000000..5638f50 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/data/res_currency_data.xml @@ -0,0 +1,9 @@ + + + + + + before + + + diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/demo/demo_company.xml new file mode 100644 index 0000000..dabecef --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/demo/demo_company.xml @@ -0,0 +1,34 @@ + + + + TW Company + + 信義路 + + + + 110 + +886 2 1234 5678 + info@company.twexample.com + www.twexample.com + + + + TW Company + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/i18n/fr_BE.po b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/i18n/fr_BE.po new file mode 100644 index 0000000..72f29ea --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/i18n/fr_BE.po @@ -0,0 +1,2813 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_tw +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-26 10:11+0000\n" +"PO-Revision-Date: 2022-04-26 10:11+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_217100 +#: model:account.account,name:l10n_tw.2_tw_217100 +#: model:account.account.template,name:l10n_tw.tw_217100 +msgid "Accounts payable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_119100 +#: model:account.account,name:l10n_tw.2_tw_119100 +#: model:account.account.template,name:l10n_tw.tw_119100 +msgid "Accounts receivable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_119150 +#: model:account.account,name:l10n_tw.2_tw_119150 +#: model:account.account.template,name:l10n_tw.tw_119150 +msgid "Accounts receivable (PoS)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_155200 +#: model:account.account,name:l10n_tw.2_tw_155200 +#: model:account.account.template,name:l10n_tw.tw_155200 +msgid "Accumulated amortization, other intangible assets" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_141300 +#: model:account.account,name:l10n_tw.2_tw_141300 +#: model:account.account.template,name:l10n_tw.tw_141300 +msgid "Accumulated depreciation, buildings and structures" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_144200 +#: model:account.account,name:l10n_tw.2_tw_144200 +#: model:account.account.template,name:l10n_tw.tw_144200 +msgid "Accumulated depreciation, leased assets" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_142200 +#: model:account.account,name:l10n_tw.2_tw_142200 +#: model:account.account.template,name:l10n_tw.tw_142200 +msgid "Accumulated depreciation, machinery and equipment" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_143200 +#: model:account.account,name:l10n_tw.2_tw_143200 +#: model:account.account.template,name:l10n_tw.tw_143200 +msgid "Accumulated depreciation, office equipment" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_335100 +#: model:account.account,name:l10n_tw.2_tw_335100 +#: model:account.account.template,name:l10n_tw.tw_335100 +msgid "Accumulated profit and loss" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_222100 +#: model:account.account,name:l10n_tw.2_tw_222100 +#: model:account.account.template,name:l10n_tw.tw_222100 +msgid "Advance sales receipts" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611800 +#: model:account.account,name:l10n_tw.2_tw_611800 +#: model:account.account.template,name:l10n_tw.tw_611800 +msgid "Advertisement expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_211200 +#: model:account.account,name:l10n_tw.2_tw_211200 +#: model:account.account.template,name:l10n_tw.tw_211200 +msgid "Bank loan" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_141100 +#: model:account.account,name:l10n_tw.2_tw_141100 +#: model:account.account.template,name:l10n_tw.tw_141100 +msgid "Buildings and structures, cost" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126800 +#: model:account.account,name:l10n_tw.2_tw_126800 +#: model:account.account.template,name:l10n_tw.tw_126800 +msgid "Business tax paid (or Input VAT)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_219400 +#: model:account.account,name:l10n_tw.2_tw_219400 +#: model:account.account.template,name:l10n_tw.tw_219400 +msgid "Business tax payable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_220400 +#: model:account.account,name:l10n_tw.2_tw_220400 +#: model:account.account.template,name:l10n_tw.tw_220400 +msgid "Business tax received (or Output VAT)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_321100 +#: model:account.account,name:l10n_tw.2_tw_321100 +#: model:account.account.template,name:l10n_tw.tw_321100 +msgid "Capital surplus, additional paid-in capital arising from ordinary share" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_718500 +#: model:account.account,name:l10n_tw.2_tw_718500 +#: model:account.account.template,name:l10n_tw.tw_718500 +msgid "Cash difference gains" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_718600 +#: model:account.account,name:l10n_tw.2_tw_718600 +#: model:account.account.template,name:l10n_tw.tw_718600 +msgid "Cash difference losses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613100 +#: model:account.account,name:l10n_tw.2_tw_613100 +#: model:account.account.template,name:l10n_tw.tw_613100 +msgid "Commissions expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_723200 +#: model:account.account,name:l10n_tw.2_tw_723200 +#: model:account.account.template,name:l10n_tw.tw_723200 +msgid "Commissions revenue" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_511100 +#: model:account.account,name:l10n_tw.2_tw_511100 +#: model:account.account.template,name:l10n_tw.tw_511100 +msgid "Cost of sales" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_156100 +#: model:account.account,name:l10n_tw.2_tw_156100 +#: model:account.account.template,name:l10n_tw.tw_156100 +msgid "Deferred tax assets" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612600 +#: model:account.account,name:l10n_tw.2_tw_612600 +#: model:account.account.template,name:l10n_tw.tw_612600 +msgid "Depletions and amortizations" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516300 +#: model:account.account,name:l10n_tw.1_tw_612500 +#: model:account.account,name:l10n_tw.2_tw_516300 +#: model:account.account,name:l10n_tw.2_tw_612500 +#: model:account.account.template,name:l10n_tw.tw_516300 +#: model:account.account.template,name:l10n_tw.tw_612500 +msgid "Depreciations" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_514100 +#: model:account.account,name:l10n_tw.2_tw_514100 +#: model:account.account.template,name:l10n_tw.tw_514100 +msgid "Direct labor" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_714100 +#: model:account.account,name:l10n_tw.2_tw_714100 +#: model:account.account.template,name:l10n_tw.tw_714100 +msgid "Dividend revenue" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_220100 +#: model:account.account,name:l10n_tw.2_tw_220100 +#: model:account.account.template,name:l10n_tw.tw_220100 +msgid "Dividends payable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612200 +#: model:account.account,name:l10n_tw.2_tw_612200 +#: model:account.account.template,name:l10n_tw.tw_612200 +msgid "Donation expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_121100 +#: model:account.account,name:l10n_tw.2_tw_121100 +#: model:account.account.template,name:l10n_tw.tw_121100 +msgid "Earned revenue receivable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612900 +#: model:account.account,name:l10n_tw.2_tw_612900 +#: model:account.account.template,name:l10n_tw.tw_612900 +msgid "Employee benefits/welfare" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612100 +#: model:account.account,name:l10n_tw.2_tw_612100 +#: model:account.account.template,name:l10n_tw.tw_612100 +msgid "Entertainment expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123500 +#: model:account.account,name:l10n_tw.2_tw_123500 +#: model:account.account.template,name:l10n_tw.tw_123500 +msgid "Finished goods" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_718100 +#: model:account.account,name:l10n_tw.2_tw_718100 +#: model:account.account.template,name:l10n_tw.tw_718100 +msgid "Foreign exchange gains" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_718200 +#: model:account.account,name:l10n_tw.2_tw_718200 +#: model:account.account.template,name:l10n_tw.tw_718200 +msgid "Foreign exchange losses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611500 +#: model:account.account,name:l10n_tw.2_tw_611500 +#: model:account.account.template,name:l10n_tw.tw_611500 +msgid "Freight" +msgstr "" + +#. module: l10n_tw +#: model:account.tax.group,name:l10n_tw.tax_group_gst_5 +msgid "GST 5%" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,name:l10n_tw.1_tw_tax_purchase_inc_5 +#: model:account.tax,name:l10n_tw.2_tw_tax_purchase_inc_5 +#: model:account.tax.template,name:l10n_tw.tw_tax_purchase_inc_5 +msgid "GST Inc Purchase (5%)" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,name:l10n_tw.1_tw_tax_sale_inc_5 +#: model:account.tax,name:l10n_tw.2_tw_tax_sale_inc_5 +#: model:account.tax.template,name:l10n_tw.tw_tax_sale_inc_5 +msgid "GST Inc Sale (5%)" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,description:l10n_tw.1_tw_tax_purchase_inc_5 +#: model:account.tax,description:l10n_tw.2_tw_tax_purchase_inc_5 +#: model:account.tax.template,description:l10n_tw.tw_tax_purchase_inc_5 +msgid "GST Inclusive Purchases" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,description:l10n_tw.1_tw_tax_sale_inc_5 +#: model:account.tax,description:l10n_tw.2_tw_tax_sale_inc_5 +#: model:account.tax.template,description:l10n_tw.tw_tax_sale_inc_5 +msgid "GST Inclusive Sale" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,description:l10n_tw.1_tw_tax_purchase_5 +#: model:account.tax,description:l10n_tw.2_tw_tax_purchase_5 +#: model:account.tax.template,description:l10n_tw.tw_tax_purchase_5 +msgid "GST Purchase" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,description:l10n_tw.1_tw_tax_sale_5 +#: model:account.tax,description:l10n_tw.2_tw_tax_sale_5 +#: model:account.tax.template,description:l10n_tw.tw_tax_sale_5 +msgid "GST Sales" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_719100 +#: model:account.account,name:l10n_tw.2_tw_719100 +#: model:account.account.template,name:l10n_tw.tw_719100 +msgid "Gains on disposals of investment property" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_720200 +#: model:account.account,name:l10n_tw.2_tw_720200 +#: model:account.account.template,name:l10n_tw.tw_720200 +msgid "Gains on disposals of property, plant and equipment" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_158300 +#: model:account.account,name:l10n_tw.2_tw_158300 +#: model:account.account.template,name:l10n_tw.tw_158300 +msgid "Guarantee deposits paid" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516800 +#: model:account.account,name:l10n_tw.2_tw_516800 +#: model:account.account.template,name:l10n_tw.tw_516800 +msgid "Indirect materials" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516000 +#: model:account.account,name:l10n_tw.1_tw_612000 +#: model:account.account,name:l10n_tw.2_tw_516000 +#: model:account.account,name:l10n_tw.2_tw_612000 +#: model:account.account.template,name:l10n_tw.tw_516000 +#: model:account.account.template,name:l10n_tw.tw_612000 +msgid "Insurance expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_715100 +#: model:account.account,name:l10n_tw.2_tw_715100 +#: model:account.account.template,name:l10n_tw.tw_715100 +msgid "Interest expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_711100 +#: model:account.account,name:l10n_tw.2_tw_711100 +#: model:account.account.template,name:l10n_tw.tw_711100 +msgid "Interest revenue" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_717100 +#: model:account.account,name:l10n_tw.2_tw_717100 +#: model:account.account.template,name:l10n_tw.tw_717100 +msgid "Investment income accounted for using equity method" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_717200 +#: model:account.account,name:l10n_tw.2_tw_717200 +#: model:account.account.template,name:l10n_tw.tw_717200 +msgid "Investment loss accounted for using equity method" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_137100 +#: model:account.account,name:l10n_tw.2_tw_137100 +#: model:account.account.template,name:l10n_tw.tw_137100 +msgid "Investments accounted for using equity method" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_139100 +#: model:account.account,name:l10n_tw.2_tw_139100 +#: model:account.account.template,name:l10n_tw.tw_139100 +msgid "Land, cost" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_144100 +#: model:account.account,name:l10n_tw.2_tw_144100 +#: model:account.account.template,name:l10n_tw.tw_144100 +msgid "Leased assets, cost" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_l10n_tw_chart_template_liquidity_transfer +#: model:account.account,name:l10n_tw.2_l10n_tw_chart_template_liquidity_transfer +#: model:account.account.template,name:l10n_tw.l10n_tw_chart_template_liquidity_transfer +msgid "Liquidity Transfer" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_719200 +#: model:account.account,name:l10n_tw.2_tw_719200 +#: model:account.account.template,name:l10n_tw.tw_719200 +msgid "Losses on disposals of investment property" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612400 +#: model:account.account,name:l10n_tw.2_tw_612400 +#: model:account.account.template,name:l10n_tw.tw_612400 +msgid "Losses on doubtful debts" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612700 +#: model:account.account,name:l10n_tw.2_tw_612700 +#: model:account.account.template,name:l10n_tw.tw_612700 +msgid "Losses on export sales" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_142100 +#: model:account.account,name:l10n_tw.2_tw_142100 +#: model:account.account.template,name:l10n_tw.tw_142100 +msgid "Machinery and equipment, cost" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516500 +#: model:account.account,name:l10n_tw.1_tw_612800 +#: model:account.account,name:l10n_tw.2_tw_516500 +#: model:account.account,name:l10n_tw.2_tw_612800 +#: model:account.account.template,name:l10n_tw.tw_516500 +#: model:account.account.template,name:l10n_tw.tw_612800 +msgid "Meal expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123100 +#: model:account.account,name:l10n_tw.2_tw_123100 +#: model:account.account.template,name:l10n_tw.tw_123100 +msgid "Merchandise inventory" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_720100 +#: model:account.account,name:l10n_tw.2_tw_720100 +#: model:account.account.template,name:l10n_tw.tw_720100 +msgid "Net gain or loss on disposals of property, plant and equipment" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_216100 +#: model:account.account,name:l10n_tw.2_tw_216100 +#: model:account.account.template,name:l10n_tw.tw_216100 +msgid "Notes payable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_118100 +#: model:account.account,name:l10n_tw.2_tw_118100 +#: model:account.account.template,name:l10n_tw.tw_118100 +msgid "Notes receivable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_143100 +#: model:account.account,name:l10n_tw.2_tw_143100 +#: model:account.account.template,name:l10n_tw.tw_143100 +msgid "Office equipment, cost" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126400 +#: model:account.account,name:l10n_tw.2_tw_126400 +#: model:account.account.template,name:l10n_tw.tw_126400 +msgid "Office supplies" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_311100 +#: model:account.account,name:l10n_tw.2_tw_311100 +#: model:account.account.template,name:l10n_tw.tw_311100 +msgid "Ordinary share" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_219700 +#: model:account.account,name:l10n_tw.2_tw_219700 +#: model:account.account.template,name:l10n_tw.tw_219700 +msgid "Other accrued expenses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_222300 +#: model:account.account,name:l10n_tw.2_tw_222300 +#: model:account.account.template,name:l10n_tw.tw_222300 +msgid "Other advance receipts" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_341500 +#: model:account.account,name:l10n_tw.2_tw_341500 +#: model:account.account.template,name:l10n_tw.tw_341500 +msgid "Other equity interest, others" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_155100 +#: model:account.account,name:l10n_tw.2_tw_155100 +#: model:account.account.template,name:l10n_tw.tw_155100 +msgid "Other intangible assets, net" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123150 +#: model:account.account,name:l10n_tw.2_tw_123150 +#: model:account.account.template,name:l10n_tw.tw_123150 +msgid "Other inventory (pending acceptance)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_158600 +#: model:account.account,name:l10n_tw.2_tw_158600 +#: model:account.account.template,name:l10n_tw.tw_158600 +msgid "Other non-current assets, others" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_591100 +#: model:account.account,name:l10n_tw.2_tw_591100 +#: model:account.account.template,name:l10n_tw.tw_591100 +msgid "Other operating costs" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613400 +#: model:account.account,name:l10n_tw.2_tw_613400 +#: model:account.account.template,name:l10n_tw.tw_613400 +msgid "Other operating expenses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_414100 +#: model:account.account,name:l10n_tw.2_tw_414100 +#: model:account.account.template,name:l10n_tw.tw_414100 +msgid "Other operating revenue" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516900 +#: model:account.account,name:l10n_tw.2_tw_516900 +#: model:account.account.template,name:l10n_tw.tw_516900 +msgid "Other overheads" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126500 +#: model:account.account,name:l10n_tw.2_tw_126500 +#: model:account.account.template,name:l10n_tw.tw_126500 +msgid "Other prepaid expenses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_127000 +#: model:account.account,name:l10n_tw.2_tw_127000 +#: model:account.account.template,name:l10n_tw.tw_127000 +msgid "Other prepayments" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_724700 +#: model:account.account,name:l10n_tw.2_tw_724700 +#: model:account.account.template,name:l10n_tw.tw_724700 +msgid "Other revenue" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126900 +#: model:account.account,name:l10n_tw.2_tw_126900 +#: model:account.account.template,name:l10n_tw.tw_126900 +msgid "Overpaid sales tax" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_239300 +#: model:account.account,name:l10n_tw.2_tw_239300 +#: model:account.account.template,name:l10n_tw.tw_239300 +msgid "Owner (shareholder) accounts, credit" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_158400 +#: model:account.account,name:l10n_tw.2_tw_158400 +#: model:account.account.template,name:l10n_tw.tw_158400 +msgid "Owner (shareholder) accounts, debit" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_515800 +#: model:account.account,name:l10n_tw.2_tw_515800 +#: model:account.account.template,name:l10n_tw.tw_515800 +msgid "Packing expenses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_219900 +#: model:account.account,name:l10n_tw.2_tw_219900 +#: model:account.account.template,name:l10n_tw.tw_219900 +msgid "Payable on machinery and equipment" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_128200 +#: model:account.account,name:l10n_tw.2_tw_128200 +#: model:account.account.template,name:l10n_tw.tw_128200 +msgid "Payment on behalf of others" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611600 +#: model:account.account,name:l10n_tw.2_tw_611600 +#: model:account.account.template,name:l10n_tw.tw_611600 +msgid "Postage expenses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126600 +#: model:account.account,name:l10n_tw.2_tw_126600 +#: model:account.account.template,name:l10n_tw.tw_126600 +msgid "Prepayment for purchases" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_158200 +#: model:account.account,name:l10n_tw.2_tw_158200 +#: model:account.account.template,name:l10n_tw.tw_158200 +msgid "Prepayments for business facilities" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516100 +#: model:account.account,name:l10n_tw.2_tw_516100 +#: model:account.account.template,name:l10n_tw.tw_516100 +msgid "Processing expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_217150 +#: model:account.account,name:l10n_tw.2_tw_217150 +#: model:account.account.template,name:l10n_tw.tw_217150 +msgid "Provisional estimate payable" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,name:l10n_tw.1_tw_tax_purchase_5 +#: model:account.tax,name:l10n_tw.2_tw_tax_purchase_5 +#: model:account.tax.template,name:l10n_tw.tw_tax_purchase_5 +msgid "Purchase (5%)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_512100 +#: model:account.account,name:l10n_tw.2_tw_512100 +#: model:account.account.template,name:l10n_tw.tw_512100 +msgid "Purchase of goods" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_513100 +#: model:account.account,name:l10n_tw.2_tw_513100 +#: model:account.account.template,name:l10n_tw.tw_513100 +msgid "Purchase of raw materials" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_512400 +#: model:account.account,name:l10n_tw.2_tw_512400 +#: model:account.account.template,name:l10n_tw.tw_512400 +msgid "Purchases discounts and allowances" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_512300 +#: model:account.account,name:l10n_tw.2_tw_512300 +#: model:account.account.template,name:l10n_tw.tw_512300 +msgid "Purchases returns" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123900 +#: model:account.account,name:l10n_tw.2_tw_123900 +#: model:account.account.template,name:l10n_tw.tw_123900 +msgid "Raw materials" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_513400 +#: model:account.account,name:l10n_tw.2_tw_513400 +#: model:account.account.template,name:l10n_tw.tw_513400 +msgid "Raw materials purchase discounts and allowances" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_513300 +#: model:account.account,name:l10n_tw.2_tw_513300 +#: model:account.account.template,name:l10n_tw.tw_513300 +msgid "Raw materials purchase returns" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_225200 +#: model:account.account,name:l10n_tw.2_tw_225200 +#: model:account.account.template,name:l10n_tw.tw_225200 +msgid "Receipts under custody" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_128400 +#: model:account.account,name:l10n_tw.2_tw_128400 +#: model:account.account.template,name:l10n_tw.tw_128400 +msgid "Refundable deposits" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_515200 +#: model:account.account,name:l10n_tw.1_tw_611200 +#: model:account.account,name:l10n_tw.2_tw_515200 +#: model:account.account,name:l10n_tw.2_tw_611200 +#: model:account.account.template,name:l10n_tw.tw_515200 +#: model:account.account.template,name:l10n_tw.tw_611200 +msgid "Rent expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_712100 +#: model:account.account,name:l10n_tw.2_tw_712100 +#: model:account.account.template,name:l10n_tw.tw_712100 +msgid "Rent income" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_515700 +#: model:account.account,name:l10n_tw.1_tw_611700 +#: model:account.account,name:l10n_tw.2_tw_515700 +#: model:account.account,name:l10n_tw.2_tw_611700 +#: model:account.account.template,name:l10n_tw.tw_515700 +#: model:account.account.template,name:l10n_tw.tw_611700 +msgid "Repairs and maintenance expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613000 +#: model:account.account,name:l10n_tw.2_tw_613000 +#: model:account.account.template,name:l10n_tw.tw_613000 +msgid "Research and development expense" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,name:l10n_tw.1_tw_tax_sale_5 +#: model:account.tax,name:l10n_tw.2_tw_tax_sale_5 +#: model:account.tax.template,name:l10n_tw.tw_tax_sale_5 +msgid "Sale (5%)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_411400 +#: model:account.account,name:l10n_tw.2_tw_411400 +#: model:account.account.template,name:l10n_tw.tw_411400 +msgid "Sales discounts and allowances" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_411300 +#: model:account.account,name:l10n_tw.2_tw_411300 +#: model:account.account.template,name:l10n_tw.tw_411300 +msgid "Sales returns" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_411100 +#: model:account.account,name:l10n_tw.2_tw_411100 +#: model:account.account.template,name:l10n_tw.tw_411100 +msgid "Sales revenue" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613300 +#: model:account.account,name:l10n_tw.2_tw_613300 +#: model:account.account.template,name:l10n_tw.tw_613300 +msgid "Services expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611300 +#: model:account.account,name:l10n_tw.2_tw_611300 +#: model:account.account.template,name:l10n_tw.tw_611300 +msgid "Stationery supplies" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_124000 +#: model:account.account,name:l10n_tw.2_tw_124000 +#: model:account.account.template,name:l10n_tw.tw_124000 +msgid "Supplies" +msgstr "" + +#. module: l10n_tw +#: model:account.chart.template,name:l10n_tw.l10n_tw_chart_template +msgid "Taiwan Tax and Account Chart Template" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_821100 +#: model:account.account,name:l10n_tw.2_tw_821100 +#: model:account.account.template,name:l10n_tw.tw_821100 +msgid "Tax expense (income)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612300 +#: model:account.account,name:l10n_tw.2_tw_612300 +#: model:account.account.template,name:l10n_tw.tw_612300 +msgid "Taxes" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_225100 +#: model:account.account,name:l10n_tw.2_tw_225100 +#: model:account.account.template,name:l10n_tw.tw_225100 +msgid "Temporary credits" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_128100 +#: model:account.account,name:l10n_tw.2_tw_128100 +#: model:account.account.template,name:l10n_tw.tw_128100 +msgid "Temporary payments" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613200 +#: model:account.account,name:l10n_tw.2_tw_613200 +#: model:account.account.template,name:l10n_tw.tw_613200 +msgid "Training expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611400 +#: model:account.account,name:l10n_tw.2_tw_611400 +#: model:account.account.template,name:l10n_tw.tw_611400 +msgid "Traveling Expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_515900 +#: model:account.account,name:l10n_tw.1_tw_611900 +#: model:account.account,name:l10n_tw.2_tw_515900 +#: model:account.account,name:l10n_tw.2_tw_611900 +#: model:account.account.template,name:l10n_tw.tw_515900 +#: model:account.account.template,name:l10n_tw.tw_611900 +msgid "Utilities expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611100 +#: model:account.account,name:l10n_tw.2_tw_611100 +#: model:account.account.template,name:l10n_tw.tw_611100 +msgid "Wages and salaries" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123700 +#: model:account.account,name:l10n_tw.2_tw_123700 +#: model:account.account.template,name:l10n_tw.tw_123700 +msgid "Work in progress" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_206 +msgid "七堵區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_883 +msgid "七美鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_724 +msgid "七股區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_901 +msgid "三地門鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_237 +msgid "三峽區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_266 +msgid "三星鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_807 +msgid "三民區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_352 +msgid "三灣鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_367 +msgid "三義鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_252 +msgid "三芝區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_241 +msgid "三重區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_735 +msgid "下營區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_400 +msgid "中區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_235 +msgid "中和區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_606 +msgid "中埔鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_320 +msgid "中壢區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_541 +msgid "中寮鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_104 +#: model:res.city,name:l10n_tw.city_tw_203 +msgid "中山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_100 +#: model:res.city,name:l10n_tw.city_tw_202 +msgid "中正區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_700 +msgid "中西區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_904 +msgid "九如鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_649 +msgid "二崙鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_526 +msgid "二林鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_530 +msgid "二水鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_311 +msgid "五峰鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_268 +msgid "五結鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_248 +msgid "五股區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_717 +msgid "仁德區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_200 +msgid "仁愛區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_546 +msgid "仁愛鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_814 +msgid "仁武區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_509 +msgid "伸港鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_931 +msgid "佳冬鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_722 +msgid "佳里區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_922 +msgid "來義鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_110 +#: model:res.city,name:l10n_tw.city_tw_201 +msgid "信義區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_556 +msgid "信義鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_655 +msgid "元長鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_976 +msgid "光復鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_912 +msgid "內埔鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_114 +msgid "內湖區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_845 +msgid "內門區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_334 +msgid "八德區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_249 +msgid "八里區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_363 +msgid "公館鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_734 +msgid "六甲區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_615 +msgid "六腳鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_844 +msgid "六龜區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_269 +msgid "冬山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_801 +msgid "前金區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_806 +msgid "前鎮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_300 +#: model:res.city,name:l10n_tw.city_tw_404 +#: model:res.city,name:l10n_tw.city_tw_704 +msgid "北區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_314 +msgid "北埔鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_406 +msgid "北屯區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_112 +msgid "北投區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_521 +msgid "北斗鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_651 +msgid "北港鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_210 +msgid "北竿鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_727 +msgid "北門區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_954 +msgid "卑南鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_982 +msgid "卓溪鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_369 +msgid "卓蘭鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_716 +msgid "南化區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_402 +#: model:res.city,name:l10n_tw.city_tw_702 +msgid "南區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_408 +msgid "南屯區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_926 +msgid "南州鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_353 +msgid "南庄鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_540 +msgid "南投市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_ntc +msgid "南投縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_819 +msgid "南沙群島" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_115 +msgid "南港區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_272 +msgid "南澳鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_209 +msgid "南竿鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_653 +msgid "口湖鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_646 +msgid "古坑鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_tcc +msgid "台中市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_tpc +msgid "台北市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_tnh +msgid "台南市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_950 +msgid "台東市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_tth +msgid "台東縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_636 +msgid "台西鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_973 +msgid "吉安鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_551 +msgid "名間鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_421 +msgid "后里區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_424 +msgid "和平區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_508 +msgid "和美鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_264 +msgid "員山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_510 +msgid "員林市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_741 +msgid "善化區" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_cic +msgid "嘉義市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_cih +msgid "嘉義縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_654 +msgid "四湖鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_544 +msgid "國姓鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_236 +msgid "土城區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_633 +msgid "土庫鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_232 +msgid "坪林區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_513 +msgid "埔心鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_545 +msgid "埔里鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_516 +msgid "埔鹽鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_523 +msgid "埤頭鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_klc +msgid "基隆市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_111 +msgid "士林區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_263 +msgid "壯圍鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_974 +msgid "壽豐鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_438 +msgid "外埔區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_742 +msgid "大內區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_103 +msgid "大同區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_267 +msgid "大同鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_337 +msgid "大園區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_527 +msgid "大城鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_607 +msgid "大埔鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_631 +msgid "大埤鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_106 +#: model:res.city,name:l10n_tw.city_tw_439 +msgid "大安區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_831 +msgid "大寮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_515 +msgid "大村鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_622 +msgid "大林鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_840 +msgid "大樹區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_965 +msgid "大武鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_364 +msgid "大湖鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_335 +msgid "大溪區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_437 +msgid "大甲區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_815 +msgid "大社區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_432 +msgid "大肚區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_412 +msgid "大里區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_428 +msgid "大雅區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_612 +msgid "太保市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_411 +msgid "太平區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_963 +msgid "太麻里鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_726 +msgid "學甲區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_709 +msgid "安南區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_745 +msgid "安定區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_708 +msgid "安平區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_204 +msgid "安樂區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_720 +msgid "官田區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_260 +msgid "宜蘭市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_ilh +msgid "宜蘭縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_983 +msgid "富里鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_308 +msgid "寶山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_725 +msgid "將軍區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_812 +msgid "小港區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_313 +msgid "尖石鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_900 +msgid "屏東市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_pth +msgid "屏東縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_743 +msgid "山上區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_820 +msgid "岡山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_315 +msgid "峨眉鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_924 +msgid "崁頂鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_637 +msgid "崙背鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_813 +msgid "左營區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_713 +msgid "左鎮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_625 +msgid "布袋鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_226 +msgid "平溪區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_324 +msgid "平鎮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_953 +msgid "延平鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_827 +msgid "彌陀區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_500 +msgid "彰化市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_chh +msgid "彰化縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_731 +msgid "後壁區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_356 +msgid "後龍鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_336 +msgid "復興區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_946 +msgid "恆春鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_961 +msgid "成功鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_116 +msgid "文山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_640 +msgid "斗六市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_630 +msgid "斗南鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_712 +msgid "新化區" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_ntpc +msgid "新北市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_932 +msgid "新園鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_971 +msgid "新城鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_305 +msgid "新埔鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_925 +msgid "新埤鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_327 +msgid "新屋區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_744 +msgid "新市區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_231 +msgid "新店區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_616 +msgid "新港鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_730 +msgid "新營區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_426 +msgid "新社區" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_hct +msgid "新竹市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_hch +msgid "新竹縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_800 +msgid "新興區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_242 +msgid "新莊區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_304 +msgid "新豐鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_842 +msgid "旗山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_805 +msgid "旗津區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_942 +msgid "春日鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_205 +msgid "暖暖區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_882 +msgid "望安鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_613 +msgid "朴子市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_846 +msgid "杉林區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_423 +msgid "東勢區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_635 +msgid "東勢鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_300_1 +#: model:res.city,name:l10n_tw.city_tw_401 +#: model:res.city,name:l10n_tw.city_tw_600 +#: model:res.city,name:l10n_tw.city_tw_701 +msgid "東區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_733 +msgid "東山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_212 +msgid "東引鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_817 +msgid "東沙群島" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_959 +msgid "東河鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_928 +msgid "東港鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_614 +msgid "東石鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_105 +msgid "松山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_220 +msgid "板橋區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_940 +msgid "枋寮鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_941 +msgid "枋山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_643 +msgid "林內鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_244 +msgid "林口區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_832 +msgid "林園區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_927 +msgid "林邊鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_736 +msgid "柳營區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_330 +msgid "桃園區" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_tyc +msgid "桃園市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_848 +msgid "桃源區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_603 +msgid "梅山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_826 +msgid "梓官區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_435 +msgid "梧棲區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_326 +msgid "楊梅區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_811 +msgid "楠梓區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_715 +msgid "楠西區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_238 +msgid "樹林區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_825 +msgid "橋頭區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_312 +msgid "橫山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_711 +msgid "歸仁區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_621 +msgid "民雄鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_608 +msgid "水上鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_652 +msgid "水林鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_553 +msgid "水里鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_234 +msgid "永和區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_828 +msgid "永安區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_710 +msgid "永康區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_512 +msgid "永靖鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_221 +msgid "汐止區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_958 +msgid "池上鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_433 +msgid "沙鹿區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_365 +msgid "泰安鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_243 +msgid "泰山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_921 +msgid "泰武鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_957 +msgid "海端鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_251 +msgid "淡水區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_222 +msgid "深坑區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_436 +msgid "清水區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_829 +msgid "湖內區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_303 +msgid "湖口鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_885 +msgid "湖西鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_623 +msgid "溪口鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_524 +msgid "溪州鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_514 +msgid "溪湖鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_947 +msgid "滿州鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_427 +msgid "潭子區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_920 +msgid "潮州鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_phc +msgid "澎湖縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_894 +msgid "烈嶼鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_233 +msgid "烏來區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_896 +msgid "烏坵鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_414 +msgid "烏日區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_824 +msgid "燕巢區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_945 +msgid "牡丹鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_943 +msgid "獅子鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_354 +msgid "獅潭鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_714 +msgid "玉井區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_981 +msgid "玉里鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_929 +msgid "琉球鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_978 +msgid "瑞穗鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_224 +msgid "瑞芳區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_903 +msgid "瑪家鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_520 +msgid "田中鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_823 +msgid "田寮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_522 +msgid "田尾鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_847 +msgid "甲仙區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_602 +msgid "番路鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_884 +msgid "白沙鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_732 +msgid "白河區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_422 +msgid "石岡區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_223 +msgid "石碇區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_253 +msgid "石門區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_262 +msgid "礁溪鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_511 +msgid "社頭鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_429 +msgid "神岡區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_506 +msgid "福興鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_972 +msgid "秀林鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_504 +msgid "秀水鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_302 +msgid "竹北市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_350 +msgid "竹南鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_525 +msgid "竹塘鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_557 +msgid "竹山鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_604 +msgid "竹崎鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_310 +msgid "竹東鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_911 +msgid "竹田鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_951 +msgid "綠島鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_507 +msgid "線西鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_265 +msgid "羅東鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_843 +msgid "美濃區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_624 +msgid "義竹鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_307 +msgid "芎林鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_502 +msgid "芬園鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_503 +msgid "花壇鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_970 +msgid "花蓮市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_hlh +msgid "花蓮縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_528 +msgid "芳苑鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_358 +msgid "苑裡鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_802 +msgid "苓雅區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_360 +msgid "苗栗市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_mlh +msgid "苗栗縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_851 +msgid "茂林區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_852 +msgid "茄萣區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_542 +msgid "草屯鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_211 +msgid "莒光鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_647 +msgid "莿桐鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_913 +msgid "萬丹鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_923 +msgid "萬巒鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_979 +msgid "萬榮鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_108 +msgid "萬華區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_207 +msgid "萬里區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_247 +msgid "蘆洲區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_338 +msgid "蘆竹區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_270 +msgid "蘇澳鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_952 +msgid "蘭嶼鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_632 +msgid "虎尾鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_634 +msgid "褒忠鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_403 +#: model:res.city,name:l10n_tw.city_tw_600_1 +msgid "西區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_407 +msgid "西屯區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_881 +msgid "西嶼鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_723 +msgid "西港區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_368 +msgid "西湖鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_648 +msgid "西螺鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_328 +msgid "觀音區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_420 +msgid "豐原區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_977 +msgid "豐濱鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_228 +msgid "貢寮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_821 +msgid "路竹區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_944 +msgid "車城鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_357 +msgid "通霄鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_361 +msgid "造橋鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_lcc +msgid "連江縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_966 +msgid "達仁鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_849 +msgid "那瑪夏區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_905 +msgid "里港鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_893 +msgid "金城鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_892 +msgid "金寧鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_208 +msgid "金山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_964 +msgid "金峰鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_890 +msgid "金沙鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_891 +msgid "金湖鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_kmc +msgid "金門縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_290 +msgid "釣魚臺" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_366 +msgid "銅鑼鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_908 +msgid "長治鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_962 +msgid "長濱鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_956 +msgid "關山鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_718 +msgid "關廟區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_306 +msgid "關西鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_822 +msgid "阿蓮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_605 +msgid "阿里山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_552 +msgid "集集鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_227 +msgid "雙溪區" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_ylh +msgid "雲林縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_902 +msgid "霧台鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_413 +msgid "霧峰區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_351 +msgid "頭份市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_261 +msgid "頭城鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_362 +msgid "頭屋鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_300_2 +msgid "香山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_880 +msgid "馬公市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_906 +msgid "高樹鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_khc +msgid "高雄市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_555 +msgid "魚池鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_833 +msgid "鳥松區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_830 +msgid "鳳山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_975 +msgid "鳳林鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_239 +msgid "鶯歌區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_907 +msgid "鹽埔鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_803 +msgid "鹽埕區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_737 +msgid "鹽水區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_505 +msgid "鹿港鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_611 +msgid "鹿草鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_558 +msgid "鹿谷鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_955 +msgid "鹿野鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_909 +msgid "麟洛鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_638 +msgid "麥寮鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_721 +msgid "麻豆區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_804 +msgid "鼓山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_434 +msgid "龍井區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_719 +msgid "龍崎區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_325 +msgid "龍潭區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_333 +msgid "龜山區" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/i18n/l10n_tw.pot b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/i18n/l10n_tw.pot new file mode 100644 index 0000000..7dd08f7 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/i18n/l10n_tw.pot @@ -0,0 +1,2848 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_tw +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-26 10:11+0000\n" +"PO-Revision-Date: 2022-04-26 10:11+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_tw +#: model:account.account,name:l10n_tw.1_tw_217100 +#: model:account.account,name:l10n_tw.2_tw_217100 +#: model:account.account.template,name:l10n_tw.tw_217100 +msgid "Accounts payable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_119100 +#: model:account.account,name:l10n_tw.2_tw_119100 +#: model:account.account.template,name:l10n_tw.tw_119100 +msgid "Accounts receivable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_119150 +#: model:account.account,name:l10n_tw.2_tw_119150 +#: model:account.account.template,name:l10n_tw.tw_119150 +msgid "Accounts receivable (PoS)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_155200 +#: model:account.account,name:l10n_tw.2_tw_155200 +#: model:account.account.template,name:l10n_tw.tw_155200 +msgid "Accumulated amortization, other intangible assets" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_141300 +#: model:account.account,name:l10n_tw.2_tw_141300 +#: model:account.account.template,name:l10n_tw.tw_141300 +msgid "Accumulated depreciation, buildings and structures" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_144200 +#: model:account.account,name:l10n_tw.2_tw_144200 +#: model:account.account.template,name:l10n_tw.tw_144200 +msgid "Accumulated depreciation, leased assets" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_142200 +#: model:account.account,name:l10n_tw.2_tw_142200 +#: model:account.account.template,name:l10n_tw.tw_142200 +msgid "Accumulated depreciation, machinery and equipment" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_143200 +#: model:account.account,name:l10n_tw.2_tw_143200 +#: model:account.account.template,name:l10n_tw.tw_143200 +msgid "Accumulated depreciation, office equipment" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_335100 +#: model:account.account,name:l10n_tw.2_tw_335100 +#: model:account.account.template,name:l10n_tw.tw_335100 +msgid "Accumulated profit and loss" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_222100 +#: model:account.account,name:l10n_tw.2_tw_222100 +#: model:account.account.template,name:l10n_tw.tw_222100 +msgid "Advance sales receipts" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611800 +#: model:account.account,name:l10n_tw.2_tw_611800 +#: model:account.account.template,name:l10n_tw.tw_611800 +msgid "Advertisement expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_211200 +#: model:account.account,name:l10n_tw.2_tw_211200 +#: model:account.account.template,name:l10n_tw.tw_211200 +msgid "Bank loan" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_141100 +#: model:account.account,name:l10n_tw.2_tw_141100 +#: model:account.account.template,name:l10n_tw.tw_141100 +msgid "Buildings and structures, cost" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126800 +#: model:account.account,name:l10n_tw.2_tw_126800 +#: model:account.account.template,name:l10n_tw.tw_126800 +msgid "Business tax paid (or Input VAT)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_219400 +#: model:account.account,name:l10n_tw.2_tw_219400 +#: model:account.account.template,name:l10n_tw.tw_219400 +msgid "Business tax payable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_220400 +#: model:account.account,name:l10n_tw.2_tw_220400 +#: model:account.account.template,name:l10n_tw.tw_220400 +msgid "Business tax received (or Output VAT)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_321100 +#: model:account.account,name:l10n_tw.2_tw_321100 +#: model:account.account.template,name:l10n_tw.tw_321100 +msgid "" +"Capital surplus, additional paid-in capital arising from ordinary share" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_718500 +#: model:account.account,name:l10n_tw.2_tw_718500 +#: model:account.account.template,name:l10n_tw.tw_718500 +msgid "Cash difference gains" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_718600 +#: model:account.account,name:l10n_tw.2_tw_718600 +#: model:account.account.template,name:l10n_tw.tw_718600 +msgid "Cash difference losses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613100 +#: model:account.account,name:l10n_tw.2_tw_613100 +#: model:account.account.template,name:l10n_tw.tw_613100 +msgid "Commissions expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_723200 +#: model:account.account,name:l10n_tw.2_tw_723200 +#: model:account.account.template,name:l10n_tw.tw_723200 +msgid "Commissions revenue" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_511100 +#: model:account.account,name:l10n_tw.2_tw_511100 +#: model:account.account.template,name:l10n_tw.tw_511100 +msgid "Cost of sales" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_156100 +#: model:account.account,name:l10n_tw.2_tw_156100 +#: model:account.account.template,name:l10n_tw.tw_156100 +msgid "Deferred tax assets" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612600 +#: model:account.account,name:l10n_tw.2_tw_612600 +#: model:account.account.template,name:l10n_tw.tw_612600 +msgid "Depletions and amortizations" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516300 +#: model:account.account,name:l10n_tw.1_tw_612500 +#: model:account.account,name:l10n_tw.2_tw_516300 +#: model:account.account,name:l10n_tw.2_tw_612500 +#: model:account.account.template,name:l10n_tw.tw_516300 +#: model:account.account.template,name:l10n_tw.tw_612500 +msgid "Depreciations" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_514100 +#: model:account.account,name:l10n_tw.2_tw_514100 +#: model:account.account.template,name:l10n_tw.tw_514100 +msgid "Direct labor" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_714100 +#: model:account.account,name:l10n_tw.2_tw_714100 +#: model:account.account.template,name:l10n_tw.tw_714100 +msgid "Dividend revenue" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_220100 +#: model:account.account,name:l10n_tw.2_tw_220100 +#: model:account.account.template,name:l10n_tw.tw_220100 +msgid "Dividends payable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612200 +#: model:account.account,name:l10n_tw.2_tw_612200 +#: model:account.account.template,name:l10n_tw.tw_612200 +msgid "Donation expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_121100 +#: model:account.account,name:l10n_tw.2_tw_121100 +#: model:account.account.template,name:l10n_tw.tw_121100 +msgid "Earned revenue receivable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612900 +#: model:account.account,name:l10n_tw.2_tw_612900 +#: model:account.account.template,name:l10n_tw.tw_612900 +msgid "Employee benefits/welfare" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612100 +#: model:account.account,name:l10n_tw.2_tw_612100 +#: model:account.account.template,name:l10n_tw.tw_612100 +msgid "Entertainment expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123500 +#: model:account.account,name:l10n_tw.2_tw_123500 +#: model:account.account.template,name:l10n_tw.tw_123500 +msgid "Finished goods" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_718100 +#: model:account.account,name:l10n_tw.2_tw_718100 +#: model:account.account.template,name:l10n_tw.tw_718100 +msgid "Foreign exchange gains" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_718200 +#: model:account.account,name:l10n_tw.2_tw_718200 +#: model:account.account.template,name:l10n_tw.tw_718200 +msgid "Foreign exchange losses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611500 +#: model:account.account,name:l10n_tw.2_tw_611500 +#: model:account.account.template,name:l10n_tw.tw_611500 +msgid "Freight" +msgstr "" + +#. module: l10n_tw +#: model:account.tax.group,name:l10n_tw.tax_group_gst_5 +msgid "GST 5%" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,name:l10n_tw.1_tw_tax_purchase_inc_5 +#: model:account.tax,name:l10n_tw.2_tw_tax_purchase_inc_5 +#: model:account.tax.template,name:l10n_tw.tw_tax_purchase_inc_5 +msgid "GST Inc Purchase (5%)" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,name:l10n_tw.1_tw_tax_sale_inc_5 +#: model:account.tax,name:l10n_tw.2_tw_tax_sale_inc_5 +#: model:account.tax.template,name:l10n_tw.tw_tax_sale_inc_5 +msgid "GST Inc Sale (5%)" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,description:l10n_tw.1_tw_tax_purchase_inc_5 +#: model:account.tax,description:l10n_tw.2_tw_tax_purchase_inc_5 +#: model:account.tax.template,description:l10n_tw.tw_tax_purchase_inc_5 +msgid "GST Inclusive Purchases" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,description:l10n_tw.1_tw_tax_sale_inc_5 +#: model:account.tax,description:l10n_tw.2_tw_tax_sale_inc_5 +#: model:account.tax.template,description:l10n_tw.tw_tax_sale_inc_5 +msgid "GST Inclusive Sale" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,description:l10n_tw.1_tw_tax_purchase_5 +#: model:account.tax,description:l10n_tw.2_tw_tax_purchase_5 +#: model:account.tax.template,description:l10n_tw.tw_tax_purchase_5 +msgid "GST Purchase" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,description:l10n_tw.1_tw_tax_sale_5 +#: model:account.tax,description:l10n_tw.2_tw_tax_sale_5 +#: model:account.tax.template,description:l10n_tw.tw_tax_sale_5 +msgid "GST Sales" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_719100 +#: model:account.account,name:l10n_tw.2_tw_719100 +#: model:account.account.template,name:l10n_tw.tw_719100 +msgid "Gains on disposals of investment property" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_720200 +#: model:account.account,name:l10n_tw.2_tw_720200 +#: model:account.account.template,name:l10n_tw.tw_720200 +msgid "Gains on disposals of property, plant and equipment" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_158300 +#: model:account.account,name:l10n_tw.2_tw_158300 +#: model:account.account.template,name:l10n_tw.tw_158300 +msgid "Guarantee deposits paid" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516800 +#: model:account.account,name:l10n_tw.2_tw_516800 +#: model:account.account.template,name:l10n_tw.tw_516800 +msgid "Indirect materials" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516000 +#: model:account.account,name:l10n_tw.1_tw_612000 +#: model:account.account,name:l10n_tw.2_tw_516000 +#: model:account.account,name:l10n_tw.2_tw_612000 +#: model:account.account.template,name:l10n_tw.tw_516000 +#: model:account.account.template,name:l10n_tw.tw_612000 +msgid "Insurance expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_715100 +#: model:account.account,name:l10n_tw.2_tw_715100 +#: model:account.account.template,name:l10n_tw.tw_715100 +msgid "Interest expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_711100 +#: model:account.account,name:l10n_tw.2_tw_711100 +#: model:account.account.template,name:l10n_tw.tw_711100 +msgid "Interest revenue" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_717100 +#: model:account.account,name:l10n_tw.2_tw_717100 +#: model:account.account.template,name:l10n_tw.tw_717100 +msgid "Investment income accounted for using equity method" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_717200 +#: model:account.account,name:l10n_tw.2_tw_717200 +#: model:account.account.template,name:l10n_tw.tw_717200 +msgid "Investment loss accounted for using equity method" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_137100 +#: model:account.account,name:l10n_tw.2_tw_137100 +#: model:account.account.template,name:l10n_tw.tw_137100 +msgid "Investments accounted for using equity method" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_139100 +#: model:account.account,name:l10n_tw.2_tw_139100 +#: model:account.account.template,name:l10n_tw.tw_139100 +msgid "Land, cost" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_144100 +#: model:account.account,name:l10n_tw.2_tw_144100 +#: model:account.account.template,name:l10n_tw.tw_144100 +msgid "Leased assets, cost" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_l10n_tw_chart_template_liquidity_transfer +#: model:account.account,name:l10n_tw.2_l10n_tw_chart_template_liquidity_transfer +#: model:account.account.template,name:l10n_tw.l10n_tw_chart_template_liquidity_transfer +msgid "Liquidity Transfer" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_719200 +#: model:account.account,name:l10n_tw.2_tw_719200 +#: model:account.account.template,name:l10n_tw.tw_719200 +msgid "Losses on disposals of investment property" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612400 +#: model:account.account,name:l10n_tw.2_tw_612400 +#: model:account.account.template,name:l10n_tw.tw_612400 +msgid "Losses on doubtful debts" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612700 +#: model:account.account,name:l10n_tw.2_tw_612700 +#: model:account.account.template,name:l10n_tw.tw_612700 +msgid "Losses on export sales" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_142100 +#: model:account.account,name:l10n_tw.2_tw_142100 +#: model:account.account.template,name:l10n_tw.tw_142100 +msgid "Machinery and equipment, cost" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516500 +#: model:account.account,name:l10n_tw.1_tw_612800 +#: model:account.account,name:l10n_tw.2_tw_516500 +#: model:account.account,name:l10n_tw.2_tw_612800 +#: model:account.account.template,name:l10n_tw.tw_516500 +#: model:account.account.template,name:l10n_tw.tw_612800 +msgid "Meal expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123100 +#: model:account.account,name:l10n_tw.2_tw_123100 +#: model:account.account.template,name:l10n_tw.tw_123100 +msgid "Merchandise inventory" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_720100 +#: model:account.account,name:l10n_tw.2_tw_720100 +#: model:account.account.template,name:l10n_tw.tw_720100 +msgid "Net gain or loss on disposals of property, plant and equipment" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_216100 +#: model:account.account,name:l10n_tw.2_tw_216100 +#: model:account.account.template,name:l10n_tw.tw_216100 +msgid "Notes payable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_118100 +#: model:account.account,name:l10n_tw.2_tw_118100 +#: model:account.account.template,name:l10n_tw.tw_118100 +msgid "Notes receivable" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_143100 +#: model:account.account,name:l10n_tw.2_tw_143100 +#: model:account.account.template,name:l10n_tw.tw_143100 +msgid "Office equipment, cost" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126400 +#: model:account.account,name:l10n_tw.2_tw_126400 +#: model:account.account.template,name:l10n_tw.tw_126400 +msgid "Office supplies" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_311100 +#: model:account.account,name:l10n_tw.2_tw_311100 +#: model:account.account.template,name:l10n_tw.tw_311100 +msgid "Ordinary share" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_219700 +#: model:account.account,name:l10n_tw.2_tw_219700 +#: model:account.account.template,name:l10n_tw.tw_219700 +msgid "Other accrued expenses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_222300 +#: model:account.account,name:l10n_tw.2_tw_222300 +#: model:account.account.template,name:l10n_tw.tw_222300 +msgid "Other advance receipts" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_341500 +#: model:account.account,name:l10n_tw.2_tw_341500 +#: model:account.account.template,name:l10n_tw.tw_341500 +msgid "Other equity interest, others" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_155100 +#: model:account.account,name:l10n_tw.2_tw_155100 +#: model:account.account.template,name:l10n_tw.tw_155100 +msgid "Other intangible assets, net" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123150 +#: model:account.account,name:l10n_tw.2_tw_123150 +#: model:account.account.template,name:l10n_tw.tw_123150 +msgid "Other inventory (pending acceptance)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_158600 +#: model:account.account,name:l10n_tw.2_tw_158600 +#: model:account.account.template,name:l10n_tw.tw_158600 +msgid "Other non-current assets, others" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_591100 +#: model:account.account,name:l10n_tw.2_tw_591100 +#: model:account.account.template,name:l10n_tw.tw_591100 +msgid "Other operating costs" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613400 +#: model:account.account,name:l10n_tw.2_tw_613400 +#: model:account.account.template,name:l10n_tw.tw_613400 +msgid "Other operating expenses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_414100 +#: model:account.account,name:l10n_tw.2_tw_414100 +#: model:account.account.template,name:l10n_tw.tw_414100 +msgid "Other operating revenue" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516900 +#: model:account.account,name:l10n_tw.2_tw_516900 +#: model:account.account.template,name:l10n_tw.tw_516900 +msgid "Other overheads" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126500 +#: model:account.account,name:l10n_tw.2_tw_126500 +#: model:account.account.template,name:l10n_tw.tw_126500 +msgid "Other prepaid expenses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_127000 +#: model:account.account,name:l10n_tw.2_tw_127000 +#: model:account.account.template,name:l10n_tw.tw_127000 +msgid "Other prepayments" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_724700 +#: model:account.account,name:l10n_tw.2_tw_724700 +#: model:account.account.template,name:l10n_tw.tw_724700 +msgid "Other revenue" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126900 +#: model:account.account,name:l10n_tw.2_tw_126900 +#: model:account.account.template,name:l10n_tw.tw_126900 +msgid "Overpaid sales tax" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_239300 +#: model:account.account,name:l10n_tw.2_tw_239300 +#: model:account.account.template,name:l10n_tw.tw_239300 +msgid "Owner (shareholder) accounts, credit" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_158400 +#: model:account.account,name:l10n_tw.2_tw_158400 +#: model:account.account.template,name:l10n_tw.tw_158400 +msgid "Owner (shareholder) accounts, debit" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_515800 +#: model:account.account,name:l10n_tw.2_tw_515800 +#: model:account.account.template,name:l10n_tw.tw_515800 +msgid "Packing expenses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_219900 +#: model:account.account,name:l10n_tw.2_tw_219900 +#: model:account.account.template,name:l10n_tw.tw_219900 +msgid "Payable on machinery and equipment" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_128200 +#: model:account.account,name:l10n_tw.2_tw_128200 +#: model:account.account.template,name:l10n_tw.tw_128200 +msgid "Payment on behalf of others" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611600 +#: model:account.account,name:l10n_tw.2_tw_611600 +#: model:account.account.template,name:l10n_tw.tw_611600 +msgid "Postage expenses" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126600 +#: model:account.account,name:l10n_tw.2_tw_126600 +#: model:account.account.template,name:l10n_tw.tw_126600 +msgid "Prepayment for purchases" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_158200 +#: model:account.account,name:l10n_tw.2_tw_158200 +#: model:account.account.template,name:l10n_tw.tw_158200 +msgid "Prepayments for business facilities" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516100 +#: model:account.account,name:l10n_tw.2_tw_516100 +#: model:account.account.template,name:l10n_tw.tw_516100 +msgid "Processing expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_217150 +#: model:account.account,name:l10n_tw.2_tw_217150 +#: model:account.account.template,name:l10n_tw.tw_217150 +msgid "Provisional estimate payable" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,name:l10n_tw.1_tw_tax_purchase_5 +#: model:account.tax,name:l10n_tw.2_tw_tax_purchase_5 +#: model:account.tax.template,name:l10n_tw.tw_tax_purchase_5 +msgid "Purchase (5%)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_512100 +#: model:account.account,name:l10n_tw.2_tw_512100 +#: model:account.account.template,name:l10n_tw.tw_512100 +msgid "Purchase of goods" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_513100 +#: model:account.account,name:l10n_tw.2_tw_513100 +#: model:account.account.template,name:l10n_tw.tw_513100 +msgid "Purchase of raw materials" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_512400 +#: model:account.account,name:l10n_tw.2_tw_512400 +#: model:account.account.template,name:l10n_tw.tw_512400 +msgid "Purchases discounts and allowances" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_512300 +#: model:account.account,name:l10n_tw.2_tw_512300 +#: model:account.account.template,name:l10n_tw.tw_512300 +msgid "Purchases returns" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123900 +#: model:account.account,name:l10n_tw.2_tw_123900 +#: model:account.account.template,name:l10n_tw.tw_123900 +msgid "Raw materials" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_513400 +#: model:account.account,name:l10n_tw.2_tw_513400 +#: model:account.account.template,name:l10n_tw.tw_513400 +msgid "Raw materials purchase discounts and allowances" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_513300 +#: model:account.account,name:l10n_tw.2_tw_513300 +#: model:account.account.template,name:l10n_tw.tw_513300 +msgid "Raw materials purchase returns" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_225200 +#: model:account.account,name:l10n_tw.2_tw_225200 +#: model:account.account.template,name:l10n_tw.tw_225200 +msgid "Receipts under custody" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_128400 +#: model:account.account,name:l10n_tw.2_tw_128400 +#: model:account.account.template,name:l10n_tw.tw_128400 +msgid "Refundable deposits" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_515200 +#: model:account.account,name:l10n_tw.1_tw_611200 +#: model:account.account,name:l10n_tw.2_tw_515200 +#: model:account.account,name:l10n_tw.2_tw_611200 +#: model:account.account.template,name:l10n_tw.tw_515200 +#: model:account.account.template,name:l10n_tw.tw_611200 +msgid "Rent expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_712100 +#: model:account.account,name:l10n_tw.2_tw_712100 +#: model:account.account.template,name:l10n_tw.tw_712100 +msgid "Rent income" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_515700 +#: model:account.account,name:l10n_tw.1_tw_611700 +#: model:account.account,name:l10n_tw.2_tw_515700 +#: model:account.account,name:l10n_tw.2_tw_611700 +#: model:account.account.template,name:l10n_tw.tw_515700 +#: model:account.account.template,name:l10n_tw.tw_611700 +msgid "Repairs and maintenance expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613000 +#: model:account.account,name:l10n_tw.2_tw_613000 +#: model:account.account.template,name:l10n_tw.tw_613000 +msgid "Research and development expense" +msgstr "" + +#. module: l10n_tw +#: model:account.tax,name:l10n_tw.1_tw_tax_sale_5 +#: model:account.tax,name:l10n_tw.2_tw_tax_sale_5 +#: model:account.tax.template,name:l10n_tw.tw_tax_sale_5 +msgid "Sale (5%)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_411400 +#: model:account.account,name:l10n_tw.2_tw_411400 +#: model:account.account.template,name:l10n_tw.tw_411400 +msgid "Sales discounts and allowances" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_411300 +#: model:account.account,name:l10n_tw.2_tw_411300 +#: model:account.account.template,name:l10n_tw.tw_411300 +msgid "Sales returns" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_411100 +#: model:account.account,name:l10n_tw.2_tw_411100 +#: model:account.account.template,name:l10n_tw.tw_411100 +msgid "Sales revenue" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613300 +#: model:account.account,name:l10n_tw.2_tw_613300 +#: model:account.account.template,name:l10n_tw.tw_613300 +msgid "Services expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611300 +#: model:account.account,name:l10n_tw.2_tw_611300 +#: model:account.account.template,name:l10n_tw.tw_611300 +msgid "Stationery supplies" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_124000 +#: model:account.account,name:l10n_tw.2_tw_124000 +#: model:account.account.template,name:l10n_tw.tw_124000 +msgid "Supplies" +msgstr "" + +#. module: l10n_tw +#: model:account.chart.template,name:l10n_tw.l10n_tw_chart_template +msgid "Taiwan Tax and Account Chart Template" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_821100 +#: model:account.account,name:l10n_tw.2_tw_821100 +#: model:account.account.template,name:l10n_tw.tw_821100 +msgid "Tax expense (income)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612300 +#: model:account.account,name:l10n_tw.2_tw_612300 +#: model:account.account.template,name:l10n_tw.tw_612300 +msgid "Taxes" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_225100 +#: model:account.account,name:l10n_tw.2_tw_225100 +#: model:account.account.template,name:l10n_tw.tw_225100 +msgid "Temporary credits" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_128100 +#: model:account.account,name:l10n_tw.2_tw_128100 +#: model:account.account.template,name:l10n_tw.tw_128100 +msgid "Temporary payments" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613200 +#: model:account.account,name:l10n_tw.2_tw_613200 +#: model:account.account.template,name:l10n_tw.tw_613200 +msgid "Training expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611400 +#: model:account.account,name:l10n_tw.2_tw_611400 +#: model:account.account.template,name:l10n_tw.tw_611400 +msgid "Traveling Expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_515900 +#: model:account.account,name:l10n_tw.1_tw_611900 +#: model:account.account,name:l10n_tw.2_tw_515900 +#: model:account.account,name:l10n_tw.2_tw_611900 +#: model:account.account.template,name:l10n_tw.tw_515900 +#: model:account.account.template,name:l10n_tw.tw_611900 +msgid "Utilities expense" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611100 +#: model:account.account,name:l10n_tw.2_tw_611100 +#: model:account.account.template,name:l10n_tw.tw_611100 +msgid "Wages and salaries" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123700 +#: model:account.account,name:l10n_tw.2_tw_123700 +#: model:account.account.template,name:l10n_tw.tw_123700 +msgid "Work in progress" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_412100 +#: model:account.account,name:l10n_tw.2_tw_412100 +#: model:account.account.template,name:l10n_tw.tw_412100 +msgid "Labor Income" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_413100 +#: model:account.account,name:l10n_tw.2_tw_413100 +#: model:account.account.template,name:l10n_tw.tw_413100 +msgid "Engineering Income" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_423200 +#: model:account.account,name:l10n_tw.2_tw_423200 +#: model:account.account.template,name:l10n_tw.tw_423200 +msgid "Engineering Income refund or discount" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_841100 +#: model:account.account,name:l10n_tw.2_tw_841100 +#: model:account.account.template,name:l10n_tw.tw_841100 +msgid "Closed Units' asset or profit (post tax)" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_871100 +#: model:account.account,name:l10n_tw.2_tw_871100 +#: model:account.account.template,name:l10n_tw.tw_871100 +msgid "Unrealized gains and losses on available-for-sale financial assets" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_206 +msgid "七堵區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_883 +msgid "七美鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_724 +msgid "七股區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_901 +msgid "三地門鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_237 +msgid "三峽區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_266 +msgid "三星鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_807 +msgid "三民區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_352 +msgid "三灣鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_367 +msgid "三義鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_252 +msgid "三芝區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_241 +msgid "三重區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_735 +msgid "下營區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_400 +msgid "中區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_235 +msgid "中和區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_606 +msgid "中埔鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_320 +msgid "中壢區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_541 +msgid "中寮鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_104 +#: model:res.city,name:l10n_tw.city_tw_203 +msgid "中山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_100 +#: model:res.city,name:l10n_tw.city_tw_202 +msgid "中正區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_700 +msgid "中西區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_904 +msgid "九如鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_649 +msgid "二崙鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_526 +msgid "二林鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_530 +msgid "二水鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_311 +msgid "五峰鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_268 +msgid "五結鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_248 +msgid "五股區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_717 +msgid "仁德區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_200 +msgid "仁愛區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_546 +msgid "仁愛鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_814 +msgid "仁武區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_509 +msgid "伸港鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_931 +msgid "佳冬鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_722 +msgid "佳里區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_922 +msgid "來義鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_110 +#: model:res.city,name:l10n_tw.city_tw_201 +msgid "信義區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_556 +msgid "信義鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_655 +msgid "元長鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_976 +msgid "光復鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_912 +msgid "內埔鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_114 +msgid "內湖區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_845 +msgid "內門區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_334 +msgid "八德區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_249 +msgid "八里區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_363 +msgid "公館鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_734 +msgid "六甲區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_615 +msgid "六腳鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_844 +msgid "六龜區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_269 +msgid "冬山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_801 +msgid "前金區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_806 +msgid "前鎮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_300 +#: model:res.city,name:l10n_tw.city_tw_404 +#: model:res.city,name:l10n_tw.city_tw_704 +msgid "北區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_314 +msgid "北埔鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_406 +msgid "北屯區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_112 +msgid "北投區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_521 +msgid "北斗鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_651 +msgid "北港鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_210 +msgid "北竿鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_727 +msgid "北門區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_954 +msgid "卑南鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_982 +msgid "卓溪鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_369 +msgid "卓蘭鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_716 +msgid "南化區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_402 +#: model:res.city,name:l10n_tw.city_tw_702 +msgid "南區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_408 +msgid "南屯區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_926 +msgid "南州鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_353 +msgid "南庄鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_540 +msgid "南投市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_ntc +msgid "南投縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_819 +msgid "南沙群島" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_115 +msgid "南港區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_272 +msgid "南澳鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_209 +msgid "南竿鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_653 +msgid "口湖鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_646 +msgid "古坑鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_tcc +msgid "台中市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_tpc +msgid "台北市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_tnh +msgid "台南市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_950 +msgid "台東市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_tth +msgid "台東縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_636 +msgid "台西鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_973 +msgid "吉安鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_551 +msgid "名間鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_421 +msgid "后里區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_424 +msgid "和平區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_508 +msgid "和美鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_264 +msgid "員山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_510 +msgid "員林市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_741 +msgid "善化區" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_cic +msgid "嘉義市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_cih +msgid "嘉義縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_654 +msgid "四湖鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_544 +msgid "國姓鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_236 +msgid "土城區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_633 +msgid "土庫鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_232 +msgid "坪林區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_513 +msgid "埔心鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_545 +msgid "埔里鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_516 +msgid "埔鹽鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_523 +msgid "埤頭鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_klc +msgid "基隆市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_111 +msgid "士林區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_263 +msgid "壯圍鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_974 +msgid "壽豐鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_438 +msgid "外埔區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_742 +msgid "大內區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_103 +msgid "大同區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_267 +msgid "大同鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_337 +msgid "大園區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_527 +msgid "大城鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_607 +msgid "大埔鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_631 +msgid "大埤鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_106 +#: model:res.city,name:l10n_tw.city_tw_439 +msgid "大安區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_831 +msgid "大寮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_515 +msgid "大村鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_622 +msgid "大林鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_840 +msgid "大樹區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_965 +msgid "大武鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_364 +msgid "大湖鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_335 +msgid "大溪區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_437 +msgid "大甲區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_815 +msgid "大社區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_432 +msgid "大肚區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_412 +msgid "大里區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_428 +msgid "大雅區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_612 +msgid "太保市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_411 +msgid "太平區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_963 +msgid "太麻里鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_726 +msgid "學甲區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_709 +msgid "安南區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_745 +msgid "安定區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_708 +msgid "安平區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_204 +msgid "安樂區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_720 +msgid "官田區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_260 +msgid "宜蘭市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_ilh +msgid "宜蘭縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_983 +msgid "富里鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_308 +msgid "寶山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_725 +msgid "將軍區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_812 +msgid "小港區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_313 +msgid "尖石鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_900 +msgid "屏東市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_pth +msgid "屏東縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_743 +msgid "山上區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_820 +msgid "岡山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_315 +msgid "峨眉鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_924 +msgid "崁頂鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_637 +msgid "崙背鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_813 +msgid "左營區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_713 +msgid "左鎮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_625 +msgid "布袋鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_226 +msgid "平溪區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_324 +msgid "平鎮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_953 +msgid "延平鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_827 +msgid "彌陀區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_500 +msgid "彰化市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_chh +msgid "彰化縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_731 +msgid "後壁區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_356 +msgid "後龍鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_336 +msgid "復興區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_946 +msgid "恆春鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_961 +msgid "成功鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_116 +msgid "文山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_640 +msgid "斗六市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_630 +msgid "斗南鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_712 +msgid "新化區" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_ntpc +msgid "新北市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_932 +msgid "新園鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_971 +msgid "新城鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_305 +msgid "新埔鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_925 +msgid "新埤鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_327 +msgid "新屋區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_744 +msgid "新市區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_231 +msgid "新店區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_616 +msgid "新港鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_730 +msgid "新營區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_426 +msgid "新社區" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_hct +msgid "新竹市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_hch +msgid "新竹縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_800 +msgid "新興區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_242 +msgid "新莊區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_304 +msgid "新豐鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_842 +msgid "旗山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_805 +msgid "旗津區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_942 +msgid "春日鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_205 +msgid "暖暖區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_882 +msgid "望安鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_613 +msgid "朴子市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_846 +msgid "杉林區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_423 +msgid "東勢區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_635 +msgid "東勢鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_300_1 +#: model:res.city,name:l10n_tw.city_tw_401 +#: model:res.city,name:l10n_tw.city_tw_600 +#: model:res.city,name:l10n_tw.city_tw_701 +msgid "東區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_733 +msgid "東山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_212 +msgid "東引鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_817 +msgid "東沙群島" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_959 +msgid "東河鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_928 +msgid "東港鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_614 +msgid "東石鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_105 +msgid "松山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_220 +msgid "板橋區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_940 +msgid "枋寮鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_941 +msgid "枋山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_643 +msgid "林內鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_244 +msgid "林口區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_832 +msgid "林園區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_927 +msgid "林邊鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_736 +msgid "柳營區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_330 +msgid "桃園區" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_tyc +msgid "桃園市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_848 +msgid "桃源區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_603 +msgid "梅山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_826 +msgid "梓官區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_435 +msgid "梧棲區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_326 +msgid "楊梅區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_811 +msgid "楠梓區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_715 +msgid "楠西區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_238 +msgid "樹林區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_825 +msgid "橋頭區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_312 +msgid "橫山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_711 +msgid "歸仁區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_621 +msgid "民雄鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_608 +msgid "水上鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_652 +msgid "水林鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_553 +msgid "水里鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_234 +msgid "永和區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_828 +msgid "永安區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_710 +msgid "永康區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_512 +msgid "永靖鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_221 +msgid "汐止區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_958 +msgid "池上鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_433 +msgid "沙鹿區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_365 +msgid "泰安鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_243 +msgid "泰山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_921 +msgid "泰武鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_957 +msgid "海端鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_251 +msgid "淡水區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_222 +msgid "深坑區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_436 +msgid "清水區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_829 +msgid "湖內區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_303 +msgid "湖口鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_885 +msgid "湖西鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_623 +msgid "溪口鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_524 +msgid "溪州鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_514 +msgid "溪湖鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_947 +msgid "滿州鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_427 +msgid "潭子區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_920 +msgid "潮州鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_phc +msgid "澎湖縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_894 +msgid "烈嶼鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_233 +msgid "烏來區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_896 +msgid "烏坵鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_414 +msgid "烏日區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_824 +msgid "燕巢區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_945 +msgid "牡丹鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_943 +msgid "獅子鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_354 +msgid "獅潭鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_714 +msgid "玉井區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_981 +msgid "玉里鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_929 +msgid "琉球鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_978 +msgid "瑞穗鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_224 +msgid "瑞芳區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_903 +msgid "瑪家鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_520 +msgid "田中鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_823 +msgid "田寮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_522 +msgid "田尾鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_847 +msgid "甲仙區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_602 +msgid "番路鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_884 +msgid "白沙鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_732 +msgid "白河區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_422 +msgid "石岡區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_223 +msgid "石碇區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_253 +msgid "石門區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_262 +msgid "礁溪鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_511 +msgid "社頭鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_429 +msgid "神岡區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_506 +msgid "福興鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_972 +msgid "秀林鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_504 +msgid "秀水鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_302 +msgid "竹北市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_350 +msgid "竹南鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_525 +msgid "竹塘鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_557 +msgid "竹山鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_604 +msgid "竹崎鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_310 +msgid "竹東鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_911 +msgid "竹田鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_951 +msgid "綠島鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_507 +msgid "線西鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_265 +msgid "羅東鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_843 +msgid "美濃區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_624 +msgid "義竹鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_307 +msgid "芎林鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_502 +msgid "芬園鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_503 +msgid "花壇鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_970 +msgid "花蓮市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_hlh +msgid "花蓮縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_528 +msgid "芳苑鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_358 +msgid "苑裡鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_802 +msgid "苓雅區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_360 +msgid "苗栗市" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_mlh +msgid "苗栗縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_851 +msgid "茂林區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_852 +msgid "茄萣區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_542 +msgid "草屯鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_211 +msgid "莒光鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_647 +msgid "莿桐鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_913 +msgid "萬丹鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_923 +msgid "萬巒鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_979 +msgid "萬榮鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_108 +msgid "萬華區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_207 +msgid "萬里區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_247 +msgid "蘆洲區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_338 +msgid "蘆竹區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_270 +msgid "蘇澳鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_952 +msgid "蘭嶼鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_632 +msgid "虎尾鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_634 +msgid "褒忠鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_403 +#: model:res.city,name:l10n_tw.city_tw_600_1 +msgid "西區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_407 +msgid "西屯區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_881 +msgid "西嶼鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_723 +msgid "西港區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_368 +msgid "西湖鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_648 +msgid "西螺鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_328 +msgid "觀音區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_420 +msgid "豐原區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_977 +msgid "豐濱鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_228 +msgid "貢寮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_821 +msgid "路竹區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_944 +msgid "車城鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_357 +msgid "通霄鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_361 +msgid "造橋鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_lcc +msgid "連江縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_966 +msgid "達仁鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_849 +msgid "那瑪夏區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_905 +msgid "里港鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_893 +msgid "金城鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_892 +msgid "金寧鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_208 +msgid "金山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_964 +msgid "金峰鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_890 +msgid "金沙鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_891 +msgid "金湖鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_kmc +msgid "金門縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_290 +msgid "釣魚臺" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_366 +msgid "銅鑼鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_908 +msgid "長治鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_962 +msgid "長濱鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_956 +msgid "關山鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_718 +msgid "關廟區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_306 +msgid "關西鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_822 +msgid "阿蓮區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_605 +msgid "阿里山鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_552 +msgid "集集鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_227 +msgid "雙溪區" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_ylh +msgid "雲林縣" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_902 +msgid "霧台鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_413 +msgid "霧峰區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_351 +msgid "頭份市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_261 +msgid "頭城鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_362 +msgid "頭屋鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_300_2 +msgid "香山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_880 +msgid "馬公市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_906 +msgid "高樹鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.country.state,name:l10n_tw.state_tw_khc +msgid "高雄市" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_555 +msgid "魚池鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_833 +msgid "鳥松區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_830 +msgid "鳳山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_975 +msgid "鳳林鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_239 +msgid "鶯歌區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_907 +msgid "鹽埔鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_803 +msgid "鹽埕區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_737 +msgid "鹽水區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_505 +msgid "鹿港鎮" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_611 +msgid "鹿草鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_558 +msgid "鹿谷鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_955 +msgid "鹿野鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_909 +msgid "麟洛鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_638 +msgid "麥寮鄉" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_721 +msgid "麻豆區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_804 +msgid "鼓山區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_434 +msgid "龍井區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_719 +msgid "龍崎區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_325 +msgid "龍潭區" +msgstr "" + +#. module: l10n_tw +#: model:res.city,name:l10n_tw.city_tw_333 +msgid "龜山區" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/i18n/zh_TW.po b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/i18n/zh_TW.po new file mode 100644 index 0000000..a5c6d95 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/l10n_tw/i18n/zh_TW.po @@ -0,0 +1,932 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_tw +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0+e\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-04-19 09:56+0000\n" +"PO-Revision-Date: 2022-04-19 09:56+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_tw +#: model:account.account,name:l10n_tw.1_tw_217100 +#: model:account.account,name:l10n_tw.2_tw_217100 +#: model:account.account.template,name:l10n_tw.tw_217100 +msgid "Accounts payable" +msgstr "應付帳款" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_119100 +#: model:account.account,name:l10n_tw.2_tw_119100 +#: model:account.account.template,name:l10n_tw.tw_119100 +msgid "Accounts receivable" +msgstr "應收帳款" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_119150 +#: model:account.account,name:l10n_tw.2_tw_119150 +#: model:account.account.template,name:l10n_tw.tw_119150 +msgid "Accounts receivable (PoS)" +msgstr "應收帳款(POS)" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_155200 +#: model:account.account,name:l10n_tw.2_tw_155200 +#: model:account.account.template,name:l10n_tw.tw_155200 +msgid "Accumulated amortization, other intangible assets" +msgstr "累計攤銷-其他無形資產" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_141300 +#: model:account.account,name:l10n_tw.2_tw_141300 +#: model:account.account.template,name:l10n_tw.tw_141300 +msgid "Accumulated depreciation, buildings and structures" +msgstr "累計折舊-房屋及建築" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_144200 +#: model:account.account,name:l10n_tw.2_tw_144200 +#: model:account.account.template,name:l10n_tw.tw_144200 +msgid "Accumulated depreciation, leased assets" +msgstr "累計折舊-租賃資產" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_142200 +#: model:account.account,name:l10n_tw.2_tw_142200 +#: model:account.account.template,name:l10n_tw.tw_142200 +msgid "Accumulated depreciation, machinery and equipment" +msgstr "累計折舊-機器設備" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_143200 +#: model:account.account,name:l10n_tw.2_tw_143200 +#: model:account.account.template,name:l10n_tw.tw_143200 +msgid "Accumulated depreciation, office equipment" +msgstr "累計折舊-辦公設備" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_335100 +#: model:account.account,name:l10n_tw.2_tw_335100 +#: model:account.account.template,name:l10n_tw.tw_335100 +msgid "Accumulated profit and loss" +msgstr "累積盈虧" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_222100 +#: model:account.account,name:l10n_tw.2_tw_222100 +#: model:account.account.template,name:l10n_tw.tw_222100 +msgid "Advance sales receipts" +msgstr "預收貨款" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611800 +#: model:account.account,name:l10n_tw.2_tw_611800 +#: model:account.account.template,name:l10n_tw.tw_611800 +msgid "Advertisement expense" +msgstr "廣告費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_211200 +#: model:account.account,name:l10n_tw.2_tw_211200 +#: model:account.account.template,name:l10n_tw.tw_211200 +msgid "Bank loan" +msgstr "銀行借款" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_141100 +#: model:account.account,name:l10n_tw.2_tw_141100 +#: model:account.account.template,name:l10n_tw.tw_141100 +msgid "Buildings and structures, cost" +msgstr "房屋及建築-成本" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126800 +#: model:account.account,name:l10n_tw.2_tw_126800 +#: model:account.account.template,name:l10n_tw.tw_126800 +msgid "Business tax paid (or Input VAT)" +msgstr "進項稅額" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_219400 +#: model:account.account,name:l10n_tw.2_tw_219400 +#: model:account.account.template,name:l10n_tw.tw_219400 +msgid "Business tax payable" +msgstr "應付營業稅" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_220400 +#: model:account.account,name:l10n_tw.2_tw_220400 +#: model:account.account.template,name:l10n_tw.tw_220400 +msgid "Business tax received (or Output VAT)" +msgstr "銷項稅額" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_321100 +#: model:account.account,name:l10n_tw.2_tw_321100 +#: model:account.account.template,name:l10n_tw.tw_321100 +msgid "" +"Capital surplus, additional paid-in capital arising from ordinary share" +msgstr "資本公積-普通股股票溢價" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_718500 +#: model:account.account,name:l10n_tw.2_tw_718500 +#: model:account.account.template,name:l10n_tw.tw_718500 +msgid "Cash difference gains" +msgstr "現金差異利益" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_718600 +#: model:account.account,name:l10n_tw.2_tw_718600 +#: model:account.account.template,name:l10n_tw.tw_718600 +msgid "Cash difference losses" +msgstr "現金差異損失" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613100 +#: model:account.account,name:l10n_tw.2_tw_613100 +#: model:account.account.template,name:l10n_tw.tw_613100 +msgid "Commissions expense" +msgstr "佣金支出" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_723200 +#: model:account.account,name:l10n_tw.2_tw_723200 +#: model:account.account.template,name:l10n_tw.tw_723200 +msgid "Commissions revenue" +msgstr "佣金收入" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_511100 +#: model:account.account,name:l10n_tw.2_tw_511100 +#: model:account.account.template,name:l10n_tw.tw_511100 +msgid "Cost of sales" +msgstr "銷貨成本" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_156100 +#: model:account.account,name:l10n_tw.2_tw_156100 +#: model:account.account.template,name:l10n_tw.tw_156100 +msgid "Deferred tax assets" +msgstr "遞延所得稅資產" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612600 +#: model:account.account,name:l10n_tw.2_tw_612600 +#: model:account.account.template,name:l10n_tw.tw_612600 +msgid "Depletions and amortizations" +msgstr "各項耗竭及攤提" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516300 +#: model:account.account,name:l10n_tw.1_tw_612500 +#: model:account.account,name:l10n_tw.2_tw_516300 +#: model:account.account,name:l10n_tw.2_tw_612500 +#: model:account.account.template,name:l10n_tw.tw_516300 +#: model:account.account.template,name:l10n_tw.tw_612500 +msgid "Depreciations" +msgstr "折舊" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_514100 +#: model:account.account,name:l10n_tw.2_tw_514100 +#: model:account.account.template,name:l10n_tw.tw_514100 +msgid "Direct labor" +msgstr "直接人工" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_714100 +#: model:account.account,name:l10n_tw.2_tw_714100 +#: model:account.account.template,name:l10n_tw.tw_714100 +msgid "Dividend revenue" +msgstr "股利收入" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_220100 +#: model:account.account,name:l10n_tw.2_tw_220100 +#: model:account.account.template,name:l10n_tw.tw_220100 +msgid "Dividends payable" +msgstr "應付股利" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612200 +#: model:account.account,name:l10n_tw.2_tw_612200 +#: model:account.account.template,name:l10n_tw.tw_612200 +msgid "Donation expense" +msgstr "捐贈" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_121100 +#: model:account.account,name:l10n_tw.2_tw_121100 +#: model:account.account.template,name:l10n_tw.tw_121100 +msgid "Earned revenue receivable" +msgstr "應收收益" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612900 +#: model:account.account,name:l10n_tw.2_tw_612900 +#: model:account.account.template,name:l10n_tw.tw_612900 +msgid "Employee benefits/welfare" +msgstr "職工福利" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612100 +#: model:account.account,name:l10n_tw.2_tw_612100 +#: model:account.account.template,name:l10n_tw.tw_612100 +msgid "Entertainment expense" +msgstr "交際費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123500 +#: model:account.account,name:l10n_tw.2_tw_123500 +#: model:account.account.template,name:l10n_tw.tw_123500 +msgid "Finished goods" +msgstr "製成品" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_718100 +#: model:account.account,name:l10n_tw.2_tw_718100 +#: model:account.account.template,name:l10n_tw.tw_718100 +msgid "Foreign exchange gains" +msgstr "兌換利益" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_718200 +#: model:account.account,name:l10n_tw.2_tw_718200 +#: model:account.account.template,name:l10n_tw.tw_718200 +msgid "Foreign exchange losses" +msgstr "兌換損失" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611500 +#: model:account.account,name:l10n_tw.2_tw_611500 +#: model:account.account.template,name:l10n_tw.tw_611500 +msgid "Freight" +msgstr "運費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_719100 +#: model:account.account,name:l10n_tw.2_tw_719100 +#: model:account.account.template,name:l10n_tw.tw_719100 +msgid "Gains on disposals of investment property" +msgstr "處分投資性不動產利益" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_720200 +#: model:account.account,name:l10n_tw.2_tw_720200 +#: model:account.account.template,name:l10n_tw.tw_720200 +msgid "Gains on disposals of property, plant and equipment" +msgstr "處分不動產、廠房及設備損失" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_158300 +#: model:account.account,name:l10n_tw.2_tw_158300 +#: model:account.account.template,name:l10n_tw.tw_158300 +msgid "Guarantee deposits paid" +msgstr "存出保證金" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516800 +#: model:account.account,name:l10n_tw.2_tw_516800 +#: model:account.account.template,name:l10n_tw.tw_516800 +msgid "Indirect materials" +msgstr "間接材料" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516000 +#: model:account.account,name:l10n_tw.1_tw_612000 +#: model:account.account,name:l10n_tw.2_tw_516000 +#: model:account.account,name:l10n_tw.2_tw_612000 +#: model:account.account.template,name:l10n_tw.tw_516000 +#: model:account.account.template,name:l10n_tw.tw_612000 +msgid "Insurance expense" +msgstr "保險費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_715100 +#: model:account.account,name:l10n_tw.2_tw_715100 +#: model:account.account.template,name:l10n_tw.tw_715100 +msgid "Interest expense" +msgstr "利息費用" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_711100 +#: model:account.account,name:l10n_tw.2_tw_711100 +#: model:account.account.template,name:l10n_tw.tw_711100 +msgid "Interest revenue" +msgstr "利息收入" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_717100 +#: model:account.account,name:l10n_tw.2_tw_717100 +#: model:account.account.template,name:l10n_tw.tw_717100 +msgid "Investment income accounted for using equity method" +msgstr "採權益法認列之投資利益" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_717200 +#: model:account.account,name:l10n_tw.2_tw_717200 +#: model:account.account.template,name:l10n_tw.tw_717200 +msgid "Investment loss accounted for using equity method" +msgstr "採權益法認列之投資損失" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_137100 +#: model:account.account,name:l10n_tw.2_tw_137100 +#: model:account.account.template,name:l10n_tw.tw_137100 +msgid "Investments accounted for using equity method" +msgstr "採用權益法之投資" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_139100 +#: model:account.account,name:l10n_tw.2_tw_139100 +#: model:account.account.template,name:l10n_tw.tw_139100 +msgid "Land, cost" +msgstr "土地-成本" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_144100 +#: model:account.account,name:l10n_tw.2_tw_144100 +#: model:account.account.template,name:l10n_tw.tw_144100 +msgid "Leased assets, cost" +msgstr "租賃資產-成本" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_l10n_tw_chart_template_liquidity_transfer +#: model:account.account,name:l10n_tw.2_l10n_tw_chart_template_liquidity_transfer +#: model:account.account.template,name:l10n_tw.l10n_tw_chart_template_liquidity_transfer +msgid "Liquidity Transfer" +msgstr "" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_719200 +#: model:account.account,name:l10n_tw.2_tw_719200 +#: model:account.account.template,name:l10n_tw.tw_719200 +msgid "Losses on disposals of investment property" +msgstr "處分投資性不動產損失" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612400 +#: model:account.account,name:l10n_tw.2_tw_612400 +#: model:account.account.template,name:l10n_tw.tw_612400 +msgid "Losses on doubtful debts" +msgstr "呆帳損失" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612700 +#: model:account.account,name:l10n_tw.2_tw_612700 +#: model:account.account.template,name:l10n_tw.tw_612700 +msgid "Losses on export sales" +msgstr "外銷損失" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_142100 +#: model:account.account,name:l10n_tw.2_tw_142100 +#: model:account.account.template,name:l10n_tw.tw_142100 +msgid "Machinery and equipment, cost" +msgstr "機器設備-成本 " + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516500 +#: model:account.account,name:l10n_tw.1_tw_612800 +#: model:account.account,name:l10n_tw.2_tw_516500 +#: model:account.account,name:l10n_tw.2_tw_612800 +#: model:account.account.template,name:l10n_tw.tw_516500 +#: model:account.account.template,name:l10n_tw.tw_612800 +msgid "Meal expense" +msgstr "伙食費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123100 +#: model:account.account,name:l10n_tw.2_tw_123100 +#: model:account.account.template,name:l10n_tw.tw_123100 +msgid "Merchandise inventory" +msgstr "商品存貨" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_720100 +#: model:account.account,name:l10n_tw.2_tw_720100 +#: model:account.account.template,name:l10n_tw.tw_720100 +msgid "Net gain or loss on disposals of property, plant and equipment" +msgstr "處分不動產、廠房及設備利益" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_216100 +#: model:account.account,name:l10n_tw.2_tw_216100 +#: model:account.account.template,name:l10n_tw.tw_216100 +msgid "Notes payable" +msgstr "應付票據" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_118100 +#: model:account.account,name:l10n_tw.2_tw_118100 +#: model:account.account.template,name:l10n_tw.tw_118100 +msgid "Notes receivable" +msgstr "應收票據" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_143100 +#: model:account.account,name:l10n_tw.2_tw_143100 +#: model:account.account.template,name:l10n_tw.tw_143100 +msgid "Office equipment, cost" +msgstr "辦公設備-成本" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126400 +#: model:account.account,name:l10n_tw.2_tw_126400 +#: model:account.account.template,name:l10n_tw.tw_126400 +msgid "Office supplies" +msgstr "用品盤存" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_311100 +#: model:account.account,name:l10n_tw.2_tw_311100 +#: model:account.account.template,name:l10n_tw.tw_311100 +msgid "Ordinary share" +msgstr "普通股股本" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_219700 +#: model:account.account,name:l10n_tw.2_tw_219700 +#: model:account.account.template,name:l10n_tw.tw_219700 +msgid "Other accrued expenses" +msgstr "其他應付費用" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_222300 +#: model:account.account,name:l10n_tw.2_tw_222300 +#: model:account.account.template,name:l10n_tw.tw_222300 +msgid "Other advance receipts" +msgstr "其他預收款" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_341500 +#: model:account.account,name:l10n_tw.2_tw_341500 +#: model:account.account.template,name:l10n_tw.tw_341500 +msgid "Other equity interest, others" +msgstr "其他權益-其他" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_155100 +#: model:account.account,name:l10n_tw.2_tw_155100 +#: model:account.account.template,name:l10n_tw.tw_155100 +msgid "Other intangible assets, net" +msgstr "其他無形資產" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123150 +#: model:account.account,name:l10n_tw.2_tw_123150 +#: model:account.account.template,name:l10n_tw.tw_123150 +msgid "Other inventory (pending acceptance)" +msgstr "其他存貨(已出貨待驗收)" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_158600 +#: model:account.account,name:l10n_tw.2_tw_158600 +#: model:account.account.template,name:l10n_tw.tw_158600 +msgid "Other non-current assets, others" +msgstr "其他非流動資產-其他" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_591100 +#: model:account.account,name:l10n_tw.2_tw_591100 +#: model:account.account.template,name:l10n_tw.tw_591100 +msgid "Other operating costs" +msgstr "其他營業成本" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613400 +#: model:account.account,name:l10n_tw.2_tw_613400 +#: model:account.account.template,name:l10n_tw.tw_613400 +msgid "Other operating expenses" +msgstr "其他營業費用" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_414100 +#: model:account.account,name:l10n_tw.2_tw_414100 +#: model:account.account.template,name:l10n_tw.tw_414100 +msgid "Other operating revenue" +msgstr "其他營業收入" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516900 +#: model:account.account,name:l10n_tw.2_tw_516900 +#: model:account.account.template,name:l10n_tw.tw_516900 +msgid "Other overheads" +msgstr "其他製造費用" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126500 +#: model:account.account,name:l10n_tw.2_tw_126500 +#: model:account.account.template,name:l10n_tw.tw_126500 +msgid "Other prepaid expenses" +msgstr "其他預付費用" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_127000 +#: model:account.account,name:l10n_tw.2_tw_127000 +#: model:account.account.template,name:l10n_tw.tw_127000 +msgid "Other prepayments" +msgstr "其他預付款項" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_724700 +#: model:account.account,name:l10n_tw.2_tw_724700 +#: model:account.account.template,name:l10n_tw.tw_724700 +msgid "Other revenue" +msgstr "其他收入" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126900 +#: model:account.account,name:l10n_tw.2_tw_126900 +#: model:account.account.template,name:l10n_tw.tw_126900 +msgid "Overpaid sales tax" +msgstr "留抵稅額" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_239300 +#: model:account.account,name:l10n_tw.2_tw_239300 +#: model:account.account.template,name:l10n_tw.tw_239300 +msgid "Owner (shareholder) accounts, credit" +msgstr "業主(股東)往來" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_158400 +#: model:account.account,name:l10n_tw.2_tw_158400 +#: model:account.account.template,name:l10n_tw.tw_158400 +msgid "Owner (shareholder) accounts, debit" +msgstr "業主(股東)往來" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_515800 +#: model:account.account,name:l10n_tw.2_tw_515800 +#: model:account.account.template,name:l10n_tw.tw_515800 +msgid "Packing expenses" +msgstr "包裝費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_219900 +#: model:account.account,name:l10n_tw.2_tw_219900 +#: model:account.account.template,name:l10n_tw.tw_219900 +msgid "Payable on machinery and equipment" +msgstr "應付設備款" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_128200 +#: model:account.account,name:l10n_tw.2_tw_128200 +#: model:account.account.template,name:l10n_tw.tw_128200 +msgid "Payment on behalf of others" +msgstr "代付款" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611600 +#: model:account.account,name:l10n_tw.2_tw_611600 +#: model:account.account.template,name:l10n_tw.tw_611600 +msgid "Postage expenses" +msgstr "郵電費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_126600 +#: model:account.account,name:l10n_tw.2_tw_126600 +#: model:account.account.template,name:l10n_tw.tw_126600 +msgid "Prepayment for purchases" +msgstr "預付貨款" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_158200 +#: model:account.account,name:l10n_tw.2_tw_158200 +#: model:account.account.template,name:l10n_tw.tw_158200 +msgid "Prepayments for business facilities" +msgstr "預付設備款" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_516100 +#: model:account.account,name:l10n_tw.2_tw_516100 +#: model:account.account.template,name:l10n_tw.tw_516100 +msgid "Processing expense" +msgstr "加工費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_217150 +#: model:account.account,name:l10n_tw.2_tw_217150 +#: model:account.account.template,name:l10n_tw.tw_217150 +msgid "Provisional estimate payable" +msgstr "應付暫估" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_512100 +#: model:account.account,name:l10n_tw.2_tw_512100 +#: model:account.account.template,name:l10n_tw.tw_512100 +msgid "Purchase of goods" +msgstr "進貨" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_513100 +#: model:account.account,name:l10n_tw.2_tw_513100 +#: model:account.account.template,name:l10n_tw.tw_513100 +msgid "Purchase of raw materials" +msgstr "進料" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_512400 +#: model:account.account,name:l10n_tw.2_tw_512400 +#: model:account.account.template,name:l10n_tw.tw_512400 +msgid "Purchases discounts and allowances" +msgstr "進貨折讓" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_512300 +#: model:account.account,name:l10n_tw.2_tw_512300 +#: model:account.account.template,name:l10n_tw.tw_512300 +msgid "Purchases returns" +msgstr "進貨退出" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123900 +#: model:account.account,name:l10n_tw.2_tw_123900 +#: model:account.account.template,name:l10n_tw.tw_123900 +msgid "Raw materials" +msgstr "原料" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_513400 +#: model:account.account,name:l10n_tw.2_tw_513400 +#: model:account.account.template,name:l10n_tw.tw_513400 +msgid "Raw materials purchase discounts and allowances" +msgstr "進料折讓" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_513300 +#: model:account.account,name:l10n_tw.2_tw_513300 +#: model:account.account.template,name:l10n_tw.tw_513300 +msgid "Raw materials purchase returns" +msgstr "進料退出" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_225200 +#: model:account.account,name:l10n_tw.2_tw_225200 +#: model:account.account.template,name:l10n_tw.tw_225200 +msgid "Receipts under custody" +msgstr "代收款" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_128400 +#: model:account.account,name:l10n_tw.2_tw_128400 +#: model:account.account.template,name:l10n_tw.tw_128400 +msgid "Refundable deposits" +msgstr "存出保證金" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_515200 +#: model:account.account,name:l10n_tw.1_tw_611200 +#: model:account.account,name:l10n_tw.2_tw_515200 +#: model:account.account,name:l10n_tw.2_tw_611200 +#: model:account.account.template,name:l10n_tw.tw_515200 +#: model:account.account.template,name:l10n_tw.tw_611200 +msgid "Rent expense" +msgstr "租金支出" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_712100 +#: model:account.account,name:l10n_tw.2_tw_712100 +#: model:account.account.template,name:l10n_tw.tw_712100 +msgid "Rent income" +msgstr "租金收入" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_515700 +#: model:account.account,name:l10n_tw.1_tw_611700 +#: model:account.account,name:l10n_tw.2_tw_515700 +#: model:account.account,name:l10n_tw.2_tw_611700 +#: model:account.account.template,name:l10n_tw.tw_515700 +#: model:account.account.template,name:l10n_tw.tw_611700 +msgid "Repairs and maintenance expense" +msgstr "修繕費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613000 +#: model:account.account,name:l10n_tw.2_tw_613000 +#: model:account.account.template,name:l10n_tw.tw_613000 +msgid "Research and development expense" +msgstr "研究發展費用" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_411400 +#: model:account.account,name:l10n_tw.2_tw_411400 +#: model:account.account.template,name:l10n_tw.tw_411400 +msgid "Sales discounts and allowances" +msgstr "銷貨折讓" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_411300 +#: model:account.account,name:l10n_tw.2_tw_411300 +#: model:account.account.template,name:l10n_tw.tw_411300 +msgid "Sales returns" +msgstr "銷貨退回" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_411100 +#: model:account.account,name:l10n_tw.2_tw_411100 +#: model:account.account.template,name:l10n_tw.tw_411100 +msgid "Sales revenue" +msgstr "銷貨收入" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613300 +#: model:account.account,name:l10n_tw.2_tw_613300 +#: model:account.account.template,name:l10n_tw.tw_613300 +msgid "Services expense" +msgstr "勞務費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611300 +#: model:account.account,name:l10n_tw.2_tw_611300 +#: model:account.account.template,name:l10n_tw.tw_611300 +msgid "Stationery supplies" +msgstr "文具用品" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_124000 +#: model:account.account,name:l10n_tw.2_tw_124000 +#: model:account.account.template,name:l10n_tw.tw_124000 +msgid "Supplies" +msgstr "物料" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_821100 +#: model:account.account,name:l10n_tw.2_tw_821100 +#: model:account.account.template,name:l10n_tw.tw_821100 +msgid "Tax expense (income)" +msgstr "所得稅費用(或利益)" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_612300 +#: model:account.account,name:l10n_tw.2_tw_612300 +#: model:account.account.template,name:l10n_tw.tw_612300 +msgid "Taxes" +msgstr "稅捐" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_225100 +#: model:account.account,name:l10n_tw.2_tw_225100 +#: model:account.account.template,name:l10n_tw.tw_225100 +msgid "Temporary credits" +msgstr "暫收款" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_128100 +#: model:account.account,name:l10n_tw.2_tw_128100 +#: model:account.account.template,name:l10n_tw.tw_128100 +msgid "Temporary payments" +msgstr "暫付款" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_613200 +#: model:account.account,name:l10n_tw.2_tw_613200 +#: model:account.account.template,name:l10n_tw.tw_613200 +msgid "Training expense" +msgstr "訓練費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611400 +#: model:account.account,name:l10n_tw.2_tw_611400 +#: model:account.account.template,name:l10n_tw.tw_611400 +msgid "Traveling Expense" +msgstr "旅費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_515900 +#: model:account.account,name:l10n_tw.1_tw_611900 +#: model:account.account,name:l10n_tw.2_tw_515900 +#: model:account.account,name:l10n_tw.2_tw_611900 +#: model:account.account.template,name:l10n_tw.tw_515900 +#: model:account.account.template,name:l10n_tw.tw_611900 +msgid "Utilities expense" +msgstr "水電瓦斯費" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_611100 +#: model:account.account,name:l10n_tw.2_tw_611100 +#: model:account.account.template,name:l10n_tw.tw_611100 +msgid "Wages and salaries" +msgstr "薪資支出" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_123700 +#: model:account.account,name:l10n_tw.2_tw_123700 +#: model:account.account.template,name:l10n_tw.tw_123700 +msgid "Work in progress" +msgstr "在製品" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_412100 +#: model:account.account,name:l10n_tw.2_tw_412100 +#: model:account.account.template,name:l10n_tw.tw_412100 +msgid "Labor Income" +msgstr "勞務收入" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_413100 +#: model:account.account,name:l10n_tw.2_tw_413100 +#: model:account.account.template,name:l10n_tw.tw_413100 +msgid "Engineering Income" +msgstr "工程收入" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_423200 +#: model:account.account,name:l10n_tw.2_tw_423200 +#: model:account.account.template,name:l10n_tw.tw_423200 +msgid "Engineering Income refund or discount" +msgstr "工程收入退回及折讓" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_841100 +#: model:account.account,name:l10n_tw.2_tw_841100 +#: model:account.account.template,name:l10n_tw.tw_841100 +msgid "Closed Units' asset or profit (post tax)" +msgstr "停業單位資產或處分群組處分損益(稅後)" + +#. module: l10n_tw +#: model:account.account,name:l10n_tw.1_tw_871100 +#: model:account.account,name:l10n_tw.2_tw_871100 +#: model:account.account.template,name:l10n_tw.tw_871100 +msgid "Unrealized gains and losses on available-for-sale financial assets" +msgstr "備供出售金融資產未實現損益" + +#. module: l10n_tw +#: model:account.tax.group,name:l10n_tw.tax_group_gst_5 +msgid "GST 5%" +msgstr "營業稅" + +#. module: l10n_tw +#: model:account.tax,name:l10n_tw.1_tw_tax_purchase_inc_5 +#: model:account.tax,name:l10n_tw.2_tw_tax_purchase_inc_5 +#: model:account.tax.template,name:l10n_tw.tw_tax_purchase_inc_5 +msgid "GST Inc Purchase (5%)" +msgstr "進項5%-內含" + +#. module: l10n_tw +#: model:account.tax,name:l10n_tw.1_tw_tax_sale_inc_5 +#: model:account.tax,name:l10n_tw.2_tw_tax_sale_inc_5 +#: model:account.tax.template,name:l10n_tw.tw_tax_sale_inc_5 +msgid "GST Inc Sale (5%)" +msgstr "銷項5%-內含" + +#. module: l10n_tw +#: model:account.tax,description:l10n_tw.1_tw_tax_purchase_inc_5 +#: model:account.tax,description:l10n_tw.2_tw_tax_purchase_inc_5 +#: model:account.tax.template,description:l10n_tw.tw_tax_purchase_inc_5 +msgid "GST Inclusive Purchases" +msgstr "進項內含" + +#. module: l10n_tw +#: model:account.tax,description:l10n_tw.1_tw_tax_sale_inc_5 +#: model:account.tax,description:l10n_tw.2_tw_tax_sale_inc_5 +#: model:account.tax.template,description:l10n_tw.tw_tax_sale_inc_5 +msgid "GST Inclusive Sale" +msgstr "銷項內含" + +#. module: l10n_tw +#: model:account.tax,description:l10n_tw.1_tw_tax_purchase_5 +#: model:account.tax,description:l10n_tw.2_tw_tax_purchase_5 +#: model:account.tax.template,description:l10n_tw.tw_tax_purchase_5 +msgid "GST Purchase" +msgstr "進項" + +#. module: l10n_tw +#: model:account.tax,description:l10n_tw.1_tw_tax_sale_5 +#: model:account.tax,description:l10n_tw.2_tw_tax_sale_5 +#: model:account.tax.template,description:l10n_tw.tw_tax_sale_5 +msgid "GST Sales" +msgstr "銷項" + +#. module: l10n_tw +#: model:account.tax,name:l10n_tw.1_tw_tax_purchase_5 +#: model:account.tax,name:l10n_tw.2_tw_tax_purchase_5 +#: model:account.tax.template,name:l10n_tw.tw_tax_purchase_5 +msgid "Purchase (5%)" +msgstr "進項5%" + +#. module: l10n_tw +#: model:account.tax,name:l10n_tw.1_tw_tax_sale_5 +#: model:account.tax,name:l10n_tw.2_tw_tax_sale_5 +#: model:account.tax.template,name:l10n_tw.tw_tax_sale_5 +msgid "Sale (5%)" +msgstr "銷項5%" + +#. module: l10n_tw +#: model:account.chart.template,name:l10n_tw.l10n_tw_chart_template +msgid "Taiwan Tax and Account Chart Template" +msgstr "台灣會計科目表" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_tw +msgid "Taiwan - Accounting" +msgstr "台灣 - 會計" diff --git a/odoo-bringout-oca-ocb-l10n_tw/pyproject.toml b/odoo-bringout-oca-ocb-l10n_tw/pyproject.toml new file mode 100644 index 0000000..c8d7cb4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_tw/pyproject.toml @@ -0,0 +1,44 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_tw" +version = "16.0.0" +description = "Taiwan - Accounting - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account>=16.0.0", + "odoo-bringout-oca-ocb-base_address_extended>=16.0.0", + "odoo-bringout-oca-ocb-l10n_multilang>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_tw"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +] diff --git a/odoo-bringout-oca-ocb-l10n_vn/README.md b/odoo-bringout-oca-ocb-l10n_vn/README.md new file mode 100644 index 0000000..f8f3d36 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/README.md @@ -0,0 +1,58 @@ +# Vietnam - Accounting + + +This is the module to manage the accounting chart for Vietnam in Odoo. +========================================================================= + +This module applies to companies based in Vietnamese Accounting Standard (VAS) +with Chart of account under Circular No. 200/2014/TT-BTC + +**Credits:** + - General Solutions. + - Trobz + + +## Installation + +```bash +pip install odoo-bringout-oca-ocb-l10n_vn +``` + +## Dependencies + +This addon depends on: +- account +- base_iban +- l10n_multilang + +## Manifest Information + +- **Name**: Vietnam - Accounting +- **Version**: 2.0.1 +- **Category**: Accounting/Localizations/Account Charts +- **License**: LGPL-3 +- **Installable**: False + +## Source + +Based on [OCA/OCB](https://github.com/OCA/OCB) branch 16.0, addon `l10n_vn`. + +## License + +This package maintains the original LGPL-3 license from the upstream Odoo project. + +## Documentation + +- Overview: doc/OVERVIEW.md +- Architecture: doc/ARCHITECTURE.md +- Models: doc/MODELS.md +- Controllers: doc/CONTROLLERS.md +- Wizards: doc/WIZARDS.md +- Reports: doc/REPORTS.md +- Security: doc/SECURITY.md +- Install: doc/INSTALL.md +- Usage: doc/USAGE.md +- Configuration: doc/CONFIGURATION.md +- Dependencies: doc/DEPENDENCIES.md +- Troubleshooting: doc/TROUBLESHOOTING.md +- FAQ: doc/FAQ.md diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/ARCHITECTURE.md b/odoo-bringout-oca-ocb-l10n_vn/doc/ARCHITECTURE.md new file mode 100644 index 0000000..2aa9b4b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/ARCHITECTURE.md @@ -0,0 +1,32 @@ +# Architecture + +```mermaid +flowchart TD + U[Users] -->|HTTP| V[Views and QWeb Templates] + V --> C[Controllers] + V --> W[Wizards – Transient Models] + C --> M[Models and ORM] + W --> M + M --> R[Reports] + DX[Data XML] --> M + S[Security – ACLs and Groups] -. enforces .-> M + + subgraph L10n_vn Module - l10n_vn + direction LR + M:::layer + W:::layer + C:::layer + V:::layer + R:::layer + S:::layer + DX:::layer + end + + classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px +``` + +Notes +- Views include tree/form/kanban templates and report templates. +- Controllers provide website/portal routes when present. +- Wizards are UI flows implemented with `models.TransientModel`. +- Data XML loads data/demo records; Security defines groups and access. diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/CONFIGURATION.md b/odoo-bringout-oca-ocb-l10n_vn/doc/CONFIGURATION.md new file mode 100644 index 0000000..860ca13 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/CONFIGURATION.md @@ -0,0 +1,3 @@ +# Configuration + +Refer to Odoo settings for l10n_vn. Configure related models, access rights, and options as needed. diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/CONTROLLERS.md b/odoo-bringout-oca-ocb-l10n_vn/doc/CONTROLLERS.md new file mode 100644 index 0000000..f628e77 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/CONTROLLERS.md @@ -0,0 +1,3 @@ +# Controllers + +This module does not define custom HTTP controllers. diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/DEPENDENCIES.md b/odoo-bringout-oca-ocb-l10n_vn/doc/DEPENDENCIES.md new file mode 100644 index 0000000..8a8df47 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/DEPENDENCIES.md @@ -0,0 +1,7 @@ +# Dependencies + +This addon depends on: + +- [account](../../odoo-bringout-oca-ocb-account) +- [base_iban](../../odoo-bringout-oca-ocb-base_iban) +- [l10n_multilang](../../odoo-bringout-oca-ocb-l10n_multilang) diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/FAQ.md b/odoo-bringout-oca-ocb-l10n_vn/doc/FAQ.md new file mode 100644 index 0000000..ff260eb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/FAQ.md @@ -0,0 +1,4 @@ +# FAQ + +- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged). +- Q: How to enable? A: Start server with --addon l10n_vn or install in UI. diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/INSTALL.md b/odoo-bringout-oca-ocb-l10n_vn/doc/INSTALL.md new file mode 100644 index 0000000..a7502be --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/INSTALL.md @@ -0,0 +1,7 @@ +# Install + +```bash +pip install odoo-bringout-oca-ocb-l10n_vn" +# or +uv pip install odoo-bringout-oca-ocb-l10n_vn" +``` diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/MODELS.md b/odoo-bringout-oca-ocb-l10n_vn/doc/MODELS.md new file mode 100644 index 0000000..12f4d2f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/MODELS.md @@ -0,0 +1,11 @@ +# Models + +Detected core models and extensions in l10n_vn. + +```mermaid +classDiagram +``` + +Notes +- Classes show model technical names; fields omitted for brevity. +- Items listed under _inherit are extensions of existing models. diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/OVERVIEW.md b/odoo-bringout-oca-ocb-l10n_vn/doc/OVERVIEW.md new file mode 100644 index 0000000..4c5587b --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/OVERVIEW.md @@ -0,0 +1,6 @@ +# Overview + +Packaged Odoo addon: l10n_vn. Provides features documented in upstream Odoo 16 under this addon. + +- Source: OCA/OCB 16.0, addon l10n_vn +- License: LGPL-3 diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/REPORTS.md b/odoo-bringout-oca-ocb-l10n_vn/doc/REPORTS.md new file mode 100644 index 0000000..e0ea35f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/REPORTS.md @@ -0,0 +1,3 @@ +# Reports + +This module does not define custom reports. diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/SECURITY.md b/odoo-bringout-oca-ocb-l10n_vn/doc/SECURITY.md new file mode 100644 index 0000000..e07da9d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/SECURITY.md @@ -0,0 +1,8 @@ +# Security + +This module does not define custom security rules or access controls beyond Odoo defaults. + +Default Odoo security applies: +- Base user access through standard groups +- Model access inherited from dependencies +- No custom row-level security rules diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/TROUBLESHOOTING.md b/odoo-bringout-oca-ocb-l10n_vn/doc/TROUBLESHOOTING.md new file mode 100644 index 0000000..56853cb --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/TROUBLESHOOTING.md @@ -0,0 +1,5 @@ +# Troubleshooting + +- Ensure Python and Odoo environment matches repo guidance. +- Check database connectivity and logs if startup fails. +- Validate that dependent addons listed in DEPENDENCIES.md are installed. diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/USAGE.md b/odoo-bringout-oca-ocb-l10n_vn/doc/USAGE.md new file mode 100644 index 0000000..0bb2526 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/USAGE.md @@ -0,0 +1,7 @@ +# Usage + +Start Odoo including this addon (from repo root): + +```bash +python3 scripts/nix_odoo_web_server.py --db-name mydb --addon l10n_vn +``` diff --git a/odoo-bringout-oca-ocb-l10n_vn/doc/WIZARDS.md b/odoo-bringout-oca-ocb-l10n_vn/doc/WIZARDS.md new file mode 100644 index 0000000..48e790d --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/doc/WIZARDS.md @@ -0,0 +1,3 @@ +# Wizards + +This module does not include UI wizards. diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/__init__.py b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/__init__.py new file mode 100644 index 0000000..6a85e81 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/__init__.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +# This module is Copyright (c) 2009-2013 General Solutions (http://gscom.vn) All Rights Reserved. + +from odoo import api, SUPERUSER_ID + + +def _post_init_hook(cr, registry): + env = api.Environment(cr, SUPERUSER_ID, {}) + env.ref('l10n_vn.vn_template').process_coa_translations() diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/__manifest__.py b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/__manifest__.py new file mode 100644 index 0000000..c9d7468 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/__manifest__.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + + +{ + "name": "Vietnam - Accounting", + "version": "2.0.1", + "author": "General Solutions", + 'website': 'http://gscom.vn', + 'category': 'Accounting/Localizations/Account Charts', + "description": """ +This is the module to manage the accounting chart for Vietnam in Odoo. +========================================================================= + +This module applies to companies based in Vietnamese Accounting Standard (VAS) +with Chart of account under Circular No. 200/2014/TT-BTC + +**Credits:** + - General Solutions. + - Trobz +""", + "depends": [ + "account", + "base_iban", + "l10n_multilang" + ], + "data": [ + 'data/l10n_vn_chart_data.xml', + 'data/account.account.template.csv', + 'data/l10n_vn_chart_post_data.xml', + 'data/account_tax_group_data.xml', + 'data/account_tax_report_data.xml', + 'data/account_tax_data.xml', + 'data/account_chart_template_data.xml', + ], + + 'demo': [ + 'demo/demo_company.xml', + ], + 'post_init_hook': '_post_init_hook', + + 'license': 'LGPL-3', +} diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account.account.template.csv b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account.account.template.csv new file mode 100644 index 0000000..3917341 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account.account.template.csv @@ -0,0 +1,192 @@ +"id","name","code","account_type","chart_template_id/id","reconcile" +"chart1121","Vietnamese Dong","1121","asset_cash","vn_template","False" +"chart1122","Foreign currencies","1122","asset_cash","vn_template","False" +"chart1123","Monetary Gold","1123","asset_cash","vn_template","False" +"chart1211","Shares",1211,"asset_current","vn_template","False" +"chart1212","Bonds",1212,"asset_current","vn_template","False" +"chart1218","Other securities and financial instruments",1218,"asset_current","vn_template","False" +"chart1281","Term deposits",1281,"asset_current","vn_template","False" +"chart1282","Bonds",1282,"asset_current","vn_template","False" +"chart1283","Lending loans",1283,"asset_current","vn_template","False" +"chart1288","Other held to maturity investments",1288,"asset_current","vn_template","False" +"chart131","Trade receivables",131,"asset_receivable","vn_template","True" +"chart132","Trade receivables(pos)",132,"asset_receivable","vn_template","True" +"chart1331","VAT on purchase of goods and services",1331,"asset_current","vn_template","False" +"chart1332","VAT on purchase of fixed assets",1332,"asset_current","vn_template","False" +"chart1361","Working capital provided to sub-units",1361,"asset_receivable","vn_template","True" +"chart1362","Intra-company receivables on foreign exchange",1362,"asset_receivable","vn_template","True" +"chart1363","Intra-company receivables on borrowing costs eligible to be capitalized",1363,"asset_receivable","vn_template","True" +"chart1368","Other intra-company receivables",1368,"asset_receivable","vn_template","True" +"chart1381","Shortage of assets awaiting resolution",1381,"asset_receivable","vn_template","True" +"chart1385","Receivables from privatization",1385,"asset_receivable","vn_template","True" +"chart1388","Other receivables",1388,"asset_receivable","vn_template","True" +"chart141","Advances",141,"asset_receivable","vn_template","True" +"chart151","Goods in transit",151,"asset_current","vn_template","False" +"chart152","Raw materials",152,"asset_current","vn_template","False" +"chart1531","Tools and supplies",1531,"asset_current","vn_template","False" +"chart1532","Reusable packaging materials",1532,"asset_current","vn_template","False" +"chart1533","Instruments for renting",1533,"asset_current","vn_template","False" +"chart1534","Equipment and spare parts for replacement",1534,"asset_current","vn_template","False" +"chart1541","Construction contracts",1541,"asset_current","vn_template","False" +"chart1542","Other work-in-progress products",1542,"asset_current","vn_template","False" +"chart1543","Services",1543,"asset_current","vn_template","False" +"chart1544","Warranty costs",1544,"asset_current","vn_template","False" +"chart1551","Finished products - inventory",1551,"asset_current","vn_template","False" +"chart1557","Finished products - real estates",1557,"asset_current","vn_template","False" +"chart1561","Purchase costs",1561,"asset_current","vn_template","False" +"chart1562","Incidental purchase costs",1562,"asset_current","vn_template","False" +"chart1567","Properties held for sale",1567,"asset_current","vn_template","False" +"chart157","Outward goods on consignment",157,"asset_current","vn_template","False" +"chart158","Goods in bonded warehouse",158,"asset_current","vn_template","False" +"chart1611","Expenditure brought forward",1611,"asset_current","vn_template","False" +"chart1612","Expenditure of current year",1612,"asset_current","vn_template","False" +"chart171","Government bonds purchased for resale",171,"asset_current","vn_template","False" +"chart2111","Buildings and structures",2111,"asset_non_current","vn_template","False" +"chart2112","Machinery and equipment",2112,"asset_non_current","vn_template","False" +"chart2113","Means of transportation and transmission",2113,"asset_non_current","vn_template","False" +"chart2114","Office equipment and furniture",2114,"asset_non_current","vn_template","False" +"chart2115","Perennial plants, working animals and farm livestocks",2115,"asset_non_current","vn_template","False" +"chart2118","Other fixed assets",2118,"asset_non_current","vn_template","False" +"chart2121","Finance lease tangible fixed assets",2121,"asset_non_current","vn_template","False" +"chart2122","Finance lease intangible fixed assets",2122,"asset_non_current","vn_template","False" +"chart2131","Land use rights",2131,"asset_non_current","vn_template","False" +"chart2132","Copyrights",2132,"asset_non_current","vn_template","False" +"chart2133","Patents and inventions",2133,"asset_non_current","vn_template","False" +"chart2134","Product labels and trademarks",2134,"asset_non_current","vn_template","False" +"chart2135","Computer software",2135,"asset_non_current","vn_template","False" +"chart2136","Licenses and franchises",2136,"asset_non_current","vn_template","False" +"chart2138","Other intangible fixed assets",2138,"asset_non_current","vn_template","False" +"chart2141","Depreciation of tangible fixed assets",2141,"asset_non_current","vn_template","False" +"chart2142","Depreciation of finance lease assets",2142,"asset_non_current","vn_template","False" +"chart2143","Amortization of intangible assets",2143,"asset_non_current","vn_template","False" +"chart2147","Depreciation of investment properties",2147,"asset_non_current","vn_template","False" +"chart217","Investment properties",217,"asset_non_current","vn_template","False" +"chart221","Investment in subsidiaries",221,"asset_non_current","vn_template","False" +"chart222","Investment in joint ventures and associates",222,"asset_non_current","vn_template","False" +"chart2281","Equity investments in other entities Other investment",2281,"asset_non_current","vn_template","False" +"chart2291","Allowances for decline in value of trading securities",2291,"asset_non_current","vn_template","False" +"chart2292","Allowances for impairment of investments in other entities",2292,"asset_non_current","vn_template","False" +"chart2293","Allowances for doubtful debts",2293,"asset_non_current","vn_template","False" +"chart2294","Allowances for inventories",2294,"asset_non_current","vn_template","False" +"chart2411","Fixed assets prior to commissioning",2411,"asset_non_current","vn_template","False" +"chart2412","Construction works",2412,"asset_non_current","vn_template","False" +"chart2413","Major repairs of fixed assets",2413,"asset_non_current","vn_template","False" +"chart242","Prepaid expenses",242,"asset_non_current","vn_template","False" +"chart243","Deferred tax assets",243,"asset_non_current","vn_template","False" +"chart244","Mortgage, collaterals and deposits",244,"asset_non_current","vn_template","False" +"chart331","Trade payables",331,"liability_payable","vn_template","True" +"chart33311","Output VAT",33311,"liability_current","vn_template","False" +"chart33312","VAT on imported goods",33312,"liability_current","vn_template","False" +"chart3332","Special consumption tax",3332,"liability_current","vn_template","False" +"chart3333","Import and export tax",3333,"liability_current","vn_template","False" +"chart3334","Corporate income tax",3334,"liability_current","vn_template","False" +"chart3335","Personal income tax",3335,"liability_current","vn_template","False" +"chart3336","Tax on use of natural resources ",3336,"liability_current","vn_template","False" +"chart3337","Land and housing tax, and rental charges",3337,"liability_current","vn_template","False" +"chart33381","Environment protection tax",33381,"liability_current","vn_template","False" +"chart33382","Other taxes",33382,"liability_current","vn_template","False" +"chart3339","Fees, charges and other payables",3339,"liability_payable","vn_template","True" +"chart3341","Payables to staff",3341,"liability_payable","vn_template","True" +"chart3348","Payables to others",3348,"liability_payable","vn_template","True" +"chart335","Accrued expenses",335,"liability_payable","vn_template","True" +"chart3361","Intra-company payables for operating capital received",3361,"liability_payable","vn_template","True" +"chart3362","Intra-company payables for foreign exchange differences",3362,"liability_payable","vn_template","True" +"chart3363","Intra-company payables for borrowing costs eligible to be capitalized",3363,"liability_payable","vn_template","True" +"chart3368","Other inter-company payables",3368,"liability_payable","vn_template","True" +"chart337","Progress billings for construction contracts",337,"liability_payable","vn_template","True" +"chart3381","Surplus of assets awaiting resolution",3381,"liability_payable","vn_template","True" +"chart3382","Trade union fees",3382,"liability_payable","vn_template","True" +"chart3383","Social insurance",3383,"liability_payable","vn_template","True" +"chart3384","Health insurance",3384,"liability_payable","vn_template","True" +"chart3385","Payables on equitization",3385,"liability_payable","vn_template","True" +"chart3386","Unemployment insurance",3386,"liability_payable","vn_template","True" +"chart3387","Unearned revenue",3387,"liability_payable","vn_template","True" +"chart3388","Other payables",3388,"liability_payable","vn_template","True" +"chart3411","Borrowing loans liabilities",3411,"liability_current","vn_template","False" +"chart3412","Finance lease liabilities",3412,"liability_current","vn_template","False" +"chart3431","Ordinary bonds",3431,"liability_current","vn_template","False" +"chart34311","Par value of bonds",34311,"liability_current","vn_template","False" +"chart34312","Bond discounts",34312,"liability_current","vn_template","False" +"chart34313","Bond premiums",34313,"liability_current","vn_template","False" +"chart3432","Convertible bonds",3432,"liability_current","vn_template","False" +"chart344","Deposits received",344,"liability_current","vn_template","False" +"chart347","Deferred tax liabilities",347,"liability_current","vn_template","False" +"chart3521","Product warranty provisions",3521,"liability_current","vn_template","False" +"chart3522","Construction warranty provisions",3522,"liability_current","vn_template","False" +"chart3523","Enterprise restructuring provisions",3523,"liability_current","vn_template","False" +"chart3524","Other provisions",3524,"liability_current","vn_template","False" +"chart3531","Bonus fund",3531,"liability_current","vn_template","False" +"chart3532","Welfare fund",3532,"liability_current","vn_template","False" +"chart3533","Welfare fund used for fixed asset acquisitions",3533,"liability_current","vn_template","False" +"chart3534","Management bonus fund",3534,"liability_current","vn_template","False" +"chart3561","Science and technology development fund",3561,"liability_current","vn_template","False" +"chart3562","Science and technology development fund used for fixed asset acquisition",3562,"liability_current","vn_template","False" +"chart357","Price stabilization fund",357,"liability_current","vn_template","False" +"chart41111","Ordinary shares with voting rights",41111,"equity","vn_template","False" +"chart41112","Preference shares",41112,"equity","vn_template","False" +"chart4112","Capital surplus",4112,"equity","vn_template","False" +"chart4113","Conversion options on convertible bonds",4113,"equity","vn_template","False" +"chart4118","Other capital",4118,"equity","vn_template","False" +"chart412","Differences upon asset revaluation",412,"equity","vn_template","False" +"chart4131","Exchange rate differences on revaluation of monetary items denominated in foreign currency ",4131,"equity","vn_template","False" +"chart4132","Exchange rate differences in pre-operating period",4132,"equity","vn_template","False" +"chart414","Investment and development fund",414,"equity","vn_template","False" +"chart417","Enterprise reorganization assistance fund",417,"equity","vn_template","False" +"chart418","Other equity funds",418,"equity","vn_template","False" +"chart419","Treasury shares",419,"equity","vn_template","False" +"chart4211","Undistributed profit after tax brought forward",4211,"equity","vn_template","False" +"chart4212","Undistributed profit(loss) after tax for the current year",4212,"equity","vn_template","False" +"chart441","Capital expenditure funds",441,"equity","vn_template","False" +"chart4611","Non-business funds bought forward",4611,"equity","vn_template","False" +"chart4612","Non-business funds for current year",4612,"equity","vn_template","False" +"chart466","Non-business funds used for fixed asset acquisitions",466,"equity","vn_template","False" +"chart5111","Revenue from sales of merchandises",5111,"income","vn_template","False" +"chart5112","Revenue from sales of finished goods",5112,"income","vn_template","False" +"chart5113","Revenue from services rendered",5113,"income","vn_template","False" +"chart5114","Revenue from government grants",5114,"income","vn_template","False" +"chart5117","Revenue from investment properties",5117,"income","vn_template","False" +"chart5118","Other revenue",5118,"income","vn_template","False" +"chart515","Financial income",515,"income","vn_template","False" +"chart5211","Trade discounts",5211,"income","vn_template","False" +"chart5212","Sales returns",5212,"income","vn_template","False" +"chart5213","Sales rebates",5213,"income","vn_template","False" +"chart6111","Purchases of raw materials",6111,"expense_direct_cost","vn_template","False" +"chart621","Direct raw material costs",621,"expense_direct_cost","vn_template","False" +"chart622","Direct labour costs",622,"expense_direct_cost","vn_template","False" +"chart6231","Labour costs",6231,"expense","vn_template","False" +"chart6232","Material costs",6232,"expense","vn_template","False" +"chart6233","Production tools and instruments",6233,"expense","vn_template","False" +"chart6234","Depreciation expense",6234,"expense","vn_template","False" +"chart6237","Outside services ",6237,"expense","vn_template","False" +"chart6238","Other expenses",6238,"expense","vn_template","False" +"chart6271","Factory staff costs",6271,"expense","vn_template","False" +"chart6272","Material costs",6272,"expense","vn_template","False" +"chart6273","Production tools and instruments",6273,"expense","vn_template","False" +"chart6274","Fixed asset depreciation",6274,"expense","vn_template","False" +"chart6277","Outside services",6277,"expense","vn_template","False" +"chart6278","Other expenses",6278,"expense","vn_template","False" +"chart631","Production costs",631,"expense_direct_cost","vn_template","False" +"chart632","Costs of goods sold",632,"expense_direct_cost","vn_template","False" +"chart635","Financial expenses",635,"expense","vn_template","False" +"chart6411","Staff expenses",6411,"expense","vn_template","False" +"chart6412","Materials and packing materials",6412,"expense","vn_template","False" +"chart6413","Tools and instruments",6413,"expense","vn_template","False" +"chart6414","Fixed asset deprecation",6414,"expense","vn_template","False" +"chart6415","Warranty expenses",6415,"expense","vn_template","False" +"chart6417","Outside services",6417,"expense","vn_template","False" +"chart6418","Other expenses",6418,"expense","vn_template","False" +"chart6421","Staff expenses",6421,"expense","vn_template","False" +"chart6422","Office supply expenses",6422,"expense","vn_template","False" +"chart6423","Office equipment expenses",6423,"expense","vn_template","False" +"chart6424","Fixed asset depreciation",6424,"expense","vn_template","False" +"chart6425","Taxes, fees and charges",6425,"expense","vn_template","False" +"chart6426","Provision expenses",6426,"expense","vn_template","False" +"chart6427","Outside services",6427,"expense","vn_template","False" +"chart6428","Other expenses",6428,"expense","vn_template","False" +"chart711","Other Income",711,"income_other","vn_template","False" +"chart811","Other Expenses",811,"expense","vn_template","False" +"chart8211","Current tax expense",8211,"expense","vn_template","False" +"chart8212","Deferred tax expense",8212,"expense","vn_template","False" +"chart911","Income Summary",911,"equity_unaffected","vn_template","False" +"chart9993","Cash Discount Loss",9993,"expense","vn_template","False" +"chart9994","Cash Discount Income",9994,"income_other","vn_template","False" diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_chart_template_data.xml b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_chart_template_data.xml new file mode 100644 index 0000000..85a9bf1 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_chart_template_data.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_tax_data.xml b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_tax_data.xml new file mode 100644 index 0000000..31253ad --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_tax_data.xml @@ -0,0 +1,176 @@ + + + + + + + Deductible VAT 10% + Deductible VAT 10% + + percent + purchase + + + + + + + Deductible VAT 5% + Deductible VAT 5% + + percent + purchase + + + + + + + Deductible VAT 0% + Deductible VAT 0% + + percent + purchase + + + + + + + + Value Added Tax (VAT) 10% + Value Added Tax (VAT) 10% + + percent + sale + + + + + + + Value Added Tax (VAT) 5% + Value Added Tax (VAT) 5% + + percent + sale + + + + + + + Value Added Tax (VAT) 0% + Value Added Tax (VAT) 0% + + percent + sale + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_tax_group_data.xml b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_tax_group_data.xml new file mode 100644 index 0000000..1b00b43 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_tax_group_data.xml @@ -0,0 +1,17 @@ + + + + + VAT 0% + + + + VAT 5% + + + + VAT 10% + + + + diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_tax_report_data.xml b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_tax_report_data.xml new file mode 100644 index 0000000..67a32d5 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/account_tax_report_data.xml @@ -0,0 +1,190 @@ + + + + Tax Report + + + + country + + + Balance + balance + + + + + Purchase of Goods and Services + VAT_ON_PURCHASE_OF_GOODS_AND_SERVICES.balance + UNTAXED_PURCHASE_OF_GOODS_AND_SERVICES.balance + + + VAT on purchase of goods and services + VAT_ON_PURCHASE_OF_GOODS_AND_SERVICES + VAT_ON_PURCHASE_OF_GOODS_AND_SERVICES_0.balance + VAT_ON_PURCHASE_OF_GOODS_AND_SERVICES_5.balance + VAT_ON_PURCHASE_OF_GOODS_AND_SERVICES_10.balance + + + VAT on purchase of goods and services 0% + VAT_ON_PURCHASE_OF_GOODS_AND_SERVICES_0 + + + balance + tax_tags + VAT on purchase of goods and services 0% + + + + + VAT on purchase of goods and services 5% + VAT_ON_PURCHASE_OF_GOODS_AND_SERVICES_5 + + + balance + tax_tags + VAT on purchase of goods and services 5% + + + + + VAT on purchase of goods and services 10% + VAT_ON_PURCHASE_OF_GOODS_AND_SERVICES_10 + + + balance + tax_tags + VAT on purchase of goods and services 10% + + + + + + + Untaxed Purchase of Goods and Services + UNTAXED_PURCHASE_OF_GOODS_AND_SERVICES + UNTAXED_PURCHASE_OF_GOODS_AND_SERVICES_TAXED_0.balance + UNTAXED_PURCHASE_OF_GOODS_AND_SERVICES_TAXED_5.balance + UNTAXED_PURCHASE_OF_GOODS_AND_SERVICES_TAXED_10.balance + + + Untaxed Purchase of Goods and Services taxed 0% + UNTAXED_PURCHASE_OF_GOODS_AND_SERVICES_TAXED_0 + + + balance + tax_tags + Untaxed Purchase of Goods and Services taxed 0% + + + + + Untaxed Purchase of Goods and Services taxed 5% + UNTAXED_PURCHASE_OF_GOODS_AND_SERVICES_TAXED_5 + + + balance + tax_tags + Untaxed Purchase of Goods and Services taxed 5% + + + + + Untaxed Purchase of Goods and Services taxed 10% + UNTAXED_PURCHASE_OF_GOODS_AND_SERVICES_TAXED_10 + + + balance + tax_tags + Untaxed Purchase of Goods and Services taxed 10% + + + + + + + + + Sales of Goods and Services + VAT_ON_SALES_OF_GOODS_AND_SERVICES.balance + UNTAXED_SALES_OF_GOODS_AND_SERVICES.balance + + + VAT on sales of goods and services + VAT_ON_SALES_OF_GOODS_AND_SERVICES + VAT_ON_SALES_OF_GOODS_AND_SERVICES_0.balance + VAT_ON_SALES_OF_GOODS_AND_SERVICES_5.balance + VAT_ON_SALES_OF_GOODS_AND_SERVICES_10.balance + + + VAT on sales of goods and services 0% + VAT_ON_SALES_OF_GOODS_AND_SERVICES_0 + + + balance + tax_tags + VAT on sales of goods and services 0% + + + + + VAT on sales of goods and services 5% + VAT_ON_SALES_OF_GOODS_AND_SERVICES_5 + + + balance + tax_tags + VAT on sales of goods and services 5% + + + + + VAT on sales of goods and services 10% + VAT_ON_SALES_OF_GOODS_AND_SERVICES_10 + + + balance + tax_tags + VAT on sales of goods and services 10% + + + + + + + Untaxed Sales of Goods and Services + UNTAXED_SALES_OF_GOODS_AND_SERVICES + UNTAXED_SALES_OF_GOODS_AND_SERVICES_TAXED_0.balance + UNTAXED_SALES_OF_GOODS_AND_SERVICES_TAXED_5.balance + UNTAXED_SALES_OF_GOODS_AND_SERVICES_TAXED_10.balance + + + Untaxed sales of goods and services taxed 0% + UNTAXED_SALES_OF_GOODS_AND_SERVICES_TAXED_0 + + + balance + tax_tags + Untaxed sales of goods and services taxed 0% + + + + + Untaxed sales of goods and services taxed 5% + UNTAXED_SALES_OF_GOODS_AND_SERVICES_TAXED_5 + + + balance + tax_tags + Untaxed sales of goods and services taxed 5% + + + + + Untaxed sales of goods and services taxed 10% + UNTAXED_SALES_OF_GOODS_AND_SERVICES_TAXED_10 + + + balance + tax_tags + Untaxed sales of goods and services taxed 10% + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/l10n_vn_chart_data.xml b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/l10n_vn_chart_data.xml new file mode 100644 index 0000000..0e570a4 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/l10n_vn_chart_data.xml @@ -0,0 +1,16 @@ + + + + + + VN - Chart of Accounts + 0 + + 112 + 111 + 113 + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/l10n_vn_chart_post_data.xml b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/l10n_vn_chart_post_data.xml new file mode 100644 index 0000000..0d7c72f --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/data/l10n_vn_chart_post_data.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/demo/demo_company.xml b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/demo/demo_company.xml new file mode 100644 index 0000000..b106814 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/demo/demo_company.xml @@ -0,0 +1,34 @@ + + + + VN Company + + Lê A + Phường Bảo Vinh + + + 76463 + +84 91 234 56 78 + info@company.vnexample.com + www.vnexample.com + + + + VN Company + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/i18n_extra/l10n_vn.pot b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/i18n_extra/l10n_vn.pot new file mode 100644 index 0000000..9465951 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/i18n_extra/l10n_vn.pot @@ -0,0 +1,1287 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_vn +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-30 03:34+0000\n" +"PO-Revision-Date: 2021-09-30 03:34+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_vn +#: model:account.account,name:l10n_vn.1_chart335 +#: model:account.account.template,name:l10n_vn.chart335 +msgid "Accrued expenses" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart141 +#: model:account.account.template,name:l10n_vn.chart141 +msgid "Advances" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2291 +#: model:account.account.template,name:l10n_vn.chart2291 +msgid "Allowances for decline in value of trading securities" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2293 +#: model:account.account.template,name:l10n_vn.chart2293 +msgid "Allowances for doubtful debts" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2292 +#: model:account.account.template,name:l10n_vn.chart2292 +msgid "Allowances for impairment of investments in other entities" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2294 +#: model:account.account.template,name:l10n_vn.chart2294 +msgid "Allowances for inventories" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2143 +#: model:account.account.template,name:l10n_vn.chart2143 +msgid "Amortization of intangible assets" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart34312 +#: model:account.account.template,name:l10n_vn.chart34312 +msgid "Bond discounts" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart34313 +#: model:account.account.template,name:l10n_vn.chart34313 +msgid "Bond premiums" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1212 +#: model:account.account,name:l10n_vn.1_chart1282 +#: model:account.account.template,name:l10n_vn.chart1212 +#: model:account.account.template,name:l10n_vn.chart1282 +msgid "Bonds" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3531 +#: model:account.account.template,name:l10n_vn.chart3531 +msgid "Bonus fund" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3411 +#: model:account.account.template,name:l10n_vn.chart3411 +msgid "Borrowing loans liabilities" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2111 +#: model:account.account.template,name:l10n_vn.chart2111 +msgid "Buildings and structures" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart441 +#: model:account.account.template,name:l10n_vn.chart441 +msgid "Capital expenditure funds" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4112 +#: model:account.account.template,name:l10n_vn.chart4112 +msgid "Capital surplus" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2135 +#: model:account.account.template,name:l10n_vn.chart2135 +msgid "Computer software" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1541 +#: model:account.account.template,name:l10n_vn.chart1541 +msgid "Construction contracts" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3522 +#: model:account.account.template,name:l10n_vn.chart3522 +msgid "Construction warranty provisions" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2412 +#: model:account.account.template,name:l10n_vn.chart2412 +msgid "Construction works" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4113 +#: model:account.account.template,name:l10n_vn.chart4113 +msgid "Conversion options on convertible bonds" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3432 +#: model:account.account.template,name:l10n_vn.chart3432 +msgid "Convertible bonds" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2132 +#: model:account.account.template,name:l10n_vn.chart2132 +msgid "Copyrights" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3334 +#: model:account.account.template,name:l10n_vn.chart3334 +msgid "Corporate income tax" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart632 +#: model:account.account.template,name:l10n_vn.chart632 +msgid "Costs of goods sold" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart8211 +#: model:account.account.template,name:l10n_vn.chart8211 +msgid "Current tax expense" +msgstr "" + +#. module: l10n_vn +#: model:account.tax,description:l10n_vn.1_tax_purchase_vat0 +#: model:account.tax,name:l10n_vn.1_tax_purchase_vat0 +#: model:account.tax.template,description:l10n_vn.tax_purchase_vat0 +#: model:account.tax.template,name:l10n_vn.tax_purchase_vat0 +msgid "Deductible VAT 0%" +msgstr "" + +#. module: l10n_vn +#: model:account.tax,description:l10n_vn.1_tax_purchase_vat10 +#: model:account.tax,name:l10n_vn.1_tax_purchase_vat10 +#: model:account.tax.template,description:l10n_vn.tax_purchase_vat10 +#: model:account.tax.template,name:l10n_vn.tax_purchase_vat10 +msgid "Deductible VAT 10%" +msgstr "" + +#. module: l10n_vn +#: model:account.tax,description:l10n_vn.1_tax_purchase_vat5 +#: model:account.tax,name:l10n_vn.1_tax_purchase_vat5 +#: model:account.tax.template,description:l10n_vn.tax_purchase_vat5 +#: model:account.tax.template,name:l10n_vn.tax_purchase_vat5 +msgid "Deductible VAT 5%" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart243 +#: model:account.account.template,name:l10n_vn.chart243 +msgid "Deferred tax assets" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart8212 +#: model:account.account.template,name:l10n_vn.chart8212 +msgid "Deferred tax expense" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart347 +#: model:account.account.template,name:l10n_vn.chart347 +msgid "Deferred tax liabilities" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart344 +#: model:account.account.template,name:l10n_vn.chart344 +msgid "Deposits received" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6234 +#: model:account.account.template,name:l10n_vn.chart6234 +msgid "Depreciation expense" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2142 +#: model:account.account.template,name:l10n_vn.chart2142 +msgid "Depreciation of finance lease assets" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2147 +#: model:account.account.template,name:l10n_vn.chart2147 +msgid "Depreciation of investment properties" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2141 +#: model:account.account.template,name:l10n_vn.chart2141 +msgid "Depreciation of tangible fixed assets" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart412 +#: model:account.account.template,name:l10n_vn.chart412 +msgid "Differences upon asset revaluation" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart622 +#: model:account.account.template,name:l10n_vn.chart622 +msgid "Direct labour costs" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart621 +#: model:account.account.template,name:l10n_vn.chart621 +msgid "Direct raw material costs" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart417 +#: model:account.account.template,name:l10n_vn.chart417 +msgid "Enterprise reorganization assistance fund" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3523 +#: model:account.account.template,name:l10n_vn.chart3523 +msgid "Enterprise restructuring provisions" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart33381 +#: model:account.account.template,name:l10n_vn.chart33381 +msgid "Environment protection tax" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1534 +#: model:account.account.template,name:l10n_vn.chart1534 +msgid "Equipment and spare parts for replacement" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2281 +#: model:account.account.template,name:l10n_vn.chart2281 +msgid "Equity investments in other entities Other investment" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4132 +#: model:account.account.template,name:l10n_vn.chart4132 +msgid "Exchange rate differences in pre-operating period" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4131 +#: model:account.account.template,name:l10n_vn.chart4131 +msgid "" +"Exchange rate differences on revaluation of monetary items denominated in " +"foreign currency " +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1611 +#: model:account.account.template,name:l10n_vn.chart1611 +msgid "Expenditure brought forward" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1612 +#: model:account.account.template,name:l10n_vn.chart1612 +msgid "Expenditure of current year" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6271 +#: model:account.account.template,name:l10n_vn.chart6271 +msgid "Factory staff costs" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3339 +#: model:account.account.template,name:l10n_vn.chart3339 +msgid "Fees, charges and other payables" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2122 +#: model:account.account.template,name:l10n_vn.chart2122 +msgid "Finance lease intangible fixed assets" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3412 +#: model:account.account.template,name:l10n_vn.chart3412 +msgid "Finance lease liabilities" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2121 +#: model:account.account.template,name:l10n_vn.chart2121 +msgid "Finance lease tangible fixed assets" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart635 +#: model:account.account.template,name:l10n_vn.chart635 +msgid "Financial expenses" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart515 +#: model:account.account.template,name:l10n_vn.chart515 +msgid "Financial income" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1551 +#: model:account.account.template,name:l10n_vn.chart1551 +msgid "Finished products - inventory" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1557 +#: model:account.account.template,name:l10n_vn.chart1557 +msgid "Finished products - real estates" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6414 +#: model:account.account.template,name:l10n_vn.chart6414 +msgid "Fixed asset deprecation" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6274 +#: model:account.account,name:l10n_vn.1_chart6424 +#: model:account.account.template,name:l10n_vn.chart6274 +#: model:account.account.template,name:l10n_vn.chart6424 +msgid "Fixed asset depreciation" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2411 +#: model:account.account.template,name:l10n_vn.chart2411 +msgid "Fixed assets prior to commissioning" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1122 +#: model:account.account.template,name:l10n_vn.chart1122 +msgid "Foreign currencies" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart158 +#: model:account.account.template,name:l10n_vn.chart158 +msgid "Goods in bonded warehouse" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart151 +#: model:account.account.template,name:l10n_vn.chart151 +msgid "Goods in transit" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart171 +#: model:account.account.template,name:l10n_vn.chart171 +msgid "Government bonds purchased for resale" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3384 +#: model:account.account.template,name:l10n_vn.chart3384 +msgid "Health insurance" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3333 +#: model:account.account.template,name:l10n_vn.chart3333 +msgid "Import and export tax" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1562 +#: model:account.account.template,name:l10n_vn.chart1562 +msgid "Incidental purchase costs" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart911 +#: model:account.account.template,name:l10n_vn.chart911 +msgid "Income Summary" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1533 +#: model:account.account.template,name:l10n_vn.chart1533 +msgid "Instruments for renting" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3363 +#: model:account.account.template,name:l10n_vn.chart3363 +msgid "Intra-company payables for borrowing costs eligible to be capitalized" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3362 +#: model:account.account.template,name:l10n_vn.chart3362 +msgid "Intra-company payables for foreign exchange differences" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3361 +#: model:account.account.template,name:l10n_vn.chart3361 +msgid "Intra-company payables for operating capital received" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1363 +#: model:account.account.template,name:l10n_vn.chart1363 +msgid "" +"Intra-company receivables on borrowing costs eligible to be capitalized" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1362 +#: model:account.account.template,name:l10n_vn.chart1362 +msgid "Intra-company receivables on foreign exchange" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart414 +#: model:account.account.template,name:l10n_vn.chart414 +msgid "Investment and development fund" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart222 +#: model:account.account.template,name:l10n_vn.chart222 +msgid "Investment in joint ventures and associates" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart221 +#: model:account.account.template,name:l10n_vn.chart221 +msgid "Investment in subsidiaries" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart217 +#: model:account.account.template,name:l10n_vn.chart217 +msgid "Investment properties" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6231 +#: model:account.account.template,name:l10n_vn.chart6231 +msgid "Labour costs" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3337 +#: model:account.account.template,name:l10n_vn.chart3337 +msgid "Land and housing tax, and rental charges" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2131 +#: model:account.account.template,name:l10n_vn.chart2131 +msgid "Land use rights" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1283 +#: model:account.account.template,name:l10n_vn.chart1283 +msgid "Lending loans" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2136 +#: model:account.account.template,name:l10n_vn.chart2136 +msgid "Licenses and franchises" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_vn_template_liquidity_transfer +#: model:account.account.template,name:l10n_vn.vn_template_liquidity_transfer +msgid "Liquidity Transfer" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2112 +#: model:account.account.template,name:l10n_vn.chart2112 +msgid "Machinery and equipment" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2413 +#: model:account.account.template,name:l10n_vn.chart2413 +msgid "Major repairs of fixed assets" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3534 +#: model:account.account.template,name:l10n_vn.chart3534 +msgid "Management bonus fund" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6232 +#: model:account.account,name:l10n_vn.1_chart6272 +#: model:account.account.template,name:l10n_vn.chart6232 +#: model:account.account.template,name:l10n_vn.chart6272 +msgid "Material costs" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6412 +#: model:account.account.template,name:l10n_vn.chart6412 +msgid "Materials and packing materials" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2113 +#: model:account.account.template,name:l10n_vn.chart2113 +msgid "Means of transportation and transmission" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1123 +#: model:account.account.template,name:l10n_vn.chart1123 +msgid "Monetary Gold" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart244 +#: model:account.account.template,name:l10n_vn.chart244 +msgid "Mortgage, collaterals and deposits" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4611 +#: model:account.account.template,name:l10n_vn.chart4611 +msgid "Non-business funds bought forward" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4612 +#: model:account.account.template,name:l10n_vn.chart4612 +msgid "Non-business funds for current year" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart466 +#: model:account.account.template,name:l10n_vn.chart466 +msgid "Non-business funds used for fixed asset acquisitions" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2114 +#: model:account.account.template,name:l10n_vn.chart2114 +msgid "Office equipment and furniture" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6423 +#: model:account.account.template,name:l10n_vn.chart6423 +msgid "Office equipment expenses" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6422 +#: model:account.account.template,name:l10n_vn.chart6422 +msgid "Office supply expenses" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3431 +#: model:account.account.template,name:l10n_vn.chart3431 +msgid "Ordinary bonds" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart41111 +#: model:account.account.template,name:l10n_vn.chart41111 +msgid "Ordinary shares with voting rights" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart811 +#: model:account.account.template,name:l10n_vn.chart811 +msgid "Other Expenses" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart711 +#: model:account.account.template,name:l10n_vn.chart711 +msgid "Other Income" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4118 +#: model:account.account.template,name:l10n_vn.chart4118 +msgid "Other capital" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart418 +#: model:account.account.template,name:l10n_vn.chart418 +msgid "Other equity funds" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6238 +#: model:account.account,name:l10n_vn.1_chart6278 +#: model:account.account,name:l10n_vn.1_chart6418 +#: model:account.account,name:l10n_vn.1_chart6428 +#: model:account.account.template,name:l10n_vn.chart6238 +#: model:account.account.template,name:l10n_vn.chart6278 +#: model:account.account.template,name:l10n_vn.chart6418 +#: model:account.account.template,name:l10n_vn.chart6428 +msgid "Other expenses" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2118 +#: model:account.account.template,name:l10n_vn.chart2118 +msgid "Other fixed assets" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1288 +#: model:account.account.template,name:l10n_vn.chart1288 +msgid "Other held to maturity investments" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2138 +#: model:account.account.template,name:l10n_vn.chart2138 +msgid "Other intangible fixed assets" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3368 +#: model:account.account.template,name:l10n_vn.chart3368 +msgid "Other inter-company payables" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1368 +#: model:account.account.template,name:l10n_vn.chart1368 +msgid "Other intra-company receivables" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1542 +#: model:account.account.template,name:l10n_vn.chart1542 +msgid "Other products" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3524 +#: model:account.account.template,name:l10n_vn.chart3524 +msgid "Other provisions" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5118 +#: model:account.account.template,name:l10n_vn.chart5118 +msgid "Other revenue" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1218 +#: model:account.account.template,name:l10n_vn.chart1218 +msgid "Other securities and financial instruments" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart33382 +#: model:account.account.template,name:l10n_vn.chart33382 +msgid "Other taxes" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3388 +#: model:account.account.template,name:l10n_vn.chart3388 +msgid "Others" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1388 +#: model:account.account.template,name:l10n_vn.chart1388 +msgid "Others receivables" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart33311 +#: model:account.account.template,name:l10n_vn.chart33311 +msgid "Output VAT" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6277 +#: model:account.account,name:l10n_vn.1_chart6417 +#: model:account.account,name:l10n_vn.1_chart6427 +#: model:account.account.template,name:l10n_vn.chart6277 +#: model:account.account.template,name:l10n_vn.chart6417 +#: model:account.account.template,name:l10n_vn.chart6427 +msgid "Outside services" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6237 +#: model:account.account.template,name:l10n_vn.chart6237 +msgid "Outside services " +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart157 +#: model:account.account.template,name:l10n_vn.chart157 +msgid "Outward goods on consignment" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart34311 +#: model:account.account.template,name:l10n_vn.chart34311 +msgid "Par value of bonds" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2133 +#: model:account.account.template,name:l10n_vn.chart2133 +msgid "Patents and inventions" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3385 +#: model:account.account.template,name:l10n_vn.chart3385 +msgid "Payables on equitization" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3348 +#: model:account.account.template,name:l10n_vn.chart3348 +msgid "Payables to others" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3341 +#: model:account.account.template,name:l10n_vn.chart3341 +msgid "Payables to staff" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2115 +#: model:account.account.template,name:l10n_vn.chart2115 +msgid "Perennial plants, working animals and farm livestocks" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3335 +#: model:account.account.template,name:l10n_vn.chart3335 +msgid "Personal income tax" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart41112 +#: model:account.account.template,name:l10n_vn.chart41112 +msgid "Preference shares" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart242 +#: model:account.account.template,name:l10n_vn.chart242 +msgid "Prepaid expenses" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart357 +#: model:account.account.template,name:l10n_vn.chart357 +msgid "Price stabilization fund" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2134 +#: model:account.account.template,name:l10n_vn.chart2134 +msgid "Product labels and trademarks" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3521 +#: model:account.account.template,name:l10n_vn.chart3521 +msgid "Product warranty provisions" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart631 +#: model:account.account.template,name:l10n_vn.chart631 +msgid "Production costs" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart337 +#: model:account.account.template,name:l10n_vn.chart337 +msgid "Progress billings for construction contracts" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1567 +#: model:account.account.template,name:l10n_vn.chart1567 +msgid "Properties held for sale" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6426 +#: model:account.account.template,name:l10n_vn.chart6426 +msgid "Provision expenses" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1561 +#: model:account.account.template,name:l10n_vn.chart1561 +msgid "Purchase costs" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_vn +msgid "Purchase of Goods and Services" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6111 +#: model:account.account.template,name:l10n_vn.chart6111 +msgid "Purchases of raw materials" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart152 +#: model:account.account.template,name:l10n_vn.chart152 +msgid "Raw materials" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1385 +#: model:account.account.template,name:l10n_vn.chart1385 +msgid "Receivables from privatization" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1532 +#: model:account.account.template,name:l10n_vn.chart1532 +msgid "Reusable packaging materials" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5114 +#: model:account.account.template,name:l10n_vn.chart5114 +msgid "Revenue from government grants" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5117 +#: model:account.account.template,name:l10n_vn.chart5117 +msgid "Revenue from investment properties" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5112 +#: model:account.account.template,name:l10n_vn.chart5112 +msgid "Revenue from sales of finished goods" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5111 +#: model:account.account.template,name:l10n_vn.chart5111 +msgid "Revenue from sales of merchandises" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5113 +#: model:account.account.template,name:l10n_vn.chart5113 +msgid "Revenue from services rendered" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_vn +msgid "Sales of Goods and Services" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5213 +#: model:account.account.template,name:l10n_vn.chart5213 +msgid "Sales rebates" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5212 +#: model:account.account.template,name:l10n_vn.chart5212 +msgid "Sales returns" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3561 +#: model:account.account.template,name:l10n_vn.chart3561 +msgid "Science and technology development fund" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3562 +#: model:account.account.template,name:l10n_vn.chart3562 +msgid "" +"Science and technology development fund used for fixed asset acquisition" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1543 +#: model:account.account.template,name:l10n_vn.chart1543 +msgid "Services" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1211 +#: model:account.account.template,name:l10n_vn.chart1211 +msgid "Shares" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1381 +#: model:account.account.template,name:l10n_vn.chart1381 +msgid "Shortage of assets awaiting resolution" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3383 +#: model:account.account.template,name:l10n_vn.chart3383 +msgid "Social insurance" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3332 +#: model:account.account.template,name:l10n_vn.chart3332 +msgid "Special consumption tax" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6411 +#: model:account.account,name:l10n_vn.1_chart6421 +#: model:account.account.template,name:l10n_vn.chart6411 +#: model:account.account.template,name:l10n_vn.chart6421 +msgid "Staff expenses" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3381 +#: model:account.account.template,name:l10n_vn.chart3381 +msgid "Surplus of assets awaiting resolution" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3336 +#: model:account.account.template,name:l10n_vn.chart3336 +msgid "Tax on use of natural resources " +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6425 +#: model:account.account.template,name:l10n_vn.chart6425 +msgid "Taxes, fees and charges" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1281 +#: model:account.account.template,name:l10n_vn.chart1281 +msgid "Term deposits" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6233 +#: model:account.account,name:l10n_vn.1_chart6273 +#: model:account.account,name:l10n_vn.1_chart6413 +#: model:account.account.template,name:l10n_vn.chart6233 +#: model:account.account.template,name:l10n_vn.chart6273 +#: model:account.account.template,name:l10n_vn.chart6413 +msgid "Tools and instruments" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1531 +#: model:account.account.template,name:l10n_vn.chart1531 +msgid "Tools and supplies" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5211 +#: model:account.account.template,name:l10n_vn.chart5211 +msgid "Trade discounts" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart331 +#: model:account.account.template,name:l10n_vn.chart331 +msgid "Trade payables" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart131 +#: model:account.account.template,name:l10n_vn.chart131 +msgid "Trade receivables" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart132 +#: model:account.account.template,name:l10n_vn.chart132 +msgid "Trade receivables(pos)" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3382 +#: model:account.account.template,name:l10n_vn.chart3382 +msgid "Trade union fees" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart419 +#: model:account.account.template,name:l10n_vn.chart419 +msgid "Treasury shares" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4211 +#: model:account.account.template,name:l10n_vn.chart4211 +msgid "Undistributed profit after tax brought forward" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4212 +#: model:account.account.template,name:l10n_vn.chart4212 +msgid "Undistributed profit(loss) after tax for the current year" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3387 +#: model:account.account.template,name:l10n_vn.chart3387 +msgid "Unearned revenue" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3386 +#: model:account.account.template,name:l10n_vn.chart3386 +msgid "Unemployment insurance" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_01_vn +msgid "Untaxed Purchase of Goods and Services" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_02_01_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_01_02_01_vn +msgid "Untaxed Purchase of Goods and Services taxed 0%" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_03_02_01_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_03_02_01_vn +msgid "Untaxed Purchase of Goods and Services taxed 10%" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_02_01_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_02_02_01_vn +msgid "Untaxed Purchase of Goods and Services taxed 5%" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_02_vn +msgid "Untaxed Sales of Goods and Services" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_02_02_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_01_02_02_vn +msgid "Untaxed sales of goods and services taxed 0%" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_03_02_02_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_03_02_02_vn +msgid "Untaxed sales of goods and services taxed 10%" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_02_02_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_02_02_02_vn +msgid "Untaxed sales of goods and services taxed 5%" +msgstr "" + +#. module: l10n_vn +#: model:account.tax.group,name:l10n_vn.tax_group_0 +msgid "VAT 0%" +msgstr "" + +#. module: l10n_vn +#: model:account.tax.group,name:l10n_vn.tax_group_10 +msgid "VAT 10%" +msgstr "" + +#. module: l10n_vn +#: model:account.tax.group,name:l10n_vn.tax_group_5 +msgid "VAT 5%" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart33312 +#: model:account.account.template,name:l10n_vn.chart33312 +msgid "VAT on imported goods" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1332 +#: model:account.account.template,name:l10n_vn.chart1332 +msgid "VAT on purchase of fixed assets" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1331 +#: model:account.account.template,name:l10n_vn.chart1331 +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_01_vn +msgid "VAT on purchase of goods and services" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_01_01_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_01_01_01_vn +msgid "VAT on purchase of goods and services 0%" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_03_01_01_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_03_01_01_vn +msgid "VAT on purchase of goods and services 10%" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_01_01_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_02_01_01_vn +msgid "VAT on purchase of goods and services 5%" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_02_vn +msgid "VAT on sales of goods and services" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_01_02_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_01_01_02_vn +msgid "VAT on sales of goods and services 0%" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_03_01_02_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_03_01_02_vn +msgid "VAT on sales of goods and services 10%" +msgstr "" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_01_02_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_02_01_02_vn +msgid "VAT on sales of goods and services 5%" +msgstr "" + +#. module: l10n_vn +#: model:account.chart.template,name:l10n_vn.vn_template +msgid "VN - Chart of Accounts" +msgstr "" + +#. module: l10n_vn +#: model:account.tax,description:l10n_vn.1_tax_sale_vat0 +#: model:account.tax,name:l10n_vn.1_tax_sale_vat0 +#: model:account.tax.template,description:l10n_vn.tax_sale_vat0 +#: model:account.tax.template,name:l10n_vn.tax_sale_vat0 +msgid "Value Added Tax (VAT) 0%" +msgstr "" + +#. module: l10n_vn +#: model:account.tax,description:l10n_vn.1_tax_sale_vat10 +#: model:account.tax,name:l10n_vn.1_tax_sale_vat10 +#: model:account.tax.template,description:l10n_vn.tax_sale_vat10 +#: model:account.tax.template,name:l10n_vn.tax_sale_vat10 +msgid "Value Added Tax (VAT) 10%" +msgstr "" + +#. module: l10n_vn +#: model:account.tax,description:l10n_vn.1_tax_sale_vat5 +#: model:account.tax,name:l10n_vn.1_tax_sale_vat5 +#: model:account.tax.template,description:l10n_vn.tax_sale_vat5 +#: model:account.tax.template,name:l10n_vn.tax_sale_vat5 +msgid "Value Added Tax (VAT) 5%" +msgstr "" + +#. module: l10n_vn +#: model:ir.ui.menu,name:l10n_vn.account_reports_vn_statements_menu +msgid "Vietnam" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1121 +#: model:account.account.template,name:l10n_vn.chart1121 +msgid "Vietnamese Dong" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1544 +#: model:account.account.template,name:l10n_vn.chart1544 +msgid "Warranty costs" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6415 +#: model:account.account.template,name:l10n_vn.chart6415 +msgid "Warranty expenses" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3532 +#: model:account.account.template,name:l10n_vn.chart3532 +msgid "Welfare fund" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3533 +#: model:account.account.template,name:l10n_vn.chart3533 +msgid "Welfare fund used for fixed asset acquisitions" +msgstr "" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1361 +#: model:account.account.template,name:l10n_vn.chart1361 +msgid "Working capital provided to sub-units" +msgstr "" diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/i18n_extra/vi_VN.po b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/i18n_extra/vi_VN.po new file mode 100644 index 0000000..6ff4a08 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/i18n_extra/vi_VN.po @@ -0,0 +1,1292 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * l10n_vn +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-09-30 03:34+0000\n" +"PO-Revision-Date: 2021-09-30 03:34+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_vn +#: model:account.account,name:l10n_vn.1_chart335 +#: model:account.account.template,name:l10n_vn.chart335 +msgid "Accrued expenses" +msgstr "Chi phí phải trả" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart141 +#: model:account.account.template,name:l10n_vn.chart141 +msgid "Advances" +msgstr "Tạm ứng" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2291 +#: model:account.account.template,name:l10n_vn.chart2291 +msgid "Allowances for decline in value of trading securities" +msgstr "Dự phòng giảm giá chứng khoán kinh doanh" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2293 +#: model:account.account.template,name:l10n_vn.chart2293 +msgid "Allowances for doubtful debts" +msgstr "Dự phòng phải thu khó đòi" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2292 +#: model:account.account.template,name:l10n_vn.chart2292 +msgid "Allowances for impairment of investments in other entities" +msgstr "Dự phòng tổn thất đầu tư vào đơn vị khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2294 +#: model:account.account.template,name:l10n_vn.chart2294 +msgid "Allowances for inventories" +msgstr "Dự phòng giảm giá hàng tồn kho" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2143 +#: model:account.account.template,name:l10n_vn.chart2143 +msgid "Amortization of intangible assets" +msgstr "Hao mòn TSCĐ vô hình" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart34312 +#: model:account.account.template,name:l10n_vn.chart34312 +msgid "Bond discounts" +msgstr "Chiết khấu trái phiếu" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart34313 +#: model:account.account.template,name:l10n_vn.chart34313 +msgid "Bond premiums" +msgstr "Phụ trội trái phiếu" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1212 +#: model:account.account,name:l10n_vn.1_chart1282 +#: model:account.account.template,name:l10n_vn.chart1212 +#: model:account.account.template,name:l10n_vn.chart1282 +msgid "Bonds" +msgstr "Trái phiếu" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3531 +#: model:account.account.template,name:l10n_vn.chart3531 +msgid "Bonus fund" +msgstr "Quỹ khen thưởng" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3411 +#: model:account.account.template,name:l10n_vn.chart3411 +msgid "Borrowing loans liabilities" +msgstr "Các khoản đi vay" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2111 +#: model:account.account.template,name:l10n_vn.chart2111 +msgid "Buildings and structures" +msgstr "Nhà cửa, vật kiến trúc" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart441 +#: model:account.account.template,name:l10n_vn.chart441 +msgid "Capital expenditure funds" +msgstr "Nguồn vốn đầu tư xây dựng cơ bản" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4112 +#: model:account.account.template,name:l10n_vn.chart4112 +msgid "Capital surplus" +msgstr "Thặng dư vốn cổ phần" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2135 +#: model:account.account.template,name:l10n_vn.chart2135 +msgid "Computer software" +msgstr "Chương trình phần mềm" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1541 +#: model:account.account.template,name:l10n_vn.chart1541 +msgid "Construction contracts" +msgstr "Xây lắp" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3522 +#: model:account.account.template,name:l10n_vn.chart3522 +msgid "Construction warranty provisions" +msgstr "Dự phòng bảo hành công trình xây dựng" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2412 +#: model:account.account.template,name:l10n_vn.chart2412 +msgid "Construction works" +msgstr "Xây dựng cơ bản" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4113 +#: model:account.account.template,name:l10n_vn.chart4113 +msgid "Conversion options on convertible bonds" +msgstr "Quyền chọn chuyển đổi trái phiếu" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3432 +#: model:account.account.template,name:l10n_vn.chart3432 +msgid "Convertible bonds" +msgstr "Trái phiếu chuyển đổi" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2132 +#: model:account.account.template,name:l10n_vn.chart2132 +msgid "Copyrights" +msgstr "Quyền phát hành" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3334 +#: model:account.account.template,name:l10n_vn.chart3334 +msgid "Corporate income tax" +msgstr "Thuế thu nhập doanh nghiệp" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart632 +#: model:account.account.template,name:l10n_vn.chart632 +msgid "Costs of goods sold" +msgstr "Giá vốn hàng bán" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart8211 +#: model:account.account.template,name:l10n_vn.chart8211 +msgid "Current tax expense" +msgstr "Chi phí thuế thu nhập doanh nghiệp hiện hành" + +#. module: l10n_vn +#: model:account.tax,description:l10n_vn.1_tax_purchase_vat0 +#: model:account.tax,name:l10n_vn.1_tax_purchase_vat0 +#: model:account.tax.template,description:l10n_vn.tax_purchase_vat0 +#: model:account.tax.template,name:l10n_vn.tax_purchase_vat0 +msgid "Deductible VAT 0%" +msgstr "Thuế GTGT được khấu trừ 0%" + +#. module: l10n_vn +#: model:account.tax,description:l10n_vn.1_tax_purchase_vat10 +#: model:account.tax,name:l10n_vn.1_tax_purchase_vat10 +#: model:account.tax.template,description:l10n_vn.tax_purchase_vat10 +#: model:account.tax.template,name:l10n_vn.tax_purchase_vat10 +msgid "Deductible VAT 10%" +msgstr "Thuế GTGT được khấu trừ 10%" + +#. module: l10n_vn +#: model:account.tax,description:l10n_vn.1_tax_purchase_vat5 +#: model:account.tax,name:l10n_vn.1_tax_purchase_vat5 +#: model:account.tax.template,description:l10n_vn.tax_purchase_vat5 +#: model:account.tax.template,name:l10n_vn.tax_purchase_vat5 +msgid "Deductible VAT 5%" +msgstr "Thuế GTGT được khấu trừ 5%" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart243 +#: model:account.account.template,name:l10n_vn.chart243 +msgid "Deferred tax assets" +msgstr "Tài sản thuế thu nhập hoãn lại" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart8212 +#: model:account.account.template,name:l10n_vn.chart8212 +msgid "Deferred tax expense" +msgstr "Chi phí thuế thu nhập doanh nghiệp hoãn lại" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart347 +#: model:account.account.template,name:l10n_vn.chart347 +msgid "Deferred tax liabilities" +msgstr "Thuế thu nhập hoãn lại phải trả" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart344 +#: model:account.account.template,name:l10n_vn.chart344 +msgid "Deposits received" +msgstr "Nhận ký quỹ, ký cược" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6234 +#: model:account.account.template,name:l10n_vn.chart6234 +msgid "Depreciation expense" +msgstr "Chi phí khấu hao máy thi công" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2142 +#: model:account.account.template,name:l10n_vn.chart2142 +msgid "Depreciation of finance lease assets" +msgstr "Hao mòn TSCĐ thuê tài chính" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2147 +#: model:account.account.template,name:l10n_vn.chart2147 +msgid "Depreciation of investment properties" +msgstr "Hao mòn bất động sản đầu tư" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2141 +#: model:account.account.template,name:l10n_vn.chart2141 +msgid "Depreciation of tangible fixed assets" +msgstr "Hao mòn TSCĐ hữu hình" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart412 +#: model:account.account.template,name:l10n_vn.chart412 +msgid "Differences upon asset revaluation" +msgstr "Chênh lệch đánh giá lại tài sản" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart622 +#: model:account.account.template,name:l10n_vn.chart622 +msgid "Direct labour costs" +msgstr "Chi phí nhân công trực tiếp" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart621 +#: model:account.account.template,name:l10n_vn.chart621 +msgid "Direct raw material costs" +msgstr "Chi phí nguyên liệu, vật liệu trực tiếp" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart417 +#: model:account.account.template,name:l10n_vn.chart417 +msgid "Enterprise reorganization assistance fund" +msgstr "Quỹ hỗ trợ sắp xếp doanh nghiệp" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3523 +#: model:account.account.template,name:l10n_vn.chart3523 +msgid "Enterprise restructuring provisions" +msgstr "Dự phòng tái cơ cấu doanh nghiệp" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart33381 +#: model:account.account.template,name:l10n_vn.chart33381 +msgid "Environment protection tax" +msgstr "Thuế bảo vệ môi trường" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1534 +#: model:account.account.template,name:l10n_vn.chart1534 +msgid "Equipment and spare parts for replacement" +msgstr "Thiết bị, phụ tùng thay thế" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2281 +#: model:account.account.template,name:l10n_vn.chart2281 +msgid "Equity investments in other entities Other investment" +msgstr "Đầu tư góp vốn vào đơn vị khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4132 +#: model:account.account.template,name:l10n_vn.chart4132 +msgid "Exchange rate differences in pre-operating period" +msgstr "Chênh lệch tỷ giá hối đoái trong giai đoạn trước hoạt động" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4131 +#: model:account.account.template,name:l10n_vn.chart4131 +msgid "" +"Exchange rate differences on revaluation of monetary items denominated in " +"foreign currency " +msgstr "" +"Chênh lệch tỷ giá do đánh giá lại các khoản mục tiền tệ có gốc ngoại tệ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1611 +#: model:account.account.template,name:l10n_vn.chart1611 +msgid "Expenditure brought forward" +msgstr "Chi sự nghiệp năm trước" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1612 +#: model:account.account.template,name:l10n_vn.chart1612 +msgid "Expenditure of current year" +msgstr "Chi sự nghiệp năm nay" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6271 +#: model:account.account.template,name:l10n_vn.chart6271 +msgid "Factory staff costs" +msgstr "Chi phí nhân viên phân xưởng" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3339 +#: model:account.account.template,name:l10n_vn.chart3339 +msgid "Fees, charges and other payables" +msgstr "Phí, lệ phí và các khoản phải nộp khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2122 +#: model:account.account.template,name:l10n_vn.chart2122 +msgid "Finance lease intangible fixed assets" +msgstr "TSCĐ vô hình thuê tài chính" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3412 +#: model:account.account.template,name:l10n_vn.chart3412 +msgid "Finance lease liabilities" +msgstr "Nợ thuê tài chính" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2121 +#: model:account.account.template,name:l10n_vn.chart2121 +msgid "Finance lease tangible fixed assets" +msgstr "TSCĐ hữu hình thuê tài chính" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart635 +#: model:account.account.template,name:l10n_vn.chart635 +msgid "Financial expenses" +msgstr "Chi phí tài chính" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart515 +#: model:account.account.template,name:l10n_vn.chart515 +msgid "Financial income" +msgstr "Doanh thu hoạt động tài chính" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1551 +#: model:account.account.template,name:l10n_vn.chart1551 +msgid "Finished products - inventory" +msgstr "Thành phẩm nhập kho" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1557 +#: model:account.account.template,name:l10n_vn.chart1557 +msgid "Finished products - real estates" +msgstr "Thành phẩm bất động sản" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6414 +#: model:account.account.template,name:l10n_vn.chart6414 +msgid "Fixed asset deprecation" +msgstr "Chi phí khấu hao TSCĐ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6274 +#: model:account.account,name:l10n_vn.1_chart6424 +#: model:account.account.template,name:l10n_vn.chart6274 +#: model:account.account.template,name:l10n_vn.chart6424 +msgid "Fixed asset depreciation" +msgstr "Chi phí khấu hao TSCĐ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2411 +#: model:account.account.template,name:l10n_vn.chart2411 +msgid "Fixed assets prior to commissioning" +msgstr "Mua sắm TSCĐ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1122 +#: model:account.account.template,name:l10n_vn.chart1122 +msgid "Foreign currencies" +msgstr "Ngoại tệ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart158 +#: model:account.account.template,name:l10n_vn.chart158 +msgid "Goods in bonded warehouse" +msgstr "Hàng hóa kho bảo thuế" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart151 +#: model:account.account.template,name:l10n_vn.chart151 +msgid "Goods in transit" +msgstr "Hàng mua đang đi đường" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart171 +#: model:account.account.template,name:l10n_vn.chart171 +msgid "Government bonds purchased for resale" +msgstr "Giao dịch mua bán lại trái phiếu chính phủ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3384 +#: model:account.account.template,name:l10n_vn.chart3384 +msgid "Health insurance" +msgstr "Bảo hiểm y tế" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3333 +#: model:account.account.template,name:l10n_vn.chart3333 +msgid "Import and export tax" +msgstr "Thuế xuất, nhập khẩu" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1562 +#: model:account.account.template,name:l10n_vn.chart1562 +msgid "Incidental purchase costs" +msgstr "Chi phí thu mua hàng hoá" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart911 +#: model:account.account.template,name:l10n_vn.chart911 +msgid "Income Summary" +msgstr "Xác định kết quả kinh doanh" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1533 +#: model:account.account.template,name:l10n_vn.chart1533 +msgid "Instruments for renting" +msgstr "Đồ dùng cho thuê" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3363 +#: model:account.account.template,name:l10n_vn.chart3363 +msgid "Intra-company payables for borrowing costs eligible to be capitalized" +msgstr "Phải trả nội bộ về chi phí đi vay đủ điều kiện được vốn hoá" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3362 +#: model:account.account.template,name:l10n_vn.chart3362 +msgid "Intra-company payables for foreign exchange differences" +msgstr "Phải trả nội bộ về chênh lệch tỷ giá" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3361 +#: model:account.account.template,name:l10n_vn.chart3361 +msgid "Intra-company payables for operating capital received" +msgstr "Phải trả nội bộ về vốn kinh doanh" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1363 +#: model:account.account.template,name:l10n_vn.chart1363 +msgid "" +"Intra-company receivables on borrowing costs eligible to be capitalized" +msgstr "Phải thu nội bộ về chi phí đi vay đủ điều kiện được vốn hóa" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1362 +#: model:account.account.template,name:l10n_vn.chart1362 +msgid "Intra-company receivables on foreign exchange" +msgstr "Phải thu nội bộ về chênh lệch tỷ giá" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart414 +#: model:account.account.template,name:l10n_vn.chart414 +msgid "Investment and development fund" +msgstr "Quỹ đầu tư phát triển" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart222 +#: model:account.account.template,name:l10n_vn.chart222 +msgid "Investment in joint ventures and associates" +msgstr "Đầu tư vào công ty liên doanh, liên kết" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart221 +#: model:account.account.template,name:l10n_vn.chart221 +msgid "Investment in subsidiaries" +msgstr "Đầu tư vào công ty con" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart217 +#: model:account.account.template,name:l10n_vn.chart217 +msgid "Investment properties" +msgstr "Bất động sản đầu tư" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6231 +#: model:account.account.template,name:l10n_vn.chart6231 +msgid "Labour costs" +msgstr "Chi phí nhân công" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3337 +#: model:account.account.template,name:l10n_vn.chart3337 +msgid "Land and housing tax, and rental charges" +msgstr "Thuế nhà đất, tiền thuê đất" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2131 +#: model:account.account.template,name:l10n_vn.chart2131 +msgid "Land use rights" +msgstr "Quyền sử dụng đất" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1283 +#: model:account.account.template,name:l10n_vn.chart1283 +msgid "Lending loans" +msgstr "Cho vay" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2136 +#: model:account.account.template,name:l10n_vn.chart2136 +msgid "Licenses and franchises" +msgstr "Giấy phép và giấy phép nhượng quyền" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_vn_template_liquidity_transfer +#: model:account.account.template,name:l10n_vn.vn_template_liquidity_transfer +msgid "Liquidity Transfer" +msgstr "Tiền đang chuyển" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2112 +#: model:account.account.template,name:l10n_vn.chart2112 +msgid "Machinery and equipment" +msgstr "Máy móc, thiết bị" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2413 +#: model:account.account.template,name:l10n_vn.chart2413 +msgid "Major repairs of fixed assets" +msgstr "Sửa chữa lớn TSCĐ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3534 +#: model:account.account.template,name:l10n_vn.chart3534 +msgid "Management bonus fund" +msgstr "Quỹ thưởng ban quản lý điều hành công ty" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6232 +#: model:account.account,name:l10n_vn.1_chart6272 +#: model:account.account.template,name:l10n_vn.chart6232 +#: model:account.account.template,name:l10n_vn.chart6272 +msgid "Material costs" +msgstr "Chi phí nguyên, vật liệu" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6412 +#: model:account.account.template,name:l10n_vn.chart6412 +msgid "Materials and packing materials" +msgstr "Chi phí nguyên vật liệu, bao bì" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2113 +#: model:account.account.template,name:l10n_vn.chart2113 +msgid "Means of transportation and transmission" +msgstr "Phương tiện vận tải, truyền dẫn" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1123 +#: model:account.account.template,name:l10n_vn.chart1123 +msgid "Monetary Gold" +msgstr "Vàng tiền tệ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart244 +#: model:account.account.template,name:l10n_vn.chart244 +msgid "Mortgage, collaterals and deposits" +msgstr "Cầm cố, thế chấp, ký quỹ, kýcược" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4611 +#: model:account.account.template,name:l10n_vn.chart4611 +msgid "Non-business funds bought forward" +msgstr "Nguồn kinh phí sự nghiệp năm trước" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4612 +#: model:account.account.template,name:l10n_vn.chart4612 +msgid "Non-business funds for current year" +msgstr "Nguồn kinh phí sự nghiệp năm nay" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart466 +#: model:account.account.template,name:l10n_vn.chart466 +msgid "Non-business funds used for fixed asset acquisitions" +msgstr "Nguồn kinh phí sự nghiệp đã hình thành TSCĐ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2114 +#: model:account.account.template,name:l10n_vn.chart2114 +msgid "Office equipment and furniture" +msgstr "Thiết bị, dụng cụ quản lý" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6423 +#: model:account.account.template,name:l10n_vn.chart6423 +msgid "Office equipment expenses" +msgstr "Chi phí đồ dùng văn phòng" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6422 +#: model:account.account.template,name:l10n_vn.chart6422 +msgid "Office supply expenses" +msgstr "Chi phí vật liệu quản lý" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3431 +#: model:account.account.template,name:l10n_vn.chart3431 +msgid "Ordinary bonds" +msgstr "Trái phiếu thường" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart41111 +#: model:account.account.template,name:l10n_vn.chart41111 +msgid "Ordinary shares with voting rights" +msgstr "Cổ phiếu phổ thông có quyền biểu quyết" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart811 +#: model:account.account.template,name:l10n_vn.chart811 +msgid "Other Expenses" +msgstr "Chi phí khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart711 +#: model:account.account.template,name:l10n_vn.chart711 +msgid "Other Income" +msgstr "Thu nhập khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4118 +#: model:account.account.template,name:l10n_vn.chart4118 +msgid "Other capital" +msgstr "Vốn khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart418 +#: model:account.account.template,name:l10n_vn.chart418 +msgid "Other equity funds" +msgstr "Các quỹ khác thuộc vốn chủ sở hữu" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6238 +#: model:account.account,name:l10n_vn.1_chart6278 +#: model:account.account,name:l10n_vn.1_chart6418 +#: model:account.account,name:l10n_vn.1_chart6428 +#: model:account.account.template,name:l10n_vn.chart6238 +#: model:account.account.template,name:l10n_vn.chart6278 +#: model:account.account.template,name:l10n_vn.chart6418 +#: model:account.account.template,name:l10n_vn.chart6428 +msgid "Other expenses" +msgstr "Chi phí bằng tiền khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2118 +#: model:account.account.template,name:l10n_vn.chart2118 +msgid "Other fixed assets" +msgstr "Tài sản cố định khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1288 +#: model:account.account.template,name:l10n_vn.chart1288 +msgid "Other held to maturity investments" +msgstr "Các khoản đầu tư khác nắm giữ đến ngày đáo hạn" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2138 +#: model:account.account.template,name:l10n_vn.chart2138 +msgid "Other intangible fixed assets" +msgstr "TSCĐ vô hình khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3368 +#: model:account.account.template,name:l10n_vn.chart3368 +msgid "Other inter-company payables" +msgstr "Phải trả nội bộ khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1368 +#: model:account.account.template,name:l10n_vn.chart1368 +msgid "Other intra-company receivables" +msgstr "Phải thu nội bộ khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1542 +#: model:account.account.template,name:l10n_vn.chart1542 +msgid "Other products" +msgstr "Sản phẩm khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3524 +#: model:account.account.template,name:l10n_vn.chart3524 +msgid "Other provisions" +msgstr "Dự phòng phải trả khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5118 +#: model:account.account.template,name:l10n_vn.chart5118 +msgid "Other revenue" +msgstr "Doanh thu khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1218 +#: model:account.account.template,name:l10n_vn.chart1218 +msgid "Other securities and financial instruments" +msgstr "Chứng khoán và công cụ tài chính khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart33382 +#: model:account.account.template,name:l10n_vn.chart33382 +msgid "Other taxes" +msgstr "Các loại thuế khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3388 +#: model:account.account.template,name:l10n_vn.chart3388 +msgid "Others" +msgstr "Phải trả, phải nộp khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1388 +#: model:account.account.template,name:l10n_vn.chart1388 +msgid "Others receivables" +msgstr "Phải thu khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart33311 +#: model:account.account.template,name:l10n_vn.chart33311 +msgid "Output VAT" +msgstr "Thuế GTGT đầu ra" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6277 +#: model:account.account,name:l10n_vn.1_chart6417 +#: model:account.account,name:l10n_vn.1_chart6427 +#: model:account.account.template,name:l10n_vn.chart6277 +#: model:account.account.template,name:l10n_vn.chart6417 +#: model:account.account.template,name:l10n_vn.chart6427 +msgid "Outside services" +msgstr "Chi phí dịch vụ mua ngoài" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6237 +#: model:account.account.template,name:l10n_vn.chart6237 +msgid "Outside services " +msgstr "Chi phí dịch vụ mua ngoài" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart157 +#: model:account.account.template,name:l10n_vn.chart157 +msgid "Outward goods on consignment" +msgstr "Hàng gửi đi bán" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart34311 +#: model:account.account.template,name:l10n_vn.chart34311 +msgid "Par value of bonds" +msgstr "Mệnh giá trái phiếu" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2133 +#: model:account.account.template,name:l10n_vn.chart2133 +msgid "Patents and inventions" +msgstr "Bản quyền, bằng sáng chế" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3385 +#: model:account.account.template,name:l10n_vn.chart3385 +msgid "Payables on equitization" +msgstr "Phải trả về cổ phần hóa" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3348 +#: model:account.account.template,name:l10n_vn.chart3348 +msgid "Payables to others" +msgstr "Phải trả người lao động khác" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3341 +#: model:account.account.template,name:l10n_vn.chart3341 +msgid "Payables to staff" +msgstr "Phải trả công nhân viên" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2115 +#: model:account.account.template,name:l10n_vn.chart2115 +msgid "Perennial plants, working animals and farm livestocks" +msgstr "Cây lâu năm, súc vật làm việc và cho sản phẩm" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3335 +#: model:account.account.template,name:l10n_vn.chart3335 +msgid "Personal income tax" +msgstr "Thuế thu nhập cá nhân" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart41112 +#: model:account.account.template,name:l10n_vn.chart41112 +msgid "Preference shares" +msgstr "Cổ phiếu ưu đãi" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart242 +#: model:account.account.template,name:l10n_vn.chart242 +msgid "Prepaid expenses" +msgstr "Chi phí trả trước" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart357 +#: model:account.account.template,name:l10n_vn.chart357 +msgid "Price stabilization fund" +msgstr "Quỹ bình ổn giá" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart2134 +#: model:account.account.template,name:l10n_vn.chart2134 +msgid "Product labels and trademarks" +msgstr "Nhãn hiệu, tên thương mại" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3521 +#: model:account.account.template,name:l10n_vn.chart3521 +msgid "Product warranty provisions" +msgstr "Dự phòng bảo hành sản phẩm hàng hóa" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart631 +#: model:account.account.template,name:l10n_vn.chart631 +msgid "Production costs" +msgstr "Giá thành sản xuất" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6233 +#: model:account.account,name:l10n_vn.1_chart6273 +#: model:account.account.template,name:l10n_vn.chart6233 +#: model:account.account.template,name:l10n_vn.chart6273 +msgid "Production tools and instruments" +msgstr "Chi phí dụng cụ sản xuất" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart337 +#: model:account.account.template,name:l10n_vn.chart337 +msgid "Progress billings for construction contracts" +msgstr "Thanh toán theo tiến độ kế hoạch hợp đồng xây dựng" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1567 +#: model:account.account.template,name:l10n_vn.chart1567 +msgid "Properties held for sale" +msgstr "Hàng hóa bất động sản" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6426 +#: model:account.account.template,name:l10n_vn.chart6426 +msgid "Provision expenses" +msgstr "Chi phí dự phòng" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1561 +#: model:account.account.template,name:l10n_vn.chart1561 +msgid "Purchase costs" +msgstr "Giá mua hàng hóa" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_vn +msgid "Purchase of Goods and Services" +msgstr "HHDV Mua vào" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6111 +#: model:account.account.template,name:l10n_vn.chart6111 +msgid "Purchases of raw materials" +msgstr "Mua nguyên liệu, vật liệu" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart152 +#: model:account.account.template,name:l10n_vn.chart152 +msgid "Raw materials" +msgstr "Nguyên liệu, vật liệu" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1385 +#: model:account.account.template,name:l10n_vn.chart1385 +msgid "Receivables from privatization" +msgstr "Phải thu về cổ phần hóa" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1532 +#: model:account.account.template,name:l10n_vn.chart1532 +msgid "Reusable packaging materials" +msgstr "Bao bì luân chuyển" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5114 +#: model:account.account.template,name:l10n_vn.chart5114 +msgid "Revenue from government grants" +msgstr "Doanh thu trợ cấp, trợ giá" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5117 +#: model:account.account.template,name:l10n_vn.chart5117 +msgid "Revenue from investment properties" +msgstr "Doanh thu kinh doanh bất động sản đầu tư" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5112 +#: model:account.account.template,name:l10n_vn.chart5112 +msgid "Revenue from sales of finished goods" +msgstr "Doanh thu bán các thành phẩm" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5111 +#: model:account.account.template,name:l10n_vn.chart5111 +msgid "Revenue from sales of merchandises" +msgstr "Doanh thu bán hàng hoá" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5113 +#: model:account.account.template,name:l10n_vn.chart5113 +msgid "Revenue from services rendered" +msgstr "Doanh thu cung cấp dịch vụ" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_vn +msgid "Sales of Goods and Services" +msgstr "HHDV Bán ra" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5213 +#: model:account.account.template,name:l10n_vn.chart5213 +msgid "Sales rebates" +msgstr "Giảm giá hàng bán" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5212 +#: model:account.account.template,name:l10n_vn.chart5212 +msgid "Sales returns" +msgstr "Hàng bán bị trả lại" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3561 +#: model:account.account.template,name:l10n_vn.chart3561 +msgid "Science and technology development fund" +msgstr "Quỹ phát triển khoa học và công nghệ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3562 +#: model:account.account.template,name:l10n_vn.chart3562 +msgid "" +"Science and technology development fund used for fixed asset acquisition" +msgstr "Quỹ phát triển khoa học và công nghệ đã hình thành TSCĐ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1543 +#: model:account.account.template,name:l10n_vn.chart1543 +msgid "Services" +msgstr "Dịch vụ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1211 +#: model:account.account.template,name:l10n_vn.chart1211 +msgid "Shares" +msgstr "Cổ phiếu" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1381 +#: model:account.account.template,name:l10n_vn.chart1381 +msgid "Shortage of assets awaiting resolution" +msgstr "Tài sản thiếu chờ xử lý" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3383 +#: model:account.account.template,name:l10n_vn.chart3383 +msgid "Social insurance" +msgstr "Bảo hiểm xã hội" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3332 +#: model:account.account.template,name:l10n_vn.chart3332 +msgid "Special consumption tax" +msgstr "Thuế tiêu thụ đặc biệt" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6411 +#: model:account.account,name:l10n_vn.1_chart6421 +#: model:account.account.template,name:l10n_vn.chart6411 +#: model:account.account.template,name:l10n_vn.chart6421 +msgid "Staff expenses" +msgstr "Chi phí nhân viên" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3381 +#: model:account.account.template,name:l10n_vn.chart3381 +msgid "Surplus of assets awaiting resolution" +msgstr "Tài sản thừa chờ giải quyết" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3336 +#: model:account.account.template,name:l10n_vn.chart3336 +msgid "Tax on use of natural resources " +msgstr "Thuế tài nguyên" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6425 +#: model:account.account.template,name:l10n_vn.chart6425 +msgid "Taxes, fees and charges" +msgstr "Thuế, phí và lệ phí" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1281 +#: model:account.account.template,name:l10n_vn.chart1281 +msgid "Term deposits" +msgstr "Tiền gửi có kỳ hạn" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6413 +#: model:account.account.template,name:l10n_vn.chart6413 +msgid "Tools and instruments" +msgstr "Chi phí dụng cụ, đồ dùng" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1531 +#: model:account.account.template,name:l10n_vn.chart1531 +msgid "Tools and supplies" +msgstr "Công cụ, dụng cụ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart5211 +#: model:account.account.template,name:l10n_vn.chart5211 +msgid "Trade discounts" +msgstr "Chiết khấu thương mại" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart331 +#: model:account.account.template,name:l10n_vn.chart331 +msgid "Trade payables" +msgstr "Phải trả cho người bán" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart131 +#: model:account.account.template,name:l10n_vn.chart131 +msgid "Trade receivables" +msgstr "Phải thu của khách hàng" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart132 +#: model:account.account.template,name:l10n_vn.chart132 +msgid "Trade receivables(pos)" +msgstr "Phải thu của khách hàng(pos)" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3382 +#: model:account.account.template,name:l10n_vn.chart3382 +msgid "Trade union fees" +msgstr "Kinh phí công đoàn" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart419 +#: model:account.account.template,name:l10n_vn.chart419 +msgid "Treasury shares" +msgstr "Cổ phiếu quỹ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4211 +#: model:account.account.template,name:l10n_vn.chart4211 +msgid "Undistributed profit after tax brought forward" +msgstr "Lợi nhuận sau thuế chưa phân phối năm trước" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart4212 +#: model:account.account.template,name:l10n_vn.chart4212 +msgid "Undistributed profit(loss) after tax for the current year" +msgstr "Lợi nhuận sau thuế chưa phân phối năm nay" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3387 +#: model:account.account.template,name:l10n_vn.chart3387 +msgid "Unearned revenue" +msgstr "Doanh thu chưa thực hiện" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3386 +#: model:account.account.template,name:l10n_vn.chart3386 +msgid "Unemployment insurance" +msgstr "Bảo hiểm thất nghiệp" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_01_vn +msgid "Untaxed Purchase of Goods and Services" +msgstr "Giá trị HHDV Mua vào" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_02_01_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_01_02_01_vn +msgid "Untaxed Purchase of Goods and Services taxed 0%" +msgstr "Giá trị HHDV Mua vào chịu thuế 0%" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_03_02_01_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_03_02_01_vn +msgid "Untaxed Purchase of Goods and Services taxed 10%" +msgstr "Giá trị HHDV Mua vào chịu thuế 10%" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_02_01_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_02_02_01_vn +msgid "Untaxed Purchase of Goods and Services taxed 5%" +msgstr "Giá trị HHDV Mua vào chịu thuế 5%" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_02_vn +msgid "Untaxed Sales of Goods and Services" +msgstr "Giá trị HHDV Bán ra" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_02_02_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_01_02_02_vn +msgid "Untaxed sales of goods and services taxed 0%" +msgstr "Giá trị HHDV Bán ra chịu thuế 0%" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_03_02_02_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_03_02_02_vn +msgid "Untaxed sales of goods and services taxed 10%" +msgstr "Giá trị HHDV Bán ra chịu thuế 10%" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_02_02_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_02_02_02_vn +msgid "Untaxed sales of goods and services taxed 5%" +msgstr "Giá trị HHDV Bán ra chịu thuế 5%" + +#. module: l10n_vn +#: model:account.tax.group,name:l10n_vn.tax_group_0 +msgid "VAT 0%" +msgstr "Thuế GTGT 0%" + +#. module: l10n_vn +#: model:account.tax.group,name:l10n_vn.tax_group_10 +msgid "VAT 10%" +msgstr "Thuế GTGT 10%" + +#. module: l10n_vn +#: model:account.tax.group,name:l10n_vn.tax_group_5 +msgid "VAT 5%" +msgstr "Thuế GTGT 5%" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart33312 +#: model:account.account.template,name:l10n_vn.chart33312 +msgid "VAT on imported goods" +msgstr "Thuế GTGT hàng nhập khẩu" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1332 +#: model:account.account.template,name:l10n_vn.chart1332 +msgid "VAT on purchase of fixed assets" +msgstr "Thuế GTGT được khấu trừ của tài sản cố định" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1331 +#: model:account.account.template,name:l10n_vn.chart1331 +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_01_vn +msgid "VAT on purchase of goods and services" +msgstr "Thuế GTGT HHDV mua vào" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_01_01_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_01_01_01_vn +msgid "VAT on purchase of goods and services 0%" +msgstr "Thuế GTGT HHDV mua vào chịu thuế 0%" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_03_01_01_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_03_01_01_vn +msgid "VAT on purchase of goods and services 10%" +msgstr "Thuế GTGT HHDV mua vào chịu thuế 10%" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_01_01_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_02_01_01_vn +msgid "VAT on purchase of goods and services 5%" +msgstr "Thuế GTGT HHDV mua vào chịu thuế 5%" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_02_vn +msgid "VAT on sales of goods and services" +msgstr "Thuế GTGT HHDV bán ra" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_01_01_02_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_01_01_02_vn +msgid "VAT on sales of goods and services 0%" +msgstr "Thuế GTGT HHDV bán ra chịu thuế 0%" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_03_01_02_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_03_01_02_vn +msgid "VAT on sales of goods and services 10%" +msgstr "Thuế GTGT HHDV bán ra chịu thuế 10%" + +#. module: l10n_vn +#: model:account.report.line,name:l10n_vn.account_tax_report_line_02_01_02_vn +#: model:account.report.line,tag_name:l10n_vn.account_tax_report_line_02_01_02_vn +msgid "VAT on sales of goods and services 5%" +msgstr "Thuế GTGT HHDV bán ra chịu thuế 5%" + +#. module: l10n_vn +#: model:account.chart.template,name:l10n_vn.vn_template +msgid "VN - Chart of Accounts" +msgstr "VN - Hệ thống tài khoản" + +#. module: l10n_vn +#: model:account.tax,description:l10n_vn.1_tax_sale_vat0 +#: model:account.tax,name:l10n_vn.1_tax_sale_vat0 +#: model:account.tax.template,description:l10n_vn.tax_sale_vat0 +#: model:account.tax.template,name:l10n_vn.tax_sale_vat0 +msgid "Value Added Tax (VAT) 0%" +msgstr "Thuế GTGT phải nộp 0%" + +#. module: l10n_vn +#: model:account.tax,description:l10n_vn.1_tax_sale_vat10 +#: model:account.tax,name:l10n_vn.1_tax_sale_vat10 +#: model:account.tax.template,description:l10n_vn.tax_sale_vat10 +#: model:account.tax.template,name:l10n_vn.tax_sale_vat10 +msgid "Value Added Tax (VAT) 10%" +msgstr "Thuế GTGT phải nộp 10%" + +#. module: l10n_vn +#: model:account.tax,description:l10n_vn.1_tax_sale_vat5 +#: model:account.tax,name:l10n_vn.1_tax_sale_vat5 +#: model:account.tax.template,description:l10n_vn.tax_sale_vat5 +#: model:account.tax.template,name:l10n_vn.tax_sale_vat5 +msgid "Value Added Tax (VAT) 5%" +msgstr "Thuế GTGT phải nộp 5%" + +#. module: l10n_vn +#: model:ir.ui.menu,name:l10n_vn.account_reports_vn_statements_menu +msgid "Vietnam" +msgstr "Việt Nam" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1121 +#: model:account.account.template,name:l10n_vn.chart1121 +msgid "Vietnamese Dong" +msgstr "Tiền Việt Nam" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1544 +#: model:account.account.template,name:l10n_vn.chart1544 +msgid "Warranty costs" +msgstr "Chi phí bảo hành xây lắp" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart6415 +#: model:account.account.template,name:l10n_vn.chart6415 +msgid "Warranty expenses" +msgstr "Chi phí bảo hành" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3532 +#: model:account.account.template,name:l10n_vn.chart3532 +msgid "Welfare fund" +msgstr "Quỹ phúc lợi" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart3533 +#: model:account.account.template,name:l10n_vn.chart3533 +msgid "Welfare fund used for fixed asset acquisitions" +msgstr "Quỹ phúc lợi đã hình thành TSCĐ" + +#. module: l10n_vn +#: model:account.account,name:l10n_vn.1_chart1361 +#: model:account.account.template,name:l10n_vn.chart1361 +msgid "Working capital provided to sub-units" +msgstr "Vốn kinh doanh ở các đơn vị trực thuộc" diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/migrations/14.0.2.0.1/post-migration.py b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/migrations/14.0.2.0.1/post-migration.py new file mode 100644 index 0000000..5033b03 --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/migrations/14.0.2.0.1/post-migration.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +from odoo import api, SUPERUSER_ID + +FIXED_ACCOUNTS_MAP = { + '5221': '5211', + '5222': '5212', + '5223': '5213' + } + + +def _fix_revenue_deduction_accounts_code(env): + vn_template = env.ref('l10n_vn.vn_template') + for company in env['res.company'].with_context(active_test=False).search([('chart_template_id', '=', vn_template.id)]): + for incorrect_code, correct_code in FIXED_ACCOUNTS_MAP.items(): + account = env['account.account'].search([('code', '=', incorrect_code), ('company_id', '=', company.id)]) + if account: + account.write({'code': correct_code}) + + +def migrate(cr, version): + env = api.Environment(cr, SUPERUSER_ID, {}) + _fix_revenue_deduction_accounts_code(env) diff --git a/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/static/description/icon.png b/odoo-bringout-oca-ocb-l10n_vn/l10n_vn/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8fed409f1fe52f95b6877eb5f8d45391143d40ec GIT binary patch literal 1988 zcmeAS@N?(olHy`uVBq!ia0y~yV8{Yt4rT@hhUEVyOBooL{s#DjxV~dx=<1sI|38DP ztEaiSjk&qq%$W;TtX%Ey9~Kpr5*!j?Z|`br>$F7IC^ap+uWw>OK}lj_y033=zKMB8 zW}$)`Fr>Exy1cW;{xRqB_{{R2~xQJ+DQ%6)(qOWgAsim#6 zv*+R^%OfL`Cr_Ck78dX3=HuxZkdTlTAD>}qX}56El8A_;yu7lAh{P+3ito4?!ow3X zGjpS&YElXSvG0%w5d_ibLP$~EG!ERjVmgy3J#7642+D7ObQH)2nvdN z$IS4KiJ_*Z(az4<-rmK^%HG>MaMtX39v*(Sw$4+g&PWc4J1HhvUQvHiOyYoy{M4y4 zQ&Mt$e1bDG3+K;YG-2Y@KerkF++g@<$`BF~6C51-*`FaSJm%j&hJSw;tgRgvFJ9*1 z;S(Af?c(BXXXjd4T9uZTpPgM;US3^RUY(hlwSWKNY18J+pTF$q&!0_AZ5bK4ety9* zF-f03eeUUx0Sh&5tJ2SK3n6T(UKK?`e0$Eu_p`o!qS1|nh%1~ZW^Nxez z-zSF8p$y+U7|u#bx3%}om@)fX6T?R%hL8FTy}c9a>zlq$U{J$PgMD|2c%=$0CNm?-@SGG5meU zP*qj;L6+giT!!U}%HJ9p-b*n2+QRVBkRc@{D<~*BARzSjDTd!C82&zDaB}kaq+y1Lff+@kz~lASyE zwzjr+`TNJlCMP9j$Hisj<&{sGG-L7Nm1oYJU$bVDhll^%c?&x_dmJ2G9Ua|f&z{%U zKS@6LgBAk=OOvOIV@Srmt2fvyu7ofg_&DR4p8i7%FYRrQ=BnGiU-x>~o6< zX7BU9egFHfd)|8PJFU{TL>FHFcbQ*L{A%G1tIra5&TffH-?74ZzxRa}bvnzcXpTO=T`7=)0#$~N>$eqG> zfAyrlM>KN`-X|Ph9QB(?H~)-;Y~1qvdE4kQ$tKDp|d_~ItN z(z8|FNjFpL7N36fvE1oWw7=WDJtqDxM#jz8Zl+7dHok9P@muuV+2^jxiiVL=HyE0) z+*W)g*IFFz!xO|KtR0y?C$pvMWlUqFdd=NX(aKHr@q#~2oHVGJd+jRY@_7qi^3Sh( z6vr6Dx%gMZFP>*#lrj^x|11sezmyy=yw5kn_deJ1hTF#se%=aWpK{CKW$H_|qTgM= zuN}~2SjNHZePNT;f-8spOXWiE*6x*J%~Ch^iA(!(m2qjCL!YuHgAI>x)VF&Ncjf=s z@I=I8HK+dX9Gfc!)#>Z)kA0q0y7A=|J+Vtqmj!1UykhyhQYmT5?qYq#;PnbY@r_by zhTGgZXRSCgd8u9Z`)ezm*dK{zGk*1P*?3E1<*okYU8RdIuo`x4<)~g6B_FC7I6KKC z=yrn>>nsgD*PNO;Yc99c^#$`tEI3lb_jCQJb+%GY3%nW)U-`zpaMTT9kXT~#=$6K1 zhpE;*K`YG`nwtbnb+DdVa&zm3Y=zgdb7fnlShfUvGDlu*TODM{$MQ<4wDaq)t1FBe z95!A&6}C`}Aw;XcU8MCC;|Y=T4nqEMoJ(s&UtDpKR{8j3V?dUT!}4E;%BE|HGFYwr z{N~f7MS*thajSMbKh^Cvl_@BM;l;9j4vSC8{#ton_{r9l!BZXVQ(x~~enm5(;nSB1 zSswyBexH(J+gVdl2p}};FDfglypM&3570rx>9iFsfc;v(idenJS@u> z)p{CIrSauJ+wHa1=N*^cImeT#rM%zIw`!xn%pmDJCH}PwKM0;PIb}Pu@q6aOYtPRt zZZY?`x?%adxY^rN3e$ov$UObfzu9M5kVViHbs5c7XWYAro)j!u;V7fIYKpRJ=#P#- z%U3~SU)5)JKH8zbl5O&mQyM|n%CF3+KO6ZxP)#fQmB}mn)AogG0gR;?=gp_>y>iD= z%-dOivFNwp>{UmTW + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/odoo-bringout-oca-ocb-l10n_vn/pyproject.toml b/odoo-bringout-oca-ocb-l10n_vn/pyproject.toml new file mode 100644 index 0000000..4e9ec2e --- /dev/null +++ b/odoo-bringout-oca-ocb-l10n_vn/pyproject.toml @@ -0,0 +1,44 @@ +[project] +name = "odoo-bringout-oca-ocb-l10n_vn" +version = "16.0.0" +description = "Vietnam - Accounting - Odoo addon" +authors = [ + { name = "Ernad Husremovic", email = "hernad@bring.out.ba" } +] +dependencies = [ + "odoo-bringout-oca-ocb-account>=16.0.0", + "odoo-bringout-oca-ocb-base_iban>=16.0.0", + "odoo-bringout-oca-ocb-l10n_multilang>=16.0.0", + "requests>=2.25.1" +] +readme = "README.md" +requires-python = ">= 3.11" +classifiers = [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Office/Business", +] + +[project.urls] +homepage = "https://github.com/bringout/0" +repository = "https://github.com/bringout/0" + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.metadata] +allow-direct-references = true + +[tool.hatch.build.targets.wheel] +packages = ["l10n_vn"] + +[tool.rye] +managed = true +dev-dependencies = [ + "pytest>=8.4.1", +]