fix: allow all dispatch address for drop ship invoice

(cherry picked from commit 125a352bc2)

# Conflicts:
#	.editorconfig
#	.eslintrc
#	.git-blame-ignore-revs
#	.github/helper/documentation.py
#	.github/helper/install.sh
#	.github/helper/site_config_mariadb.json
#	.github/helper/translation.py
#	.github/stale.yml
#	.github/workflows/backport.yml
#	.github/workflows/linters.yml
#	.github/workflows/patch.yml
#	.github/workflows/release.yml
#	.github/workflows/release_notes.yml
#	.github/workflows/semantic-commits.yml
#	.github/workflows/server-tests-mariadb.yml
#	.github/workflows/server-tests-postgres.yml
#	.gitignore
#	.mergify.yml
#	.pre-commit-config.yaml
#	.releaserc
#	CODEOWNERS
#	README.md
#	erpnext/__init__.py
#	erpnext/accounts/dashboard_chart_source/account_balance_timeline/account_balance_timeline.py
#	erpnext/accounts/deferred_revenue.py
#	erpnext/accounts/doctype/account/account.js
#	erpnext/accounts/doctype/account/account.json
#	erpnext/accounts/doctype/account/account.py
#	erpnext/accounts/doctype/account/account_tree.js
#	erpnext/accounts/doctype/account/chart_of_accounts/chart_of_accounts.py
#	erpnext/accounts/doctype/account/chart_of_accounts/unverified/at_austria_chart_template.json
#	erpnext/accounts/doctype/account/chart_of_accounts/verified/ae_uae_chart_template_standard.json
#	erpnext/accounts/doctype/account/chart_of_accounts/verified/br_planilha_de_contas.json
#	erpnext/accounts/doctype/account/chart_of_accounts/verified/ca_plan_comptable_pour_les_provinces_francophones.json
#	erpnext/accounts/doctype/account/chart_of_accounts/verified/de_kontenplan_SKR04.json
#	erpnext/accounts/doctype/account/chart_of_accounts/verified/fr_plan_comptable_general_avec_code.json
#	erpnext/accounts/doctype/account/chart_of_accounts/verified/id_chart_of_accounts.json
#	erpnext/accounts/doctype/account/chart_of_accounts/verified/in_standard_chart_of_accounts.json
#	erpnext/accounts/doctype/account/chart_of_accounts/verified/mx_plan_de_cuentas.json
#	erpnext/accounts/doctype/account/chart_of_accounts/verified/ni_catalogo_de_cuentas.json
#	erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py
#	erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts_with_account_number.py
#	erpnext/accounts/doctype/account/test_account.py
#	erpnext/accounts/doctype/account_closing_balance/account_closing_balance.json
#	erpnext/accounts/doctype/account_closing_balance/account_closing_balance.py
#	erpnext/accounts/doctype/account_closing_balance/test_account_closing_balance.py
#	erpnext/accounts/doctype/accounting_dimension/accounting_dimension.js
#	erpnext/accounts/doctype/accounting_dimension/accounting_dimension.json
#	erpnext/accounts/doctype/accounting_dimension/accounting_dimension.py
#	erpnext/accounts/doctype/accounting_dimension/test_accounting_dimension.py
#	erpnext/accounts/doctype/accounting_dimension_detail/accounting_dimension_detail.json
#	erpnext/accounts/doctype/accounting_dimension_detail/accounting_dimension_detail.py
#	erpnext/accounts/doctype/accounting_dimension_filter/accounting_dimension_filter.js
#	erpnext/accounts/doctype/accounting_dimension_filter/accounting_dimension_filter.json
#	erpnext/accounts/doctype/accounting_dimension_filter/accounting_dimension_filter.py
#	erpnext/accounts/doctype/accounting_dimension_filter/test_accounting_dimension_filter.py
#	erpnext/accounts/doctype/accounting_period/accounting_period.json
#	erpnext/accounts/doctype/accounting_period/accounting_period.py
#	erpnext/accounts/doctype/accounting_period/test_accounting_period.py
#	erpnext/accounts/doctype/accounts_settings/accounts_settings.js
#	erpnext/accounts/doctype/accounts_settings/accounts_settings.json
#	erpnext/accounts/doctype/accounts_settings/accounts_settings.py
#	erpnext/accounts/doctype/accounts_settings/test_accounts_settings.py
#	erpnext/accounts/doctype/advance_tax/advance_tax.json
#	erpnext/accounts/doctype/advance_tax/advance_tax.py
#	erpnext/accounts/doctype/advance_taxes_and_charges/advance_taxes_and_charges.json
#	erpnext/accounts/doctype/advance_taxes_and_charges/advance_taxes_and_charges.py
#	erpnext/accounts/doctype/allowed_dimension/allowed_dimension.json
#	erpnext/accounts/doctype/allowed_dimension/allowed_dimension.py
#	erpnext/accounts/doctype/allowed_to_transact_with/allowed_to_transact_with.json
#	erpnext/accounts/doctype/allowed_to_transact_with/allowed_to_transact_with.py
#	erpnext/accounts/doctype/applicable_on_account/applicable_on_account.json
#	erpnext/accounts/doctype/applicable_on_account/applicable_on_account.py
#	erpnext/accounts/doctype/bank/bank.js
#	erpnext/accounts/doctype/bank/bank.json
#	erpnext/accounts/doctype/bank/bank.py
#	erpnext/accounts/doctype/bank/test_bank.py
#	erpnext/accounts/doctype/bank_account/bank_account.json
#	erpnext/accounts/doctype/bank_account/bank_account.py
#	erpnext/accounts/doctype/bank_account/test_bank_account.py
#	erpnext/accounts/doctype/bank_account_subtype/bank_account_subtype.json
#	erpnext/accounts/doctype/bank_account_subtype/bank_account_subtype.py
#	erpnext/accounts/doctype/bank_account_subtype/test_bank_account_subtype.py
#	erpnext/accounts/doctype/bank_account_type/bank_account_type.json
#	erpnext/accounts/doctype/bank_account_type/bank_account_type.py
#	erpnext/accounts/doctype/bank_account_type/test_bank_account_type.py
#	erpnext/accounts/doctype/bank_clearance/bank_clearance.js
#	erpnext/accounts/doctype/bank_clearance/bank_clearance.json
#	erpnext/accounts/doctype/bank_clearance/bank_clearance.py
#	erpnext/accounts/doctype/bank_clearance/test_bank_clearance.py
#	erpnext/accounts/doctype/bank_clearance_detail/bank_clearance_detail.json
#	erpnext/accounts/doctype/bank_clearance_detail/bank_clearance_detail.py
#	erpnext/accounts/doctype/bank_guarantee/bank_guarantee.json
#	erpnext/accounts/doctype/bank_guarantee/bank_guarantee.py
#	erpnext/accounts/doctype/bank_guarantee/test_bank_guarantee.py
#	erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.js
#	erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.json
#	erpnext/accounts/doctype/bank_reconciliation_tool/bank_reconciliation_tool.py
#	erpnext/accounts/doctype/bank_reconciliation_tool/test_bank_reconciliation_tool.py
#	erpnext/accounts/doctype/bank_statement_import/bank_statement_import.js
#	erpnext/accounts/doctype/bank_statement_import/bank_statement_import.json
#	erpnext/accounts/doctype/bank_statement_import/bank_statement_import.py
#	erpnext/accounts/doctype/bank_statement_import/test_bank_statement_import.py
#	erpnext/accounts/doctype/bank_transaction/auto_match_party.py
#	erpnext/accounts/doctype/bank_transaction/bank_transaction.json
#	erpnext/accounts/doctype/bank_transaction/bank_transaction.py
#	erpnext/accounts/doctype/bank_transaction/bank_transaction_upload.py
#	erpnext/accounts/doctype/bank_transaction/test_auto_match_party.py
#	erpnext/accounts/doctype/bank_transaction/test_bank_transaction.py
#	erpnext/accounts/doctype/bank_transaction_mapping/bank_transaction_mapping.json
#	erpnext/accounts/doctype/bank_transaction_mapping/bank_transaction_mapping.py
#	erpnext/accounts/doctype/bank_transaction_payments/bank_transaction_payments.json
#	erpnext/accounts/doctype/bank_transaction_payments/bank_transaction_payments.py
#	erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.json
#	erpnext/accounts/doctype/bisect_accounting_statements/bisect_accounting_statements.py
#	erpnext/accounts/doctype/bisect_accounting_statements/test_bisect_accounting_statements.py
#	erpnext/accounts/doctype/bisect_nodes/bisect_nodes.json
#	erpnext/accounts/doctype/bisect_nodes/test_bisect_nodes.py
#	erpnext/accounts/doctype/budget/budget.json
#	erpnext/accounts/doctype/budget/budget.py
#	erpnext/accounts/doctype/budget/test_budget.py
#	erpnext/accounts/doctype/budget_account/budget_account.json
#	erpnext/accounts/doctype/budget_account/budget_account.py
#	erpnext/accounts/doctype/campaign_item/campaign_item.json
#	erpnext/accounts/doctype/campaign_item/campaign_item.py
#	erpnext/accounts/doctype/cashier_closing/cashier_closing.json
#	erpnext/accounts/doctype/cashier_closing/cashier_closing.py
#	erpnext/accounts/doctype/cashier_closing/test_cashier_closing.py
#	erpnext/accounts/doctype/cashier_closing_payments/cashier_closing_payments.json
#	erpnext/accounts/doctype/cashier_closing_payments/cashier_closing_payments.py
#	erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.json
#	erpnext/accounts/doctype/chart_of_accounts_importer/chart_of_accounts_importer.py
#	erpnext/accounts/doctype/chart_of_accounts_importer/test_chart_of_accounts_importer.py
#	erpnext/accounts/doctype/cheque_print_template/cheque_print_template.json
#	erpnext/accounts/doctype/cheque_print_template/cheque_print_template.py
#	erpnext/accounts/doctype/cheque_print_template/test_cheque_print_template.py
#	erpnext/accounts/doctype/closed_document/closed_document.json
#	erpnext/accounts/doctype/closed_document/closed_document.py
#	erpnext/accounts/doctype/cost_center/cost_center.js
#	erpnext/accounts/doctype/cost_center/cost_center.json
#	erpnext/accounts/doctype/cost_center/cost_center.py
#	erpnext/accounts/doctype/cost_center/test_cost_center.py
#	erpnext/accounts/doctype/cost_center_allocation/cost_center_allocation.json
#	erpnext/accounts/doctype/cost_center_allocation/cost_center_allocation.py
#	erpnext/accounts/doctype/cost_center_allocation/test_cost_center_allocation.py
#	erpnext/accounts/doctype/cost_center_allocation_percentage/cost_center_allocation_percentage.json
#	erpnext/accounts/doctype/cost_center_allocation_percentage/cost_center_allocation_percentage.py
#	erpnext/accounts/doctype/coupon_code/coupon_code.json
#	erpnext/accounts/doctype/coupon_code/coupon_code.py
#	erpnext/accounts/doctype/coupon_code/test_coupon_code.py
#	erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.json
#	erpnext/accounts/doctype/currency_exchange_settings/currency_exchange_settings.py
#	erpnext/accounts/doctype/currency_exchange_settings/test_currency_exchange_settings.py
#	erpnext/accounts/doctype/currency_exchange_settings_details/currency_exchange_settings_details.json
#	erpnext/accounts/doctype/currency_exchange_settings_details/currency_exchange_settings_details.py
#	erpnext/accounts/doctype/currency_exchange_settings_result/currency_exchange_settings_result.json
#	erpnext/accounts/doctype/currency_exchange_settings_result/currency_exchange_settings_result.py
#	erpnext/accounts/doctype/customer_group_item/customer_group_item.json
#	erpnext/accounts/doctype/customer_group_item/customer_group_item.py
#	erpnext/accounts/doctype/customer_item/customer_item.json
#	erpnext/accounts/doctype/customer_item/customer_item.py
#	erpnext/accounts/doctype/discounted_invoice/discounted_invoice.json
#	erpnext/accounts/doctype/discounted_invoice/discounted_invoice.py
#	erpnext/accounts/doctype/dunning/dunning.js
#	erpnext/accounts/doctype/dunning/dunning.json
#	erpnext/accounts/doctype/dunning/dunning.py
#	erpnext/accounts/doctype/dunning/test_dunning.py
#	erpnext/accounts/doctype/dunning_letter_text/dunning_letter_text.json
#	erpnext/accounts/doctype/dunning_letter_text/dunning_letter_text.py
#	erpnext/accounts/doctype/dunning_type/dunning_type.js
#	erpnext/accounts/doctype/dunning_type/dunning_type.json
#	erpnext/accounts/doctype/dunning_type/dunning_type.py
#	erpnext/accounts/doctype/dunning_type/test_dunning_type.py
#	erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.js
#	erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.json
#	erpnext/accounts/doctype/exchange_rate_revaluation/exchange_rate_revaluation.py
#	erpnext/accounts/doctype/exchange_rate_revaluation/test_exchange_rate_revaluation.py
#	erpnext/accounts/doctype/exchange_rate_revaluation_account/exchange_rate_revaluation_account.json
#	erpnext/accounts/doctype/exchange_rate_revaluation_account/exchange_rate_revaluation_account.py
#	erpnext/accounts/doctype/finance_book/finance_book.json
#	erpnext/accounts/doctype/finance_book/finance_book.py
#	erpnext/accounts/doctype/finance_book/test_finance_book.py
#	erpnext/accounts/doctype/fiscal_year/fiscal_year.js
#	erpnext/accounts/doctype/fiscal_year/fiscal_year.json
#	erpnext/accounts/doctype/fiscal_year/fiscal_year.py
#	erpnext/accounts/doctype/fiscal_year/test_fiscal_year.py
#	erpnext/accounts/doctype/fiscal_year_company/fiscal_year_company.json
#	erpnext/accounts/doctype/fiscal_year_company/fiscal_year_company.py
#	erpnext/accounts/doctype/gl_entry/gl_entry.json
#	erpnext/accounts/doctype/gl_entry/gl_entry.py
#	erpnext/accounts/doctype/gl_entry/test_gl_entry.py
#	erpnext/accounts/doctype/invoice_discounting/invoice_discounting.js
#	erpnext/accounts/doctype/invoice_discounting/invoice_discounting.json
#	erpnext/accounts/doctype/invoice_discounting/invoice_discounting.py
#	erpnext/accounts/doctype/invoice_discounting/test_invoice_discounting.py
#	erpnext/accounts/doctype/item_tax_template/item_tax_template.json
#	erpnext/accounts/doctype/item_tax_template/item_tax_template.py
#	erpnext/accounts/doctype/item_tax_template/test_item_tax_template.py
#	erpnext/accounts/doctype/item_tax_template_detail/item_tax_template_detail.json
#	erpnext/accounts/doctype/item_tax_template_detail/item_tax_template_detail.py
#	erpnext/accounts/doctype/journal_entry/journal_entry.js
#	erpnext/accounts/doctype/journal_entry/journal_entry.json
#	erpnext/accounts/doctype/journal_entry/journal_entry.py
#	erpnext/accounts/doctype/journal_entry/journal_entry_list.js
#	erpnext/accounts/doctype/journal_entry/test_journal_entry.py
#	erpnext/accounts/doctype/journal_entry_account/journal_entry_account.json
#	erpnext/accounts/doctype/journal_entry_account/journal_entry_account.py
#	erpnext/accounts/doctype/journal_entry_template/journal_entry_template.js
#	erpnext/accounts/doctype/journal_entry_template/journal_entry_template.json
#	erpnext/accounts/doctype/journal_entry_template/journal_entry_template.py
#	erpnext/accounts/doctype/journal_entry_template/test_journal_entry_template.py
#	erpnext/accounts/doctype/journal_entry_template_account/journal_entry_template_account.json
#	erpnext/accounts/doctype/journal_entry_template_account/journal_entry_template_account.py
#	erpnext/accounts/doctype/ledger_health/test_ledger_health.py
#	erpnext/accounts/doctype/ledger_health_monitor/test_ledger_health_monitor.py
#	erpnext/accounts/doctype/ledger_merge/ledger_merge.json
#	erpnext/accounts/doctype/ledger_merge/ledger_merge.py
#	erpnext/accounts/doctype/ledger_merge/test_ledger_merge.py
#	erpnext/accounts/doctype/ledger_merge_accounts/ledger_merge_accounts.json
#	erpnext/accounts/doctype/ledger_merge_accounts/ledger_merge_accounts.py
#	erpnext/accounts/doctype/loyalty_point_entry/loyalty_point_entry.json
#	erpnext/accounts/doctype/loyalty_point_entry/loyalty_point_entry.py
#	erpnext/accounts/doctype/loyalty_point_entry/test_loyalty_point_entry.py
#	erpnext/accounts/doctype/loyalty_point_entry_redemption/loyalty_point_entry_redemption.json
#	erpnext/accounts/doctype/loyalty_point_entry_redemption/loyalty_point_entry_redemption.py
#	erpnext/accounts/doctype/loyalty_program/loyalty_program.json
#	erpnext/accounts/doctype/loyalty_program/loyalty_program.py
#	erpnext/accounts/doctype/loyalty_program/test_loyalty_program.py
#	erpnext/accounts/doctype/loyalty_program_collection/loyalty_program_collection.json
#	erpnext/accounts/doctype/loyalty_program_collection/loyalty_program_collection.py
#	erpnext/accounts/doctype/mode_of_payment/mode_of_payment.json
#	erpnext/accounts/doctype/mode_of_payment/mode_of_payment.py
#	erpnext/accounts/doctype/mode_of_payment/test_mode_of_payment.py
#	erpnext/accounts/doctype/mode_of_payment_account/mode_of_payment_account.json
#	erpnext/accounts/doctype/mode_of_payment_account/mode_of_payment_account.py
#	erpnext/accounts/doctype/monthly_distribution/monthly_distribution.json
#	erpnext/accounts/doctype/monthly_distribution/monthly_distribution.py
#	erpnext/accounts/doctype/monthly_distribution/test_monthly_distribution.py
#	erpnext/accounts/doctype/monthly_distribution_percentage/monthly_distribution_percentage.json
#	erpnext/accounts/doctype/monthly_distribution_percentage/monthly_distribution_percentage.py
#	erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.js
#	erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.json
#	erpnext/accounts/doctype/opening_invoice_creation_tool/opening_invoice_creation_tool.py
#	erpnext/accounts/doctype/opening_invoice_creation_tool/test_opening_invoice_creation_tool.py
#	erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.json
#	erpnext/accounts/doctype/opening_invoice_creation_tool_item/opening_invoice_creation_tool_item.py
#	erpnext/accounts/doctype/party_account/party_account.json
#	erpnext/accounts/doctype/party_account/party_account.py
#	erpnext/accounts/doctype/party_link/party_link.json
#	erpnext/accounts/doctype/party_link/party_link.py
#	erpnext/accounts/doctype/party_link/test_party_link.py
#	erpnext/accounts/doctype/payment_entry/payment_entry.js
#	erpnext/accounts/doctype/payment_entry/payment_entry.json
#	erpnext/accounts/doctype/payment_entry/payment_entry.py
#	erpnext/accounts/doctype/payment_entry/test_payment_entry.py
#	erpnext/accounts/doctype/payment_entry_deduction/payment_entry_deduction.json
#	erpnext/accounts/doctype/payment_entry_deduction/payment_entry_deduction.py
#	erpnext/accounts/doctype/payment_entry_reference/payment_entry_reference.json
#	erpnext/accounts/doctype/payment_entry_reference/payment_entry_reference.py
#	erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.json
#	erpnext/accounts/doctype/payment_gateway_account/payment_gateway_account.py
#	erpnext/accounts/doctype/payment_gateway_account/test_payment_gateway_account.py
#	erpnext/accounts/doctype/payment_ledger_entry/payment_ledger_entry.json
#	erpnext/accounts/doctype/payment_ledger_entry/payment_ledger_entry.py
#	erpnext/accounts/doctype/payment_ledger_entry/test_payment_ledger_entry.py
#	erpnext/accounts/doctype/payment_order/payment_order.js
#	erpnext/accounts/doctype/payment_order/payment_order.json
#	erpnext/accounts/doctype/payment_order/payment_order.py
#	erpnext/accounts/doctype/payment_order/test_payment_order.py
#	erpnext/accounts/doctype/payment_order_reference/payment_order_reference.json
#	erpnext/accounts/doctype/payment_order_reference/payment_order_reference.py
#	erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
#	erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.json
#	erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
#	erpnext/accounts/doctype/payment_reconciliation/test_payment_reconciliation.py
#	erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.json
#	erpnext/accounts/doctype/payment_reconciliation_allocation/payment_reconciliation_allocation.py
#	erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.json
#	erpnext/accounts/doctype/payment_reconciliation_invoice/payment_reconciliation_invoice.py
#	erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.json
#	erpnext/accounts/doctype/payment_reconciliation_payment/payment_reconciliation_payment.py
#	erpnext/accounts/doctype/payment_request/payment_request.js
#	erpnext/accounts/doctype/payment_request/payment_request.json
#	erpnext/accounts/doctype/payment_request/payment_request.py
#	erpnext/accounts/doctype/payment_request/test_payment_request.py
#	erpnext/accounts/doctype/payment_schedule/payment_schedule.json
#	erpnext/accounts/doctype/payment_schedule/payment_schedule.py
#	erpnext/accounts/doctype/payment_term/payment_term.js
#	erpnext/accounts/doctype/payment_term/payment_term.json
#	erpnext/accounts/doctype/payment_term/payment_term.py
#	erpnext/accounts/doctype/payment_term/test_payment_term.py
#	erpnext/accounts/doctype/payment_terms_template/payment_terms_template.json
#	erpnext/accounts/doctype/payment_terms_template/payment_terms_template.py
#	erpnext/accounts/doctype/payment_terms_template/test_payment_terms_template.py
#	erpnext/accounts/doctype/payment_terms_template_detail/payment_terms_template_detail.json
#	erpnext/accounts/doctype/payment_terms_template_detail/payment_terms_template_detail.py
#	erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.js
#	erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.json
#	erpnext/accounts/doctype/period_closing_voucher/period_closing_voucher.py
#	erpnext/accounts/doctype/period_closing_voucher/test_period_closing_voucher.py
#	erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.js
#	erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.json
#	erpnext/accounts/doctype/pos_closing_entry/pos_closing_entry.py
#	erpnext/accounts/doctype/pos_closing_entry/test_pos_closing_entry.py
#	erpnext/accounts/doctype/pos_closing_entry_detail/pos_closing_entry_detail.json
#	erpnext/accounts/doctype/pos_closing_entry_detail/pos_closing_entry_detail.py
#	erpnext/accounts/doctype/pos_closing_entry_taxes/pos_closing_entry_taxes.json
#	erpnext/accounts/doctype/pos_closing_entry_taxes/pos_closing_entry_taxes.py
#	erpnext/accounts/doctype/pos_customer_group/pos_customer_group.json
#	erpnext/accounts/doctype/pos_customer_group/pos_customer_group.py
#	erpnext/accounts/doctype/pos_field/pos_field.json
#	erpnext/accounts/doctype/pos_field/pos_field.py
#	erpnext/accounts/doctype/pos_invoice/pos_invoice.js
#	erpnext/accounts/doctype/pos_invoice/pos_invoice.json
#	erpnext/accounts/doctype/pos_invoice/pos_invoice.py
#	erpnext/accounts/doctype/pos_invoice/test_pos_invoice.py
#	erpnext/accounts/doctype/pos_invoice_item/pos_invoice_item.json
#	erpnext/accounts/doctype/pos_invoice_item/pos_invoice_item.py
#	erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.json
#	erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py
#	erpnext/accounts/doctype/pos_invoice_merge_log/test_pos_invoice_merge_log.py
#	erpnext/accounts/doctype/pos_invoice_reference/pos_invoice_reference.json
#	erpnext/accounts/doctype/pos_invoice_reference/pos_invoice_reference.py
#	erpnext/accounts/doctype/pos_item_group/pos_item_group.json
#	erpnext/accounts/doctype/pos_item_group/pos_item_group.py
#	erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.json
#	erpnext/accounts/doctype/pos_opening_entry/pos_opening_entry.py
#	erpnext/accounts/doctype/pos_opening_entry/test_pos_opening_entry.py
#	erpnext/accounts/doctype/pos_opening_entry_detail/pos_opening_entry_detail.json
#	erpnext/accounts/doctype/pos_opening_entry_detail/pos_opening_entry_detail.py
#	erpnext/accounts/doctype/pos_payment_method/pos_payment_method.json
#	erpnext/accounts/doctype/pos_payment_method/pos_payment_method.py
#	erpnext/accounts/doctype/pos_profile/pos_profile.js
#	erpnext/accounts/doctype/pos_profile/pos_profile.json
#	erpnext/accounts/doctype/pos_profile/pos_profile.py
#	erpnext/accounts/doctype/pos_profile/test_pos_profile.py
#	erpnext/accounts/doctype/pos_profile_user/pos_profile_user.json
#	erpnext/accounts/doctype/pos_profile_user/pos_profile_user.py
#	erpnext/accounts/doctype/pos_profile_user/test_pos_profile_user.py
#	erpnext/accounts/doctype/pos_search_fields/pos_search_fields.json
#	erpnext/accounts/doctype/pos_search_fields/pos_search_fields.py
#	erpnext/accounts/doctype/pos_settings/pos_settings.json
#	erpnext/accounts/doctype/pos_settings/pos_settings.py
#	erpnext/accounts/doctype/pos_settings/test_pos_settings.py
#	erpnext/accounts/doctype/pricing_rule/pricing_rule.json
#	erpnext/accounts/doctype/pricing_rule/pricing_rule.py
#	erpnext/accounts/doctype/pricing_rule/test_pricing_rule.py
#	erpnext/accounts/doctype/pricing_rule/utils.py
#	erpnext/accounts/doctype/pricing_rule_brand/pricing_rule_brand.json
#	erpnext/accounts/doctype/pricing_rule_brand/pricing_rule_brand.py
#	erpnext/accounts/doctype/pricing_rule_detail/pricing_rule_detail.json
#	erpnext/accounts/doctype/pricing_rule_detail/pricing_rule_detail.py
#	erpnext/accounts/doctype/pricing_rule_item_code/pricing_rule_item_code.json
#	erpnext/accounts/doctype/pricing_rule_item_code/pricing_rule_item_code.py
#	erpnext/accounts/doctype/pricing_rule_item_group/pricing_rule_item_group.json
#	erpnext/accounts/doctype/pricing_rule_item_group/pricing_rule_item_group.py
#	erpnext/accounts/doctype/process_deferred_accounting/process_deferred_accounting.json
#	erpnext/accounts/doctype/process_deferred_accounting/process_deferred_accounting.py
#	erpnext/accounts/doctype/process_deferred_accounting/test_process_deferred_accounting.py
#	erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.json
#	erpnext/accounts/doctype/process_payment_reconciliation/process_payment_reconciliation.py
#	erpnext/accounts/doctype/process_payment_reconciliation/test_process_payment_reconciliation.py
#	erpnext/accounts/doctype/process_payment_reconciliation_log/process_payment_reconciliation_log.json
#	erpnext/accounts/doctype/process_payment_reconciliation_log/process_payment_reconciliation_log.py
#	erpnext/accounts/doctype/process_payment_reconciliation_log/test_process_payment_reconciliation_log.py
#	erpnext/accounts/doctype/process_payment_reconciliation_log_allocations/process_payment_reconciliation_log_allocations.json
#	erpnext/accounts/doctype/process_payment_reconciliation_log_allocations/process_payment_reconciliation_log_allocations.py
#	erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.html
#	erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.js
#	erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.json
#	erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py
#	erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts_accounts_receivable.html
#	erpnext/accounts/doctype/process_statement_of_accounts/test_process_statement_of_accounts.py
#	erpnext/accounts/doctype/process_statement_of_accounts_customer/process_statement_of_accounts_customer.json
#	erpnext/accounts/doctype/process_statement_of_accounts_customer/process_statement_of_accounts_customer.py
#	erpnext/accounts/doctype/promotional_scheme/promotional_scheme.js
#	erpnext/accounts/doctype/promotional_scheme/promotional_scheme.json
#	erpnext/accounts/doctype/promotional_scheme/promotional_scheme.py
#	erpnext/accounts/doctype/promotional_scheme/test_promotional_scheme.py
#	erpnext/accounts/doctype/promotional_scheme_price_discount/promotional_scheme_price_discount.json
#	erpnext/accounts/doctype/promotional_scheme_price_discount/promotional_scheme_price_discount.py
#	erpnext/accounts/doctype/promotional_scheme_product_discount/promotional_scheme_product_discount.json
#	erpnext/accounts/doctype/promotional_scheme_product_discount/promotional_scheme_product_discount.py
#	erpnext/accounts/doctype/psoa_cost_center/psoa_cost_center.json
#	erpnext/accounts/doctype/psoa_cost_center/psoa_cost_center.py
#	erpnext/accounts/doctype/psoa_project/psoa_project.json
#	erpnext/accounts/doctype/psoa_project/psoa_project.py
#	erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js
#	erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json
#	erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
#	erpnext/accounts/doctype/purchase_invoice/purchase_invoice_list.js
#	erpnext/accounts/doctype/purchase_invoice/test_purchase_invoice.py
#	erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.json
#	erpnext/accounts/doctype/purchase_invoice_advance/purchase_invoice_advance.py
#	erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
#	erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.py
#	erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.json
#	erpnext/accounts/doctype/purchase_taxes_and_charges/purchase_taxes_and_charges.py
#	erpnext/accounts/doctype/purchase_taxes_and_charges_template/purchase_taxes_and_charges_template.js
#	erpnext/accounts/doctype/purchase_taxes_and_charges_template/purchase_taxes_and_charges_template.json
#	erpnext/accounts/doctype/purchase_taxes_and_charges_template/purchase_taxes_and_charges_template.py
#	erpnext/accounts/doctype/purchase_taxes_and_charges_template/test_purchase_taxes_and_charges_template.py
#	erpnext/accounts/doctype/repost_accounting_ledger/repost_accounting_ledger.json
#	erpnext/accounts/doctype/repost_accounting_ledger/repost_accounting_ledger.py
#	erpnext/accounts/doctype/repost_accounting_ledger/test_repost_accounting_ledger.py
#	erpnext/accounts/doctype/repost_accounting_ledger_items/repost_accounting_ledger_items.json
#	erpnext/accounts/doctype/repost_accounting_ledger_items/repost_accounting_ledger_items.py
#	erpnext/accounts/doctype/repost_accounting_ledger_settings/repost_accounting_ledger_settings.json
#	erpnext/accounts/doctype/repost_accounting_ledger_settings/repost_accounting_ledger_settings.py
#	erpnext/accounts/doctype/repost_accounting_ledger_settings/test_repost_accounting_ledger_settings.py
#	erpnext/accounts/doctype/repost_allowed_types/repost_allowed_types.json
#	erpnext/accounts/doctype/repost_allowed_types/repost_allowed_types.py
#	erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.json
#	erpnext/accounts/doctype/repost_payment_ledger/repost_payment_ledger.py
#	erpnext/accounts/doctype/repost_payment_ledger/test_repost_payment_ledger.py
#	erpnext/accounts/doctype/repost_payment_ledger_items/repost_payment_ledger_items.json
#	erpnext/accounts/doctype/repost_payment_ledger_items/repost_payment_ledger_items.py
#	erpnext/accounts/doctype/sales_invoice/regional/italy.js
#	erpnext/accounts/doctype/sales_invoice/sales_invoice.js
#	erpnext/accounts/doctype/sales_invoice/sales_invoice.json
#	erpnext/accounts/doctype/sales_invoice/sales_invoice.py
#	erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py
#	erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.json
#	erpnext/accounts/doctype/sales_invoice_advance/sales_invoice_advance.py
#	erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.json
#	erpnext/accounts/doctype/sales_invoice_item/sales_invoice_item.py
#	erpnext/accounts/doctype/sales_invoice_payment/sales_invoice_payment.json
#	erpnext/accounts/doctype/sales_invoice_payment/sales_invoice_payment.py
#	erpnext/accounts/doctype/sales_invoice_timesheet/sales_invoice_timesheet.json
#	erpnext/accounts/doctype/sales_invoice_timesheet/sales_invoice_timesheet.py
#	erpnext/accounts/doctype/sales_partner_item/sales_partner_item.json
#	erpnext/accounts/doctype/sales_partner_item/sales_partner_item.py
#	erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.json
#	erpnext/accounts/doctype/sales_taxes_and_charges/sales_taxes_and_charges.py
#	erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.js
#	erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.json
#	erpnext/accounts/doctype/sales_taxes_and_charges_template/sales_taxes_and_charges_template.py
#	erpnext/accounts/doctype/sales_taxes_and_charges_template/test_sales_taxes_and_charges_template.py
#	erpnext/accounts/doctype/share_balance/share_balance.json
#	erpnext/accounts/doctype/share_balance/share_balance.py
#	erpnext/accounts/doctype/share_transfer/share_transfer.json
#	erpnext/accounts/doctype/share_transfer/share_transfer.py
#	erpnext/accounts/doctype/share_transfer/test_share_transfer.py
#	erpnext/accounts/doctype/share_type/share_type.json
#	erpnext/accounts/doctype/share_type/share_type.py
#	erpnext/accounts/doctype/share_type/test_share_type.py
#	erpnext/accounts/doctype/shareholder/shareholder.js
#	erpnext/accounts/doctype/shareholder/shareholder.json
#	erpnext/accounts/doctype/shareholder/shareholder.py
#	erpnext/accounts/doctype/shareholder/test_shareholder.py
#	erpnext/accounts/doctype/shipping_rule/shipping_rule.json
#	erpnext/accounts/doctype/shipping_rule/shipping_rule.py
#	erpnext/accounts/doctype/shipping_rule/test_shipping_rule.py
#	erpnext/accounts/doctype/shipping_rule_condition/shipping_rule_condition.json
#	erpnext/accounts/doctype/shipping_rule_condition/shipping_rule_condition.py
#	erpnext/accounts/doctype/shipping_rule_country/shipping_rule_country.json
#	erpnext/accounts/doctype/shipping_rule_country/shipping_rule_country.py
#	erpnext/accounts/doctype/south_africa_vat_account/south_africa_vat_account.json
#	erpnext/accounts/doctype/south_africa_vat_account/south_africa_vat_account.py
#	erpnext/accounts/doctype/subscription/subscription.js
#	erpnext/accounts/doctype/subscription/subscription.json
#	erpnext/accounts/doctype/subscription/subscription.py
#	erpnext/accounts/doctype/subscription/subscription_list.js
#	erpnext/accounts/doctype/subscription/test_subscription.py
#	erpnext/accounts/doctype/subscription_invoice/subscription_invoice.json
#	erpnext/accounts/doctype/subscription_invoice/subscription_invoice.py
#	erpnext/accounts/doctype/subscription_invoice/test_subscription_invoice.py
#	erpnext/accounts/doctype/subscription_plan/subscription_plan.json
#	erpnext/accounts/doctype/subscription_plan/subscription_plan.py
#	erpnext/accounts/doctype/subscription_plan/test_subscription_plan.py
#	erpnext/accounts/doctype/subscription_plan_detail/subscription_plan_detail.json
#	erpnext/accounts/doctype/subscription_plan_detail/subscription_plan_detail.py
#	erpnext/accounts/doctype/subscription_settings/subscription_settings.json
#	erpnext/accounts/doctype/subscription_settings/subscription_settings.py
#	erpnext/accounts/doctype/subscription_settings/test_subscription_settings.py
#	erpnext/accounts/doctype/supplier_group_item/supplier_group_item.json
#	erpnext/accounts/doctype/supplier_group_item/supplier_group_item.py
#	erpnext/accounts/doctype/supplier_item/supplier_item.json
#	erpnext/accounts/doctype/supplier_item/supplier_item.py
#	erpnext/accounts/doctype/tax_category/tax_category.json
#	erpnext/accounts/doctype/tax_category/tax_category.py
#	erpnext/accounts/doctype/tax_category/test_tax_category.py
#	erpnext/accounts/doctype/tax_rule/tax_rule.json
#	erpnext/accounts/doctype/tax_rule/tax_rule.py
#	erpnext/accounts/doctype/tax_rule/test_tax_rule.py
#	erpnext/accounts/doctype/tax_withheld_vouchers/tax_withheld_vouchers.json
#	erpnext/accounts/doctype/tax_withheld_vouchers/tax_withheld_vouchers.py
#	erpnext/accounts/doctype/tax_withholding_account/tax_withholding_account.json
#	erpnext/accounts/doctype/tax_withholding_account/tax_withholding_account.py
#	erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.json
#	erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py
#	erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py
#	erpnext/accounts/doctype/tax_withholding_rate/tax_withholding_rate.json
#	erpnext/accounts/doctype/tax_withholding_rate/tax_withholding_rate.py
#	erpnext/accounts/doctype/territory_item/territory_item.json
#	erpnext/accounts/doctype/territory_item/territory_item.py
#	erpnext/accounts/doctype/transaction_deletion_record_details/transaction_deletion_record_details.json
#	erpnext/accounts/doctype/unreconcile_payment/test_unreconcile_payment.py
#	erpnext/accounts/doctype/unreconcile_payment/unreconcile_payment.json
#	erpnext/accounts/doctype/unreconcile_payment/unreconcile_payment.py
#	erpnext/accounts/doctype/unreconcile_payment_entries/unreconcile_payment_entries.json
#	erpnext/accounts/doctype/unreconcile_payment_entries/unreconcile_payment_entries.py
#	erpnext/accounts/general_ledger.py
#	erpnext/accounts/notification/notification_for_new_fiscal_year/notification_for_new_fiscal_year.json
#	erpnext/accounts/number_card/total_incoming_bills/total_incoming_bills.json
#	erpnext/accounts/number_card/total_incoming_payment/total_incoming_payment.json
#	erpnext/accounts/number_card/total_outgoing_bills/total_outgoing_bills.json
#	erpnext/accounts/number_card/total_outgoing_payment/total_outgoing_payment.json
#	erpnext/accounts/party.py
#	erpnext/accounts/print_format/dunning_letter/dunning_letter.json
#	erpnext/accounts/print_format/sales_invoice_return/sales_invoice_return.html
#	erpnext/accounts/report/account_balance/account_balance.js
#	erpnext/accounts/report/account_balance/account_balance.py
#	erpnext/accounts/report/account_balance/test_account_balance.py
#	erpnext/accounts/report/accounts_payable/accounts_payable.js
#	erpnext/accounts/report/accounts_payable/test_accounts_payable.py
#	erpnext/accounts/report/accounts_payable_summary/accounts_payable_summary.js
#	erpnext/accounts/report/accounts_receivable/accounts_receivable.js
#	erpnext/accounts/report/accounts_receivable/accounts_receivable.py
#	erpnext/accounts/report/accounts_receivable/test_accounts_receivable.py
#	erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.js
#	erpnext/accounts/report/accounts_receivable_summary/accounts_receivable_summary.py
#	erpnext/accounts/report/accounts_receivable_summary/test_accounts_receivable_summary.py
#	erpnext/accounts/report/asset_depreciation_ledger/asset_depreciation_ledger.py
#	erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.js
#	erpnext/accounts/report/asset_depreciations_and_balances/asset_depreciations_and_balances.py
#	erpnext/accounts/report/balance_sheet/balance_sheet.js
#	erpnext/accounts/report/balance_sheet/balance_sheet.py
#	erpnext/accounts/report/balance_sheet/test_balance_sheet.py
#	erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py
#	erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py
#	erpnext/accounts/report/bank_reconciliation_statement/test_bank_reconciliation_statement.py
#	erpnext/accounts/report/billed_items_to_be_received/billed_items_to_be_received.js
#	erpnext/accounts/report/cash_flow/cash_flow.js
#	erpnext/accounts/report/cash_flow/cash_flow.py
#	erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.js
#	erpnext/accounts/report/consolidated_financial_statement/consolidated_financial_statement.py
#	erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.js
#	erpnext/accounts/report/customer_ledger_summary/customer_ledger_summary.py
#	erpnext/accounts/report/deferred_revenue_and_expense/deferred_revenue_and_expense.js
#	erpnext/accounts/report/deferred_revenue_and_expense/deferred_revenue_and_expense.py
#	erpnext/accounts/report/deferred_revenue_and_expense/test_deferred_revenue_and_expense.py
#	erpnext/accounts/report/dimension_wise_accounts_balance_report/dimension_wise_accounts_balance_report.js
#	erpnext/accounts/report/dimension_wise_accounts_balance_report/dimension_wise_accounts_balance_report.py
#	erpnext/accounts/report/financial_statements.py
#	erpnext/accounts/report/general_and_payment_ledger_comparison/test_general_and_payment_ledger_comparison.py
#	erpnext/accounts/report/general_ledger/general_ledger.html
#	erpnext/accounts/report/general_ledger/general_ledger.js
#	erpnext/accounts/report/general_ledger/general_ledger.py
#	erpnext/accounts/report/general_ledger/test_general_ledger.py
#	erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.js
#	erpnext/accounts/report/gross_and_net_profit_report/gross_and_net_profit_report.py
#	erpnext/accounts/report/gross_profit/gross_profit.js
#	erpnext/accounts/report/gross_profit/gross_profit.py
#	erpnext/accounts/report/gross_profit/test_gross_profit.py
#	erpnext/accounts/report/inactive_sales_items/inactive_sales_items.js
#	erpnext/accounts/report/item_wise_purchase_register/item_wise_purchase_register.js
#	erpnext/accounts/report/item_wise_purchase_register/test_item_wise_purchase_register.py
#	erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.js
#	erpnext/accounts/report/item_wise_sales_register/item_wise_sales_register.py
#	erpnext/accounts/report/item_wise_sales_register/test_item_wise_sales_register.py
#	erpnext/accounts/report/payment_ledger/payment_ledger.js
#	erpnext/accounts/report/payment_ledger/payment_ledger.py
#	erpnext/accounts/report/payment_ledger/test_payment_ledger.py
#	erpnext/accounts/report/pos_register/pos_register.js
#	erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.js
#	erpnext/accounts/report/profit_and_loss_statement/profit_and_loss_statement.py
#	erpnext/accounts/report/profitability_analysis/profitability_analysis.js
#	erpnext/accounts/report/profitability_analysis/profitability_analysis.py
#	erpnext/accounts/report/purchase_invoice_trends/purchase_invoice_trends.js
#	erpnext/accounts/report/purchase_register/purchase_register.js
#	erpnext/accounts/report/purchase_register/purchase_register.py
#	erpnext/accounts/report/purchase_register/test_purchase_register.py
#	erpnext/accounts/report/sales_invoice_trends/sales_invoice_trends.js
#	erpnext/accounts/report/sales_payment_summary/sales_payment_summary.js
#	erpnext/accounts/report/sales_payment_summary/test_sales_payment_summary.py
#	erpnext/accounts/report/sales_register/sales_register.js
#	erpnext/accounts/report/sales_register/sales_register.py
#	erpnext/accounts/report/sales_register/test_sales_register.py
#	erpnext/accounts/report/share_balance/share_balance.js
#	erpnext/accounts/report/share_ledger/share_ledger.js
#	erpnext/accounts/report/supplier_ledger_summary/supplier_ledger_summary.js
#	erpnext/accounts/report/tds_computation_summary/tds_computation_summary.js
#	erpnext/accounts/report/tds_computation_summary/tds_computation_summary.py
#	erpnext/accounts/report/trial_balance/test_trial_balance.py
#	erpnext/accounts/report/trial_balance/trial_balance.js
#	erpnext/accounts/report/trial_balance/trial_balance.py
#	erpnext/accounts/report/utils.py
#	erpnext/accounts/report/voucher_wise_balance/voucher_wise_balance.js
#	erpnext/accounts/test/accounts_mixin.py
#	erpnext/accounts/test/test_reports.py
#	erpnext/accounts/test/test_utils.py
#	erpnext/accounts/test_party.py
#	erpnext/accounts/utils.py
#	erpnext/accounts/workspace/accounting/accounting.json
#	erpnext/assets/doctype/asset/asset.js
#	erpnext/assets/doctype/asset/asset.json
#	erpnext/assets/doctype/asset/asset.py
#	erpnext/assets/doctype/asset/depreciation.py
#	erpnext/assets/doctype/asset/test_asset.py
#	erpnext/assets/doctype/asset_capitalization/asset_capitalization.js
#	erpnext/assets/doctype/asset_capitalization/asset_capitalization.json
#	erpnext/assets/doctype/asset_capitalization/asset_capitalization.py
#	erpnext/assets/doctype/asset_capitalization/test_asset_capitalization.py
#	erpnext/assets/doctype/asset_capitalization_asset_item/asset_capitalization_asset_item.json
#	erpnext/assets/doctype/asset_capitalization_asset_item/asset_capitalization_asset_item.py
#	erpnext/assets/doctype/asset_capitalization_service_item/asset_capitalization_service_item.json
#	erpnext/assets/doctype/asset_capitalization_service_item/asset_capitalization_service_item.py
#	erpnext/assets/doctype/asset_capitalization_stock_item/asset_capitalization_stock_item.json
#	erpnext/assets/doctype/asset_capitalization_stock_item/asset_capitalization_stock_item.py
#	erpnext/assets/doctype/asset_category/asset_category.json
#	erpnext/assets/doctype/asset_category/asset_category.py
#	erpnext/assets/doctype/asset_category/test_asset_category.py
#	erpnext/assets/doctype/asset_category_account/asset_category_account.json
#	erpnext/assets/doctype/asset_category_account/asset_category_account.py
#	erpnext/assets/doctype/asset_finance_book/asset_finance_book.json
#	erpnext/assets/doctype/asset_finance_book/asset_finance_book.py
#	erpnext/assets/doctype/asset_maintenance/asset_maintenance.js
#	erpnext/assets/doctype/asset_maintenance/asset_maintenance.json
#	erpnext/assets/doctype/asset_maintenance/asset_maintenance.py
#	erpnext/assets/doctype/asset_maintenance/test_asset_maintenance.py
#	erpnext/assets/doctype/asset_maintenance_log/asset_maintenance_log.json
#	erpnext/assets/doctype/asset_maintenance_log/asset_maintenance_log.py
#	erpnext/assets/doctype/asset_maintenance_log/test_asset_maintenance_log.py
#	erpnext/assets/doctype/asset_maintenance_task/asset_maintenance_task.json
#	erpnext/assets/doctype/asset_maintenance_task/asset_maintenance_task.py
#	erpnext/assets/doctype/asset_maintenance_team/asset_maintenance_team.json
#	erpnext/assets/doctype/asset_maintenance_team/asset_maintenance_team.py
#	erpnext/assets/doctype/asset_maintenance_team/test_asset_maintenance_team.py
#	erpnext/assets/doctype/asset_movement/asset_movement.json
#	erpnext/assets/doctype/asset_movement/asset_movement.py
#	erpnext/assets/doctype/asset_movement/test_asset_movement.py
#	erpnext/assets/doctype/asset_movement_item/asset_movement_item.json
#	erpnext/assets/doctype/asset_movement_item/asset_movement_item.py
#	erpnext/assets/doctype/asset_repair/asset_repair.js
#	erpnext/assets/doctype/asset_repair/asset_repair.json
#	erpnext/assets/doctype/asset_repair/asset_repair.py
#	erpnext/assets/doctype/asset_repair/test_asset_repair.py
#	erpnext/assets/doctype/asset_repair_consumed_item/asset_repair_consumed_item.json
#	erpnext/assets/doctype/asset_repair_consumed_item/asset_repair_consumed_item.py
#	erpnext/assets/doctype/asset_shift_allocation/asset_shift_allocation.js
#	erpnext/assets/doctype/asset_shift_allocation/asset_shift_allocation.json
#	erpnext/assets/doctype/asset_shift_allocation/asset_shift_allocation.py
#	erpnext/assets/doctype/asset_shift_allocation/test_asset_shift_allocation.py
#	erpnext/assets/doctype/asset_shift_factor/asset_shift_factor.js
#	erpnext/assets/doctype/asset_shift_factor/asset_shift_factor.json
#	erpnext/assets/doctype/asset_shift_factor/asset_shift_factor.py
#	erpnext/assets/doctype/asset_shift_factor/test_asset_shift_factor.py
#	erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.js
#	erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.json
#	erpnext/assets/doctype/asset_value_adjustment/asset_value_adjustment.py
#	erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py
#	erpnext/assets/doctype/depreciation_schedule/depreciation_schedule.json
#	erpnext/assets/doctype/depreciation_schedule/depreciation_schedule.py
#	erpnext/assets/doctype/linked_location/linked_location.json
#	erpnext/assets/doctype/linked_location/linked_location.py
#	erpnext/assets/doctype/location/location.json
#	erpnext/assets/doctype/location/location.py
#	erpnext/assets/doctype/location/test_location.py
#	erpnext/assets/doctype/maintenance_team_member/maintenance_team_member.json
#	erpnext/assets/doctype/maintenance_team_member/maintenance_team_member.py
#	erpnext/assets/doctype/maintenance_team_member/test_maintenance_team_member.py
#	erpnext/assets/number_card/asset_value/asset_value.json
#	erpnext/assets/number_card/new_assets_(this_year)/new_assets_(this_year).json
#	erpnext/assets/number_card/total_assets/total_assets.json
#	erpnext/assets/report/fixed_asset_register/fixed_asset_register.js
#	erpnext/assets/report/fixed_asset_register/fixed_asset_register.py
#	erpnext/assets/workspace/assets/assets.json
#	erpnext/bulk_transaction/doctype/bulk_transaction_log/bulk_transaction_log.json
#	erpnext/bulk_transaction/doctype/bulk_transaction_log/bulk_transaction_log.py
#	erpnext/bulk_transaction/doctype/bulk_transaction_log/test_bulk_transaction_log.py
#	erpnext/bulk_transaction/doctype/bulk_transaction_log_detail/bulk_transaction_log_detail.json
#	erpnext/bulk_transaction/doctype/bulk_transaction_log_detail/bulk_transaction_log_detail.py
#	erpnext/bulk_transaction/doctype/bulk_transaction_log_detail/test_bulk_transaction_log_detail.py
#	erpnext/buying/doctype/buying_settings/buying_settings.json
#	erpnext/buying/doctype/buying_settings/buying_settings.py
#	erpnext/buying/doctype/buying_settings/test_buying_settings.py
#	erpnext/buying/doctype/purchase_order/purchase_order.js
#	erpnext/buying/doctype/purchase_order/purchase_order.json
#	erpnext/buying/doctype/purchase_order/purchase_order.py
#	erpnext/buying/doctype/purchase_order/purchase_order_dashboard.py
#	erpnext/buying/doctype/purchase_order/purchase_order_list.js
#	erpnext/buying/doctype/purchase_order/test_purchase_order.py
#	erpnext/buying/doctype/purchase_order_item/purchase_order_item.json
#	erpnext/buying/doctype/purchase_order_item/purchase_order_item.py
#	erpnext/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.json
#	erpnext/buying/doctype/purchase_order_item_supplied/purchase_order_item_supplied.py
#	erpnext/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.json
#	erpnext/buying/doctype/purchase_receipt_item_supplied/purchase_receipt_item_supplied.py
#	erpnext/buying/doctype/request_for_quotation/request_for_quotation.js
#	erpnext/buying/doctype/request_for_quotation/request_for_quotation.json
#	erpnext/buying/doctype/request_for_quotation/request_for_quotation.py
#	erpnext/buying/doctype/request_for_quotation/test_request_for_quotation.py
#	erpnext/buying/doctype/request_for_quotation_item/request_for_quotation_item.json
#	erpnext/buying/doctype/request_for_quotation_item/request_for_quotation_item.py
#	erpnext/buying/doctype/request_for_quotation_supplier/request_for_quotation_supplier.json
#	erpnext/buying/doctype/request_for_quotation_supplier/request_for_quotation_supplier.py
#	erpnext/buying/doctype/supplier/supplier.js
#	erpnext/buying/doctype/supplier/supplier.json
#	erpnext/buying/doctype/supplier/supplier.py
#	erpnext/buying/doctype/supplier/supplier_dashboard.py
#	erpnext/buying/doctype/supplier/test_supplier.py
#	erpnext/buying/doctype/supplier_quotation/supplier_quotation.js
#	erpnext/buying/doctype/supplier_quotation/supplier_quotation.json
#	erpnext/buying/doctype/supplier_quotation/supplier_quotation.py
#	erpnext/buying/doctype/supplier_quotation/test_supplier_quotation.py
#	erpnext/buying/doctype/supplier_quotation_item/supplier_quotation_item.json
#	erpnext/buying/doctype/supplier_quotation_item/supplier_quotation_item.py
#	erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.js
#	erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.json
#	erpnext/buying/doctype/supplier_scorecard/supplier_scorecard.py
#	erpnext/buying/doctype/supplier_scorecard/supplier_scorecard_list.js
#	erpnext/buying/doctype/supplier_scorecard/test_supplier_scorecard.py
#	erpnext/buying/doctype/supplier_scorecard_criteria/supplier_scorecard_criteria.js
#	erpnext/buying/doctype/supplier_scorecard_criteria/supplier_scorecard_criteria.json
#	erpnext/buying/doctype/supplier_scorecard_criteria/supplier_scorecard_criteria.py
#	erpnext/buying/doctype/supplier_scorecard_criteria/test_supplier_scorecard_criteria.py
#	erpnext/buying/doctype/supplier_scorecard_period/supplier_scorecard_period.js
#	erpnext/buying/doctype/supplier_scorecard_period/supplier_scorecard_period.json
#	erpnext/buying/doctype/supplier_scorecard_period/supplier_scorecard_period.py
#	erpnext/buying/doctype/supplier_scorecard_period/test_supplier_scorecard_period.py
#	erpnext/buying/doctype/supplier_scorecard_scoring_criteria/supplier_scorecard_scoring_criteria.json
#	erpnext/buying/doctype/supplier_scorecard_scoring_criteria/supplier_scorecard_scoring_criteria.py
#	erpnext/buying/doctype/supplier_scorecard_scoring_standing/supplier_scorecard_scoring_standing.json
#	erpnext/buying/doctype/supplier_scorecard_scoring_standing/supplier_scorecard_scoring_standing.py
#	erpnext/buying/doctype/supplier_scorecard_scoring_variable/supplier_scorecard_scoring_variable.json
#	erpnext/buying/doctype/supplier_scorecard_scoring_variable/supplier_scorecard_scoring_variable.py
#	erpnext/buying/doctype/supplier_scorecard_standing/supplier_scorecard_standing.js
#	erpnext/buying/doctype/supplier_scorecard_standing/supplier_scorecard_standing.json
#	erpnext/buying/doctype/supplier_scorecard_standing/supplier_scorecard_standing.py
#	erpnext/buying/doctype/supplier_scorecard_standing/test_supplier_scorecard_standing.py
#	erpnext/buying/doctype/supplier_scorecard_variable/supplier_scorecard_variable.js
#	erpnext/buying/doctype/supplier_scorecard_variable/supplier_scorecard_variable.json
#	erpnext/buying/doctype/supplier_scorecard_variable/supplier_scorecard_variable.py
#	erpnext/buying/doctype/supplier_scorecard_variable/test_supplier_scorecard_variable.py
#	erpnext/buying/report/item_wise_purchase_history/item_wise_purchase_history.json
#	erpnext/buying/report/procurement_tracker/procurement_tracker.js
#	erpnext/buying/report/purchase_analytics/purchase_analytics.js
#	erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.js
#	erpnext/buying/report/purchase_order_analysis/purchase_order_analysis.py
#	erpnext/buying/report/purchase_order_trends/purchase_order_trends.js
#	erpnext/buying/report/requested_items_to_order_and_receive/requested_items_to_order_and_receive.js
#	erpnext/buying/report/requested_items_to_order_and_receive/test_requested_items_to_order_and_receive.py
#	erpnext/buying/report/subcontract_order_summary/subcontract_order_summary.js
#	erpnext/buying/report/subcontracted_item_to_be_received/subcontracted_item_to_be_received.js
#	erpnext/buying/report/subcontracted_item_to_be_received/test_subcontracted_item_to_be_received.py
#	erpnext/buying/report/subcontracted_raw_materials_to_be_transferred/subcontracted_raw_materials_to_be_transferred.js
#	erpnext/buying/report/subcontracted_raw_materials_to_be_transferred/test_subcontracted_raw_materials_to_be_transferred.py
#	erpnext/buying/report/supplier_quotation_comparison/supplier_quotation_comparison.js
#	erpnext/buying/report/supplier_quotation_comparison/supplier_quotation_comparison.py
#	erpnext/buying/utils.py
#	erpnext/buying/workspace/buying/buying.json
#	erpnext/communication/doctype/communication_medium/communication_medium.json
#	erpnext/communication/doctype/communication_medium/communication_medium.py
#	erpnext/communication/doctype/communication_medium_timeslot/communication_medium_timeslot.json
#	erpnext/communication/doctype/communication_medium_timeslot/communication_medium_timeslot.py
#	erpnext/controllers/accounts_controller.py
#	erpnext/controllers/buying_controller.py
#	erpnext/controllers/item_variant.py
#	erpnext/controllers/print_settings.py
#	erpnext/controllers/queries.py
#	erpnext/controllers/sales_and_purchase_return.py
#	erpnext/controllers/selling_controller.py
#	erpnext/controllers/status_updater.py
#	erpnext/controllers/stock_controller.py
#	erpnext/controllers/subcontracting_controller.py
#	erpnext/controllers/taxes_and_totals.py
#	erpnext/controllers/tests/test_accounts_controller.py
#	erpnext/controllers/tests/test_item_variant.py
#	erpnext/controllers/tests/test_mapper.py
#	erpnext/controllers/tests/test_qty_based_taxes.py
#	erpnext/controllers/tests/test_queries.py
#	erpnext/controllers/tests/test_subcontracting_controller.py
#	erpnext/controllers/tests/test_transaction_base.py
#	erpnext/controllers/trends.py
#	erpnext/controllers/website_list_for_contact.py
#	erpnext/crm/dashboard_chart/lead_source/lead_source.json
#	erpnext/crm/dashboard_chart/opportunities_via_campaigns/opportunities_via_campaigns.json
#	erpnext/crm/doctype/appointment/appointment.json
#	erpnext/crm/doctype/appointment/appointment.py
#	erpnext/crm/doctype/appointment/test_appointment.py
#	erpnext/crm/doctype/appointment_booking_settings/appointment_booking_settings.json
#	erpnext/crm/doctype/appointment_booking_settings/appointment_booking_settings.py
#	erpnext/crm/doctype/appointment_booking_settings/test_appointment_booking_settings.py
#	erpnext/crm/doctype/appointment_booking_slots/appointment_booking_slots.json
#	erpnext/crm/doctype/appointment_booking_slots/appointment_booking_slots.py
#	erpnext/crm/doctype/availability_of_slots/availability_of_slots.json
#	erpnext/crm/doctype/availability_of_slots/availability_of_slots.py
#	erpnext/crm/doctype/campaign/campaign.js
#	erpnext/crm/doctype/campaign/campaign.json
#	erpnext/crm/doctype/campaign/campaign.py
#	erpnext/crm/doctype/campaign/test_campaign.py
#	erpnext/crm/doctype/campaign_email_schedule/campaign_email_schedule.json
#	erpnext/crm/doctype/campaign_email_schedule/campaign_email_schedule.py
#	erpnext/crm/doctype/competitor/competitor.json
#	erpnext/crm/doctype/competitor/competitor.py
#	erpnext/crm/doctype/competitor/test_competitor.py
#	erpnext/crm/doctype/competitor_detail/competitor_detail.json
#	erpnext/crm/doctype/competitor_detail/competitor_detail.py
#	erpnext/crm/doctype/contract/contract.json
#	erpnext/crm/doctype/contract/contract.py
#	erpnext/crm/doctype/contract/test_contract.py
#	erpnext/crm/doctype/contract_fulfilment_checklist/contract_fulfilment_checklist.json
#	erpnext/crm/doctype/contract_fulfilment_checklist/contract_fulfilment_checklist.py
#	erpnext/crm/doctype/contract_fulfilment_checklist/test_contract_fulfilment_checklist.py
#	erpnext/crm/doctype/contract_template/contract_template.json
#	erpnext/crm/doctype/contract_template/contract_template.py
#	erpnext/crm/doctype/contract_template/test_contract_template.py
#	erpnext/crm/doctype/contract_template_fulfilment_terms/contract_template_fulfilment_terms.json
#	erpnext/crm/doctype/contract_template_fulfilment_terms/contract_template_fulfilment_terms.py
#	erpnext/crm/doctype/crm_note/crm_note.json
#	erpnext/crm/doctype/crm_note/crm_note.py
#	erpnext/crm/doctype/crm_settings/crm_settings.json
#	erpnext/crm/doctype/crm_settings/crm_settings.py
#	erpnext/crm/doctype/crm_settings/test_crm_settings.py
#	erpnext/crm/doctype/email_campaign/email_campaign.json
#	erpnext/crm/doctype/email_campaign/email_campaign.py
#	erpnext/crm/doctype/email_campaign/test_email_campaign.py
#	erpnext/crm/doctype/lead/lead.js
#	erpnext/crm/doctype/lead/lead.json
#	erpnext/crm/doctype/lead/lead.py
#	erpnext/crm/doctype/lead/lead_list.js
#	erpnext/crm/doctype/lead/test_lead.py
#	erpnext/crm/doctype/lost_reason_detail/lost_reason_detail.json
#	erpnext/crm/doctype/lost_reason_detail/lost_reason_detail.py
#	erpnext/crm/doctype/market_segment/market_segment.json
#	erpnext/crm/doctype/market_segment/market_segment.py
#	erpnext/crm/doctype/market_segment/test_market_segment.py
#	erpnext/crm/doctype/opportunity/opportunity.js
#	erpnext/crm/doctype/opportunity/opportunity.json
#	erpnext/crm/doctype/opportunity/opportunity.py
#	erpnext/crm/doctype/opportunity/test_opportunity.py
#	erpnext/crm/doctype/opportunity_item/opportunity_item.json
#	erpnext/crm/doctype/opportunity_item/opportunity_item.py
#	erpnext/crm/doctype/opportunity_lost_reason/opportunity_lost_reason.json
#	erpnext/crm/doctype/opportunity_lost_reason/opportunity_lost_reason.py
#	erpnext/crm/doctype/opportunity_lost_reason_detail/opportunity_lost_reason_detail.json
#	erpnext/crm/doctype/opportunity_lost_reason_detail/opportunity_lost_reason_detail.py
#	erpnext/crm/doctype/opportunity_type/opportunity_type.json
#	erpnext/crm/doctype/opportunity_type/opportunity_type.py
#	erpnext/crm/doctype/opportunity_type/test_opportunity_type.py
#	erpnext/crm/doctype/prospect/prospect.js
#	erpnext/crm/doctype/prospect/prospect.json
#	erpnext/crm/doctype/prospect/prospect.py
#	erpnext/crm/doctype/prospect/test_prospect.py
#	erpnext/crm/doctype/prospect_lead/prospect_lead.json
#	erpnext/crm/doctype/prospect_lead/prospect_lead.py
#	erpnext/crm/doctype/prospect_opportunity/prospect_opportunity.json
#	erpnext/crm/doctype/prospect_opportunity/prospect_opportunity.py
#	erpnext/crm/doctype/sales_stage/sales_stage.json
#	erpnext/crm/doctype/sales_stage/sales_stage.py
#	erpnext/crm/doctype/sales_stage/test_sales_stage.py
#	erpnext/crm/doctype/utils.py
#	erpnext/crm/number_card/open_opportunity/open_opportunity.json
#	erpnext/crm/report/campaign_efficiency/campaign_efficiency.py
#	erpnext/crm/report/first_response_time_for_opportunity/first_response_time_for_opportunity.js
#	erpnext/crm/report/lead_conversion_time/lead_conversion_time.js
#	erpnext/crm/report/lead_details/lead_details.js
#	erpnext/crm/report/lost_opportunity/lost_opportunity.js
#	erpnext/crm/report/opportunity_summary_by_sales_stage/opportunity_summary_by_sales_stage.js
#	erpnext/crm/report/opportunity_summary_by_sales_stage/opportunity_summary_by_sales_stage.py
#	erpnext/crm/report/opportunity_summary_by_sales_stage/test_opportunity_summary_by_sales_stage.py
#	erpnext/crm/report/sales_pipeline_analytics/sales_pipeline_analytics.js
#	erpnext/crm/report/sales_pipeline_analytics/sales_pipeline_analytics.py
#	erpnext/crm/report/sales_pipeline_analytics/test_sales_pipeline_analytics.py
#	erpnext/crm/workspace/crm/crm.json
#	erpnext/edi/doctype/code_list/code_list_import.py
#	erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.js
#	erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.json
#	erpnext/erpnext_integrations/doctype/plaid_settings/plaid_settings.py
#	erpnext/erpnext_integrations/doctype/plaid_settings/test_plaid_settings.py
#	erpnext/erpnext_integrations/doctype/quickbooks_migrator/quickbooks_migrator.json
#	erpnext/erpnext_integrations/doctype/quickbooks_migrator/quickbooks_migrator.py
#	erpnext/erpnext_integrations/doctype/quickbooks_migrator/test_quickbooks_migrator.py
#	erpnext/erpnext_integrations/doctype/tally_migration/tally_migration.json
#	erpnext/erpnext_integrations/doctype/tally_migration/tally_migration.py
#	erpnext/erpnext_integrations/doctype/tally_migration/test_tally_migration.py
#	erpnext/erpnext_integrations/utils.py
#	erpnext/hooks.py
#	erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.js
#	erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.json
#	erpnext/maintenance/doctype/maintenance_schedule/maintenance_schedule.py
#	erpnext/maintenance/doctype/maintenance_schedule/test_maintenance_schedule.py
#	erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.json
#	erpnext/maintenance/doctype/maintenance_schedule_detail/maintenance_schedule_detail.py
#	erpnext/maintenance/doctype/maintenance_schedule_item/maintenance_schedule_item.json
#	erpnext/maintenance/doctype/maintenance_schedule_item/maintenance_schedule_item.py
#	erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.json
#	erpnext/maintenance/doctype/maintenance_visit/maintenance_visit.py
#	erpnext/maintenance/doctype/maintenance_visit/test_maintenance_visit.py
#	erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.json
#	erpnext/maintenance/doctype/maintenance_visit_purpose/maintenance_visit_purpose.py
#	erpnext/manufacturing/doctype/blanket_order/blanket_order.js
#	erpnext/manufacturing/doctype/blanket_order/blanket_order.json
#	erpnext/manufacturing/doctype/blanket_order/blanket_order.py
#	erpnext/manufacturing/doctype/blanket_order/test_blanket_order.py
#	erpnext/manufacturing/doctype/blanket_order_item/blanket_order_item.json
#	erpnext/manufacturing/doctype/blanket_order_item/blanket_order_item.py
#	erpnext/manufacturing/doctype/bom/bom.js
#	erpnext/manufacturing/doctype/bom/bom.json
#	erpnext/manufacturing/doctype/bom/bom.py
#	erpnext/manufacturing/doctype/bom/test_bom.py
#	erpnext/manufacturing/doctype/bom_explosion_item/bom_explosion_item.json
#	erpnext/manufacturing/doctype/bom_explosion_item/bom_explosion_item.py
#	erpnext/manufacturing/doctype/bom_item/bom_item.json
#	erpnext/manufacturing/doctype/bom_item/bom_item.py
#	erpnext/manufacturing/doctype/bom_operation/bom_operation.json
#	erpnext/manufacturing/doctype/bom_operation/bom_operation.py
#	erpnext/manufacturing/doctype/bom_scrap_item/bom_scrap_item.json
#	erpnext/manufacturing/doctype/bom_scrap_item/bom_scrap_item.py
#	erpnext/manufacturing/doctype/bom_update_batch/bom_update_batch.json
#	erpnext/manufacturing/doctype/bom_update_batch/bom_update_batch.py
#	erpnext/manufacturing/doctype/bom_update_log/bom_update_log.json
#	erpnext/manufacturing/doctype/bom_update_log/bom_update_log.py
#	erpnext/manufacturing/doctype/bom_update_log/test_bom_update_log.py
#	erpnext/manufacturing/doctype/bom_update_tool/bom_update_tool.json
#	erpnext/manufacturing/doctype/bom_update_tool/bom_update_tool.py
#	erpnext/manufacturing/doctype/bom_update_tool/test_bom_update_tool.py
#	erpnext/manufacturing/doctype/bom_website_item/bom_website_item.json
#	erpnext/manufacturing/doctype/bom_website_item/bom_website_item.py
#	erpnext/manufacturing/doctype/bom_website_operation/bom_website_operation.json
#	erpnext/manufacturing/doctype/bom_website_operation/bom_website_operation.py
#	erpnext/manufacturing/doctype/downtime_entry/downtime_entry.json
#	erpnext/manufacturing/doctype/downtime_entry/downtime_entry.py
#	erpnext/manufacturing/doctype/downtime_entry/test_downtime_entry.py
#	erpnext/manufacturing/doctype/job_card/job_card.js
#	erpnext/manufacturing/doctype/job_card/job_card.json
#	erpnext/manufacturing/doctype/job_card/job_card.py
#	erpnext/manufacturing/doctype/job_card/job_card_dashboard.py
#	erpnext/manufacturing/doctype/job_card/test_job_card.py
#	erpnext/manufacturing/doctype/job_card_item/job_card_item.json
#	erpnext/manufacturing/doctype/job_card_item/job_card_item.py
#	erpnext/manufacturing/doctype/job_card_operation/job_card_operation.json
#	erpnext/manufacturing/doctype/job_card_operation/job_card_operation.py
#	erpnext/manufacturing/doctype/job_card_scrap_item/job_card_scrap_item.json
#	erpnext/manufacturing/doctype/job_card_scrap_item/job_card_scrap_item.py
#	erpnext/manufacturing/doctype/job_card_time_log/job_card_time_log.json
#	erpnext/manufacturing/doctype/job_card_time_log/job_card_time_log.py
#	erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json
#	erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.py
#	erpnext/manufacturing/doctype/manufacturing_settings/test_manufacturing_settings.py
#	erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.json
#	erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.py
#	erpnext/manufacturing/doctype/material_request_plan_item/test_material_request_plan_item.py
#	erpnext/manufacturing/doctype/operation/operation.json
#	erpnext/manufacturing/doctype/operation/operation.py
#	erpnext/manufacturing/doctype/operation/test_operation.py
#	erpnext/manufacturing/doctype/production_plan/production_plan.js
#	erpnext/manufacturing/doctype/production_plan/production_plan.json
#	erpnext/manufacturing/doctype/production_plan/production_plan.py
#	erpnext/manufacturing/doctype/production_plan/test_production_plan.py
#	erpnext/manufacturing/doctype/production_plan_item/production_plan_item.json
#	erpnext/manufacturing/doctype/production_plan_item/production_plan_item.py
#	erpnext/manufacturing/doctype/production_plan_item_reference/production_plan_item_reference.json
#	erpnext/manufacturing/doctype/production_plan_item_reference/production_plan_item_reference.py
#	erpnext/manufacturing/doctype/production_plan_material_request/production_plan_material_request.json
#	erpnext/manufacturing/doctype/production_plan_material_request/production_plan_material_request.py
#	erpnext/manufacturing/doctype/production_plan_material_request_warehouse/production_plan_material_request_warehouse.json
#	erpnext/manufacturing/doctype/production_plan_material_request_warehouse/production_plan_material_request_warehouse.py
#	erpnext/manufacturing/doctype/production_plan_material_request_warehouse/test_production_plan_material_request_warehouse.py
#	erpnext/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.json
#	erpnext/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.py
#	erpnext/manufacturing/doctype/production_plan_sub_assembly_item/production_plan_sub_assembly_item.json
#	erpnext/manufacturing/doctype/production_plan_sub_assembly_item/production_plan_sub_assembly_item.py
#	erpnext/manufacturing/doctype/routing/routing.js
#	erpnext/manufacturing/doctype/routing/routing.json
#	erpnext/manufacturing/doctype/routing/routing.py
#	erpnext/manufacturing/doctype/routing/test_routing.py
#	erpnext/manufacturing/doctype/sub_operation/sub_operation.json
#	erpnext/manufacturing/doctype/sub_operation/sub_operation.py
#	erpnext/manufacturing/doctype/sub_operation/test_sub_operation.py
#	erpnext/manufacturing/doctype/work_order/test_work_order.py
#	erpnext/manufacturing/doctype/work_order/work_order.js
#	erpnext/manufacturing/doctype/work_order/work_order.json
#	erpnext/manufacturing/doctype/work_order/work_order.py
#	erpnext/manufacturing/doctype/work_order_item/work_order_item.json
#	erpnext/manufacturing/doctype/work_order_item/work_order_item.py
#	erpnext/manufacturing/doctype/work_order_operation/work_order_operation.json
#	erpnext/manufacturing/doctype/work_order_operation/work_order_operation.py
#	erpnext/manufacturing/doctype/workstation/_test_workstation.js
#	erpnext/manufacturing/doctype/workstation/test_workstation.py
#	erpnext/manufacturing/doctype/workstation/workstation.js
#	erpnext/manufacturing/doctype/workstation/workstation.json
#	erpnext/manufacturing/doctype/workstation/workstation.py
#	erpnext/manufacturing/doctype/workstation/workstation_list.js
#	erpnext/manufacturing/doctype/workstation_type/test_workstation_type.py
#	erpnext/manufacturing/doctype/workstation_type/workstation_type.json
#	erpnext/manufacturing/doctype/workstation_type/workstation_type.py
#	erpnext/manufacturing/doctype/workstation_working_hour/workstation_working_hour.json
#	erpnext/manufacturing/doctype/workstation_working_hour/workstation_working_hour.py
#	erpnext/manufacturing/notification/material_request_receipt_notification/material_request_receipt_notification.json
#	erpnext/manufacturing/number_card/monthly_completed_work_order/monthly_completed_work_order.json
#	erpnext/manufacturing/number_card/monthly_total_work_order/monthly_total_work_order.json
#	erpnext/manufacturing/number_card/ongoing_job_card/ongoing_job_card.json
#	erpnext/manufacturing/report/bom_explorer/bom_explorer.js
#	erpnext/manufacturing/report/bom_operations_time/bom_operations_time.js
#	erpnext/manufacturing/report/bom_stock_calculated/bom_stock_calculated.js
#	erpnext/manufacturing/report/bom_stock_calculated/test_bom_stock_calculated.py
#	erpnext/manufacturing/report/bom_stock_report/test_bom_stock_report.py
#	erpnext/manufacturing/report/bom_variance_report/bom_variance_report.js
#	erpnext/manufacturing/report/cost_of_poor_quality_report/cost_of_poor_quality_report.js
#	erpnext/manufacturing/report/downtime_analysis/downtime_analysis.js
#	erpnext/manufacturing/report/exponential_smoothing_forecasting/exponential_smoothing_forecasting.js
#	erpnext/manufacturing/report/exponential_smoothing_forecasting/exponential_smoothing_forecasting.py
#	erpnext/manufacturing/report/job_card_summary/job_card_summary.js
#	erpnext/manufacturing/report/process_loss_report/process_loss_report.js
#	erpnext/manufacturing/report/process_loss_report/process_loss_report.py
#	erpnext/manufacturing/report/production_analytics/production_analytics.js
#	erpnext/manufacturing/report/production_analytics/production_analytics.py
#	erpnext/manufacturing/report/production_plan_summary/production_plan_summary.js
#	erpnext/manufacturing/report/production_plan_summary/production_plan_summary.py
#	erpnext/manufacturing/report/production_planning_report/production_planning_report.js
#	erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.js
#	erpnext/manufacturing/report/quality_inspection_summary/quality_inspection_summary.py
#	erpnext/manufacturing/report/test_reports.py
#	erpnext/manufacturing/report/work_order_consumed_materials/work_order_consumed_materials.js
#	erpnext/manufacturing/report/work_order_stock_report/work_order_stock_report.js
#	erpnext/manufacturing/report/work_order_summary/work_order_summary.js
#	erpnext/manufacturing/workspace/manufacturing/manufacturing.json
#	erpnext/modules.txt
#	erpnext/patches.txt
#	erpnext/patches/v11_0/create_department_records_for_each_company.py
#	erpnext/patches/v11_0/make_location_from_warehouse.py
#	erpnext/patches/v11_0/rebuild_tree_for_company.py
#	erpnext/patches/v11_0/rename_supplier_type_to_supplier_group.py
#	erpnext/patches/v11_0/update_backflush_subcontract_rm_based_on_bom.py
#	erpnext/patches/v11_0/update_department_lft_rgt.py
#	erpnext/patches/v12_0/rename_tolerance_fields.py
#	erpnext/patches/v12_0/set_automatically_process_deferred_accounting_in_accounts_settings.py
#	erpnext/patches/v12_0/set_priority_for_support.py
#	erpnext/patches/v12_0/update_bom_in_so_mr.py
#	erpnext/patches/v13_0/add_missing_fg_item_for_stock_entry.py
#	erpnext/patches/v13_0/create_accounting_dimensions_for_asset_repair.py
#	erpnext/patches/v13_0/create_custom_field_for_finance_book.py
#	erpnext/patches/v13_0/fix_additional_cost_in_mfg_stock_entry.py
#	erpnext/patches/v13_0/modify_invalid_gain_loss_gl_entries.py
#	erpnext/patches/v14_0/delete_education_doctypes.py
#	erpnext/patches/v14_0/discount_accounting_separation.py
#	erpnext/patches/v14_0/migrate_crm_settings.py
#	erpnext/patches/v14_0/migrate_gl_to_payment_ledger.py
#	erpnext/patches/v14_0/update_closing_balances.py
#	erpnext/portal/doctype/website_attribute/website_attribute.json
#	erpnext/portal/doctype/website_attribute/website_attribute.py
#	erpnext/portal/doctype/website_filter_field/website_filter_field.json
#	erpnext/portal/doctype/website_filter_field/website_filter_field.py
#	erpnext/portal/utils.py
#	erpnext/projects/doctype/activity_cost/activity_cost.json
#	erpnext/projects/doctype/activity_cost/activity_cost.py
#	erpnext/projects/doctype/activity_cost/test_activity_cost.py
#	erpnext/projects/doctype/activity_type/activity_type.json
#	erpnext/projects/doctype/activity_type/activity_type.py
#	erpnext/projects/doctype/activity_type/test_activity_type.py
#	erpnext/projects/doctype/dependent_task/dependent_task.json
#	erpnext/projects/doctype/dependent_task/dependent_task.py
#	erpnext/projects/doctype/project/project.js
#	erpnext/projects/doctype/project/project.json
#	erpnext/projects/doctype/project/project.py
#	erpnext/projects/doctype/project/test_project.py
#	erpnext/projects/doctype/project_template/project_template.json
#	erpnext/projects/doctype/project_template/project_template.py
#	erpnext/projects/doctype/project_template/test_project_template.py
#	erpnext/projects/doctype/project_template_task/project_template_task.json
#	erpnext/projects/doctype/project_template_task/project_template_task.py
#	erpnext/projects/doctype/project_type/project_type.json
#	erpnext/projects/doctype/project_type/project_type.py
#	erpnext/projects/doctype/project_type/test_project_type.py
#	erpnext/projects/doctype/project_update/project_update.json
#	erpnext/projects/doctype/project_update/project_update.py
#	erpnext/projects/doctype/project_update/test_project_update.py
#	erpnext/projects/doctype/project_user/project_user.json
#	erpnext/projects/doctype/project_user/project_user.py
#	erpnext/projects/doctype/projects_settings/projects_settings.json
#	erpnext/projects/doctype/projects_settings/projects_settings.py
#	erpnext/projects/doctype/projects_settings/test_projects_settings.py
#	erpnext/projects/doctype/task/task.js
#	erpnext/projects/doctype/task/task.json
#	erpnext/projects/doctype/task/task.py
#	erpnext/projects/doctype/task/test_task.py
#	erpnext/projects/doctype/task_depends_on/task_depends_on.json
#	erpnext/projects/doctype/task_depends_on/task_depends_on.py
#	erpnext/projects/doctype/task_type/task_type.json
#	erpnext/projects/doctype/task_type/task_type.py
#	erpnext/projects/doctype/task_type/test_task_type.py
#	erpnext/projects/doctype/timesheet/test_timesheet.py
#	erpnext/projects/doctype/timesheet/timesheet.js
#	erpnext/projects/doctype/timesheet/timesheet.json
#	erpnext/projects/doctype/timesheet/timesheet.py
#	erpnext/projects/doctype/timesheet_detail/timesheet_detail.json
#	erpnext/projects/doctype/timesheet_detail/timesheet_detail.py
#	erpnext/projects/report/delayed_tasks_summary/delayed_tasks_summary.js
#	erpnext/projects/report/delayed_tasks_summary/delayed_tasks_summary.py
#	erpnext/projects/report/delayed_tasks_summary/test_delayed_tasks_summary.py
#	erpnext/projects/report/project_summary/project_summary.js
#	erpnext/projects/report/project_wise_stock_tracking/project_wise_stock_tracking.py
#	erpnext/projects/workspace/projects/projects.json
#	erpnext/public/images/erpnext-favicon.svg
#	erpnext/public/images/erpnext-logo.png
#	erpnext/public/images/erpnext-logo.svg
#	erpnext/public/js/bank_reconciliation_tool/data_table_manager.js
#	erpnext/public/js/bank_reconciliation_tool/dialog_manager.js
#	erpnext/public/js/bulk_transaction_processing.js
#	erpnext/public/js/controllers/accounts.js
#	erpnext/public/js/controllers/buying.js
#	erpnext/public/js/controllers/stock_controller.js
#	erpnext/public/js/controllers/taxes_and_totals.js
#	erpnext/public/js/controllers/transaction.js
#	erpnext/public/js/erpnext-web.bundle.js
#	erpnext/public/js/erpnext.bundle.js
#	erpnext/public/js/financial_statements.js
#	erpnext/public/js/help_links.js
#	erpnext/public/js/projects/timer.js
#	erpnext/public/js/purchase_trends_filters.js
#	erpnext/public/js/queries.js
#	erpnext/public/js/sales_trends_filters.js
#	erpnext/public/js/setup_wizard.js
#	erpnext/public/js/stock_analytics.js
#	erpnext/public/js/stock_grid_report.js
#	erpnext/public/js/telephony.js
#	erpnext/public/js/utils.js
#	erpnext/public/js/utils/barcode_scanner.js
#	erpnext/public/js/utils/dimension_tree_filter.js
#	erpnext/public/js/utils/item_selector.js
#	erpnext/public/js/utils/serial_no_batch_selector.js
#	erpnext/public/js/website_utils.js
#	erpnext/public/scss/erpnext-web.bundle.scss
#	erpnext/public/scss/erpnext.bundle.scss
#	erpnext/public/scss/erpnext.scss
#	erpnext/public/scss/point-of-sale.scss
#	erpnext/quality_management/doctype/non_conformance/non_conformance.json
#	erpnext/quality_management/doctype/non_conformance/non_conformance.py
#	erpnext/quality_management/doctype/non_conformance/test_non_conformance.py
#	erpnext/quality_management/doctype/quality_action/quality_action.json
#	erpnext/quality_management/doctype/quality_action/quality_action.py
#	erpnext/quality_management/doctype/quality_action/test_quality_action.py
#	erpnext/quality_management/doctype/quality_action_resolution/quality_action_resolution.json
#	erpnext/quality_management/doctype/quality_action_resolution/quality_action_resolution.py
#	erpnext/quality_management/doctype/quality_feedback/quality_feedback.json
#	erpnext/quality_management/doctype/quality_feedback/quality_feedback.py
#	erpnext/quality_management/doctype/quality_feedback/test_quality_feedback.py
#	erpnext/quality_management/doctype/quality_feedback_parameter/quality_feedback_parameter.json
#	erpnext/quality_management/doctype/quality_feedback_parameter/quality_feedback_parameter.py
#	erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.json
#	erpnext/quality_management/doctype/quality_feedback_template/quality_feedback_template.py
#	erpnext/quality_management/doctype/quality_feedback_template/test_quality_feedback_template.py
#	erpnext/quality_management/doctype/quality_feedback_template_parameter/quality_feedback_template_parameter.json
#	erpnext/quality_management/doctype/quality_feedback_template_parameter/quality_feedback_template_parameter.py
#	erpnext/quality_management/doctype/quality_goal/quality_goal.json
#	erpnext/quality_management/doctype/quality_goal/quality_goal.py
#	erpnext/quality_management/doctype/quality_goal/test_quality_goal.py
#	erpnext/quality_management/doctype/quality_goal_objective/quality_goal_objective.json
#	erpnext/quality_management/doctype/quality_goal_objective/quality_goal_objective.py
#	erpnext/quality_management/doctype/quality_meeting/quality_meeting.json
#	erpnext/quality_management/doctype/quality_meeting/quality_meeting.py
#	erpnext/quality_management/doctype/quality_meeting/test_quality_meeting.py
#	erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.json
#	erpnext/quality_management/doctype/quality_meeting_agenda/quality_meeting_agenda.py
#	erpnext/quality_management/doctype/quality_meeting_agenda/test_quality_meeting_agenda.py
#	erpnext/quality_management/doctype/quality_meeting_minutes/quality_meeting_minutes.json
#	erpnext/quality_management/doctype/quality_meeting_minutes/quality_meeting_minutes.py
#	erpnext/quality_management/doctype/quality_procedure/quality_procedure.json
#	erpnext/quality_management/doctype/quality_procedure/quality_procedure.py
#	erpnext/quality_management/doctype/quality_procedure/test_quality_procedure.py
#	erpnext/quality_management/doctype/quality_procedure_process/quality_procedure_process.json
#	erpnext/quality_management/doctype/quality_procedure_process/quality_procedure_process.py
#	erpnext/quality_management/doctype/quality_review/quality_review.json
#	erpnext/quality_management/doctype/quality_review/quality_review.py
#	erpnext/quality_management/doctype/quality_review/test_quality_review.py
#	erpnext/quality_management/doctype/quality_review_objective/quality_review_objective.json
#	erpnext/quality_management/doctype/quality_review_objective/quality_review_objective.py
#	erpnext/regional/__init__.py
#	erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.json
#	erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.py
#	erpnext/regional/doctype/import_supplier_invoice/test_import_supplier_invoice.py
#	erpnext/regional/doctype/lower_deduction_certificate/lower_deduction_certificate.json
#	erpnext/regional/doctype/lower_deduction_certificate/lower_deduction_certificate.py
#	erpnext/regional/doctype/lower_deduction_certificate/test_lower_deduction_certificate.py
#	erpnext/regional/doctype/south_africa_vat_settings/south_africa_vat_settings.json
#	erpnext/regional/doctype/south_africa_vat_settings/south_africa_vat_settings.py
#	erpnext/regional/doctype/south_africa_vat_settings/test_south_africa_vat_settings.py
#	erpnext/regional/doctype/uae_vat_account/uae_vat_account.json
#	erpnext/regional/doctype/uae_vat_account/uae_vat_account.py
#	erpnext/regional/doctype/uae_vat_settings/test_uae_vat_settings.py
#	erpnext/regional/doctype/uae_vat_settings/uae_vat_settings.json
#	erpnext/regional/doctype/uae_vat_settings/uae_vat_settings.py
#	erpnext/regional/italy/utils.py
#	erpnext/regional/print_format/detailed_tax_invoice/detailed_tax_invoice.json
#	erpnext/regional/print_format/tax_invoice/tax_invoice.json
#	erpnext/regional/report/electronic_invoice_register/electronic_invoice_register.js
#	erpnext/regional/report/irs_1099/irs_1099.py
#	erpnext/regional/report/uae_vat_201/test_uae_vat_201.py
#	erpnext/regional/report/uae_vat_201/uae_vat_201.js
#	erpnext/regional/report/vat_audit_report/vat_audit_report.js
#	erpnext/regional/report/vat_audit_report/vat_audit_report.py
#	erpnext/regional/united_states/setup.py
#	erpnext/regional/united_states/test_united_states.py
#	erpnext/selling/doctype/customer/customer.js
#	erpnext/selling/doctype/customer/customer.json
#	erpnext/selling/doctype/customer/customer.py
#	erpnext/selling/doctype/customer/customer_dashboard.py
#	erpnext/selling/doctype/customer/test_customer.py
#	erpnext/selling/doctype/customer_credit_limit/customer_credit_limit.json
#	erpnext/selling/doctype/customer_credit_limit/customer_credit_limit.py
#	erpnext/selling/doctype/industry_type/industry_type.json
#	erpnext/selling/doctype/industry_type/industry_type.py
#	erpnext/selling/doctype/industry_type/test_industry_type.py
#	erpnext/selling/doctype/installation_note/installation_note.js
#	erpnext/selling/doctype/installation_note/installation_note.json
#	erpnext/selling/doctype/installation_note/installation_note.py
#	erpnext/selling/doctype/installation_note/test_installation_note.py
#	erpnext/selling/doctype/installation_note_item/installation_note_item.json
#	erpnext/selling/doctype/installation_note_item/installation_note_item.py
#	erpnext/selling/doctype/party_specific_item/party_specific_item.json
#	erpnext/selling/doctype/party_specific_item/party_specific_item.py
#	erpnext/selling/doctype/party_specific_item/test_party_specific_item.py
#	erpnext/selling/doctype/product_bundle/product_bundle.json
#	erpnext/selling/doctype/product_bundle/product_bundle.py
#	erpnext/selling/doctype/product_bundle/test_product_bundle.py
#	erpnext/selling/doctype/product_bundle_item/product_bundle_item.json
#	erpnext/selling/doctype/product_bundle_item/product_bundle_item.py
#	erpnext/selling/doctype/quotation/quotation.js
#	erpnext/selling/doctype/quotation/quotation.json
#	erpnext/selling/doctype/quotation/quotation.py
#	erpnext/selling/doctype/quotation/test_quotation.py
#	erpnext/selling/doctype/quotation_item/quotation_item.json
#	erpnext/selling/doctype/quotation_item/quotation_item.py
#	erpnext/selling/doctype/sales_order/sales_order.js
#	erpnext/selling/doctype/sales_order/sales_order.json
#	erpnext/selling/doctype/sales_order/sales_order.py
#	erpnext/selling/doctype/sales_order/sales_order_dashboard.py
#	erpnext/selling/doctype/sales_order/sales_order_list.js
#	erpnext/selling/doctype/sales_order/test_sales_order.py
#	erpnext/selling/doctype/sales_order_item/sales_order_item.json
#	erpnext/selling/doctype/sales_order_item/sales_order_item.py
#	erpnext/selling/doctype/sales_partner_type/sales_partner_type.json
#	erpnext/selling/doctype/sales_partner_type/sales_partner_type.py
#	erpnext/selling/doctype/sales_partner_type/test_sales_partner_type.py
#	erpnext/selling/doctype/sales_team/sales_team.json
#	erpnext/selling/doctype/sales_team/sales_team.py
#	erpnext/selling/doctype/selling_settings/selling_settings.json
#	erpnext/selling/doctype/selling_settings/selling_settings.py
#	erpnext/selling/doctype/selling_settings/test_selling_settings.py
#	erpnext/selling/doctype/sms_center/sms_center.json
#	erpnext/selling/doctype/sms_center/sms_center.py
#	erpnext/selling/number_card/active_customers/active_customers.json
#	erpnext/selling/page/point_of_sale/point_of_sale.py
#	erpnext/selling/page/point_of_sale/pos_controller.js
#	erpnext/selling/page/point_of_sale/pos_item_cart.js
#	erpnext/selling/page/point_of_sale/pos_item_details.js
#	erpnext/selling/page/point_of_sale/pos_item_selector.js
#	erpnext/selling/page/point_of_sale/pos_past_order_summary.js
#	erpnext/selling/page/point_of_sale/pos_payment.js
#	erpnext/selling/page/sales_funnel/sales_funnel.js
#	erpnext/selling/page/sales_funnel/sales_funnel.py
#	erpnext/selling/report/address_and_contacts/address_and_contacts.js
#	erpnext/selling/report/address_and_contacts/address_and_contacts.py
#	erpnext/selling/report/customer_credit_balance/customer_credit_balance.py
#	erpnext/selling/report/customer_wise_item_price/customer_wise_item_price.js
#	erpnext/selling/report/item_wise_sales_history/item_wise_sales_history.js
#	erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.js
#	erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py
#	erpnext/selling/report/payment_terms_status_for_sales_order/test_payment_terms_status_for_sales_order.py
#	erpnext/selling/report/pending_so_items_for_purchase_request/pending_so_items_for_purchase_request.js
#	erpnext/selling/report/pending_so_items_for_purchase_request/test_pending_so_items_for_purchase_request.py
#	erpnext/selling/report/quotation_trends/quotation_trends.js
#	erpnext/selling/report/sales_analytics/sales_analytics.js
#	erpnext/selling/report/sales_analytics/sales_analytics.py
#	erpnext/selling/report/sales_analytics/test_analytics.py
#	erpnext/selling/report/sales_order_analysis/sales_order_analysis.js
#	erpnext/selling/report/sales_order_analysis/sales_order_analysis.py
#	erpnext/selling/report/sales_order_analysis/test_sales_order_analysis.py
#	erpnext/selling/report/sales_order_trends/sales_order_trends.js
#	erpnext/selling/report/sales_partner_commission_summary/sales_partner_commission_summary.js
#	erpnext/selling/report/sales_partner_target_variance_based_on_item_group/item_group_wise_sales_target_variance.py
#	erpnext/selling/report/sales_partner_target_variance_based_on_item_group/sales_partner_target_variance_based_on_item_group.js
#	erpnext/selling/report/sales_partner_target_variance_based_on_item_group/test_sales_partner_target_variance_based_on_item_group.py
#	erpnext/selling/report/sales_partner_transaction_summary/sales_partner_transaction_summary.js
#	erpnext/selling/report/sales_person_commission_summary/sales_person_commission_summary.js
#	erpnext/selling/report/sales_person_target_variance_based_on_item_group/sales_person_target_variance_based_on_item_group.js
#	erpnext/selling/report/sales_person_target_variance_based_on_item_group/test_sales_person_target_variance_based_on_item_group.py
#	erpnext/selling/report/territory_target_variance_based_on_item_group/territory_target_variance_based_on_item_group.js
#	erpnext/selling/report/territory_wise_sales/territory_wise_sales.js
#	erpnext/selling/workspace/selling/selling.json
#	erpnext/setup/default_success_action.py
#	erpnext/setup/demo.py
#	erpnext/setup/doctype/authorization_control/authorization_control.json
#	erpnext/setup/doctype/authorization_control/authorization_control.py
#	erpnext/setup/doctype/authorization_rule/authorization_rule.js
#	erpnext/setup/doctype/authorization_rule/authorization_rule.json
#	erpnext/setup/doctype/authorization_rule/authorization_rule.py
#	erpnext/setup/doctype/authorization_rule/test_authorization_rule.py
#	erpnext/setup/doctype/branch/branch.json
#	erpnext/setup/doctype/branch/branch.py
#	erpnext/setup/doctype/branch/test_branch.py
#	erpnext/setup/doctype/brand/brand.js
#	erpnext/setup/doctype/brand/brand.json
#	erpnext/setup/doctype/brand/brand.py
#	erpnext/setup/doctype/brand/test_brand.py
#	erpnext/setup/doctype/company/company.js
#	erpnext/setup/doctype/company/company.json
#	erpnext/setup/doctype/company/company.py
#	erpnext/setup/doctype/company/test_company.py
#	erpnext/setup/doctype/currency_exchange/currency_exchange.py
#	erpnext/setup/doctype/currency_exchange/test_currency_exchange.py
#	erpnext/setup/doctype/customer_group/customer_group.js
#	erpnext/setup/doctype/customer_group/customer_group.json
#	erpnext/setup/doctype/customer_group/customer_group.py
#	erpnext/setup/doctype/customer_group/test_customer_group.py
#	erpnext/setup/doctype/department/department.json
#	erpnext/setup/doctype/department/department.py
#	erpnext/setup/doctype/department/test_department.py
#	erpnext/setup/doctype/designation/designation.json
#	erpnext/setup/doctype/designation/designation.py
#	erpnext/setup/doctype/designation/test_designation.py
#	erpnext/setup/doctype/driver/driver.json
#	erpnext/setup/doctype/driver/driver.py
#	erpnext/setup/doctype/driver/test_driver.py
#	erpnext/setup/doctype/driving_license_category/driving_license_category.json
#	erpnext/setup/doctype/driving_license_category/driving_license_category.py
#	erpnext/setup/doctype/email_digest/email_digest.json
#	erpnext/setup/doctype/email_digest/email_digest.py
#	erpnext/setup/doctype/email_digest/test_email_digest.py
#	erpnext/setup/doctype/email_digest_recipient/email_digest_recipient.json
#	erpnext/setup/doctype/email_digest_recipient/email_digest_recipient.py
#	erpnext/setup/doctype/employee/employee.json
#	erpnext/setup/doctype/employee/employee.py
#	erpnext/setup/doctype/employee/test_employee.py
#	erpnext/setup/doctype/employee_education/employee_education.json
#	erpnext/setup/doctype/employee_education/employee_education.py
#	erpnext/setup/doctype/employee_external_work_history/employee_external_work_history.json
#	erpnext/setup/doctype/employee_external_work_history/employee_external_work_history.py
#	erpnext/setup/doctype/employee_group/employee_group.json
#	erpnext/setup/doctype/employee_group/employee_group.py
#	erpnext/setup/doctype/employee_group/test_employee_group.py
#	erpnext/setup/doctype/employee_group_table/employee_group_table.json
#	erpnext/setup/doctype/employee_group_table/employee_group_table.py
#	erpnext/setup/doctype/employee_internal_work_history/employee_internal_work_history.json
#	erpnext/setup/doctype/employee_internal_work_history/employee_internal_work_history.py
#	erpnext/setup/doctype/global_defaults/global_defaults.json
#	erpnext/setup/doctype/global_defaults/global_defaults.py
#	erpnext/setup/doctype/global_defaults/test_global_defaults.py
#	erpnext/setup/doctype/holiday/holiday.json
#	erpnext/setup/doctype/holiday/holiday.py
#	erpnext/setup/doctype/holiday_list/holiday_list.json
#	erpnext/setup/doctype/holiday_list/holiday_list.py
#	erpnext/setup/doctype/holiday_list/test_holiday_list.py
#	erpnext/setup/doctype/incoterm/incoterm.py
#	erpnext/setup/doctype/incoterm/test_incoterm.py
#	erpnext/setup/doctype/item_group/item_group.js
#	erpnext/setup/doctype/item_group/item_group.json
#	erpnext/setup/doctype/item_group/item_group.py
#	erpnext/setup/doctype/item_group/test_item_group.py
#	erpnext/setup/doctype/party_type/party_type.json
#	erpnext/setup/doctype/party_type/party_type.py
#	erpnext/setup/doctype/party_type/test_party_type.py
#	erpnext/setup/doctype/print_heading/print_heading.json
#	erpnext/setup/doctype/print_heading/print_heading.py
#	erpnext/setup/doctype/print_heading/test_print_heading.py
#	erpnext/setup/doctype/quotation_lost_reason/quotation_lost_reason.json
#	erpnext/setup/doctype/quotation_lost_reason/quotation_lost_reason.py
#	erpnext/setup/doctype/quotation_lost_reason/test_quotation_lost_reason.py
#	erpnext/setup/doctype/quotation_lost_reason_detail/quotation_lost_reason_detail.json
#	erpnext/setup/doctype/quotation_lost_reason_detail/quotation_lost_reason_detail.py
#	erpnext/setup/doctype/sales_partner/sales_partner.js
#	erpnext/setup/doctype/sales_partner/sales_partner.json
#	erpnext/setup/doctype/sales_partner/sales_partner.py
#	erpnext/setup/doctype/sales_partner/test_sales_partner.py
#	erpnext/setup/doctype/sales_person/sales_person.js
#	erpnext/setup/doctype/sales_person/sales_person.json
#	erpnext/setup/doctype/sales_person/sales_person.py
#	erpnext/setup/doctype/sales_person/test_sales_person.py
#	erpnext/setup/doctype/supplier_group/supplier_group.js
#	erpnext/setup/doctype/supplier_group/supplier_group.json
#	erpnext/setup/doctype/supplier_group/supplier_group.py
#	erpnext/setup/doctype/supplier_group/test_supplier_group.py
#	erpnext/setup/doctype/target_detail/target_detail.json
#	erpnext/setup/doctype/target_detail/target_detail.py
#	erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.json
#	erpnext/setup/doctype/terms_and_conditions/terms_and_conditions.py
#	erpnext/setup/doctype/terms_and_conditions/test_terms_and_conditions.py
#	erpnext/setup/doctype/territory/territory.js
#	erpnext/setup/doctype/territory/territory.json
#	erpnext/setup/doctype/territory/territory.py
#	erpnext/setup/doctype/territory/test_territory.py
#	erpnext/setup/doctype/transaction_deletion_record/test_transaction_deletion_record.py
#	erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.json
#	erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py
#	erpnext/setup/doctype/transaction_deletion_record_item/transaction_deletion_record_item.json
#	erpnext/setup/doctype/transaction_deletion_record_item/transaction_deletion_record_item.py
#	erpnext/setup/doctype/uom/test_uom.py
#	erpnext/setup/doctype/uom/uom.json
#	erpnext/setup/doctype/uom/uom.py
#	erpnext/setup/doctype/uom_conversion_factor/test_uom_conversion_factor.py
#	erpnext/setup/doctype/uom_conversion_factor/uom_conversion_factor.json
#	erpnext/setup/doctype/uom_conversion_factor/uom_conversion_factor.py
#	erpnext/setup/doctype/vehicle/test_vehicle.py
#	erpnext/setup/doctype/vehicle/vehicle.json
#	erpnext/setup/doctype/vehicle/vehicle.py
#	erpnext/setup/doctype/website_item_group/website_item_group.json
#	erpnext/setup/doctype/website_item_group/website_item_group.py
#	erpnext/setup/install.py
#	erpnext/setup/setup_wizard/data/country_wise_tax.json
#	erpnext/setup/setup_wizard/data/uom_data.json
#	erpnext/setup/setup_wizard/operations/company_setup.py
#	erpnext/setup/setup_wizard/operations/defaults_setup.py
#	erpnext/setup/setup_wizard/operations/install_fixtures.py
#	erpnext/setup/setup_wizard/operations/taxes_setup.py
#	erpnext/setup/setup_wizard/setup_wizard.py
#	erpnext/setup/utils.py
#	erpnext/startup/boot.py
#	erpnext/startup/leaderboard.py
#	erpnext/stock/__init__.py
#	erpnext/stock/dashboard/item_dashboard.js
#	erpnext/stock/dashboard/item_dashboard.py
#	erpnext/stock/dashboard/item_dashboard_list.html
#	erpnext/stock/dashboard_chart/oldest_items/oldest_items.json
#	erpnext/stock/doctype/batch/batch.js
#	erpnext/stock/doctype/batch/batch.json
#	erpnext/stock/doctype/batch/batch.py
#	erpnext/stock/doctype/batch/batch_dashboard.py
#	erpnext/stock/doctype/batch/batch_list.js
#	erpnext/stock/doctype/batch/test_batch.py
#	erpnext/stock/doctype/bin/bin.json
#	erpnext/stock/doctype/bin/bin.py
#	erpnext/stock/doctype/bin/test_bin.py
#	erpnext/stock/doctype/closing_stock_balance/closing_stock_balance.json
#	erpnext/stock/doctype/closing_stock_balance/closing_stock_balance.py
#	erpnext/stock/doctype/closing_stock_balance/test_closing_stock_balance.py
#	erpnext/stock/doctype/customs_tariff_number/customs_tariff_number.json
#	erpnext/stock/doctype/customs_tariff_number/customs_tariff_number.py
#	erpnext/stock/doctype/customs_tariff_number/test_customs_tariff_number.py
#	erpnext/stock/doctype/delivery_note/delivery_note.js
#	erpnext/stock/doctype/delivery_note/delivery_note.json
#	erpnext/stock/doctype/delivery_note/delivery_note.py
#	erpnext/stock/doctype/delivery_note/delivery_note_list.js
#	erpnext/stock/doctype/delivery_note/test_delivery_note.py
#	erpnext/stock/doctype/delivery_note_item/delivery_note_item.json
#	erpnext/stock/doctype/delivery_note_item/delivery_note_item.py
#	erpnext/stock/doctype/delivery_settings/delivery_settings.json
#	erpnext/stock/doctype/delivery_settings/delivery_settings.py
#	erpnext/stock/doctype/delivery_settings/test_delivery_settings.py
#	erpnext/stock/doctype/delivery_stop/delivery_stop.json
#	erpnext/stock/doctype/delivery_stop/delivery_stop.py
#	erpnext/stock/doctype/delivery_trip/delivery_trip.js
#	erpnext/stock/doctype/delivery_trip/delivery_trip.json
#	erpnext/stock/doctype/delivery_trip/delivery_trip.py
#	erpnext/stock/doctype/delivery_trip/test_delivery_trip.py
#	erpnext/stock/doctype/inventory_dimension/inventory_dimension.json
#	erpnext/stock/doctype/inventory_dimension/inventory_dimension.py
#	erpnext/stock/doctype/inventory_dimension/test_inventory_dimension.py
#	erpnext/stock/doctype/item/item.js
#	erpnext/stock/doctype/item/item.json
#	erpnext/stock/doctype/item/item.py
#	erpnext/stock/doctype/item/item_dashboard.py
#	erpnext/stock/doctype/item/item_list.js
#	erpnext/stock/doctype/item/templates/item_row.html
#	erpnext/stock/doctype/item/test_item.py
#	erpnext/stock/doctype/item_alternative/item_alternative.json
#	erpnext/stock/doctype/item_alternative/item_alternative.py
#	erpnext/stock/doctype/item_alternative/test_item_alternative.py
#	erpnext/stock/doctype/item_attribute/item_attribute.json
#	erpnext/stock/doctype/item_attribute/item_attribute.py
#	erpnext/stock/doctype/item_attribute/test_item_attribute.py
#	erpnext/stock/doctype/item_attribute_value/item_attribute_value.json
#	erpnext/stock/doctype/item_attribute_value/item_attribute_value.py
#	erpnext/stock/doctype/item_barcode/item_barcode.json
#	erpnext/stock/doctype/item_barcode/item_barcode.py
#	erpnext/stock/doctype/item_customer_detail/item_customer_detail.json
#	erpnext/stock/doctype/item_customer_detail/item_customer_detail.py
#	erpnext/stock/doctype/item_default/item_default.json
#	erpnext/stock/doctype/item_default/item_default.py
#	erpnext/stock/doctype/item_manufacturer/item_manufacturer.json
#	erpnext/stock/doctype/item_manufacturer/item_manufacturer.py
#	erpnext/stock/doctype/item_manufacturer/test_item_manufacturer.py
#	erpnext/stock/doctype/item_price/item_price.json
#	erpnext/stock/doctype/item_price/item_price.py
#	erpnext/stock/doctype/item_price/test_item_price.py
#	erpnext/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.json
#	erpnext/stock/doctype/item_quality_inspection_parameter/item_quality_inspection_parameter.py
#	erpnext/stock/doctype/item_reorder/item_reorder.json
#	erpnext/stock/doctype/item_reorder/item_reorder.py
#	erpnext/stock/doctype/item_supplier/item_supplier.json
#	erpnext/stock/doctype/item_supplier/item_supplier.py
#	erpnext/stock/doctype/item_tax/item_tax.json
#	erpnext/stock/doctype/item_tax/item_tax.py
#	erpnext/stock/doctype/item_variant/item_variant.json
#	erpnext/stock/doctype/item_variant/item_variant.py
#	erpnext/stock/doctype/item_variant_attribute/item_variant_attribute.json
#	erpnext/stock/doctype/item_variant_attribute/item_variant_attribute.py
#	erpnext/stock/doctype/item_variant_settings/item_variant_settings.js
#	erpnext/stock/doctype/item_variant_settings/item_variant_settings.json
#	erpnext/stock/doctype/item_variant_settings/item_variant_settings.py
#	erpnext/stock/doctype/item_variant_settings/test_item_variant_settings.py
#	erpnext/stock/doctype/item_website_specification/item_website_specification.json
#	erpnext/stock/doctype/item_website_specification/item_website_specification.py
#	erpnext/stock/doctype/landed_cost_item/landed_cost_item.json
#	erpnext/stock/doctype/landed_cost_item/landed_cost_item.py
#	erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.json
#	erpnext/stock/doctype/landed_cost_purchase_receipt/landed_cost_purchase_receipt.py
#	erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.json
#	erpnext/stock/doctype/landed_cost_taxes_and_charges/landed_cost_taxes_and_charges.py
#	erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.js
#	erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.json
#	erpnext/stock/doctype/landed_cost_voucher/landed_cost_voucher.py
#	erpnext/stock/doctype/landed_cost_voucher/test_landed_cost_voucher.py
#	erpnext/stock/doctype/manufacturer/manufacturer.js
#	erpnext/stock/doctype/manufacturer/manufacturer.json
#	erpnext/stock/doctype/manufacturer/manufacturer.py
#	erpnext/stock/doctype/manufacturer/test_manufacturer.py
#	erpnext/stock/doctype/material_request/material_request.js
#	erpnext/stock/doctype/material_request/material_request.json
#	erpnext/stock/doctype/material_request/material_request.py
#	erpnext/stock/doctype/material_request/material_request_list.js
#	erpnext/stock/doctype/material_request/test_material_request.py
#	erpnext/stock/doctype/material_request_item/material_request_item.json
#	erpnext/stock/doctype/material_request_item/material_request_item.py
#	erpnext/stock/doctype/packed_item/packed_item.json
#	erpnext/stock/doctype/packed_item/packed_item.py
#	erpnext/stock/doctype/packed_item/test_packed_item.py
#	erpnext/stock/doctype/packing_slip/packing_slip.json
#	erpnext/stock/doctype/packing_slip/packing_slip.py
#	erpnext/stock/doctype/packing_slip/test_packing_slip.py
#	erpnext/stock/doctype/packing_slip_item/packing_slip_item.json
#	erpnext/stock/doctype/packing_slip_item/packing_slip_item.py
#	erpnext/stock/doctype/pick_list/pick_list.js
#	erpnext/stock/doctype/pick_list/pick_list.json
#	erpnext/stock/doctype/pick_list/pick_list.py
#	erpnext/stock/doctype/pick_list/pick_list_dashboard.py
#	erpnext/stock/doctype/pick_list/test_pick_list.py
#	erpnext/stock/doctype/pick_list_item/pick_list_item.json
#	erpnext/stock/doctype/pick_list_item/pick_list_item.py
#	erpnext/stock/doctype/price_list/price_list.json
#	erpnext/stock/doctype/price_list/price_list.py
#	erpnext/stock/doctype/price_list/test_price_list.py
#	erpnext/stock/doctype/price_list_country/price_list_country.json
#	erpnext/stock/doctype/price_list_country/price_list_country.py
#	erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
#	erpnext/stock/doctype/purchase_receipt/purchase_receipt.json
#	erpnext/stock/doctype/purchase_receipt/purchase_receipt.py
#	erpnext/stock/doctype/purchase_receipt/purchase_receipt_dashboard.py
#	erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
#	erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json
#	erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.py
#	erpnext/stock/doctype/putaway_rule/putaway_rule.json
#	erpnext/stock/doctype/putaway_rule/putaway_rule.py
#	erpnext/stock/doctype/putaway_rule/putaway_rule_list.js
#	erpnext/stock/doctype/putaway_rule/test_putaway_rule.py
#	erpnext/stock/doctype/quality_inspection/quality_inspection.js
#	erpnext/stock/doctype/quality_inspection/quality_inspection.json
#	erpnext/stock/doctype/quality_inspection/quality_inspection.py
#	erpnext/stock/doctype/quality_inspection/test_quality_inspection.py
#	erpnext/stock/doctype/quality_inspection_parameter/quality_inspection_parameter.json
#	erpnext/stock/doctype/quality_inspection_parameter/quality_inspection_parameter.py
#	erpnext/stock/doctype/quality_inspection_parameter/test_quality_inspection_parameter.py
#	erpnext/stock/doctype/quality_inspection_parameter_group/quality_inspection_parameter_group.json
#	erpnext/stock/doctype/quality_inspection_parameter_group/quality_inspection_parameter_group.py
#	erpnext/stock/doctype/quality_inspection_parameter_group/test_quality_inspection_parameter_group.py
#	erpnext/stock/doctype/quality_inspection_reading/quality_inspection_reading.json
#	erpnext/stock/doctype/quality_inspection_reading/quality_inspection_reading.py
#	erpnext/stock/doctype/quality_inspection_template/quality_inspection_template.json
#	erpnext/stock/doctype/quality_inspection_template/quality_inspection_template.py
#	erpnext/stock/doctype/quality_inspection_template/test_quality_inspection_template.py
#	erpnext/stock/doctype/quick_stock_balance/quick_stock_balance.json
#	erpnext/stock/doctype/quick_stock_balance/quick_stock_balance.py
#	erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.js
#	erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.json
#	erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py
#	erpnext/stock/doctype/repost_item_valuation/test_repost_item_valuation.py
#	erpnext/stock/doctype/serial_no/serial_no.js
#	erpnext/stock/doctype/serial_no/serial_no.json
#	erpnext/stock/doctype/serial_no/serial_no.py
#	erpnext/stock/doctype/serial_no/test_serial_no.py
#	erpnext/stock/doctype/shipment/shipment.json
#	erpnext/stock/doctype/shipment/shipment.py
#	erpnext/stock/doctype/shipment/test_shipment.py
#	erpnext/stock/doctype/shipment_delivery_note/shipment_delivery_note.json
#	erpnext/stock/doctype/shipment_delivery_note/shipment_delivery_note.py
#	erpnext/stock/doctype/shipment_parcel/shipment_parcel.json
#	erpnext/stock/doctype/shipment_parcel/shipment_parcel.py
#	erpnext/stock/doctype/shipment_parcel_template/shipment_parcel_template.json
#	erpnext/stock/doctype/shipment_parcel_template/shipment_parcel_template.py
#	erpnext/stock/doctype/shipment_parcel_template/test_shipment_parcel_template.py
#	erpnext/stock/doctype/stock_entry/stock_entry.js
#	erpnext/stock/doctype/stock_entry/stock_entry.json
#	erpnext/stock/doctype/stock_entry/stock_entry.py
#	erpnext/stock/doctype/stock_entry/stock_entry_utils.py
#	erpnext/stock/doctype/stock_entry/test_stock_entry.py
#	erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json
#	erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.py
#	erpnext/stock/doctype/stock_entry_type/stock_entry_type.json
#	erpnext/stock/doctype/stock_entry_type/stock_entry_type.py
#	erpnext/stock/doctype/stock_entry_type/test_stock_entry_type.py
#	erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.json
#	erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
#	erpnext/stock/doctype/stock_ledger_entry/test_stock_ledger_entry.py
#	erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js
#	erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.json
#	erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
#	erpnext/stock/doctype/stock_reconciliation/test_stock_reconciliation.py
#	erpnext/stock/doctype/stock_reconciliation_item/stock_reconciliation_item.json
#	erpnext/stock/doctype/stock_reconciliation_item/stock_reconciliation_item.py
#	erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.json
#	erpnext/stock/doctype/stock_reposting_settings/stock_reposting_settings.py
#	erpnext/stock/doctype/stock_reposting_settings/test_stock_reposting_settings.py
#	erpnext/stock/doctype/stock_settings/stock_settings.js
#	erpnext/stock/doctype/stock_settings/stock_settings.json
#	erpnext/stock/doctype/stock_settings/stock_settings.py
#	erpnext/stock/doctype/stock_settings/test_stock_settings.py
#	erpnext/stock/doctype/uom_category/test_uom_category.py
#	erpnext/stock/doctype/uom_category/uom_category.json
#	erpnext/stock/doctype/uom_category/uom_category.py
#	erpnext/stock/doctype/uom_conversion_detail/uom_conversion_detail.json
#	erpnext/stock/doctype/uom_conversion_detail/uom_conversion_detail.py
#	erpnext/stock/doctype/variant_field/test_variant_field.py
#	erpnext/stock/doctype/variant_field/variant_field.json
#	erpnext/stock/doctype/variant_field/variant_field.py
#	erpnext/stock/doctype/warehouse/test_warehouse.py
#	erpnext/stock/doctype/warehouse/warehouse.js
#	erpnext/stock/doctype/warehouse/warehouse.json
#	erpnext/stock/doctype/warehouse/warehouse.py
#	erpnext/stock/doctype/warehouse_type/test_warehouse_type.py
#	erpnext/stock/doctype/warehouse_type/warehouse_type.json
#	erpnext/stock/doctype/warehouse_type/warehouse_type.py
#	erpnext/stock/get_item_details.py
#	erpnext/stock/number_card/total_warehouses/total_warehouses.json
#	erpnext/stock/page/warehouse_capacity_summary/warehouse_capacity_summary.js
#	erpnext/stock/page/warehouse_capacity_summary/warehouse_capacity_summary_header.html
#	erpnext/stock/reorder_item.py
#	erpnext/stock/report/available_batch_report/available_batch_report.json
#	erpnext/stock/report/available_batch_report/available_batch_report.py
#	erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.js
#	erpnext/stock/report/batch_wise_balance_history/batch_wise_balance_history.py
#	erpnext/stock/report/cogs_by_item_group/cogs_by_item_group.js
#	erpnext/stock/report/delayed_item_report/delayed_item_report.js
#	erpnext/stock/report/delayed_order_report/delayed_order_report.js
#	erpnext/stock/report/delivery_note_trends/delivery_note_trends.js
#	erpnext/stock/report/fifo_queue_vs_qty_after_transaction_comparison/fifo_queue_vs_qty_after_transaction_comparison.js
#	erpnext/stock/report/incorrect_balance_qty_after_transaction/incorrect_balance_qty_after_transaction.js
#	erpnext/stock/report/incorrect_serial_no_valuation/incorrect_serial_no_valuation.js
#	erpnext/stock/report/incorrect_stock_value_report/incorrect_stock_value_report.js
#	erpnext/stock/report/item_price_stock/item_price_stock.js
#	erpnext/stock/report/item_shortage_report/item_shortage_report.js
#	erpnext/stock/report/item_shortage_report/test_item_shortage_report.py
#	erpnext/stock/report/item_variant_details/item_variant_details.js
#	erpnext/stock/report/purchase_receipt_trends/purchase_receipt_trends.js
#	erpnext/stock/report/serial_no_ledger/serial_no_ledger.js
#	erpnext/stock/report/serial_no_ledger/serial_no_ledger.py
#	erpnext/stock/report/serial_no_service_contract_expiry/serial_no_service_contract_expiry.json
#	erpnext/stock/report/serial_no_status/serial_no_status.json
#	erpnext/stock/report/serial_no_warranty_expiry/serial_no_warranty_expiry.json
#	erpnext/stock/report/stock_ageing/stock_ageing.js
#	erpnext/stock/report/stock_ageing/stock_ageing.py
#	erpnext/stock/report/stock_ageing/test_stock_ageing.py
#	erpnext/stock/report/stock_analytics/stock_analytics.js
#	erpnext/stock/report/stock_analytics/test_stock_analytics.py
#	erpnext/stock/report/stock_and_account_value_comparison/stock_and_account_value_comparison.js
#	erpnext/stock/report/stock_balance/stock_balance.js
#	erpnext/stock/report/stock_balance/stock_balance.py
#	erpnext/stock/report/stock_balance/test_stock_balance.py
#	erpnext/stock/report/stock_ledger/stock_ledger.js
#	erpnext/stock/report/stock_ledger/stock_ledger.py
#	erpnext/stock/report/stock_ledger/test_stock_ledger_report.py
#	erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.js
#	erpnext/stock/report/stock_ledger_invariant_check/stock_ledger_invariant_check.py
#	erpnext/stock/report/stock_projected_qty/stock_projected_qty.py
#	erpnext/stock/report/stock_qty_vs_serial_no_count/stock_qty_vs_serial_no_count.js
#	erpnext/stock/report/test_reports.py
#	erpnext/stock/report/total_stock_summary/total_stock_summary.js
#	erpnext/stock/report/warehouse_wise_item_balance_age_and_value/warehouse_wise_item_balance_age_and_value.js
#	erpnext/stock/report/warehouse_wise_item_balance_age_and_value/warehouse_wise_item_balance_age_and_value.py
#	erpnext/stock/report/warehouse_wise_stock_balance/warehouse_wise_stock_balance.js
#	erpnext/stock/stock_balance.py
#	erpnext/stock/stock_ledger.py
#	erpnext/stock/tests/test_get_item_details.py
#	erpnext/stock/tests/test_utils.py
#	erpnext/stock/tests/test_valuation.py
#	erpnext/stock/utils.py
#	erpnext/stock/workspace/stock/stock.json
#	erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.js
#	erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.json
#	erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py
#	erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order_list.js
#	erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py
#	erpnext/subcontracting/doctype/subcontracting_order_item/subcontracting_order_item.json
#	erpnext/subcontracting/doctype/subcontracting_order_item/subcontracting_order_item.py
#	erpnext/subcontracting/doctype/subcontracting_order_service_item/subcontracting_order_service_item.json
#	erpnext/subcontracting/doctype/subcontracting_order_service_item/subcontracting_order_service_item.py
#	erpnext/subcontracting/doctype/subcontracting_order_supplied_item/subcontracting_order_supplied_item.json
#	erpnext/subcontracting/doctype/subcontracting_order_supplied_item/subcontracting_order_supplied_item.py
#	erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.js
#	erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.json
#	erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
#	erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt_dashboard.py
#	erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py
#	erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.json
#	erpnext/subcontracting/doctype/subcontracting_receipt_item/subcontracting_receipt_item.py
#	erpnext/subcontracting/doctype/subcontracting_receipt_supplied_item/subcontracting_receipt_supplied_item.json
#	erpnext/subcontracting/doctype/subcontracting_receipt_supplied_item/subcontracting_receipt_supplied_item.py
#	erpnext/support/doctype/issue/issue.json
#	erpnext/support/doctype/issue/issue.py
#	erpnext/support/doctype/issue/test_issue.py
#	erpnext/support/doctype/issue_priority/issue_priority.json
#	erpnext/support/doctype/issue_priority/issue_priority.py
#	erpnext/support/doctype/issue_priority/test_issue_priority.py
#	erpnext/support/doctype/issue_type/issue_type.json
#	erpnext/support/doctype/issue_type/issue_type.py
#	erpnext/support/doctype/issue_type/test_issue_type.py
#	erpnext/support/doctype/pause_sla_on_status/pause_sla_on_status.json
#	erpnext/support/doctype/pause_sla_on_status/pause_sla_on_status.py
#	erpnext/support/doctype/service_day/service_day.json
#	erpnext/support/doctype/service_day/service_day.py
#	erpnext/support/doctype/service_level_agreement/service_level_agreement.json
#	erpnext/support/doctype/service_level_agreement/service_level_agreement.py
#	erpnext/support/doctype/service_level_agreement/test_service_level_agreement.py
#	erpnext/support/doctype/service_level_priority/service_level_priority.json
#	erpnext/support/doctype/service_level_priority/service_level_priority.py
#	erpnext/support/doctype/sla_fulfilled_on_status/sla_fulfilled_on_status.json
#	erpnext/support/doctype/sla_fulfilled_on_status/sla_fulfilled_on_status.py
#	erpnext/support/doctype/support_search_source/support_search_source.json
#	erpnext/support/doctype/support_search_source/support_search_source.py
#	erpnext/support/doctype/support_settings/support_settings.json
#	erpnext/support/doctype/support_settings/support_settings.py
#	erpnext/support/doctype/support_settings/test_support_settings.py
#	erpnext/support/doctype/warranty_claim/test_warranty_claim.py
#	erpnext/support/doctype/warranty_claim/warranty_claim.json
#	erpnext/support/doctype/warranty_claim/warranty_claim.py
#	erpnext/support/report/first_response_time_for_issues/first_response_time_for_issues.js
#	erpnext/support/report/issue_analytics/issue_analytics.js
#	erpnext/support/report/issue_analytics/test_issue_analytics.py
#	erpnext/support/report/issue_summary/issue_summary.js
#	erpnext/support/report/support_hour_distribution/support_hour_distribution.js
#	erpnext/support/web_form/issues/issues.json
#	erpnext/telephony/doctype/call_log/call_log.py
#	erpnext/telephony/doctype/call_log/test_call_log.py
#	erpnext/telephony/doctype/incoming_call_handling_schedule/incoming_call_handling_schedule.json
#	erpnext/telephony/doctype/incoming_call_handling_schedule/incoming_call_handling_schedule.py
#	erpnext/telephony/doctype/incoming_call_settings/incoming_call_settings.json
#	erpnext/telephony/doctype/incoming_call_settings/incoming_call_settings.py
#	erpnext/telephony/doctype/incoming_call_settings/test_incoming_call_settings.py
#	erpnext/telephony/doctype/telephony_call_type/telephony_call_type.json
#	erpnext/telephony/doctype/telephony_call_type/telephony_call_type.py
#	erpnext/telephony/doctype/telephony_call_type/test_telephony_call_type.py
#	erpnext/telephony/doctype/voice_call_settings/test_voice_call_settings.py
#	erpnext/telephony/doctype/voice_call_settings/voice_call_settings.json
#	erpnext/telephony/doctype/voice_call_settings/voice_call_settings.py
#	erpnext/templates/form_grid/includes/visible_cols.html
#	erpnext/templates/form_grid/item_grid.html
#	erpnext/templates/generators/sales_partner.html
#	erpnext/templates/includes/issue_row.html
#	erpnext/templates/includes/itemised_tax_breakup.html
#	erpnext/templates/includes/macros.html
#	erpnext/templates/includes/order/order_taxes.html
#	erpnext/templates/includes/product_list.js
#	erpnext/templates/includes/projects/project_row.html
#	erpnext/templates/includes/projects/project_tasks.html
#	erpnext/templates/includes/rfq.js
#	erpnext/templates/includes/transaction_row.html
#	erpnext/templates/pages/order.html
#	erpnext/templates/pages/order.py
#	erpnext/templates/pages/projects.html
#	erpnext/templates/pages/projects.js
#	erpnext/templates/pages/timelog_info.html
#	erpnext/templates/print_formats/includes/total.html
#	erpnext/tests/test_activation.py
#	erpnext/tests/test_init.py
#	erpnext/tests/test_notifications.py
#	erpnext/tests/test_perf.py
#	erpnext/tests/test_point_of_sale.py
#	erpnext/tests/test_regional.py
#	erpnext/tests/test_webform.py
#	erpnext/tests/test_zform_loads.py
#	erpnext/tests/utils.py
#	erpnext/utilities/activation.py
#	erpnext/utilities/bulk_transaction.py
#	erpnext/utilities/doctype/rename_tool/rename_tool.json
#	erpnext/utilities/doctype/rename_tool/rename_tool.py
#	erpnext/utilities/doctype/video/test_video.py
#	erpnext/utilities/doctype/video/video.json
#	erpnext/utilities/doctype/video/video.py
#	erpnext/utilities/doctype/video_settings/test_video_settings.py
#	erpnext/utilities/doctype/video_settings/video_settings.json
#	erpnext/utilities/doctype/video_settings/video_settings.py
#	erpnext/utilities/product.py
#	erpnext/utilities/report/youtube_interactions/youtube_interactions.js
#	erpnext/utilities/transaction_base.py
#	erpnext/www/book_appointment/index.html
#	erpnext/www/book_appointment/index.js
#	erpnext/www/book_appointment/index.py
#	erpnext/www/book_appointment/verify/index.html
#	erpnext/www/support/index.py
#	package.json
#	pyproject.toml
#	yarn.lock
This commit is contained in:
ljain112
2024-12-06 17:41:44 +05:30
committed by Mergify
parent a460bf9433
commit 44e3a1f6ef
2117 changed files with 1841259 additions and 25 deletions

View File

@@ -18,4 +18,8 @@ max_line_length = 110
[{*.json}]
insert_final_newline = false
indent_style = space
<<<<<<< HEAD
indent_size = 2
=======
indent_size = 1
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)

View File

@@ -2,14 +2,21 @@
"env": {
"browser": true,
"node": true,
<<<<<<< HEAD
"es6": true
},
"parserOptions": {
"ecmaVersion": 11,
=======
"es2022": true
},
"parserOptions": {
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"sourceType": "module"
},
"extends": "eslint:recommended",
"rules": {
<<<<<<< HEAD
"indent": [
"error",
"tab",
@@ -56,11 +63,30 @@
"keyword-spacing": "warn",
"comma-spacing": "warn",
"key-spacing": "warn"
=======
"indent": "off",
"brace-style": "off",
"no-mixed-spaces-and-tabs": "off",
"no-useless-escape": "off",
"space-unary-ops": ["error", { "words": true }],
"linebreak-style": "off",
"quotes": ["off"],
"semi": "off",
"camelcase": "off",
"no-unused-vars": "off",
"no-console": ["warn"],
"no-extra-boolean-cast": ["off"],
"no-control-regex": ["off"]
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
},
"root": true,
"globals": {
"frappe": true,
"Vue": true,
<<<<<<< HEAD
=======
"SetVueGlobals": true,
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"erpnext": true,
"hub": true,
"$": true,
@@ -97,8 +123,15 @@
"is_null": true,
"in_list": true,
"has_common": true,
<<<<<<< HEAD
"has_words": true,
"validate_email": true,
=======
"posthog": true,
"has_words": true,
"validate_email": true,
"open_web_template_values_editor": true,
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"get_number_format": true,
"format_number": true,
"format_currency": true,
@@ -154,7 +187,10 @@
"before": true,
"beforeEach": true,
"onScan": true,
<<<<<<< HEAD
"html2canvas": true,
=======
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"extend_cscript": true,
"localforage": true,
"Plaid": true

View File

@@ -30,5 +30,20 @@ b147b85e6ac19a9220cd1e2958a6ebd99373283a
# bulk format python code with black
baec607ff5905b1c67531096a9cf50ec7ff00a5d
<<<<<<< HEAD
# ruff
4d34b1ead73baf4c5430a2ecbe44b9e8468d7626
=======
# bulk refactor with sourcery
eb9ee3f79b94e594fc6dfa4f6514580e125eee8c
# js formatting
ec74a5e56617bbd76ac402451468fd4668af543d
# ruff formatting
a308792ee7fda18a681e9181f4fd00b36385bc23
# noisy typing refactoring of get_item_details
7b7211ac79c248a79ba8a999ff34e734d874c0ae
d827ed21adc7b36047e247cbb0dc6388d048a7f9
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)

View File

@@ -1,7 +1,13 @@
import sys
<<<<<<< HEAD
import requests
from urllib.parse import urlparse
=======
from urllib.parse import urlparse
import requests
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
WEBSITE_REPOS = [
"erpnext_com",
@@ -36,11 +42,15 @@ def is_documentation_link(word: str) -> bool:
def contains_documentation_link(body: str) -> bool:
<<<<<<< HEAD
return any(
is_documentation_link(word)
for line in body.splitlines()
for word in line.split()
)
=======
return any(is_documentation_link(word) for line in body.splitlines() for word in line.split())
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
def check_pull_request(number: str) -> "tuple[int, str]":
@@ -53,12 +63,16 @@ def check_pull_request(number: str) -> "tuple[int, str]":
head_sha = (payload.get("head") or {}).get("sha")
body = (payload.get("body") or "").lower()
<<<<<<< HEAD
if (
not title.startswith("feat")
or not head_sha
or "no-docs" in body
or "backport" in body
):
=======
if not title.startswith("feat") or not head_sha or "no-docs" in body or "backport" in body:
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
return 0, "Skipping documentation checks... 🏃"
if contains_documentation_link(body):

View File

@@ -4,15 +4,34 @@ set -e
cd ~ || exit
<<<<<<< HEAD
sudo apt update && sudo apt install redis-server libcups2-dev
=======
sudo apt update
sudo apt remove mysql-server mysql-client
sudo apt install libcups2-dev redis-server mariadb-client-10.6
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
pip install frappe-bench
githubbranch=${GITHUB_BASE_REF:-${GITHUB_REF##*/}}
frappeuser=${FRAPPE_USER:-"frappe"}
<<<<<<< HEAD
frappebranch=${FRAPPE_BRANCH:-$githubbranch}
git clone "https://github.com/${frappeuser}/frappe" --branch "${frappebranch}" --depth 1
=======
frappecommitish=${FRAPPE_BRANCH:-$githubbranch}
mkdir frappe
pushd frappe
git init
git remote add origin "https://github.com/${frappeuser}/frappe"
git fetch origin "${frappecommitish}" --depth 1
git checkout FETCH_HEAD
popd
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
bench init --skip-assets --frappe-path ~/frappe --python "$(which python)" frappe-bench
mkdir ~/frappe-bench/sites/test_site
@@ -25,6 +44,7 @@ fi
if [ "$DB" == "mariadb" ];then
<<<<<<< HEAD
mysql --host 127.0.0.1 --port 3306 -u root -e "SET GLOBAL character_set_server = 'utf8mb4'"
mysql --host 127.0.0.1 --port 3306 -u root -e "SET GLOBAL collation_server = 'utf8mb4_unicode_ci'"
@@ -34,6 +54,16 @@ if [ "$DB" == "mariadb" ];then
mysql --host 127.0.0.1 --port 3306 -u root -e "UPDATE mysql.user SET Password=PASSWORD('travis') WHERE User='root'"
mysql --host 127.0.0.1 --port 3306 -u root -e "FLUSH PRIVILEGES"
=======
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL character_set_server = 'utf8mb4'"
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL collation_server = 'utf8mb4_unicode_ci'"
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "CREATE USER 'test_frappe'@'localhost' IDENTIFIED BY 'test_frappe'"
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "CREATE DATABASE test_frappe"
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "GRANT ALL PRIVILEGES ON \`test_frappe\`.* TO 'test_frappe'@'localhost'"
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "FLUSH PRIVILEGES"
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
fi
if [ "$DB" == "postgres" ];then
@@ -43,12 +73,26 @@ fi
install_whktml() {
<<<<<<< HEAD
wget -O /tmp/wkhtmltox.tar.xz https://github.com/frappe/wkhtmltopdf/raw/master/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
tar -xf /tmp/wkhtmltox.tar.xz -C /tmp
sudo mv /tmp/wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
sudo chmod o+x /usr/local/bin/wkhtmltopdf
}
install_whktml &
=======
if [ "$(lsb_release -rs)" = "22.04" ]; then
wget -O /tmp/wkhtmltox.deb https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
sudo apt install /tmp/wkhtmltox.deb
else
echo "Please update this script to support wkhtmltopdf for $(lsb_release -ds)"
exit 1
fi
}
install_whktml &
wkpid=$!
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
cd ~/frappe-bench || exit
@@ -62,6 +106,12 @@ bench get-app erpnext "${GITHUB_WORKSPACE}"
if [ "$TYPE" == "server" ]; then bench setup requirements --dev; fi
<<<<<<< HEAD
bench start &> bench_run_logs.txt &
=======
wait $wkpid
bench start &>> ~/frappe-bench/bench_start.log &
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
CI=Yes bench build --app frappe &
bench --site test_site reinstall --yes

View File

@@ -9,7 +9,11 @@
"mail_password": "test",
"admin_password": "admin",
"root_login": "root",
<<<<<<< HEAD
"root_password": "travis",
=======
"root_password": "root",
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"host_name": "http://test_site:8000",
"install_apps": ["payments", "erpnext"],
"throttle_user_limit": 100

View File

@@ -2,7 +2,13 @@ import re
import sys
errors_encounter = 0
<<<<<<< HEAD
pattern = re.compile(r"_\(([\"']{,3})(?P<message>((?!\1).)*)\1(\s*,\s*context\s*=\s*([\"'])(?P<py_context>((?!\5).)*)\5)*(\s*,(\s*?.*?\n*?)*(,\s*([\"'])(?P<js_context>((?!\11).)*)\11)*)*\)")
=======
pattern = re.compile(
r"_\(([\"']{,3})(?P<message>((?!\1).)*)\1(\s*,\s*context\s*=\s*([\"'])(?P<py_context>((?!\5).)*)\5)*(\s*,(\s*?.*?\n*?)*(,\s*([\"'])(?P<js_context>((?!\11).)*)\11)*)*\)"
)
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
words_pattern = re.compile(r"_{1,2}\([\"'`]{1,3}.*?[a-zA-Z]")
start_pattern = re.compile(r"_{1,2}\([f\"'`]{1,3}")
f_string_pattern = re.compile(r"_\(f[\"']")
@@ -10,6 +16,7 @@ starts_with_f_pattern = re.compile(r"_\(f")
# skip first argument
files = sys.argv[1:]
<<<<<<< HEAD
files_to_scan = [_file for _file in files if _file.endswith(('.py', '.js'))]
for _file in files_to_scan:
@@ -18,6 +25,16 @@ for _file in files_to_scan:
file_lines = f.readlines()
for line_number, line in enumerate(file_lines, 1):
if 'frappe-lint: disable-translate' in line:
=======
files_to_scan = [_file for _file in files if _file.endswith((".py", ".js"))]
for _file in files_to_scan:
with open(_file) as f:
print(f"Checking: {_file}")
file_lines = f.readlines()
for line_number, line in enumerate(file_lines, 1):
if "frappe-lint: disable-translate" in line:
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
continue
start_matches = start_pattern.search(line)
@@ -28,7 +45,13 @@ for _file in files_to_scan:
has_f_string = f_string_pattern.search(line)
if has_f_string:
errors_encounter += 1
<<<<<<< HEAD
print(f'\nF-strings are not supported for translations at line number {line_number}\n{line.strip()[:100]}')
=======
print(
f"\nF-strings are not supported for translations at line number {line_number}\n{line.strip()[:100]}"
)
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
continue
else:
continue
@@ -36,25 +59,51 @@ for _file in files_to_scan:
match = pattern.search(line)
error_found = False
<<<<<<< HEAD
if not match and line.endswith((',\n', '[\n')):
# concat remaining text to validate multiline pattern
line = "".join(file_lines[line_number - 1:])
line = line[start_matches.start() + 1:]
=======
if not match and line.endswith((",\n", "[\n")):
# concat remaining text to validate multiline pattern
line = "".join(file_lines[line_number - 1 :])
line = line[start_matches.start() + 1 :]
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
match = pattern.match(line)
if not match:
error_found = True
<<<<<<< HEAD
print(f'\nTranslation syntax error at line number {line_number}\n{line.strip()[:100]}')
if not error_found and not words_pattern.search(line):
error_found = True
print(f'\nTranslation is useless because it has no words at line number {line_number}\n{line.strip()[:100]}')
=======
print(f"\nTranslation syntax error at line number {line_number}\n{line.strip()[:100]}")
if not error_found and not words_pattern.search(line):
error_found = True
print(
f"\nTranslation is useless because it has no words at line number {line_number}\n{line.strip()[:100]}"
)
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
if error_found:
errors_encounter += 1
if errors_encounter > 0:
<<<<<<< HEAD
print('\nVisit "https://frappeframework.com/docs/user/en/translations" to learn about valid translation strings.')
sys.exit(1)
else:
print('\nGood To Go!')
=======
print(
'\nVisit "https://frappeframework.com/docs/user/en/translations" to learn about valid translation strings.'
)
sys.exit(1)
else:
print("\nGood To Go!")
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)

40
.github/helper/update_pot_file.sh vendored Normal file
View File

@@ -0,0 +1,40 @@
#!/bin/bash
set -e
cd ~ || exit
echo "Setting Up Bench..."
pip install frappe-bench
bench -v init frappe-bench --skip-assets --skip-redis-config-generation --python "$(which python)"
cd ./frappe-bench || exit
echo "Get ERPNext..."
bench get-app --skip-assets erpnext "${GITHUB_WORKSPACE}"
echo "Generating POT file..."
bench generate-pot-file --app erpnext
cd ./apps/erpnext || exit
echo "Configuring git user..."
git config user.email "developers@erpnext.com"
git config user.name "frappe-pr-bot"
echo "Setting the correct git remote..."
# Here, the git remote is a local file path by default. Let's change it to the upstream repo.
git remote set-url upstream https://github.com/frappe/erpnext.git
echo "Creating a new branch..."
isodate=$(date -u +"%Y-%m-%d")
branch_name="pot_${BASE_BRANCH}_${isodate}"
git checkout -b "${branch_name}"
echo "Commiting changes..."
git add erpnext/locale/main.pot
git commit -m "chore: update POT file"
gh auth setup-git
git push -u upstream "${branch_name}"
echo "Creating a PR..."
gh pr create --fill --base "${BASE_BRANCH}" --head "${branch_name}" --reviewer ${PR_REVIEWER} -R frappe/erpnext

13
.github/stale.yml vendored
View File

@@ -12,8 +12,21 @@ exemptProjects: true
# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: true
<<<<<<< HEAD
pulls:
daysUntilStale: 14
=======
# Skip the stale action for draft PRs
exemptDraftPr: true
# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels:
- hotfix
- no-stale
pulls:
daysUntilStale: 15
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
daysUntilClose: 3
exemptLabels:
- hotfix

View File

@@ -21,6 +21,10 @@ jobs:
- name: Run backport
uses: ./actions/backport
with:
<<<<<<< HEAD
token: ${{secrets.BACKPORT_BOT_TOKEN}}
=======
token: ${{secrets.RELEASE_TOKEN}}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
labelsToAdd: "backport"
title: "{{originalTitle}}"

39
.github/workflows/generate-pot-file.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
# This workflow is agnostic to branches. Only maintain on develop branch.
# To add/remove branches just modify the matrix.
name: Regenerate POT file (translatable strings)
on:
schedule:
# 9:30 UTC => 3 PM IST Sunday
- cron: "30 9 * * 0"
workflow_dispatch:
jobs:
regenerate-pot-file:
name: Regenerate POT file
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
branch: ["develop"]
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ matrix.branch }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Run script to update POT file
run: |
bash ${GITHUB_WORKSPACE}/.github/helper/update_pot_file.sh
env:
GH_TOKEN: ${{ secrets.RELEASE_TOKEN }}
BASE_BRANCH: ${{ matrix.branch }}
PR_REVIEWER: barredterra # change to your GitHub username if you copied this file

32
.github/workflows/initiate_release.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
# This workflow is agnostic to branches. Only maintain on develop branch.
# To add/remove versions just modify the matrix.
name: Create weekly release pull requests
on:
schedule:
# 9:30 UTC => 3 PM IST Tuesday
- cron: "30 9 * * 2"
workflow_dispatch:
jobs:
stable-release:
name: Release
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version: ["14", "15"]
steps:
- uses: octokit/request-action@v2.x
with:
route: POST /repos/{owner}/{repo}/pulls
owner: frappe
repo: erpnext
title: |-
"chore: release v${{ matrix.version }}"
body: "Automated weekly release."
base: version-${{ matrix.version }}
head: version-${{ matrix.version }}-hotfix
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}

View File

@@ -9,6 +9,7 @@ jobs:
name: linters
runs-on: ubuntu-latest
steps:
<<<<<<< HEAD
- uses: actions/checkout@v2
- name: Set up Python 3.10
@@ -18,6 +19,30 @@ jobs:
- name: Install and Run Pre-commit
uses: pre-commit/action@v2.0.3
=======
- uses: actions/checkout@v3
- name: Set up Python 3.10
uses: actions/setup-python@v4
with:
python-version: '3.10'
cache: pip
- name: Install and Run Pre-commit
uses: pre-commit/action@v3.0.0
semgrep:
name: semgrep
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python 3.10
uses: actions/setup-python@v4
with:
python-version: '3.10'
cache: pip
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
- name: Download Semgrep rules
run: git clone --depth 1 https://github.com/frappe/semgrep-rules.git frappe-semgrep-rules

21
.github/workflows/lock.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: 'Lock threads'
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
permissions:
issues: write
pull-requests: write
jobs:
lock:
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v5
with:
github-token: ${{ github.token }}
issue-inactive-days: 14
pr-inactive-days: 14

View File

@@ -11,7 +11,11 @@ on:
workflow_dispatch:
concurrency:
<<<<<<< HEAD
group: patch-develop-${{ github.event.number }}
=======
group: patch-develop-${{ github.event_name }}-${{ github.event.number || github.event_name == 'workflow_dispatch' && github.run_id || '' }}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
cancel-in-progress: true
jobs:
@@ -23,6 +27,7 @@ jobs:
services:
mysql:
<<<<<<< HEAD
image: mariadb:10.3
env:
MYSQL_ALLOW_EMPTY_PASSWORD: YES
@@ -33,6 +38,18 @@ jobs:
steps:
- name: Clone
uses: actions/checkout@v2
=======
image: mariadb:10.6
env:
MARIADB_ROOT_PASSWORD: 'root'
ports:
- 3306:3306
options: --health-cmd="mariadb-admin ping" --health-interval=5s --health-timeout=2s --health-retries=3
steps:
- name: Clone
uses: actions/checkout@v4
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
- name: Check for valid Python & Merge Conflicts
run: |
@@ -43,6 +60,7 @@ jobs:
fi
- name: Setup Python
<<<<<<< HEAD
uses: "actions/setup-python@v4"
with:
python-version: |
@@ -53,13 +71,27 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: 14
=======
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 18
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
check-latest: true
- name: Add to Hosts
run: echo "127.0.0.1 test_site" | sudo tee -a /etc/hosts
- name: Cache pip
<<<<<<< HEAD
uses: actions/cache@v2
=======
uses: actions/cache@v4
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml') }}
@@ -68,7 +100,11 @@ jobs:
${{ runner.os }}-
- name: Cache node modules
<<<<<<< HEAD
uses: actions/cache@v2
=======
uses: actions/cache@v4
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
env:
cache-name: cache-node-modules
with:
@@ -83,7 +119,11 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
<<<<<<< HEAD
- uses: actions/cache@v2
=======
- uses: actions/cache@v4
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -102,12 +142,22 @@ jobs:
- name: Run Patch Tests
run: |
cd ~/frappe-bench/
<<<<<<< HEAD
wget https://erpnext.com/files/v10-erpnext.sql.gz
bench --site test_site --force restore ~/frappe-bench/v10-erpnext.sql.gz
=======
bench remove-app payments --force
jq 'del(.install_apps)' ~/frappe-bench/sites/test_site/site_config.json > tmp.json
mv tmp.json ~/frappe-bench/sites/test_site/site_config.json
wget https://erpnext.com/files/v13-erpnext.sql.gz
bench --site test_site --force restore ~/frappe-bench/v13-erpnext.sql.gz
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
git -C "apps/frappe" remote set-url upstream https://github.com/frappe/frappe.git
git -C "apps/erpnext" remote set-url upstream https://github.com/frappe/erpnext.git
<<<<<<< HEAD
for version in $(seq 12 13)
do
echo "Updating to v$version"
@@ -139,3 +189,54 @@ jobs:
bench --site test_site migrate
bench --site test_site install-app payments
=======
function update_to_version() {
version=$1
branch_name="version-$version-hotfix"
echo "Updating to v$version"
# Fetch and checkout branches
git -C "apps/frappe" fetch --depth 1 upstream $branch_name:$branch_name
git -C "apps/erpnext" fetch --depth 1 upstream $branch_name:$branch_name
git -C "apps/frappe" checkout -q -f $branch_name
git -C "apps/erpnext" checkout -q -f $branch_name
# Resetup env and install apps
pgrep honcho | xargs kill
rm -rf ~/frappe-bench/env
bench -v setup env
bench pip install -e ./apps/erpnext
bench start &>> ~/frappe-bench/bench_start.log &
bench --site test_site migrate
}
update_to_version 14
update_to_version 15
echo "Updating to latest version"
git -C "apps/frappe" fetch --depth 1 upstream "${GITHUB_BASE_REF:-${GITHUB_REF##*/}}"
git -C "apps/frappe" checkout -q -f FETCH_HEAD
git -C "apps/erpnext" checkout -q -f "$GITHUB_SHA"
pgrep honcho | xargs kill
rm -rf ~/frappe-bench/env
bench -v setup env
bench pip install -e ./apps/erpnext
bench start &>> ~/frappe-bench/bench_start.log &
bench --site test_site migrate
- name: Show bench output
if: ${{ always() }}
run: |
cd ~/frappe-bench
cat bench_start.log || true
cd logs
for f in ./*.log*; do
echo "Printing log: $f";
cat $f
done
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)

22
.github/workflows/patch_faux.yml vendored Normal file
View File

@@ -0,0 +1,22 @@
# Tests are skipped for these files but github doesn't allow "passing" hence this is required.
name: Skipped Patch Test
on:
pull_request:
paths:
- "**.js"
- "**.css"
- "**.md"
- "**.html"
- "**.csv"
jobs:
test:
runs-on: ubuntu-latest
name: Patch Test
steps:
- name: Pass skipped tests unconditionally
run: "echo Skipped"

View File

@@ -2,7 +2,11 @@ name: Generate Semantic Release
on:
push:
branches:
<<<<<<< HEAD
- version-14
=======
- version-13
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
jobs:
release:
name: Release
@@ -13,12 +17,18 @@ jobs:
with:
fetch-depth: 0
persist-credentials: false
<<<<<<< HEAD
=======
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 20
<<<<<<< HEAD
=======
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
- name: Setup dependencies
run: |
npm install @semantic-release/git @semantic-release/exec --no-save

View File

@@ -29,7 +29,15 @@ jobs:
steps:
- name: Update notes
run: |
<<<<<<< HEAD
NEW_NOTES=$(gh api --method POST -H "Accept: application/vnd.github+json" /repos/frappe/erpnext/releases/generate-notes -f tag_name=$RELEASE_TAG | jq -r '.body' | sed -E '/^\* (chore|ci|test|docs|style)/d' )
=======
NEW_NOTES=$(gh api --method POST -H "Accept: application/vnd.github+json" /repos/frappe/erpnext/releases/generate-notes -f tag_name=$RELEASE_TAG \
| jq -r '.body' \
| sed -E '/^\* (chore|ci|test|docs|style)/d' \
| sed -E 's/by @mergify //'
)
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
RELEASE_ID=$(gh api -H "Accept: application/vnd.github+json" /repos/frappe/erpnext/releases/tags/$RELEASE_TAG | jq -r '.id')
gh api --method PATCH -H "Accept: application/vnd.github+json" /repos/frappe/erpnext/releases/$RELEASE_ID -f body="$NEW_NOTES"

View File

@@ -0,0 +1,130 @@
name: Individual
on:
workflow_dispatch:
concurrency:
group: server-individual-tests-develop-${{ github.event_name }}-${{ github.event.number || github.event_name == 'workflow_dispatch' && github.run_id || '' }}
cancel-in-progress: false
jobs:
discover:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Clone
uses: actions/checkout@v4
- id: set-matrix
run: |
# Use grep and find to get the list of test files
matrix=$(find . -path '*/doctype/*/test_*.py' | xargs grep -l 'def test_' | awk '{
# Remove ./ prefix, file extension, and replace / with .
gsub(/^\.\//, "", $0)
gsub(/\.py$/, "", $0)
gsub(/\//, ".", $0)
# Add to array
tests[NR] = $0
}
END {
# Start JSON array
printf "{\n \"include\": [\n"
# Loop through array and create JSON objects
for (i=1; i<=NR; i++) {
printf " {\"test\": \"%s\"}", tests[i]
if (i < NR) printf ","
printf "\n"
}
# Close JSON array
printf " ]\n}"
}')
# Output the matrix
echo "matrix=$(echo "$matrix" | jq -c)" >> $GITHUB_OUTPUT
# For debugging (optional)
echo "Generated matrix:"
echo "$matrix"
test:
needs: discover
runs-on: ubuntu-latest
timeout-minutes: 60
env:
NODE_ENV: "production"
strategy:
fail-fast: false
matrix: ${{fromJson(needs.discover.outputs.matrix)}}
name: Test
services:
mysql:
image: mariadb:10.6
env:
MARIADB_ROOT_PASSWORD: 'root'
ports:
- 3306:3306
options: --health-cmd="mariadb-admin ping" --health-interval=5s --health-timeout=2s --health-retries=3
steps:
- name: Clone
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 18
check-latest: true
- name: Add to Hosts
run: echo "127.0.0.1 test_site" | sudo tee -a /etc/hosts
- name: Cache pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-
- name: Cache node modules
uses: actions/cache@v4
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v4
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install
run: bash ${GITHUB_WORKSPACE}/.github/helper/install.sh
env:
DB: mariadb
TYPE: server
FRAPPE_USER: ${{ github.event.inputs.user }}
FRAPPE_BRANCH: ${{ github.event.inputs.branch }}
- name: Run Tests
run: 'cd ~/frappe-bench/ && bench --site test_site run-tests --app erpnext --module ${{ matrix.test }}'

View File

@@ -21,7 +21,11 @@ jobs:
- uses: actions/setup-node@v3
with:
<<<<<<< HEAD
node-version: 20
=======
node-version: 18
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
check-latest: true
- name: Check commit titles

View File

@@ -0,0 +1,24 @@
# Tests are skipped for these files but github doesn't allow "passing" hence this is required.
name: Skipped Tests
on:
pull_request:
paths:
- "**.js"
- "**.css"
- "**.md"
- "**.html"
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
container: [1, 2, 3, 4]
name: Python Unit Tests
steps:
- name: Pass skipped tests unconditionally
run: "echo Skipped"

View File

@@ -1,12 +1,18 @@
name: Server (Mariadb)
on:
<<<<<<< HEAD
=======
repository_dispatch:
types: [frappe-framework-change]
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
pull_request:
paths-ignore:
- '**.js'
- '**.css'
- '**.md'
- '**.html'
<<<<<<< HEAD
- '**.csv'
push:
branches: [ develop ]
@@ -17,34 +23,62 @@ on:
inputs:
user:
description: 'user'
=======
schedule:
# Run everday at midnight UTC / 5:30 IST
- cron: "0 0 * * *"
workflow_dispatch:
inputs:
user:
description: 'Frappe Framework repository user (add your username for forks)'
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
required: true
default: 'frappe'
type: string
branch:
<<<<<<< HEAD
description: 'Branch name'
=======
description: 'Frappe Framework branch'
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
default: 'develop'
required: false
type: string
concurrency:
<<<<<<< HEAD
group: server-mariadb-develop-${{ github.event.number }}
=======
group: server-mariadb-develop-${{ github.event_name }}-${{ github.event.number || github.event_name == 'workflow_dispatch' && github.run_id || '' }}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
cancel-in-progress: true
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 60
<<<<<<< HEAD
=======
env:
NODE_ENV: "production"
WITH_COVERAGE: ${{ github.event_name != 'pull_request' }}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
strategy:
fail-fast: false
matrix:
<<<<<<< HEAD
container: [1, 2, 3]
=======
container: [1, 2, 3, 4]
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
name: Python Unit Tests
services:
mysql:
<<<<<<< HEAD
image: mariadb:10.3
env:
MYSQL_ALLOW_EMPTY_PASSWORD: YES
@@ -60,6 +94,23 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: '3.10'
=======
image: mariadb:10.6
env:
MARIADB_ROOT_PASSWORD: 'root'
ports:
- 3306:3306
options: --health-cmd="mariadb-admin ping" --health-interval=5s --health-timeout=2s --health-retries=3
steps:
- name: Clone
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
- name: Check for valid Python & Merge Conflicts
run: |
@@ -70,16 +121,26 @@ jobs:
fi
- name: Setup Node
<<<<<<< HEAD
uses: actions/setup-node@v2
with:
node-version: 14
=======
uses: actions/setup-node@v4
with:
node-version: 18
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
check-latest: true
- name: Add to Hosts
run: echo "127.0.0.1 test_site" | sudo tee -a /etc/hosts
- name: Cache pip
<<<<<<< HEAD
uses: actions/cache@v2
=======
uses: actions/cache@v4
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml') }}
@@ -88,7 +149,11 @@ jobs:
${{ runner.os }}-
- name: Cache node modules
<<<<<<< HEAD
uses: actions/cache@v2
=======
uses: actions/cache@v4
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
env:
cache-name: cache-node-modules
with:
@@ -103,7 +168,11 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
<<<<<<< HEAD
- uses: actions/cache@v2
=======
- uses: actions/cache@v4
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
@@ -117,6 +186,7 @@ jobs:
DB: mariadb
TYPE: server
FRAPPE_USER: ${{ github.event.inputs.user }}
<<<<<<< HEAD
FRAPPE_BRANCH: ${{ github.event.inputs.branch }}
- name: Run Tests
@@ -124,3 +194,44 @@ jobs:
env:
TYPE: server
CI_BUILD_ID: ${{ github.run_id }}
=======
FRAPPE_BRANCH: ${{ github.event.client_payload.sha || github.event.inputs.branch }}
- name: Run Tests
run: 'cd ~/frappe-bench/ && bench --site test_site run-parallel-tests --app erpnext --total-builds ${{ strategy.job-total }} --build-number ${{ matrix.container }}'
env:
TYPE: server
CAPTURE_COVERAGE: ${{ github.event_name != 'pull_request' }}
- name: Show bench output
if: ${{ always() }}
run: cat ~/frappe-bench/bench_start.log || true
- name: Upload coverage data
uses: actions/upload-artifact@v3
if: github.event_name != 'pull_request'
with:
name: coverage-${{ matrix.container }}
path: /home/runner/frappe-bench/sites/coverage.xml
coverage:
name: Coverage Wrap Up
needs: test
runs-on: ubuntu-latest
if: ${{ github.event_name != 'pull_request' }}
steps:
- name: Clone
uses: actions/checkout@v4
- name: Download artifacts
uses: actions/download-artifact@v3
- name: Upload coverage data
uses: codecov/codecov-action@v4
with:
name: MariaDB
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
verbose: true
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)

View File

@@ -9,7 +9,11 @@ on:
types: [opened, labelled, synchronize, reopened]
concurrency:
<<<<<<< HEAD
group: server-postgres-develop-${{ github.event.number }}
=======
group: server-postgres-develop-${{ github.event_name }}-${{ github.event.number || github.event_name == 'workflow_dispatch' && github.run_id || '' }}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
cancel-in-progress: true
jobs:
@@ -41,12 +45,21 @@ jobs:
steps:
- name: Clone
<<<<<<< HEAD
uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: '3.10'
=======
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
- name: Check for valid Python & Merge Conflicts
run: |
@@ -57,16 +70,26 @@ jobs:
fi
- name: Setup Node
<<<<<<< HEAD
uses: actions/setup-node@v2
with:
node-version: 14
=======
uses: actions/setup-node@v4
with:
node-version: 18
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
check-latest: true
- name: Add to Hosts
run: echo "127.0.0.1 test_site" | sudo tee -a /etc/hosts
- name: Cache pip
<<<<<<< HEAD
uses: actions/cache@v2
=======
uses: actions/cache@v4
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/*requirements.txt', '**/pyproject.toml') }}
@@ -75,7 +98,11 @@ jobs:
${{ runner.os }}-
- name: Cache node modules
<<<<<<< HEAD
uses: actions/cache@v2
=======
uses: actions/cache@v4
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
env:
cache-name: cache-node-modules
with:
@@ -90,7 +117,11 @@ jobs:
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
<<<<<<< HEAD
- uses: actions/cache@v2
=======
- uses: actions/cache@v4
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}

11
.gitignore vendored
View File

@@ -2,7 +2,10 @@
*.py~
.DS_Store
conf.py
<<<<<<< HEAD
locale
=======
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
latest_updates.json
.wnf-lang-status
*.egg-info
@@ -15,5 +18,13 @@ __pycache__
*~
.idea/
.vscode/
<<<<<<< HEAD
node_modules/
.backportrc.json
=======
.helix/
node_modules/
.backportrc.json
# Aider AI Chat
.aider*
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)

View File

@@ -9,11 +9,21 @@ pull_request_rules:
- author!=nabinhait
- author!=ankush
- author!=deepeshgarg007
<<<<<<< HEAD
=======
- author!=frappe-pr-bot
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
- author!=mergify[bot]
- or:
- base=version-13
- base=version-12
<<<<<<< HEAD
=======
- base=version-14
- base=version-15
- base=version-16
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
actions:
close:
comment:
@@ -21,6 +31,7 @@ pull_request_rules:
@{{author}}, thanks for the contribution, but we do not accept pull requests on a stable branch. Please raise PR on an appropriate hotfix branch.
https://github.com/frappe/erpnext/wiki/Pull-Request-Checklist#which-branch
<<<<<<< HEAD
- name: Auto-close PRs on pre-release branch
conditions:
- base=version-13-pre-release
@@ -31,6 +42,8 @@ pull_request_rules:
@{{author}}, pre-release branch is not maintained anymore. Releases are directly done by merging hotfix branch to stable branches.
=======
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
- name: backport to develop
conditions:
- label="backport develop"
@@ -51,6 +64,7 @@ pull_request_rules:
assignees:
- "{{ author }}"
<<<<<<< HEAD
- name: backport to version-14-pre-release
conditions:
- label="backport version-14-pre-release"
@@ -58,6 +72,15 @@ pull_request_rules:
backport:
branches:
- version-14-pre-release
=======
- name: backport to version-15-hotfix
conditions:
- label="backport version-15-hotfix"
actions:
backport:
branches:
- version-15-hotfix
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
assignees:
- "{{ author }}"
@@ -71,6 +94,7 @@ pull_request_rules:
assignees:
- "{{ author }}"
<<<<<<< HEAD
- name: backport to version-13-pre-release
conditions:
- label="backport version-13-pre-release"
@@ -100,6 +124,8 @@ pull_request_rules:
- version-12-pre-release
assignees:
- "{{ author }}"
=======
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
- name: Automatic merge on CI success and review
conditions:

View File

@@ -34,6 +34,7 @@ repos:
.*boilerplate.*|
erpnext/public/js/controllers/.*|
erpnext/templates/pages/order.js|
<<<<<<< HEAD
erpnext/templates/includes/.*|
.*/supplier_quotation.js|
.*/sales_taxes_and_charges_template.js|
@@ -63,6 +64,27 @@ repos:
.*/stock_entry.js|
.*/purchase_order.js|
.*/loan_write_off.js
=======
erpnext/templates/includes/.*
)$
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v8.44.0
hooks:
- id: eslint
types_or: [javascript]
args: ['--quiet']
# Ignore any files that might contain jinja / bundles
exclude: |
(?x)^(
erpnext/public/dist/.*|
cypress/.*|
.*node_modules.*|
.*boilerplate.*|
erpnext/public/js/controllers/.*|
erpnext/templates/pages/order.js|
erpnext/templates/includes/.*
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
)$
- repo: https://github.com/astral-sh/ruff-pre-commit

View File

@@ -1,5 +1,9 @@
{
<<<<<<< HEAD
"branches": ["version-14"],
=======
"branches": ["version-13"],
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"plugins": [
"@semantic-release/commit-analyzer", {
"preset": "angular",
@@ -10,7 +14,11 @@
"@semantic-release/release-notes-generator",
[
"@semantic-release/exec", {
<<<<<<< HEAD
"prepareCmd": 'sed -ir -E "s/\"[0-9]+\.[0-9]+\.[0-9]+\"/\"${nextRelease.version}\"/" erpnext/__init__.py'
=======
"prepareCmd": 'sed -ir "s/[0-9]*\.[0-9]*\.[0-9]*/${nextRelease.version}/" erpnext/__init__.py'
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
}
],
[
@@ -21,4 +29,8 @@
],
"@semantic-release/github"
]
<<<<<<< HEAD
}
=======
}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)

0
.semgrepignore Normal file
View File

View File

@@ -3,12 +3,20 @@
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
<<<<<<< HEAD
erpnext/accounts/ @deepeshgarg007 @ruthra-kumar
erpnext/assets/ @khushi8112 @deepeshgarg007
erpnext/loan_management/ @deepeshgarg007
erpnext/regional @deepeshgarg007 @ruthra-kumar
erpnext/selling @deepeshgarg007 @ruthra-kumar
erpnext/support/ @deepeshgarg007
=======
erpnext/accounts/ @ruthra-kumar
erpnext/assets/ @khushi8112
erpnext/regional @ruthra-kumar
erpnext/selling @ruthra-kumar
erpnext/support/ @ruthra-kumar
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
pos*
erpnext/buying/ @rohitwaghchaure
@@ -18,8 +26,15 @@ erpnext/quality_management/ @rohitwaghchaure
erpnext/stock/ @rohitwaghchaure
erpnext/subcontracting @rohitwaghchaure
<<<<<<< HEAD
erpnext/controllers/ @deepeshgarg007 @rohitwaghchaure
erpnext/patches/ @deepeshgarg007
.github/ @deepeshgarg007
=======
erpnext/controllers/ @ruthra-kumar @rohitwaghchaure
erpnext/patches/ @ruthra-kumar
.github/ @ruthra-kumar
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
pyproject.toml @akhilnarang

View File

@@ -7,8 +7,12 @@
<p>ERP made simple</p>
</p>
<<<<<<< HEAD
[![CI](https://github.com/frappe/erpnext/actions/workflows/server-tests.yml/badge.svg?branch=develop)](https://github.com/frappe/erpnext/actions/workflows/server-tests.yml)
[![UI](https://github.com/erpnext/erpnext_ui_tests/actions/workflows/ui-tests.yml/badge.svg?branch=develop&event=schedule)](https://github.com/erpnext/erpnext_ui_tests/actions/workflows/ui-tests.yml)
=======
[![CI](https://github.com/frappe/erpnext/actions/workflows/server-tests-mariadb.yml/badge.svg?event=schedule)](https://github.com/frappe/erpnext/actions/workflows/server-tests-mariadb.yml)
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
[![Open Source Helpers](https://www.codetriage.com/frappe/erpnext/badges/users.svg)](https://www.codetriage.com/frappe/erpnext)
[![codecov](https://codecov.io/gh/frappe/erpnext/branch/develop/graph/badge.svg?token=0TwvyUg3I5)](https://codecov.io/gh/frappe/erpnext)
[![docker pulls](https://img.shields.io/docker/pulls/frappe/erpnext-worker.svg)](https://hub.docker.com/r/frappe/erpnext-worker)
@@ -65,7 +69,11 @@ New passwords will be created for the ERPNext "Administrator" user, the MariaDB
1. [Frappe School](https://frappe.school) - Learn Frappe Framework and ERPNext from the various courses by the maintainers or from the community.
2. [Official documentation](https://docs.erpnext.com/) - Extensive documentation for ERPNext.
3. [Discussion Forum](https://discuss.erpnext.com/) - Engage with community of ERPNext users and service providers.
<<<<<<< HEAD
4. [Telegram Group](https://t.me/erpnexthelp) - Get instant help from huge community of users.
=======
4. [Telegram Group](https://erpnext_public.t.me) - Get instant help from huge community of users.
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
## Contributing
@@ -73,8 +81,11 @@ New passwords will be created for the ERPNext "Administrator" user, the MariaDB
1. [Issue Guidelines](https://github.com/frappe/erpnext/wiki/Issue-Guidelines)
1. [Report Security Vulnerabilities](https://erpnext.com/security)
1. [Pull Request Requirements](https://github.com/frappe/erpnext/wiki/Contribution-Guidelines)
<<<<<<< HEAD
1. [Translations](https://translate.erpnext.com)
=======
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
## License

3
babel_extractors.csv Normal file
View File

@@ -0,0 +1,3 @@
**/setup/setup_wizard/data/uom_data.json,erpnext.gettext.extractors.uom_data.extract
**/setup/doctype/incoterm/incoterms.csv,erpnext.gettext.extractors.incoterms.extract
**/setup/setup_wizard/data/*.txt,erpnext.gettext.extractors.lines_from_txt_file.extract
1 **/setup/setup_wizard/data/uom_data.json erpnext.gettext.extractors.uom_data.extract
2 **/setup/doctype/incoterm/incoterms.csv erpnext.gettext.extractors.incoterms.extract
3 **/setup/setup_wizard/data/*.txt erpnext.gettext.extractors.lines_from_txt_file.extract

10
crowdin.yml Normal file
View File

@@ -0,0 +1,10 @@
files:
- source: /erpnext/locale/main.pot
translation: /erpnext/locale/%two_letters_code%.po
pull_request_title: "fix: sync translations from crowdin"
pull_request_labels:
- translation
pull_request_reviewers:
- barredterra # change to your GitHub username if you copied this file
commit_message: "fix: %language% translations"
append_commit_message: false

View File

@@ -1,9 +1,19 @@
import functools
import inspect
<<<<<<< HEAD
import frappe
__version__ = "14.67.1"
=======
from typing import TypeVar
import frappe
from frappe.model.document import Document
from frappe.utils.user import is_website_user
__version__ = "16.0.0-dev"
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
def get_default_company(user=None):
@@ -149,3 +159,47 @@ def allow_regional(fn):
return frappe.get_attr(overrides[function_path][-1])(*args, **kwargs)
return caller
<<<<<<< HEAD
=======
def check_app_permission():
if frappe.session.user == "Administrator":
return True
if is_website_user():
return False
return True
T = TypeVar("T")
def normalize_ctx_input(T: type) -> callable:
"""
Normalizes the first argument (ctx) of the decorated function by:
- Converting Document objects to dictionaries
- Parsing JSON strings
- Casting the result to the specified type T
"""
def decorator(func: callable):
# conserve annotations for frappe.utils.typing_validations
@functools.wraps(func, assigned=(a for a in functools.WRAPPER_ASSIGNMENTS if a != "__annotations__"))
def wrapper(ctx: T | Document | dict | str, *args, **kwargs):
if isinstance(ctx, Document):
ctx = T(**ctx.as_dict())
elif isinstance(ctx, dict):
ctx = T(**ctx)
else:
ctx = T(**frappe.parse_json(ctx))
return func(ctx, *args, **kwargs)
# set annotations from function
wrapper.__annotations__.update({k: v for k, v in func.__annotations__.items() if k != "ctx"})
return wrapper
return decorator
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)

View File

@@ -76,7 +76,11 @@ def get(
def build_result(account, dates, gl_entries):
result = [[getdate(date), 0.0] for date in dates]
<<<<<<< HEAD
root_type = frappe.db.get_value("Account", account, "root_type")
=======
root_type = frappe.get_cached_value("Account", account, "root_type")
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
# start with the first date
date_index = 0

View File

@@ -220,7 +220,11 @@ def calculate_monthly_amount(
if amount + already_booked_amount_in_account_currency > item.net_amount:
amount = item.net_amount - already_booked_amount_in_account_currency
<<<<<<< HEAD
if not (get_first_day(start_date) == start_date and get_last_day(end_date) == end_date):
=======
if get_first_day(start_date) != start_date or get_last_day(end_date) != end_date:
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
partial_month = flt(date_diff(end_date, start_date)) / flt(
date_diff(get_last_day(end_date), get_first_day(start_date))
)

View File

@@ -20,10 +20,16 @@ frappe.ui.form.on("Account", {
frm.toggle_display("account_name", frm.is_new());
// hide fields if group
<<<<<<< HEAD
frm.toggle_display(["account_type", "tax_rate"], cint(frm.doc.is_group) == 0);
// disable fields
frm.toggle_enable(["is_group", "company"], false);
=======
frm.toggle_display(["tax_rate"], cint(frm.doc.is_group) == 0);
frm.toggle_enable(["is_group", "company", "account_number"], frm.is_new());
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
if (cint(frm.doc.is_group) == 0) {
frm.toggle_display("freeze_account", frm.doc.__onload && frm.doc.__onload.can_freeze_account);

View File

@@ -55,8 +55,12 @@
"fieldtype": "Data",
"in_list_view": 1,
"in_standard_filter": 1,
<<<<<<< HEAD
"label": "Account Number",
"read_only": 1
=======
"label": "Account Number"
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
},
{
"default": "0",
@@ -65,6 +69,11 @@
"label": "Is Group"
},
{
<<<<<<< HEAD
=======
"fetch_from": "parent_account.company",
"fetch_if_empty": 1,
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"fieldname": "company",
"fieldtype": "Link",
"in_standard_filter": 1,
@@ -72,7 +81,10 @@
"oldfieldname": "company",
"oldfieldtype": "Link",
"options": "Company",
<<<<<<< HEAD
"read_only": 1,
=======
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"remember_last_selected_value": 1,
"reqd": 1
},
@@ -108,6 +120,10 @@
"fieldname": "parent_account",
"fieldtype": "Link",
"ignore_user_permissions": 1,
<<<<<<< HEAD
=======
"in_preview": 1,
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"label": "Parent Account",
"oldfieldname": "parent_account",
"oldfieldtype": "Link",
@@ -123,7 +139,12 @@
"label": "Account Type",
"oldfieldname": "account_type",
"oldfieldtype": "Select",
<<<<<<< HEAD
"options": "\nAccumulated Depreciation\nAsset Received But Not Billed\nBank\nCash\nChargeable\nCapital Work in Progress\nCost of Goods Sold\nDepreciation\nEquity\nExpense Account\nExpenses Included In Asset Valuation\nExpenses Included In Valuation\nFixed Asset\nIncome Account\nPayable\nReceivable\nRound Off\nStock\nStock Adjustment\nStock Received But Not Billed\nService Received But Not Billed\nTax\nTemporary"
=======
"options": "\nAccumulated Depreciation\nAsset Received But Not Billed\nBank\nCash\nChargeable\nCapital Work in Progress\nCost of Goods Sold\nCurrent Asset\nCurrent Liability\nDepreciation\nDirect Expense\nDirect Income\nEquity\nExpense Account\nExpenses Included In Asset Valuation\nExpenses Included In Valuation\nFixed Asset\nIncome Account\nIndirect Expense\nIndirect Income\nLiability\nPayable\nReceivable\nRound Off\nRound Off for Opening\nStock\nStock Adjustment\nStock Received But Not Billed\nService Received But Not Billed\nTax\nTemporary",
"search_index": 1
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
},
{
"description": "Rate at which this tax is applied",
@@ -192,7 +213,11 @@
"idx": 1,
"is_tree": 1,
"links": [],
<<<<<<< HEAD
"modified": "2023-04-11 16:08:46.983677",
=======
"modified": "2024-08-19 15:19:11.095045",
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"modified_by": "Administrator",
"module": "Accounts",
"name": "Account",
@@ -243,14 +268,22 @@
"read": 1,
"report": 1,
"role": "Accounts Manager",
<<<<<<< HEAD
"set_user_permissions": 1,
=======
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"share": 1,
"write": 1
}
],
"search_fields": "account_number",
"show_name_in_global_search": 1,
<<<<<<< HEAD
"sort_field": "modified",
=======
"show_preview_popup": 1,
"sort_field": "creation",
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"sort_order": "ASC",
"states": [],
"track_changes": 1

View File

@@ -23,6 +23,69 @@ class InvalidAccountMergeError(frappe.ValidationError):
class Account(NestedSet):
<<<<<<< HEAD
=======
# begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block.
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from frappe.types import DF
account_currency: DF.Link | None
account_name: DF.Data
account_number: DF.Data | None
account_type: DF.Literal[
"",
"Accumulated Depreciation",
"Asset Received But Not Billed",
"Bank",
"Cash",
"Chargeable",
"Capital Work in Progress",
"Cost of Goods Sold",
"Current Asset",
"Current Liability",
"Depreciation",
"Direct Expense",
"Direct Income",
"Equity",
"Expense Account",
"Expenses Included In Asset Valuation",
"Expenses Included In Valuation",
"Fixed Asset",
"Income Account",
"Indirect Expense",
"Indirect Income",
"Liability",
"Payable",
"Receivable",
"Round Off",
"Round Off for Opening",
"Stock",
"Stock Adjustment",
"Stock Received But Not Billed",
"Service Received But Not Billed",
"Tax",
"Temporary",
]
balance_must_be: DF.Literal["", "Debit", "Credit"]
company: DF.Link
disabled: DF.Check
freeze_account: DF.Literal["No", "Yes"]
include_in_gross: DF.Check
is_group: DF.Check
lft: DF.Int
old_parent: DF.Data | None
parent_account: DF.Link
report_type: DF.Literal["", "Balance Sheet", "Profit and Loss"]
rgt: DF.Int
root_type: DF.Literal["", "Asset", "Liability", "Income", "Expense", "Equity"]
tax_rate: DF.Float
# end: auto-generated types
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
nsm_parent_field = "parent_account"
def on_update(self):
@@ -32,9 +95,13 @@ class Account(NestedSet):
super().on_update()
def onload(self):
<<<<<<< HEAD
frozen_accounts_modifier = frappe.db.get_value(
"Accounts Settings", "Accounts Settings", "frozen_accounts_modifier"
)
=======
frozen_accounts_modifier = frappe.db.get_single_value("Accounts Settings", "frozen_accounts_modifier")
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
if not frozen_accounts_modifier or frozen_accounts_modifier in frappe.get_roles():
self.set_onload("can_freeze_account", True)
@@ -44,6 +111,7 @@ class Account(NestedSet):
self.name = get_autoname_with_number(self.account_number, self.account_name, self.company)
def validate(self):
<<<<<<< HEAD
from erpnext.accounts.utils import validate_field_number
if frappe.local.flags.allow_unverified_charts:
@@ -51,6 +119,14 @@ class Account(NestedSet):
self.validate_parent()
self.validate_root_details()
validate_field_number("Account", self.name, self.account_number, self.company, "account_number")
=======
if frappe.local.flags.allow_unverified_charts:
return
self.validate_parent()
self.validate_parent_child_account_type()
self.validate_root_details()
self.validate_account_number()
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
self.validate_group_or_ledger()
self.set_root_and_report_type()
self.validate_mandatory()
@@ -60,10 +136,31 @@ class Account(NestedSet):
self.validate_root_company_and_sync_account_to_children()
self.validate_receivable_payable_account_type()
<<<<<<< HEAD
def validate_parent(self):
"""Fetch Parent Details and validate parent account"""
if self.parent_account:
par = frappe.db.get_value(
=======
def validate_parent_child_account_type(self):
if self.parent_account:
if self.account_type in [
"Direct Income",
"Indirect Income",
"Current Asset",
"Current Liability",
"Direct Expense",
"Indirect Expense",
]:
parent_account_type = frappe.db.get_value("Account", self.parent_account, ["account_type"])
if parent_account_type == self.account_type:
throw(_("Only Parent can be of type {0}").format(self.account_type))
def validate_parent(self):
"""Fetch Parent Details and validate parent account"""
if self.parent_account:
par = frappe.get_cached_value(
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"Account", self.parent_account, ["name", "is_group", "company"], as_dict=1
)
if not par:
@@ -87,7 +184,13 @@ class Account(NestedSet):
def set_root_and_report_type(self):
if self.parent_account:
<<<<<<< HEAD
par = frappe.db.get_value("Account", self.parent_account, ["report_type", "root_type"], as_dict=1)
=======
par = frappe.get_cached_value(
"Account", self.parent_account, ["report_type", "root_type"], as_dict=1
)
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
if par.report_type:
self.report_type = par.report_type
@@ -95,7 +198,11 @@ class Account(NestedSet):
self.root_type = par.root_type
if self.is_group:
<<<<<<< HEAD
db_value = frappe.db.get_value("Account", self.name, ["report_type", "root_type"], as_dict=1)
=======
db_value = self.get_doc_before_save()
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
if db_value:
if self.report_type != db_value.report_type:
frappe.db.sql(
@@ -126,12 +233,17 @@ class Account(NestedSet):
msg = _(
"There are ledger entries against this account. Changing {0} to non-{1} in live system will cause incorrect output in 'Accounts {2}' report"
).format(
<<<<<<< HEAD
frappe.bold("Account Type"), doc_before_save.account_type, doc_before_save.account_type
=======
frappe.bold(_("Account Type")), doc_before_save.account_type, doc_before_save.account_type
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
)
frappe.msgprint(msg)
self.add_comment("Comment", msg)
def validate_root_details(self):
<<<<<<< HEAD
# does not exists parent
if frappe.db.exists("Account", self.name):
if not frappe.db.get_value("Account", self.name, "parent_account"):
@@ -139,6 +251,15 @@ class Account(NestedSet):
if not self.parent_account and not self.is_group:
frappe.throw(_("The root account {0} must be a group").format(frappe.bold(self.name)))
=======
doc_before_save = self.get_doc_before_save()
if doc_before_save and not doc_before_save.parent_account:
throw(_("Root cannot be edited."), RootNotEditable)
if not self.parent_account and not self.is_group:
throw(_("The root account {0} must be a group").format(frappe.bold(self.name)))
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
def validate_root_company_and_sync_account_to_children(self):
# ignore validation while creating new compnay or while syncing to child companies
@@ -146,7 +267,13 @@ class Account(NestedSet):
return
ancestors = get_root_company(self.company)
if ancestors:
<<<<<<< HEAD
if frappe.get_value("Company", self.company, "allow_account_creation_against_child_company"):
=======
if frappe.get_cached_value(
"Company", self.company, "allow_account_creation_against_child_company"
):
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
return
if not frappe.db.get_value(
"Account", {"account_name": self.account_name, "company": ancestors[0]}, "name"
@@ -157,7 +284,11 @@ class Account(NestedSet):
if not descendants:
return
parent_acc_name_map = {}
<<<<<<< HEAD
parent_acc_name, parent_acc_number = frappe.db.get_value(
=======
parent_acc_name, parent_acc_number = frappe.get_cached_value(
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"Account", self.parent_account, ["account_name", "account_number"]
)
filters = {
@@ -178,6 +309,7 @@ class Account(NestedSet):
self.create_account_for_child_company(parent_acc_name_map, descendants, parent_acc_name)
def validate_group_or_ledger(self):
<<<<<<< HEAD
if self.get("__islocal"):
return
@@ -199,6 +331,30 @@ class Account(NestedSet):
)
if not frozen_accounts_modifier or frozen_accounts_modifier not in frappe.get_roles():
throw(_("You are not authorized to set Frozen value"))
=======
doc_before_save = self.get_doc_before_save()
if not doc_before_save or cint(doc_before_save.is_group) == cint(self.is_group):
return
if self.check_gle_exists():
throw(_("Account with existing transaction cannot be converted to ledger"))
elif self.is_group:
if self.account_type and not self.flags.exclude_account_type_check:
throw(_("Cannot covert to Group because Account Type is selected."))
elif self.check_if_child_exists():
throw(_("Account with child nodes cannot be set as ledger"))
def validate_frozen_accounts_modifier(self):
doc_before_save = self.get_doc_before_save()
if not doc_before_save or doc_before_save.freeze_account == self.freeze_account:
return
frozen_accounts_modifier = frappe.get_cached_value(
"Accounts Settings", "Accounts Settings", "frozen_accounts_modifier"
)
if not frozen_accounts_modifier or frozen_accounts_modifier not in frappe.get_roles():
throw(_("You are not authorized to set Frozen value"))
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
def validate_balance_must_be_debit_or_credit(self):
from erpnext.accounts.utils import get_balance_on
@@ -232,6 +388,25 @@ class Account(NestedSet):
if frappe.db.get_value("GL Entry", {"account": self.name}):
frappe.throw(_("Currency can not be changed after making entries using some other currency"))
<<<<<<< HEAD
=======
def validate_account_number(self, account_number=None):
if not account_number:
account_number = self.account_number
if account_number:
account_with_same_number = frappe.db.get_value(
"Account",
{"account_number": account_number, "company": self.company, "name": ["!=", self.name]},
)
if account_with_same_number:
frappe.throw(
_("Account Number {0} already used in account {1}").format(
account_number, account_with_same_number
)
)
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
def create_account_for_child_company(self, parent_acc_name_map, descendants, parent_acc_name):
for company in descendants:
company_bold = frappe.bold(company)
@@ -245,9 +420,15 @@ class Account(NestedSet):
)
# validate if parent of child company account to be added is a group
<<<<<<< HEAD
if frappe.db.get_value("Account", self.parent_account, "is_group") and not frappe.db.get_value(
"Account", parent_acc_name_map[company], "is_group"
):
=======
if frappe.get_cached_value(
"Account", self.parent_account, "is_group"
) and not frappe.get_cached_value("Account", parent_acc_name_map[company], "is_group"):
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
msg = _(
"While creating account for Child Company {0}, parent account {1} found as a ledger account."
).format(company_bold, parent_acc_name_bold)
@@ -385,6 +566,7 @@ def get_account_autoname(account_number, account_name, company):
return " - ".join(parts)
<<<<<<< HEAD
def validate_account_number(name, account_number, company):
if account_number:
account_with_same_number = frappe.db.get_value(
@@ -409,6 +591,19 @@ def update_account_number(name, account_name, account_number=None, from_descenda
# check if account exists in parent company
ancestors = get_ancestors_of("Company", account.company)
allow_independent_account_creation = frappe.get_value(
=======
@frappe.whitelist()
def update_account_number(name, account_name, account_number=None, from_descendant=False):
account = frappe.get_cached_doc("Account", name)
if not account:
return
old_acc_name, old_acc_number = account.account_name, account.account_number
# check if account exists in parent company
ancestors = get_ancestors_of("Company", account.company)
allow_independent_account_creation = frappe.get_cached_value(
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"Company", account.company, "allow_account_creation_against_child_company"
)
@@ -438,7 +633,11 @@ def update_account_number(name, account_name, account_number=None, from_descenda
frappe.throw(message, title=_("Rename Not Allowed"))
<<<<<<< HEAD
validate_account_number(name, account_number, account.company)
=======
account.validate_account_number(account_number)
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
if account_number:
frappe.db.set_value("Account", name, "account_number", account_number.strip())
else:

View File

@@ -81,7 +81,11 @@ frappe.treeview_settings["Account"] = {
// show Dr if positive since balance is calculated as debit - credit else show Cr
const balance = account.balance_in_account_currency || account.balance;
<<<<<<< HEAD
const dr_or_cr = balance > 0 ? "Dr" : "Cr";
=======
const dr_or_cr = balance > 0 ? __("Dr") : __("Cr");
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
const format = (value, currency) => format_currency(Math.abs(value), currency);
if (account.balance !== undefined) {
@@ -222,7 +226,11 @@ frappe.treeview_settings["Account"] = {
"General Ledger",
"Balance Sheet",
"Profit and Loss Statement",
<<<<<<< HEAD
"Cash Flow Statement",
=======
"Cash Flow",
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"Accounts Payable",
"Accounts Receivable",
]) {

View File

@@ -55,7 +55,11 @@ def create_charts(
"account_number": account_number,
"account_type": child.get("account_type"),
"account_currency": child.get("account_currency")
<<<<<<< HEAD
or frappe.db.get_value("Company", company, "default_currency"),
=======
or frappe.get_cached_value("Company", company, "default_currency"),
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"tax_rate": child.get("tax_rate"),
}
)
@@ -75,7 +79,11 @@ def create_charts(
# after all accounts are already inserted.
frappe.local.flags.ignore_update_nsm = True
_import_accounts(chart, None, None, root_account=True)
<<<<<<< HEAD
rebuild_tree("Account", "parent_account")
=======
rebuild_tree("Account")
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
frappe.local.flags.ignore_update_nsm = False
@@ -160,7 +168,11 @@ def get_charts_for_country(country, with_standard=False):
) or frappe.local.flags.allow_unverified_charts:
charts.append(content["name"])
<<<<<<< HEAD
country_code = frappe.db.get_value("Country", country, "code")
=======
country_code = frappe.get_cached_value("Country", country, "code")
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
if country_code:
folders = ("verified",)
if frappe.local.flags.allow_unverified_charts:
@@ -232,6 +244,11 @@ def build_account_tree(tree, parent, all_accounts):
tree[child.account_name]["account_type"] = child.account_type
if child.tax_rate:
tree[child.account_name]["tax_rate"] = child.tax_rate
<<<<<<< HEAD
=======
if child.account_currency:
tree[child.account_name]["account_currency"] = child.account_currency
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
if not parent:
tree[child.account_name]["root_type"] = child.root_type

View File

@@ -2,6 +2,7 @@
"country_code": "at",
"name": "Austria - Chart of Accounts",
"tree": {
<<<<<<< HEAD
"Summe Abschreibungen und Aufwendungen": {
"7010 bis 7080 Abschreibungen auf das Anlageverm\u00f6gen (ausgenommen Finanzanlagen)": {},
"7100 bis 7190 Sonstige Steuern": {
@@ -163,10 +164,148 @@
},
"Verbindlichkeiten gegen\u00fcber Gesellschaften": {},
"Verrechnung Finanzamt": {
=======
"Klasse 0 Aktiva: Anlageverm\u00f6gen": {
"0100 Konzessionen ": {"account_type": "Fixed Asset"},
"0110 Patentrechte und Lizenzen ": {"account_type": "Fixed Asset"},
"0120 Datenverarbeitungsprogramme ": {"account_type": "Fixed Asset"},
"0130 Marken, Warenzeichen und Musterschutzrechte, sonstige Urheberrechte ": {"account_type": "Fixed Asset"},
"0140 Pacht- und Mietrechte ": {"account_type": "Fixed Asset"},
"0150 Bezugs- und ähnliche Rechte ": {"account_type": "Fixed Asset"},
"0160 Geschäfts-/Firmenwert ": {"account_type": "Fixed Asset"},
"0170 Umgründungsmehrwert ": {"account_type": "Fixed Asset"},
"0180 Geleistete Anzahlungen auf immaterielle Vermögensgegenstände": {"account_type": "Fixed Asset"},
"0190 Kumulierte Abschreibungen zu immateriellen Vermögensgegenständen ": {"account_type": "Fixed Asset"},
"0200 Unbebaute Grundstücke, soweit nicht landwirtschaftlich genutzt ": {"account_type": "Fixed Asset"},
"0210 Bebaute Grundstücke (Grundwert) ": {"account_type": "Fixed Asset"},
"0220 Landwirtschaftlich genutzte Grundstücke ": {"account_type": "Fixed Asset"},
"0230 Grundstücksgleiche Rechte ": {"account_type": "Fixed Asset"},
"0300 Betriebs- und Geschäftsgebäude auf eigenem Grund ": {"account_type": "Fixed Asset"},
"0310 Wohn- und Sozialgebäude auf eigenem Grund ": {"account_type": "Fixed Asset"},
"0320 Betriebs- und Geschäftsgebäude auf fremdem Grund ": {"account_type": "Fixed Asset"},
"0330 Wohn- und Sozialgebäude auf fremdem Grund ": {"account_type": "Fixed Asset"},
"0340 Grundstückseinrichtungen auf eigenem Grund ": {"account_type": "Fixed Asset"},
"0350 Grundstückseinrichtungen auf fremdem Grund ": {"account_type": "Fixed Asset"},
"0360 Bauliche Investitionen in fremden (gepachteten) Betriebs- und Geschäftsgebäuden": {"account_type": "Fixed Asset"},
"0370 Bauliche Investitionen in fremden (gepachteten) Wohn- und Sozialgebäuden": {"account_type": "Fixed Asset"},
"0390 Kumulierte Abschreibungen zu Grundstücken ": {"account_type": "Fixed Asset"},
"0400 Maschinen und Geräte ": {"account_type": "Fixed Asset"},
"0500 Maschinenwerkzeuge ": {"account_type": "Fixed Asset"},
"0510 Allgemeine Werkzeuge und Handwerkzeuge ": {"account_type": "Fixed Asset"},
"0520 Prototypen, Formen, Modelle ": {"account_type": "Fixed Asset"},
"0530 Andere Erzeugungshilfsmittel (auch Softwarewerkzeuge)": {"account_type": "Fixed Asset"},
"0540 Hebezeuge und Montageanlagen ": {"account_type": "Fixed Asset"},
"0550 Geringwertige Vermögensgegenstände, soweit im Erzeugungsprozess ": {"account_type": "Fixed Asset"},
"0560 Festwerte technische Anlagen und Maschinen ": {"account_type": "Fixed Asset"},
"0590 Kumulierte Abschreibungen zu technischen Anlagen und Maschinen ": {"account_type": "Fixed Asset"},
"0600 Betriebs- und Geschäftsausstattung, soweit nicht gesondert angeführt ": {"account_type": "Fixed Asset"},
"0610 Andere Anlagen, soweit nicht gesondert angeführt ": {"account_type": "Fixed Asset"},
"0620 Büromaschinen, EDV-Anlagen ": {"account_type": "Fixed Asset"},
"0630 PKW und Kombis ": {"account_type": "Fixed Asset"},
"0640 LKW ": {"account_type": "Fixed Asset"},
"0650 Andere Beförderungsmittel ": {"account_type": "Fixed Asset"},
"0660 Gebinde ": {"account_type": "Fixed Asset"},
"0670 Geringwertige Vermögensgegenstände, soweit nicht im Erzeugungssprozess verwendet": {"account_type": "Fixed Asset"},
"0680 Festwerte außer technische Anlagen und Maschinen ": {"account_type": "Fixed Asset"},
"0690 Kumulierte Abschreibungen zu anderen Anlagen, Betriebs- und Geschäftsausstattung": {"account_type": "Fixed Asset"},
"0700 Geleistete Anzahlungen auf Sachanlagen ": {"account_type": "Fixed Asset"},
"0710 Anlagen in Bau ": {"account_type": "Fixed Asset"},
"0790 Kumulierte Abschreibungen zu geleisteten Anzahlungen auf Sachanlagen ": {"account_type": "Fixed Asset"},
"0800 Anteile an verbundenen Unternehmen ": {"account_type": "Fixed Asset"},
"0810 Beteiligungen an Gemeinschaftsunternehmen ": {"account_type": "Fixed Asset"},
"0820 Beteiligungen an angeschlossenen (assoziierten) Unternehmen ": {"account_type": "Fixed Asset"},
"0830 Eigene Anteile, Anteile an herrschenden oder mit Mehrheit beteiligten ": {"account_type": "Fixed Asset"},
"0840 Sonstige Beteiligungen ": {"account_type": "Fixed Asset"},
"0850 Ausleihungen an verbundene Unternehmen ": {"account_type": "Fixed Asset"},
"0860 Ausleihungen an Unternehmen mit Beteiligungsverhältnis": {"account_type": "Fixed Asset"},
"0870 Ausleihungen an Gesellschafter ": {"account_type": "Fixed Asset"},
"0880 Sonstige Ausleihungen ": {"account_type": "Fixed Asset"},
"0890 Anteile an Kapitalgesellschaften ohne Beteiligungscharakter ": {"account_type": "Fixed Asset"},
"0900 Anteile an Personengesellschaften ohne Beteiligungscharakter ": {"account_type": "Fixed Asset"},
"0910 Genossenschaftsanteile ohne Beteiligungscharakter ": {"account_type": "Fixed Asset"},
"0920 Anteile an Investmentfonds ": {"account_type": "Fixed Asset"},
"0930 Festverzinsliche Wertpapiere des Anlagevermögens ": {"account_type": "Fixed Asset"},
"0980 Geleistete Anzahlungen auf Finanzanlagen ": {"account_type": "Fixed Asset"},
"0990 Kumulierte Abschreibungen zu Finanzanlagen ": {"account_type": "Fixed Asset"},
"root_type": "Asset"
},
"Klasse 1 Aktiva: Vorr\u00e4te": {
"1000 Bezugsverrechnung": {"account_type": "Stock"},
"1100 Rohstoffe": {"account_type": "Stock"},
"1200 Bezogene Teile": {"account_type": "Stock"},
"1300 Hilfsstoffe": {"account_type": "Stock"},
"1350 Betriebsstoffe": {"account_type": "Stock"},
"1360 Vorrat Energietraeger": {"account_type": "Stock"},
"1400 Unfertige Erzeugnisse": {"account_type": "Stock"},
"1500 Fertige Erzeugnisse": {"account_type": "Stock"},
"1600 Handelswarenvorrat": {"account_type": "Stock Received But Not Billed"},
"1700 Noch nicht abrechenbare Leistungen": {"account_type": "Stock"},
"1800 Geleistete Anzahlungen": {"account_type": "Stock"},
"1900 Wertberichtigungen": {"account_type": "Stock"},
"root_type": "Asset"
},
"Klasse 3 Passiva: Verbindlichkeiten": {
"3000 Allgemeine Verbindlichkeiten (Schuld)": {"account_type": "Payable"},
"3010 R\u00fcckstellungen f\u00fcr Pensionen": {"account_type": "Payable"},
"3020 Steuerr\u00fcckstellungen": {"account_type": "Tax"},
"3041 Sonstige R\u00fcckstellungen": {"account_type": "Payable"},
"3110 Verbindlichkeiten gegen\u00fcber Bank": {"account_type": "Payable"},
"3150 Verbindlichkeiten Darlehen": {"account_type": "Payable"},
"3185 Verbindlichkeiten Kreditkarte": {"account_type": "Payable"},
"3380 Verbindlichkeiten aus der Annahme gezogener Wechsel u. d. Ausstellungen eigener Wechsel": {
"account_type": "Payable"
},
"3400 Verbindlichkeiten gegen\u00fc. verb. Untern., Verbindl. gegen\u00fc. Untern., mit denen eine Beteiligungsverh\u00e4lnis besteht": {},
"3460 Verbindlichkeiten gegenueber Gesellschaftern": {"account_type": "Payable"},
"3470 Einlagen stiller Gesellschafter": {"account_type": "Payable"},
"3585 Verbindlichkeiten Lohnsteuer": {"account_type": "Tax"},
"3590 Verbindlichkeiten Kommunalabgaben": {"account_type": "Tax"},
"3595 Verbindlichkeiten Dienstgeberbeitrag": {"account_type": "Tax"},
"3600 Verbindlichkeiten Sozialversicherung": {"account_type": "Payable"},
"3640 Verbindlichkeiten Loehne und Gehaelter": {"account_type": "Payable"},
"3700 Sonstige Verbindlichkeiten": {"account_type": "Payable"},
"3900 Passive Rechnungsabgrenzungsposten": {"account_type": "Payable"},
"3100 Anleihen (einschlie\u00dflich konvertibler)": {"account_type": "Payable"},
"3200 Erhaltene Anzahlungen auf Bestellungen": {"account_type": "Payable"},
"3040 R\u00fcckstellungen f\u00fcr Abfertigung": {"account_type": "Payable"},
"3530 USt. \u00a719 (reverse charge)": {
"account_type": "Tax"
},
"3500 Verbindlichkeiten aus Umsatzsteuer": {"account_type": "Tax"},
"3580 Umsatzsteuer Zahllast": {
"account_type": "Tax"
},
"3510 Umsatzsteuer Inland 20%": {
"account_type": "Tax"
},
"3515 Umsatzsteuer Inland 10%": {
"account_type": "Tax"
},
"3520 Umsatzsteuer aus i.g. Erwerb 20%": {
"account_type": "Tax"
},
"3525 Umsatzsteuer aus i.g. Erwerb 10%": {
"account_type": "Tax"
},
"3560 Umsatzsteuer-Evidenzkonto f\u00fcr erhaltene Anzahlungen auf Bestellungen": {},
"3360 Verbindlichkeiten aus Lieferungen u. Leistungen EU": {
"account_type": "Payable"
},
"3000 Verbindlichkeiten aus Lieferungen u. Leistungen Inland": {
"account_type": "Payable"
},
"3370 Verbindlichkeiten aus Lieferungen u. Leistungen sonst. Ausland": {
"account_type": "Payable"
},
"3400 Verbindlichkeiten gegen\u00fcber verbundenen Unternehmen": {},
"3570 Verrechnung Finanzamt": {
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"account_type": "Tax"
},
"root_type": "Liability"
},
<<<<<<< HEAD
"Summe Kontoklasse 0 Anlageverm\u00f6gen": {
"44 bis 49 Sonstige Maschinen und maschinelle Anlagen": {},
"920 bis 930 Festverzinsliche Wertpapiere des Anlageverm\u00f6gens": {},
@@ -396,3 +535,300 @@
}
}
}
=======
"Klasse 2 Aktiva: Umlaufverm\u00f6gen, Rechnungsabgrenzungen": {
"2030 Forderungen aus Lieferungen und Leistungen Inland (0% USt, umsatzsteuerfrei)": {
"account_type": "Receivable"
},
"2010 Forderungen aus Lieferungen und Leistungen Inland (10% USt, umsatzsteuerfrei)": {
"account_type": "Receivable"
},
"2000 Forderungen aus Lieferungen und Leistungen Inland (20% USt, umsatzsteuerfrei)": {
"account_type": "Receivable"
},
"2040 Forderungen aus Lieferungen und Leistungen Inland (sonstiger USt-Satz)": {
"account_type": "Receivable"
},
"2100 Forderungen aus Lieferungen und Leistungen EU": {
"account_type": "Receivable"
},
"2150 Forderungen aus Lieferungen und Leistungen Ausland (Nicht-EU)": {
"account_type": "Receivable"
},
"2200 Forderungen gegen\u00fcber verbundenen Unternehmen": {
"account_type": "Receivable"
},
"2250 Forderungen gegen\u00fcber Unternehmen, mit denen ein Beteiligungsverh\u00e4ltnis besteht": {
"account_type": "Receivable"
},
"2300 Sonstige Forderungen und Verm\u00f6gensgegenst\u00e4nde": {
"account_type": "Receivable"
},
"2630 Sonstige Wertpapiere": {
"account_type": "Stock"
},
"2750 Kassenbest\u00e4nde in Fremdw\u00e4hrung": {
"account_type": "Cash"
},
"2900 Aktive Rechnungsabrenzungsposten": {
"account_type": "Receivable"
},
"2600 Anteile an verbundenen Unternehmen": {
"account_type": "Equity"
},
"2680 Besitzwechsel ohne Forderungen": {
"account_type": "Receivable"
},
"2950 Aktiviertes Disagio": {
"account_type": "Receivable"
},
"2610 Eigene Anteile und Wertpapiere an mit Mehrheit beteiligten Unternehmen": {
"account_type": "Receivable"
},
"2570 Einfuhrumsatzsteuer (bezahlt)": {"account_type": "Tax"},
"2460 Eingeforderte aber noch nicht eingezahlte Einlagen": {
"account_type": "Receivable"
},
"2180 Einzelwertberichtigungen zu Forderungen aus Lief. und Leist. Ausland": {
"account_type": "Receivable"
},
"2130 Einzelwertberichtigungen zu Forderungen aus Lief. und Leist. EU": {
"account_type": "Receivable"
},
"2080 Einzelwertberichtigungen zu Forderungen aus Lief. und Leist. Inland ": {
"account_type": "Receivable"
},
"2270 Einzelwertberichtigungen zu Forderungen gegen\u00fcber Unternehmen mit denen ein Beteiligungsverh\u00e4ltnis besteht": {
"account_type": "Receivable"
},
"2230 Einzelwertberichtigungen zu Forderungen gegen\u00fcber verbundenen Unternehmen": {
"account_type": "Receivable"
},
"2470 Einzelwertberichtigungen zu sonstigen Forderungen und Verm\u00f6gensgegenst\u00e4nden": {
"account_type": "Receivable"
},
"2700 Kassenbestand": {
"account_type": "Cash"
},
"2190 Pauschalwertberichtigungen zu Forderungen aus Lief. und Leist. sonstiges Ausland": {
"account_type": "Receivable"
},
"2130 Pauschalwertberichtigungen zu Forderungen aus Lief. und Leist. EU": {
"account_type": "Receivable"
},
"2100 Pauschalwertberichtigungen zu Forderungen aus Lief. und Leist. Inland ": {
"account_type": "Receivable"
},
"2280 Pauschalwertberichtigungen zu Forderungen gegen\u00fcber Unternehmen mit denen ein Beteiligungsverh\u00e4ltnis besteht": {
"account_type": "Receivable"
},
"2240 Pauschalwertberichtigungen zu Forderungen gegen\u00fcber verbundenen Unternehmen": {
"account_type": "Receivable"
},
"2480 Pauschalwertberichtigungen zu sonstigen Forderungen und Verm\u00f6gensgegenst\u00e4nden": {
"account_type": "Receivable"
},
"2740 Postwertzeichen": {
"account_type": "Cash"
},
"2780 Schecks in Euro": {
"account_type": "Cash"
},
"2800 Guthaben bei Bank": {
"account_type": "Bank"
},
"2801 Guthaben bei Bank - Sparkonto": {
"account_type": "Bank"
},
"2810 Guthaben bei Paypal": {
"account_type": "Bank"
},
"2930 Mietvorauszahlungen": {
"account_type": "Receivable"
},
"2980 Abgrenzung latenter Steuern": {
"account_type": "Receivable"
},
"2500 Vorsteuer": {
"account_type": "Receivable"
},
"2510 Vorsteuer Inland 10%": {
"account_type": "Tax"
},
"2895 Schwebende Geldbewegugen": {
"account_type": "Bank"
},
"2513 Vorsteuer Inland 5%": {
"account_type": "Tax"
},
"2515 Vorsteuer Inland 20%": {
"account_type": "Tax"
},
"2520 Vorsteuer aus innergemeinschaftlichem Erwerb 10%": {
"account_type": "Tax"
},
"2525 Vorsteuer aus innergemeinschaftlichem Erwerb 20%": {
"account_type": "Tax"
},
"2530 Vorsteuer \u00a719/Art 19 ( reverse charge ) ": {
"account_type": "Tax"
},
"2690 Wertberichtigungen zu Wertpapieren und Anteilen": {
"account_type": "Receivable"
},
"root_type": "Asset"
},
"Klasse 4: Betriebliche Erträge": {
"4000 Erlöse 20 %": {"account_type": "Income Account"},
"4020 Erl\u00f6se 0 % steuerbefreit": {"account_type": "Income Account"},
"4010 Erl\u00f6se 10 %": {"account_type": "Income Account"},
"4030 Erl\u00f6se 13 %": {"account_type": "Income Account"},
"4040 Erl\u00f6se 0 % innergemeinschaftliche Lieferungen": {"account_type": "Income Account"},
"4400 Erl\u00f6sreduktion 0 % steuerbefreit": {"account_type": "Expense Account"},
"4410 Erl\u00f6sreduktion 10 %": {"account_type": "Expense Account"},
"4420 Erl\u00f6sreduktion 20 %": {"account_type": "Expense Account"},
"4430 Erl\u00f6sreduktion 13 %": {"account_type": "Expense Account"},
"4440 Erl\u00f6sreduktion 0 % innergemeinschaftliche Lieferungen": {"account_type": "Expense Account"},
"4500 Ver\u00e4nderungen des Bestandes an fertigen und unfertigen Erzeugn. sowie an noch nicht abrechenbaren Leistungen": {"account_type": "Income Account"},
"4580 Aktivierte Eigenleistungen": {"account_type": "Income Account"},
"4600 Erl\u00f6se aus dem Abgang vom Anlageverm\u00f6gen, ausgen. Finanzanlagen": {"account_type": "Income Account"},
"4630 Ertr\u00e4ge aus dem Abgang vom Anlageverm\u00f6gen, ausgen. Finanzanlagen": {"account_type": "Income Account"},
"4660 Ertr\u00e4ge aus der Zuschreibung zum Anlageverm\u00f6gen, ausgen. Finanzanlagen": {"account_type": "Income Account"},
"4700 Ertr\u00e4ge aus der Aufl\u00f6sung von R\u00fcckstellungen": {"account_type": "Income Account"},
"4800 \u00dcbrige betriebliche Ertr\u00e4ge": {"account_type": "Income Account"},
"root_type": "Income"
},
"Klasse 5: Aufwand f\u00fcr Material und Leistungen": {
"5000 Einkauf Partnerleistungen": {"account_type": "Cost of Goods Sold"},
"5100 Verbrauch an Rohstoffen": {"account_type": "Cost of Goods Sold"},
"5200 Verbrauch von bezogenen Fertig- und Einzelteilen": {"account_type": "Cost of Goods Sold"},
"5300 Verbrauch von Hilfsstoffen": {"account_type": "Cost of Goods Sold"},
"5340 Verbrauch Verpackungsmaterial": {"account_type": "Cost of Goods Sold"},
"5470 Verbrauch von Kleinmaterial": {"account_type": "Cost of Goods Sold"},
"5450 Verbrauch von Reinigungsmaterial": {"account_type": "Cost of Goods Sold"},
"5400 Verbrauch von Betriebsstoffen": {"account_type": "Cost of Goods Sold"},
"5500 Verbrauch von Werkzeugen und anderen Erzeugungshilfsmittel": {"account_type": "Cost of Goods Sold"},
"5600 Verbrauch von Brenn- und Treibstoffen, Energie und Wasser": {"account_type": "Cost of Goods Sold"},
"5700 Bearbeitung durch Dritte": {"account_type": "Cost of Goods Sold"},
"5900 Aufwandsstellenrechnung Material": {"account_type": "Cost of Goods Sold"},
"5820 Skontoertr\u00e4ge (20% USt.)": {"account_type": "Income Account"},
"5810 Skontoertr\u00e4ge (10% USt.)": {"account_type": "Income Account"},
"5010 Handelswareneinkauf 10 %": {"account_type": "Cost of Goods Sold"},
"5020 Handelswareneinkauf 20 %": {"account_type": "Cost of Goods Sold"},
"5040 Handelswareneinkauf innergemeinschaftlicher Erwerb 10 % VSt/10 % USt": {"account_type": "Cost of Goods Sold"},
"5050 Handelswareneinkauf innergemeinschaftlicher Erwerb 20 % VSt/20 % USt": {"account_type": "Cost of Goods Sold"},
"5070 Handelswareneinkauf innergemeinschaftlicher Erwerb ohne Vorsteuerabzug und 10 % USt": {"account_type": "Cost of Goods Sold"},
"5080 Handelswareneinkauf innergemeinschaftlicher Erwerb ohne Vorsteuerabzug und 20 % USt": {"account_type": "Cost of Goods Sold"},
"root_type": "Expense"
},
"Klasse 6: Personalaufwand": {
"6000 L\u00f6hne": {"account_type": "Payable"},
"6200 Geh\u00e4lter": {"account_type": "Payable"},
"6400 Aufwendungen f\u00fcr Abfertigungen": {"account_type": "Payable"},
"6450 Aufwendungen f\u00fcr Altersversorgung": {"account_type": "Payable"},
"6500 Gesetzlicher Sozialaufwand Arbeiter": {"account_type": "Payable"},
"6560 Gesetzlicher Sozialaufwand Angestellte": {"account_type": "Payable"},
"6600 Lohnabh\u00e4ngige Abgaben und Pflichtbeitr\u00e4gte": {"account_type": "Payable"},
"6660 Gehaltsabh\u00e4ngige Abgaben und Pflichtbeitr\u00e4gte": {"account_type": "Payable"},
"6700 Sonstige Sozialaufwendungen": {"account_type": "Payable"},
"6900 Aufwandsstellenrechnung Personal": {"account_type": "Payable"},
"root_type": "Expense"
},
"Klasse 7: Abschreibungen und sonstige betriebliche Aufwendungen": {
"7010 Abschreibungen auf das Anlageverm\u00f6gen (ausgenommen Finanzanlagen)": {"account_type": "Depreciation"},
"7100 Sonstige Steuern und Geb\u00fchren": {"account_type": "Tax"},
"7200 Instandhaltung u. Reinigung durch Dritte, Entsorgung, Energie": {"account_type": "Expense Account"},
"7300 Transporte durch Dritte": {"account_type": "Expense Account"},
"7310 Fahrrad - Aufwand": {"account_type": "Expense Account"},
"7320 Kfz - Aufwand": {"account_type": "Expense Account"},
"7330 LKW - Aufwand": {"account_type": "Expense Account"},
"7340 Lastenrad - Aufwand": {"account_type": "Expense Account"},
"7350 Reise- und Fahraufwand": {"account_type": "Expense Account"},
"7360 Tag- und N\u00e4chtigungsgelder": {"account_type": "Expense Account"},
"7380 Nachrichtenaufwand": {"account_type": "Expense Account"},
"7400 Miet- und Pachtaufwand": {"account_type": "Expense Account"},
"7440 Leasingaufwand": {"account_type": "Expense Account"},
"7480 Lizenzaufwand": {"account_type": "Expense Account"},
"7500 Aufwand f\u00fcr beigestelltes Personal": {"account_type": "Expense Account"},
"7540 Provisionen an Dritte": {"account_type": "Expense Account"},
"7580 Aufsichtsratsverg\u00fctungen": {"account_type": "Expense Account"},
"7610 Druckerzeugnisse und Vervielf\u00e4ltigungen": {"account_type": "Expense Account"},
"7650 Werbung und Repr\u00e4sentationen": {"account_type": "Expense Account"},
"7700 Versicherungen": {"account_type": "Expense Account"},
"7750 Beratungs- und Pr\u00fcfungsaufwand": {"account_type": "Expense Account"},
"7800 Forderungsverluste und Schadensf\u00e4lle": {"account_type": "Expense Account"},
"7840 Verschiedene betriebliche Aufwendungen": {"account_type": "Expense Account"},
"7910 Aufwandsstellenrechung der Hersteller": {"account_type": "Expense Account"},
"7060 Sofortabschreibungen geringwertig": {"account_type": "Expense Account"},
"7070 Abschreibungen vom Umlaufverm\u00f6gen, soweit diese die im Unternehmen \u00fcblichen Abschreibungen \u00fcbersteigen": {"account_type": "Depreciation"},
"7900 Aufwandsstellenrechnung": {"account_type": "Expense Account"},
"7770 Aus- und Fortbildung": {"account_type": "Expense Account"},
"7820 Buchwert abgegangener Anlagen, ausgenommen Finanzanlagen": {"account_type": "Expense Account"},
"7600 B\u00fcromaterial und Drucksorten": {"account_type": "Expense Account"},
"7630 Fachliteratur und Zeitungen ": {"account_type": "Expense Account"},
"7960 Herstellungskosten der zur Erzielung der Umsatzerl\u00f6se erbrachten Leistungen": {"account_type": "Expense Account"},
"7780 Mitgliedsbeitr\u00e4ge": {"account_type": "Expense Account"},
"7880 Skontoertr\u00e4ge auf sonstige betriebliche Aufwendungen": {"account_type": "Expense Account"},
"7990 Sonstige betrieblichen Aufwendungen": {"account_type": "Expense Account"},
"7680 Spenden und Trinkgelder": {"account_type": "Expense Account"},
"7790 Spesen des Geldverkehrs": {"account_type": "Expense Account"},
"7830 Verluste aus dem Abgang vom Anlageverm\u00f6gen, ausgenommen Finanzanlagen": {"account_type": "Expense Account"},
"7970 Vertriebskosten": {"account_type": "Expense Account"},
"7980 Verwaltungskosten": {"account_type": "Expense Account"},
"root_type": "Expense"
},
"Klasse 8: Finanz- und ausserordentliche Ertr\u00e4ge und Aufwendungen": {
"8000 Ertr\u00e4ge aus Beteiligungen": {"account_type": "Income Account"},
"8050 Ertr\u00e4ge aus anderen Wertpapieren und Ausleihungen des Finanzanlageverm\u00f6gens": {"account_type": "Income Account"},
"8100 Zinsen aus Bankguthaben": {"account_type": "Income Account"},
"8110 Zinsen aus gewaehrten Darlehen": {"account_type": "Income Account"},
"8130 Verzugszinsenertraege": {"account_type": "Income Account"},
"8220 Aufwendungen aus Beteiligungen": {"account_type": "Expense Account"},
"8260 Aufwendungen aus sonst. Fiananzanlagen und aus Wertpapieren des Umlaufverm\u00f6gens": {},
"8280 Zinsen und \u00e4hnliche Aufwendungem": {"account_type": "Expense Account"},
"8400 Au\u00dferordentliche Ertr\u00e4ge": {"account_type": "Income Account"},
"8450 Au\u00dferordentliche Aufwendungen": {"account_type": "Expense Account"},
"8500 Steuern vom Einkommen und vom Ertrag": {
"account_type": "Tax"
},
"8600 Aufl\u00f6sung unversteuerten R\u00fccklagen": {"account_type": "Income Account"},
"8700 Aufl\u00f6sung von Kapitalr\u00fccklagen": {"account_type": "Income Account"},
"8750 Aufl\u00f6sung von Gewinnr\u00fccklagen": {"account_type": "Income Account"},
"8800 Zuweisung zu unversteuerten R\u00fccklagen": {"account_type": "Expense Account"},
"8900 Zuweisung zu Gewinnr\u00fccklagen": {"account_type": "Expense Account"},
"8100 Buchwert abgegangener Beteiligungen": {"account_type": "Expense Account"},
"8130 Buchwert abgegangener Wertpapiere des Umlaufverm\u00f6gens": {"account_type": "Expense Account"},
"8120 Buchwert abgegangener sonstiger Finanzanlagen": {"account_type": "Expense Account"},
"8990 Gewinnabfuhr bzw. Verlust\u00fcberrechnung aus Ergebnisabf\u00fchrungsvertr\u00e4gen": {"account_type": "Expense Account"},
"8350 nicht ausgenutzte Lieferantenskonti": {"account_type": "Expense Account"},
"root_type": "Income"
},
"Klasse 9 Passiva: Eigenkapital, R\u00fccklagen, stille Einlagen, Abschlusskonten": {
"9000 Gezeichnetes bzw. gewidmetes Kapital": {
"account_type": "Equity"
},
"9200 Kapitalr\u00fccklagen": {
"account_type": "Equity"
},
"9300 Gewinnr\u00fccklagen": {
"account_type": "Equity"
},
"9400 Bewertungsreserven uns sonst. unversteuerte R\u00fccklagen": {
"account_type": "Equity"
},
"9600 Private Entnahmen": {"account_type": "Equity"},
"9610 Privatsteuern": {"account_type": "Equity"},
"9700 Einlagen stiller Gesellschafter ": {"account_type": "Equity"},
"9900 Evidenzkonto": {"account_type": "Equity"},
"9800 Er\u00f6ffnungsbilanzkonto (EBK)": {"account_type": "Equity"},
"9880 Jahresergebnis laut Gewinn- und Verlustrechnung (G+V)": {"account_type": "Equity"},
"9850 Schlussbilanzkonto (SBK)": {"account_type": "Round Off"},
"9190 nicht eingeforderte ausstehende Einlagen und berechtigte Entnahmen von Gesellschaftern": {
"account_type": "Equity"
},
"root_type": "Equity"
}
}
}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)

View File

@@ -437,12 +437,29 @@
},
"Sales": {
"Sales from Other Regions": {
<<<<<<< HEAD
"Sales from Other Region": {}
},
"Sales of same region": {
"Management Consultancy Fees 1": {},
"Sales Account": {},
"Sales of I/C": {}
=======
"Sales from Other Region": {
"account_type": "Income Account"
}
},
"Sales of same region": {
"Management Consultancy Fees 1": {
"account_type": "Income Account"
},
"Sales Account": {
"account_type": "Income Account"
},
"Sales of I/C": {
"account_type": "Income Account"
}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
}
},
"root_type": "Income"

View File

@@ -56,7 +56,13 @@
"Constru\u00e7\u00f5es em Andamento de Im\u00f3veis Destinados \u00e0 Venda": {},
"Estoques Destinados \u00e0 Doa\u00e7\u00e3o": {},
"Im\u00f3veis Destinados \u00e0 Venda": {},
<<<<<<< HEAD
"Insumos (materiais diretos)": {},
=======
"Insumos (materiais diretos)": {
"account_type": "Stock"
},
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"Insumos Agropecu\u00e1rios": {},
"Mercadorias para Revenda": {},
"Outras 11": {},
@@ -146,6 +152,68 @@
"root_type": "Asset"
},
"CUSTOS DE PRODU\u00c7\u00c3O": {
<<<<<<< HEAD
=======
"CUSTO DOS PRODUTOS E SERVI\u00c7OS VENDIDOS": {
"CUSTO DOS PRODUTOS VENDIDOS": {
"CUSTO DOS PRODUTOS VENDIDOS PARA AS DEMAIS ATIVIDADES": {
"Custos dos Produtos Vendidos em Geral": {
"account_type": "Cost of Goods Sold"
},
"Outros Custos 4": {},
"account_type": "Cost of Goods Sold"
},
"CUSTO DOS PRODUTOS VENDIDOS PARA ASSIST\u00caNCIA SOCIAL": {
"Custos dos Produtos para Assist\u00eancia Social - Gratuidades": {},
"Custos dos Produtos para Assist\u00eancia Social - Vendidos": {},
"Outras": {}
},
"CUSTO DOS PRODUTOS VENDIDOS PARA EDUCA\u00c7\u00c3O": {
"Custos dos Produtos para Educa\u00e7\u00e3o - Gratuidades": {},
"Custos dos Produtos para Educa\u00e7\u00e3o - Vendidos": {},
"Outros Custos 6": {}
},
"CUSTO DOS PRODUTOS VENDIDOS PARA SA\u00daDE": {
"Custos dos Produtos para Sa\u00fade - Gratuidades": {},
"Custos dos Produtos para Sa\u00fade \u2013 Vendidos": {},
"Outros Custos 5": {}
},
"account_type": "Cost of Goods Sold"
},
"CUSTO DOS SERVI\u00c7OS PRESTADOS": {
"CUSTO DOS SERVI\u00c7OS PRESTADOS PARA AS DEMAIS ATIVIDADES": {
"Custo dos Servi\u00e7os Prestados em Geral": {},
"Outros Custos": {}
},
"CUSTO DOS SERVI\u00c7OS PRESTADOS PARA ASSIST\u00caNCIA SOCIAL": {
"Custo dos Servi\u00e7os Prestados a Conv\u00eanios/Contratos/Parcerias": {},
"Custo dos Servi\u00e7os Prestados a Doa\u00e7\u00f5es 1": {},
"Custo dos Servi\u00e7os Prestados a Doa\u00e7\u00f5es/Subven\u00e7\u00f5es Vinculadas 1": {},
"Custo dos Servi\u00e7os Prestados a Gratuidade 1": {},
"Custo dos Servi\u00e7os Prestados a Pacientes Particulares": {},
"Outros Custos 2": {}
},
"CUSTO DOS SERVI\u00c7OS PRESTADOS PARA EDUCA\u00c7\u00c3O": {
"Custo dos Servi\u00e7os Prestados a Alunos N\u00e3o Bolsistas": {},
"Custo dos Servi\u00e7os Prestados a Conv\u00eanios/Contratos/Parcerias (Exceto PROUNI)": {},
"Custo dos Servi\u00e7os Prestados a Doa\u00e7\u00f5es": {},
"Custo dos Servi\u00e7os Prestados a Doa\u00e7\u00f5es/Subven\u00e7\u00f5es Vinculadas": {},
"Custo dos Servi\u00e7os Prestados a Gratuidade": {},
"Custo dos Servi\u00e7os Prestados ao PROUNI": {},
"Outros Custos 1": {}
},
"CUSTO DOS SERVI\u00c7OS PRESTADOS PARA SA\u00daDE": {
"Custo dos Servi\u00e7os Prestados a Conv\u00eanios SUS": {},
"Custo dos Servi\u00e7os Prestados a Conv\u00eanios/Contratos/Parcerias 1": {},
"Custo dos Servi\u00e7os Prestados a Doa\u00e7\u00f5es 2": {},
"Custo dos Servi\u00e7os Prestados a Doa\u00e7\u00f5es/Subven\u00e7\u00f5es Vinculadas 2": {},
"Custo dos Servi\u00e7os Prestados a Gratuidade 2": {},
"Custo dos Servi\u00e7os Prestados a Pacientes Particulares 1": {},
"Outros Custos 3": {}
}
}
},
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"CUSTO DOS BENS E SERVI\u00c7OS PRODUZIDOS": {
"CUSTO DOS PRODUTOS DE FABRICA\u00c7\u00c3O PR\u00d3PRIA PRODUZIDOS": {
"Alimenta\u00e7\u00e3o do Trabalhador": {},
@@ -621,7 +689,13 @@
"Receita das Unidades Imobili\u00e1rias Vendidas": {},
"Receita de Exporta\u00e7\u00e3o Direta de Mercadorias e Produtos": {},
"Receita de Exporta\u00e7\u00e3o de Servi\u00e7os": {},
<<<<<<< HEAD
"Receita de Loca\u00e7\u00e3o de Bens M\u00f3veis e Im\u00f3veis": {},
=======
"Receita de Loca\u00e7\u00e3o de Bens M\u00f3veis e Im\u00f3veis": {
"account_type": "Income Account"
},
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"Receita de Vendas de Mercadorias e Produtos a Comercial Exportadora com Fim Espec\u00edfico de Exporta\u00e7\u00e3o": {}
}
}
@@ -645,6 +719,7 @@
}
},
"RESULTADO OPERACIONAL": {
<<<<<<< HEAD
"CUSTO DOS PRODUTOS E SERVI\u00c7OS VENDIDOS": {
"CUSTO DOS PRODUTOS VENDIDOS": {
"CUSTO DOS PRODUTOS VENDIDOS PARA AS DEMAIS ATIVIDADES": {
@@ -704,6 +779,8 @@
}
}
},
=======
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"DESPESAS OPERACIONAIS": {
"DESPESAS OPERACIONAIS 1": {
"DESPESAS OPERACIONAIS 2": {

View File

@@ -33,7 +33,13 @@
},
"Stocks": {
"Mati\u00e8res premi\u00e8res": {},
<<<<<<< HEAD
"Stock de produits fini": {},
=======
"Stock de produits fini": {
"account_type": "Stock"
},
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"Stock exp\u00e9di\u00e9 non-factur\u00e9": {},
"Travaux en cours": {},
"account_type": "Stock"
@@ -395,9 +401,17 @@
},
"Produits": {
"Revenus de ventes": {
<<<<<<< HEAD
" Escomptes de volume sur ventes": {},
"Autres produits d'exploitation": {},
"Ventes": {},
=======
"Escomptes de volume sur ventes": {},
"Autres produits d'exploitation": {},
"Ventes": {
"account_type": "Income Account"
},
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"Ventes avec des provinces harmonis\u00e9es": {},
"Ventes avec des provinces non-harmonis\u00e9es": {},
"Ventes \u00e0 l'\u00e9tranger": {}

View File

@@ -0,0 +1,569 @@
{
"country_code": "de",
"name": "SKR03 mit Kontonummern",
"tree": {
"Aktiva": {
"is_group": 1,
"root_type": "Asset",
"A - Anlagevermögen": {
"is_group": 1,
"EDV-Software": {
"account_number": "0027",
"account_type": "Fixed Asset"
},
"Geschäftsausstattung": {
"account_number": "0410",
"account_type": "Fixed Asset"
},
"Büroeinrichtung": {
"account_number": "0420",
"account_type": "Fixed Asset"
},
"Darlehen": {
"account_number": "0565"
},
"Maschinen": {
"account_number": "0210",
"account_type": "Fixed Asset"
},
"Betriebsausstattung": {
"account_number": "0400",
"account_type": "Fixed Asset"
},
"Ladeneinrichtung": {
"account_number": "0430",
"account_type": "Fixed Asset"
},
"Accumulated Depreciation": {
"account_type": "Accumulated Depreciation"
}
},
"B - Umlaufvermögen": {
"is_group": 1,
"I. Vorräte": {
"is_group": 1,
"Roh-, Hilfs- und Betriebsstoffe (Bestand)": {
"account_number": "3970",
"account_type": "Stock"
},
"Waren (Bestand)": {
"account_number": "3980",
"account_type": "Stock"
}
},
"II. Forderungen und sonstige Vermögensgegenstände": {
"is_group": 1,
"Forderungen aus Lieferungen und Leistungen mit Kontokorrent": {
"account_number": "1400",
"account_type": "Receivable",
"is_group": 1
},
"Forderungen aus Lieferungen und Leistungen ohne Kontokorrent": {
"account_number": "1410",
"account_type": "Receivable"
},
"Durchlaufende Posten": {
"account_number": "1590"
},
"Verrechnungskonto Gewinnermittlung § 4 Abs. 3 EStG, nicht ergebniswirksam": {
"account_number": "1371"
},
"Abziehbare Vorsteuer": {
"is_group": 1,
"Abziehbare Vorsteuer 7 %": {
"account_number": "1571",
"account_type": "Tax",
"tax_rate": 7.0
},
"Abziehbare Vorsteuer 19 %": {
"account_number": "1576",
"account_type": "Tax",
"tax_rate": 19.0
},
"Abziehbare Vorsteuer nach § 13b UStG 19 %": {
"account_number": "1577",
"account_type": "Tax",
"tax_rate": 19.0
}
}
},
"III. Wertpapiere": {
"is_group": 1,
"Anteile an verbundenen Unternehmen (Umlaufvermögen)": {
"account_number": "1340"
},
"Anteile an herrschender oder mit Mehrheit beteiligter Gesellschaft": {
"account_number": "1344"
},
"Sonstige Wertpapiere": {
"account_number": "1348"
}
},
"IV. Kassenbestand, Bundesbankguthaben, Guthaben bei Kreditinstituten und Schecks.": {
"is_group": 1,
"Kasse": {
"is_group": 1,
"account_type": "Cash",
"Kasse": {
"account_number": "1000",
"account_type": "Cash"
}
},
"Bank": {
"is_group": 1,
"account_type": "Bank",
"Postbank": {
"account_number": "1100",
"account_type": "Bank"
},
"Bankkonto": {
"account_number": "1200",
"account_type": "Bank"
}
}
}
},
"C - Rechnungsabgrenzungsposten": {
"is_group": 1,
"Aktive Rechnungsabgrenzung": {
"account_number": "0980"
}
},
"D - Aktive latente Steuern": {
"is_group": 1,
"Aktive latente Steuern": {
"account_number": "0983"
}
},
"E - Aktiver Unterschiedsbetrag aus der Vermögensverrechnung": {
"is_group": 1
}
},
"Passiva": {
"is_group": 1,
"root_type": "Liability",
"A. Eigenkapital": {
"is_group": 1,
"I. Gezeichnetes Kapital": {
"is_group": 1
},
"II. Kapitalrücklage": {
"is_group": 1
},
"III. Gewinnrücklagen": {
"is_group": 1
},
"IV. Gewinnvortrag/Verlustvortrag": {
"is_group": 1
},
"V. Jahresüberschuß/Jahresfehlbetrag": {
"is_group": 1
}
},
"B. Rückstellungen": {
"is_group": 1,
"I. Rückstellungen für Pensionen und ähnliche Verpflichtungen": {
"is_group": 1
},
"II. Steuerrückstellungen": {
"is_group": 1
},
"III. sonstige Rückstellungen": {
"is_group": 1
}
},
"C. Verbindlichkeiten": {
"is_group": 1,
"I. Anleihen": {
"is_group": 1
},
"II. Verbindlichkeiten gegenüber Kreditinstituten": {
"is_group": 1
},
"III. Erhaltene Anzahlungen auf Bestellungen": {
"is_group": 1
},
"IV. Verbindlichkeiten aus Lieferungen und Leistungen": {
"is_group": 1,
"Verbindlichkeiten aus Lieferungen und Leistungen mit Kontokorrent": {
"account_number": "1600",
"account_type": "Payable",
"is_group": 1
},
"Verbindlichkeiten aus Lieferungen und Leistungen ohne Kontokorrent": {
"account_number": "1610",
"account_type": "Payable"
}
},
"V. Verbindlichkeiten aus der Annahme gezogener Wechsel und der Ausstellung eigener Wechsel": {
"is_group": 1
},
"VI. Verbindlichkeiten gegenüber verbundenen Unternehmen": {
"is_group": 1
},
"VII. Verbindlichkeiten gegenüber Unternehmen, mit denen ein Beteiligungsverhältnis besteht": {
"is_group": 1
},
"VIII. sonstige Verbindlichkeiten": {
"is_group": 1,
"Sonstige Verbindlichkeiten": {
"account_number": "1700",
"account_type": "Asset Received But Not Billed"
},
"Sonstige Verbindlichkeiten (1 bis 5 Jahre)": {
"account_number": "1702",
"account_type": "Stock Received But Not Billed"
},
"Verbindlichkeiten aus Lohn und Gehalt": {
"account_number": "1740",
"account_type": "Payable"
},
"Umsatzsteuer": {
"is_group": 1,
"Umsatzsteuer 7 %": {
"account_number": "1771",
"account_type": "Tax",
"tax_rate": 7.0
},
"Umsatzsteuer 19 %": {
"account_number": "1776",
"account_type": "Tax",
"tax_rate": 19.0
},
"Umsatzsteuer-Vorauszahlung": {
"account_number": "1780",
"account_type": "Tax"
},
"Umsatzsteuer-Vorauszahlung 1/11": {
"account_number": "1781"
},
"Umsatzsteuer nach § 13b UStG 19 %": {
"account_number": "1787",
"account_type": "Tax",
"tax_rate": 19.0
},
"Umsatzsteuer Vorjahr": {
"account_number": "1790"
},
"Umsatzsteuer frühere Jahre": {
"account_number": "1791"
}
}
}
},
"D. Rechnungsabgrenzungsposten": {
"is_group": 1,
"Passive Rechnungsabgrenzung": {
"account_number": "0990"
}
},
"E. Passive latente Steuern": {
"is_group": 1
}
},
"Erlöse u. Erträge 2/8": {
"is_group": 1,
"root_type": "Income",
"Erlöskonten 8": {
"is_group": 1,
"Erlöse": {
"account_number": "8200",
"account_type": "Income Account"
},
"Erlöse USt. 19 %": {
"account_number": "8400",
"account_type": "Income Account"
},
"Erlöse USt. 7 %": {
"account_number": "8300",
"account_type": "Income Account"
}
},
"Ertragskonten 2": {
"is_group": 1,
"sonstige Zinsen und ähnliche Erträge": {
"account_number": "2650",
"account_type": "Income Account"
},
"Außerordentliche Erträge": {
"account_number": "2500",
"account_type": "Income Account"
},
"Sonstige Erträge": {
"account_number": "2700",
"account_type": "Income Account"
}
}
},
"Aufwendungen 2/4": {
"is_group": 1,
"root_type": "Expense",
"Fremdleistungen": {
"account_number": "3100",
"account_type": "Expense Account"
},
"Fremdleistungen ohne Vorsteuer": {
"account_number": "3109",
"account_type": "Expense Account"
},
"Bauleistungen eines im Inland ansässigen Unternehmers 19 % Vorsteuer und 19 % Umsatzsteuer": {
"account_number": "3120",
"account_type": "Expense Account"
},
"Wareneingang": {
"account_number": "3200"
},
"Bezugsnebenkosten": {
"account_number": "3800",
"account_type": "Expenses Included In Asset Valuation"
},
"Herstellungskosten": {
"account_number": "4996",
"account_type": "Cost of Goods Sold"
},
"Verluste aus dem Abgang von Gegenständen des Anlagevermögens": {
"account_number": "2320",
"account_type": "Stock Adjustment"
},
"Verwaltungskosten": {
"account_number": "4997",
"account_type": "Expenses Included In Valuation"
},
"Vertriebskosten": {
"account_number": "4998",
"account_type": "Expenses Included In Valuation"
},
"Gegenkonto 4996-4998": {
"account_number": "4999"
},
"Abschreibungen": {
"is_group": 1,
"Abschreibungen auf Sachanlagen (ohne AfA auf Kfz und Gebäude)": {
"account_number": "4830",
"account_type": "Accumulated Depreciation"
},
"Abschreibungen auf Gebäude": {
"account_number": "4831",
"account_type": "Depreciation"
},
"Abschreibungen auf Kfz": {
"account_number": "4832",
"account_type": "Depreciation"
},
"Sofortabschreibung GWG": {
"account_number": "4855",
"account_type": "Expense Account"
}
},
"Kfz-Kosten": {
"is_group": 1,
"Kfz-Steuer": {
"account_number": "4510",
"account_type": "Expense Account"
},
"Kfz-Versicherungen": {
"account_number": "4520",
"account_type": "Expense Account"
},
"laufende Kfz-Betriebskosten": {
"account_number": "4530",
"account_type": "Expense Account"
},
"Kfz-Reparaturen": {
"account_number": "4540",
"account_type": "Expense Account"
},
"Fremdfahrzeuge": {
"account_number": "4570",
"account_type": "Expense Account"
},
"sonstige Kfz-Kosten": {
"account_number": "4580",
"account_type": "Expense Account"
}
},
"Personalkosten": {
"is_group": 1,
"Gehälter": {
"account_number": "4120",
"account_type": "Expense Account"
},
"gesetzliche soziale Aufwendungen": {
"account_number": "4130",
"account_type": "Expense Account"
},
"Aufwendungen für Altersvorsorge": {
"account_number": "4165",
"account_type": "Expense Account"
},
"Vermögenswirksame Leistungen": {
"account_number": "4170",
"account_type": "Expense Account"
},
"Aushilfslöhne": {
"account_number": "4190",
"account_type": "Expense Account"
}
},
"Raumkosten": {
"is_group": 1,
"Miete und Nebenkosten": {
"account_number": "4210",
"account_type": "Expense Account"
},
"Gas, Wasser, Strom (Verwaltung, Vertrieb)": {
"account_number": "4240",
"account_type": "Expense Account"
},
"Reinigung": {
"account_number": "4250",
"account_type": "Expense Account"
}
},
"Reparatur/Instandhaltung": {
"is_group": 1,
"Reparaturen und Instandhaltungen von anderen Anlagen und Betriebs- und Geschäftsausstattung": {
"account_number": "4805",
"account_type": "Expense Account"
}
},
"Versicherungsbeiträge": {
"is_group": 1,
"Versicherungen": {
"account_number": "4360",
"account_type": "Expense Account"
},
"Beiträge": {
"account_number": "4380",
"account_type": "Expense Account"
},
"sonstige Ausgaben": {
"account_number": "4390",
"account_type": "Expense Account"
},
"steuerlich abzugsfähige Verspätungszuschläge und Zwangsgelder": {
"account_number": "4396",
"account_type": "Expense Account"
}
},
"Werbe-/Reisekosten": {
"is_group": 1,
"Werbekosten": {
"account_number": "4610",
"account_type": "Expense Account"
},
"Aufmerksamkeiten": {
"account_number": "4653",
"account_type": "Expense Account"
},
"nicht abzugsfähige Betriebsausg. aus Werbe-, Repräs.- u. Reisekosten": {
"account_number": "4665",
"account_type": "Expense Account"
},
"Reisekosten Unternehmer": {
"account_number": "4670",
"account_type": "Expense Account"
}
},
"verschiedene Kosten": {
"is_group": 1,
"Porto": {
"account_number": "4910",
"account_type": "Expense Account"
},
"Telekom": {
"account_number": "4920",
"account_type": "Expense Account"
},
"Mobilfunk D2": {
"account_number": "4921",
"account_type": "Expense Account"
},
"Internet": {
"account_number": "4922",
"account_type": "Expense Account"
},
"Bürobedarf": {
"account_number": "4930",
"account_type": "Expense Account"
},
"Zeitschriften, Bücher": {
"account_number": "4940",
"account_type": "Expense Account"
},
"Fortbildungskosten": {
"account_number": "4945",
"account_type": "Expense Account"
},
"Buchführungskosten": {
"account_number": "4955",
"account_type": "Expense Account"
},
"Abschluß- u. Prüfungskosten": {
"account_number": "4957",
"account_type": "Expense Account"
},
"Nebenkosten des Geldverkehrs": {
"account_number": "4970",
"account_type": "Expense Account"
},
"Werkzeuge und Kleingeräte": {
"account_number": "4985",
"account_type": "Expense Account"
}
},
"Zinsaufwendungen": {
"is_group": 1,
"Zinsaufwendungen für kurzfristige Verbindlichkeiten": {
"account_number": "2110",
"account_type": "Expense Account"
},
"Zinsaufwendungen für KFZ Finanzierung": {
"account_number": "2121",
"account_type": "Expense Account"
}
}
},
"Anfangsbestand 9": {
"is_group": 1,
"root_type": "Equity",
"Saldenvortragskonten": {
"is_group": 1,
"Saldenvortrag Sachkonten": {
"account_number": "9000"
},
"Saldenvorträge Debitoren": {
"account_number": "9008"
},
"Saldenvorträge Kreditoren": {
"account_number": "9009"
}
}
},
"Privatkonten 1": {
"is_group": 1,
"root_type": "Equity",
"Privatentnahmen/-einlagen": {
"is_group": 1,
"Privatentnahme allgemein": {
"account_number": "1800"
},
"Privatsteuern": {
"account_number": "1810"
},
"Sonderausgaben beschränkt abzugsfähig": {
"account_number": "1820"
},
"Sonderausgaben unbeschränkt abzugsfähig": {
"account_number": "1830"
},
"Außergewöhnliche Belastungen": {
"account_number": "1850"
},
"Privateinlagen": {
"account_number": "1890"
}
}
}
}
}

View File

@@ -1525,7 +1525,12 @@
"41-Clients et comptes rattach\u00e9s (PASSIF)": {
"Clients cr\u00e9diteurs": {
"Clients - Avances et acomptes re\u00e7us sur commandes": {
<<<<<<< HEAD
"account_number": "4191"
=======
"account_number": "4191",
"account_type": "Income Account"
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
},
"Clients - Dettes pour emballages et mat\u00e9riels consign\u00e9s": {
"account_number": "4196"
@@ -3141,4 +3146,8 @@
"account_number": "7"
}
}
<<<<<<< HEAD
}
=======
}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)

View File

@@ -69,8 +69,12 @@
"Persediaan Barang": {
"Persediaan Barang": {
"account_number": "1141.000",
<<<<<<< HEAD
"account_type": "Stock",
"is_group": 1
=======
"account_type": "Stock"
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
},
"Uang Muka Pembelian": {
"Uang Muka Pembelian": {
@@ -670,7 +674,12 @@
},
"Penjualan Barang Dagangan": {
"Penjualan": {
<<<<<<< HEAD
"account_number": "4110.000"
=======
"account_number": "4110.000",
"account_type": "Income Account"
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
},
"Potongan Penjualan": {
"account_number": "4130.000"

View File

@@ -36,6 +36,7 @@
}
},
"Fixed Assets": {
<<<<<<< HEAD
"Capital Equipments": {
"account_type": "Fixed Asset"
},
@@ -46,6 +47,18 @@
"account_type": "Fixed Asset"
},
"Office Equipments": {
=======
"Capital Equipment": {
"account_type": "Fixed Asset"
},
"Electronic Equipment": {
"account_type": "Fixed Asset"
},
"Furniture and Fixtures": {
"account_type": "Fixed Asset"
},
"Office Equipment": {
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"account_type": "Fixed Asset"
},
"Plants and Machineries": {
@@ -109,7 +122,12 @@
"Utility Expenses": {},
"Write Off": {},
"Exchange Gain/Loss": {},
<<<<<<< HEAD
"Gain/Loss on Asset Disposal": {}
=======
"Gain/Loss on Asset Disposal": {},
"Impairment": {}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
},
"root_type": "Expense"
},
@@ -132,7 +150,12 @@
"Source of Funds (Liabilities)": {
"Capital Account": {
"Reserves and Surplus": {},
<<<<<<< HEAD
"Shareholders Funds": {}
=======
"Shareholders Funds": {},
"Revaluation Surplus": {}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
},
"Current Liabilities": {
"Accounts Payable": {

View File

@@ -109,8 +109,12 @@
}
},
"INVENTARIOS": {
<<<<<<< HEAD
"account_type": "Stock",
"is_group": 1
=======
"account_type": "Stock"
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
}
},
"ACTIVO LARGO PLAZO": {
@@ -398,10 +402,25 @@
"INGRESOS POR SERVICIOS 1": {}
},
"VENTAS": {
<<<<<<< HEAD
"VENTAS EXPORTACION": {},
"VENTAS INMUEBLES": {},
"VENTAS NACIONALES": {},
"VENTAS NACIONALES AL DETAL": {}
=======
"VENTAS EXPORTACION": {
"account_type": "Income Account"
},
"VENTAS INMUEBLES": {
"account_type": "Income Account"
},
"VENTAS NACIONALES": {
"account_type": "Income Account"
},
"VENTAS NACIONALES AL DETAL": {
"account_type": "Income Account"
}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
}
}
},

View File

@@ -1,6 +1,10 @@
{
"country_code": "ni",
<<<<<<< HEAD
"name": "Nicaragua - Catalogo de Cuentas",
=======
"name": "Nicaragua - Catálogo de Cuentas",
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"tree": {
"Activo": {
"Activo Corriente": {
@@ -491,4 +495,8 @@
"root_type": "Liability"
}
}
<<<<<<< HEAD
}
=======
}
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)

View File

@@ -23,6 +23,7 @@ def get():
_("Tax Assets"): {"is_group": 1},
},
_("Fixed Assets"): {
<<<<<<< HEAD
_("Capital Equipments"): {"account_type": "Fixed Asset"},
_("Electronic Equipments"): {"account_type": "Fixed Asset"},
_("Furnitures and Fixtures"): {"account_type": "Fixed Asset"},
@@ -30,6 +31,15 @@ def get():
_("Plants and Machineries"): {"account_type": "Fixed Asset"},
_("Buildings"): {"account_type": "Fixed Asset"},
_("Softwares"): {"account_type": "Fixed Asset"},
=======
_("Capital Equipment"): {"account_type": "Fixed Asset"},
_("Electronic Equipment"): {"account_type": "Fixed Asset"},
_("Furniture and Fixtures"): {"account_type": "Fixed Asset"},
_("Office Equipment"): {"account_type": "Fixed Asset"},
_("Plants and Machineries"): {"account_type": "Fixed Asset"},
_("Buildings"): {"account_type": "Fixed Asset"},
_("Software"): {"account_type": "Fixed Asset"},
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
_("Accumulated Depreciation"): {"account_type": "Accumulated Depreciation"},
_("CWIP Account"): {
"account_type": "Capital Work in Progress",
@@ -72,6 +82,10 @@ def get():
_("Write Off"): {},
_("Exchange Gain/Loss"): {},
_("Gain/Loss on Asset Disposal"): {},
<<<<<<< HEAD
=======
_("Impairment"): {},
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
},
"root_type": "Expense",
},
@@ -104,6 +118,10 @@ def get():
_("Dividends Paid"): {"account_type": "Equity"},
_("Opening Balance Equity"): {"account_type": "Equity"},
_("Retained Earnings"): {"account_type": "Equity"},
<<<<<<< HEAD
=======
_("Revaluation Surplus"): {"account_type": "Equity"},
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"root_type": "Equity",
},
}

View File

@@ -36,6 +36,7 @@ def get():
"account_number": "1100-1600",
},
_("Fixed Assets"): {
<<<<<<< HEAD
_("Capital Equipments"): {"account_type": "Fixed Asset", "account_number": "1710"},
_("Electronic Equipments"): {"account_type": "Fixed Asset", "account_number": "1720"},
_("Furnitures and Fixtures"): {"account_type": "Fixed Asset", "account_number": "1730"},
@@ -43,6 +44,15 @@ def get():
_("Plants and Machineries"): {"account_type": "Fixed Asset", "account_number": "1750"},
_("Buildings"): {"account_type": "Fixed Asset", "account_number": "1760"},
_("Softwares"): {"account_type": "Fixed Asset", "account_number": "1770"},
=======
_("Capital Equipment"): {"account_type": "Fixed Asset", "account_number": "1710"},
_("Electronic Equipment"): {"account_type": "Fixed Asset", "account_number": "1720"},
_("Furniture and Fixtures"): {"account_type": "Fixed Asset", "account_number": "1730"},
_("Office Equipment"): {"account_type": "Fixed Asset", "account_number": "1740"},
_("Plants and Machineries"): {"account_type": "Fixed Asset", "account_number": "1750"},
_("Buildings"): {"account_type": "Fixed Asset", "account_number": "1760"},
_("Software"): {"account_type": "Fixed Asset", "account_number": "1770"},
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
_("Accumulated Depreciation"): {
"account_type": "Accumulated Depreciation",
"account_number": "1780",

View File

@@ -0,0 +1,34 @@
import json
from pathlib import Path
syscohada_countries = [
"bj", # Bénin
"bf", # Burkina-Faso
"cm", # Cameroun
"cf", # Centrafrique
"ci", # Côte d'Ivoire
"cg", # Congo
"km", # Comores
"ga", # Gabon
"gn", # Guinée
"gw", # Guinée-Bissau
"gq", # Guinée Equatoriale
"ml", # Mali
"ne", # Niger
"cd", # République Démocratique du Congo
"sn", # Sénégal
"td", # Tchad
"tg", # Togo
]
folder = Path(__file__).parent
generic_charts = Path(folder).glob("syscohada*.json")
for file in generic_charts:
with open(file) as f:
chart = json.load(f)
for country in syscohada_countries:
chart["country_code"] = country
json_object = json.dumps(chart, indent=4)
with open(Path(folder, file.name.replace("syscohada", country)), "w") as outfile:
outfile.write(json_object)

View File

@@ -1,11 +1,19 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
<<<<<<< HEAD
import unittest
import frappe
from frappe.test_runner import make_test_records
=======
import unittest
import frappe
from frappe.tests import IntegrationTestCase
from frappe.utils import nowdate
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
from erpnext.accounts.doctype.account.account import (
InvalidAccountMergeError,
@@ -14,10 +22,17 @@ from erpnext.accounts.doctype.account.account import (
)
from erpnext.stock import get_company_default_inventory_account, get_warehouse_account
<<<<<<< HEAD
test_dependencies = ["Company"]
class TestAccount(unittest.TestCase):
=======
EXTRA_TEST_RECORD_DEPENDENCIES = ["Company"]
class TestAccount(IntegrationTestCase):
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
def test_rename_account(self):
if not frappe.db.exists("Account", "1210 - Debtors - _TC"):
acc = frappe.new_doc("Account")
@@ -119,7 +134,11 @@ class TestAccount(unittest.TestCase):
InvalidAccountMergeError,
merge_account,
"Capital Stock - _TC",
<<<<<<< HEAD
"Softwares - _TC",
=======
"Software - _TC",
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
)
# Raise error as currency doesn't match
@@ -202,8 +221,11 @@ class TestAccount(unittest.TestCase):
In a parent->child company setup, child should inherit parent account currency if explicitly specified.
"""
<<<<<<< HEAD
make_test_records("Company")
=======
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
frappe.local.flags.pop("ignore_root_company_validation", None)
def create_bank_account():
@@ -312,9 +334,28 @@ class TestAccount(unittest.TestCase):
acc.account_currency = "USD"
self.assertRaises(frappe.ValidationError, acc.save)
<<<<<<< HEAD
def _make_test_records(verbose=None):
from frappe.test_runner import make_test_objects
=======
def test_account_balance(self):
from erpnext.accounts.utils import get_balance_on
if not frappe.db.exists("Account", "Test Percent Account %5 - _TC"):
acc = frappe.new_doc("Account")
acc.account_name = "Test Percent Account %5"
acc.parent_account = "Tax Assets - _TC"
acc.company = "_Test Company"
acc.insert()
balance = get_balance_on(account="Test Percent Account %5 - _TC", date=nowdate())
self.assertEqual(balance, 0)
def _make_test_records(verbose=None):
from frappe.tests.utils import make_test_objects
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
accounts = [
# [account_name, parent_account, is_group]

View File

@@ -0,0 +1,3 @@
[[Account]]
name = "_Test Account 1"

View File

@@ -129,7 +129,11 @@
"icon": "fa fa-list",
"in_create": 1,
"links": [],
<<<<<<< HEAD
"modified": "2023-03-06 08:56:36.393237",
=======
"modified": "2024-03-27 13:05:56.710541",
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"modified_by": "Administrator",
"module": "Accounts",
"name": "Account Closing Balance",
@@ -158,7 +162,11 @@
"role": "Auditor"
}
],
<<<<<<< HEAD
"sort_field": "modified",
=======
"sort_field": "creation",
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
"sort_order": "DESC",
"states": []
}

View File

@@ -11,6 +11,32 @@ from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import (
class AccountClosingBalance(Document):
<<<<<<< HEAD
=======
# begin: auto-generated types
# This code is auto-generated. Do not modify anything in this block.
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from frappe.types import DF
account: DF.Link | None
account_currency: DF.Link | None
closing_date: DF.Date | None
company: DF.Link | None
cost_center: DF.Link | None
credit: DF.Currency
credit_in_account_currency: DF.Currency
debit: DF.Currency
debit_in_account_currency: DF.Currency
finance_book: DF.Link | None
is_period_closing_voucher_entry: DF.Check
period_closing_voucher: DF.Link | None
project: DF.Link | None
# end: auto-generated types
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
pass
@@ -90,9 +116,15 @@ def get_previous_closing_entries(company, closing_date, accounting_dimensions):
entries = []
last_period_closing_voucher = frappe.db.get_all(
"Period Closing Voucher",
<<<<<<< HEAD
filters={"docstatus": 1, "company": company, "posting_date": ("<", closing_date)},
fields=["name"],
order_by="posting_date desc",
=======
filters={"docstatus": 1, "company": company, "period_end_date": ("<", closing_date)},
fields=["name"],
order_by="period_end_date desc",
>>>>>>> 125a352bc2 (fix: allow all dispatch address for drop ship invoice)
limit=1,
)

Some files were not shown because too many files have changed in this diff Show More