From 43b0f2efe63c7e8c5dfd818ed61d70bdbc62cdab Mon Sep 17 00:00:00 2001 From: "Nihantra C. Patel" Date: Wed, 8 Jun 2022 17:36:42 +0530 Subject: [PATCH 01/11] [DEV] Accounts: Added total of future amount, Remaining Balance in Payable and Receivable reports. --- erpnext/accounts/report/accounts_payable/accounts_payable.js | 5 +++++ .../report/accounts_receivable/accounts_receivable.py | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/report/accounts_payable/accounts_payable.js b/erpnext/accounts/report/accounts_payable/accounts_payable.js index f6961eb95f..7cf14e6738 100644 --- a/erpnext/accounts/report/accounts_payable/accounts_payable.js +++ b/erpnext/accounts/report/accounts_payable/accounts_payable.js @@ -136,6 +136,11 @@ frappe.query_reports["Accounts Payable"] = { "label": __("Tax Id"), "fieldtype": "Data", "hidden": 1 + }, + { + "fieldname": "show_future_payments", + "label": __("Show Future Payments"), + "fieldtype": "Check", } ], diff --git a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py index de9d63d849..85e0f2bdd0 100755 --- a/erpnext/accounts/report/accounts_receivable/accounts_receivable.py +++ b/erpnext/accounts/report/accounts_receivable/accounts_receivable.py @@ -160,6 +160,8 @@ class ReceivablePayableReport(object): "range3", "range4", "range5", + "future_amount", + "remaining_balance" ] def update_voucher_balance(self, gle): @@ -563,7 +565,7 @@ class ReceivablePayableReport(object): jea.party, jea.party_type, je.posting_date as future_date, - sum({0}) as future_amount, + sum('{0}') as future_amount, je.cheque_no as future_ref from `tabJournal Entry` as je inner join `tabJournal Entry Account` as jea From 04c10192423ae0f4f746413a261d5709d1a21983 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Mon, 11 Jul 2022 17:42:15 +0530 Subject: [PATCH 02/11] fix: update SO's percentage billed on credit note Credit Note created from Sales Return will update precentage billed in Sales Order accordingly --- erpnext/accounts/doctype/sales_invoice/sales_invoice.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json index 17dd80400c..1c9d3fbfb2 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json @@ -412,7 +412,7 @@ }, { "default": "0", - "depends_on": "eval: doc.is_return && doc.return_against", + "depends_on": "eval: doc.is_return", "fieldname": "update_billed_amount_in_sales_order", "fieldtype": "Check", "hide_days": 1, @@ -2022,7 +2022,7 @@ "link_fieldname": "consolidated_invoice" } ], - "modified": "2022-06-16 16:22:44.870575", + "modified": "2022-07-11 17:43:56.435382", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Invoice", From 243f66fcd398ec899c388e8c9511419b98967406 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Tue, 12 Jul 2022 13:17:01 +0530 Subject: [PATCH 03/11] test: SO percentage billed when cr_note made against delivery return --- .../doctype/sales_order/test_sales_order.py | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py index e5e317c506..adfb39c1ae 100644 --- a/erpnext/selling/doctype/sales_order/test_sales_order.py +++ b/erpnext/selling/doctype/sales_order/test_sales_order.py @@ -1620,6 +1620,65 @@ class TestSalesOrder(FrappeTestCase): so.load_from_db() self.assertEqual(so.billing_status, "Fully Billed") + def test_so_billing_status_with_crnote_against_sales_return(self): + """ + | Step | Document creation | | + |------+--------------------------------------+-------------------------------| + | 1 | SO -> DN -> SI | SO Fully Billed and Completed | + | 2 | DN -> Sales Return(Partial) | SO 50% Delivered, 100% billed | + | 3 | Sales Return(Partial) -> Credit Note | SO 50% Delivered, 50% billed | + + """ + from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice + + so = make_sales_order(uom="Nos", do_not_save=1) + so.save() + so.submit() + + self.assertEqual(so.billing_status, "Not Billed") + + dn1 = make_delivery_note(so.name) + dn1.taxes_and_charges = "" + dn1.taxes.clear() + dn1.save().submit() + + si = create_sales_invoice(qty=10, do_not_save=1) + si.items[0].sales_order = so.name + si.items[0].so_detail = so.items[0].name + si.items[0].delivery_note = dn1.name + si.items[0].dn_detail = dn1.items[0].name + si.save() + si.submit() + + so.reload() + self.assertEqual(so.billing_status, "Fully Billed") + self.assertEqual(so.status, "Completed") + + from erpnext.stock.doctype.delivery_note.test_delivery_note import create_delivery_note + + dn1.reload() + dn_ret = create_delivery_note(is_return=1, return_against=dn1.name, qty=-5, do_not_submit=True) + dn_ret.items[0].against_sales_order = so.name + dn_ret.items[0].so_detail = so.items[0].name + dn_ret.submit() + + so.reload() + self.assertEqual(so.per_billed, 100) + self.assertEqual(so.per_delivered, 50) + + cr_note = create_sales_invoice(is_return=1, qty=-1, do_not_submit=True) + cr_note.items[0].qty = -5 + cr_note.items[0].sales_order = so.name + cr_note.items[0].so_detail = so.items[0].name + cr_note.items[0].delivery_note = dn_ret.name + cr_note.items[0].dn_detail = dn_ret.items[0].name + cr_note.update_billed_amount_in_sales_order = True + cr_note.submit() + + so.reload() + self.assertEqual(so.per_billed, 50) + self.assertEqual(so.per_delivered, 50) + def test_so_back_updated_from_wo_via_mr(self): "SO -> MR (Manufacture) -> WO. Test if WO Qty is updated in SO." from erpnext.manufacturing.doctype.work_order.work_order import ( From b461724416ba0ebdfc979a01f8ce913c69bcb105 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 22 Jul 2022 14:32:14 +0530 Subject: [PATCH 04/11] fix: enable tax withholding checkbox in PI with supplier_tds --- erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py index 775d2550a9..de3927e45b 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -162,6 +162,7 @@ class PurchaseInvoice(BuyingController): if tds_category and not for_validate: self.apply_tds = 1 self.tax_withholding_category = tds_category + self.set_onload("supplier_tds", tds_category) super(PurchaseInvoice, self).set_missing_values(for_validate) From 5da7e01db205098a5075def850a478a77931af78 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 22 Jul 2022 17:54:46 +0530 Subject: [PATCH 05/11] fix: dont show zero qty available items in stock ageing report --- erpnext/stock/report/stock_ageing/stock_ageing.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpnext/stock/report/stock_ageing/stock_ageing.py b/erpnext/stock/report/stock_ageing/stock_ageing.py index 1956238331..7c430e491a 100644 --- a/erpnext/stock/report/stock_ageing/stock_ageing.py +++ b/erpnext/stock/report/stock_ageing/stock_ageing.py @@ -34,6 +34,9 @@ def format_report_data(filters: Filters, item_details: Dict, to_date: str) -> Li precision = cint(frappe.db.get_single_value("System Settings", "float_precision", cache=True)) for item, item_dict in item_details.items(): + if not flt(item_dict.get("total_qty"), precision): + continue + earliest_age, latest_age = 0, 0 details = item_dict["details"] From b07dd1083aecc6682dc377b2c90dd0fb9230c622 Mon Sep 17 00:00:00 2001 From: Gavin D'souza Date: Mon, 4 Jul 2022 11:11:14 +0530 Subject: [PATCH 06/11] ci: Check for conflicts & valid python in early separate step --- .github/helper/install.sh | 7 ------- .github/workflows/patch.yml | 8 ++++++++ .github/workflows/server-tests-mariadb.yml | 8 ++++++++ .github/workflows/server-tests-postgres.yml | 9 ++++++++- 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/.github/helper/install.sh b/.github/helper/install.sh index f0f83b061b..efd2f5c5b3 100644 --- a/.github/helper/install.sh +++ b/.github/helper/install.sh @@ -2,13 +2,6 @@ set -e -# Check for merge conflicts before proceeding -python -m compileall -f "${GITHUB_WORKSPACE}" -if grep -lr --exclude-dir=node_modules "^<<<<<<< " "${GITHUB_WORKSPACE}" - then echo "Found merge conflicts" - exit 1 -fi - cd ~ || exit sudo apt update && sudo apt install redis-server libcups2-dev diff --git a/.github/workflows/patch.yml b/.github/workflows/patch.yml index a71db7289a..ecbb7c6a0a 100644 --- a/.github/workflows/patch.yml +++ b/.github/workflows/patch.yml @@ -34,6 +34,14 @@ jobs: - name: Clone uses: actions/checkout@v2 + - name: Check for valid Python & Merge Conflicts + run: | + python -m compileall -f "${GITHUB_WORKSPACE}" + if grep -lr --exclude-dir=node_modules "^<<<<<<< " "${GITHUB_WORKSPACE}" + then echo "Found merge conflicts" + exit 1 + fi + - name: Setup Python uses: "gabrielfalcao/pyenv-action@v9" with: diff --git a/.github/workflows/server-tests-mariadb.yml b/.github/workflows/server-tests-mariadb.yml index f65cb460f1..64134bc539 100644 --- a/.github/workflows/server-tests-mariadb.yml +++ b/.github/workflows/server-tests-mariadb.yml @@ -61,6 +61,14 @@ jobs: with: python-version: '3.10' + - name: Check for valid Python & Merge Conflicts + run: | + python -m compileall -f "${GITHUB_WORKSPACE}" + if grep -lr --exclude-dir=node_modules "^<<<<<<< " "${GITHUB_WORKSPACE}" + then echo "Found merge conflicts" + exit 1 + fi + - name: Setup Node uses: actions/setup-node@v2 with: diff --git a/.github/workflows/server-tests-postgres.yml b/.github/workflows/server-tests-postgres.yml index 53a94dbfac..651c935c15 100644 --- a/.github/workflows/server-tests-postgres.yml +++ b/.github/workflows/server-tests-postgres.yml @@ -48,6 +48,14 @@ jobs: with: python-version: '3.10' + - name: Check for valid Python & Merge Conflicts + run: | + python -m compileall -f "${GITHUB_WORKSPACE}" + if grep -lr --exclude-dir=node_modules "^<<<<<<< " "${GITHUB_WORKSPACE}" + then echo "Found merge conflicts" + exit 1 + fi + - name: Setup Node uses: actions/setup-node@v2 with: @@ -90,7 +98,6 @@ jobs: restore-keys: | ${{ runner.os }}-yarn- - - name: Install run: bash ${GITHUB_WORKSPACE}/.github/helper/install.sh env: From cb73528c9c0c35ad0c85d0c2ee032a7160a0de87 Mon Sep 17 00:00:00 2001 From: Gavin D'souza Date: Wed, 29 Jun 2022 16:37:36 +0530 Subject: [PATCH 07/11] test: Use assertSequenceEqual for comparision between Tuple / Lists Use AssertSequence for type agnostic checks --- .../test_period_closing_voucher.py | 4 ++-- erpnext/assets/doctype/asset/test_asset.py | 14 +++++++------- .../test_asset_value_adjustment.py | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/erpnext/accounts/doctype/period_closing_voucher/test_period_closing_voucher.py b/erpnext/accounts/doctype/period_closing_voucher/test_period_closing_voucher.py index 3dca58856b..e9ed2e4694 100644 --- a/erpnext/accounts/doctype/period_closing_voucher/test_period_closing_voucher.py +++ b/erpnext/accounts/doctype/period_closing_voucher/test_period_closing_voucher.py @@ -114,7 +114,7 @@ class TestPeriodClosingVoucher(unittest.TestCase): (pcv.name), ) - self.assertEqual(pcv_gle, expected_gle) + self.assertSequenceEqual(pcv_gle, expected_gle) pcv.reload() pcv.cancel() @@ -175,7 +175,7 @@ class TestPeriodClosingVoucher(unittest.TestCase): (pcv.name), ) - self.assertEqual(pcv_gle, expected_gle) + self.assertSequenceEqual(pcv_gle, expected_gle) def make_period_closing_voucher(self, submit=True): surplus_account = create_account() diff --git a/erpnext/assets/doctype/asset/test_asset.py b/erpnext/assets/doctype/asset/test_asset.py index 34d374c9e8..986b7001ff 100644 --- a/erpnext/assets/doctype/asset/test_asset.py +++ b/erpnext/assets/doctype/asset/test_asset.py @@ -133,7 +133,7 @@ class TestAsset(AssetSetup): order by account""", pi.name, ) - self.assertEqual(gle, expected_gle) + self.assertSequenceEqual(gle, expected_gle) pi.cancel() asset.cancel() @@ -208,7 +208,7 @@ class TestAsset(AssetSetup): order by account""", asset.journal_entry_for_scrap, ) - self.assertEqual(gle, expected_gle) + self.assertSequenceEqual(gle, expected_gle) restore_asset(asset.name) @@ -253,7 +253,7 @@ class TestAsset(AssetSetup): si.name, ) - self.assertEqual(gle, expected_gle) + self.assertSequenceEqual(gle, expected_gle) si.cancel() self.assertEqual(frappe.db.get_value("Asset", asset.name, "status"), "Partially Depreciated") @@ -361,7 +361,7 @@ class TestAsset(AssetSetup): pr.name, ) - self.assertEqual(pr_gle, expected_gle) + self.assertSequenceEqual(pr_gle, expected_gle) pi = make_invoice(pr.name) pi.submit() @@ -381,7 +381,7 @@ class TestAsset(AssetSetup): pi.name, ) - self.assertEqual(pi_gle, expected_gle) + self.assertSequenceEqual(pi_gle, expected_gle) asset = frappe.db.get_value("Asset", {"purchase_receipt": pr.name, "docstatus": 0}, "name") @@ -414,7 +414,7 @@ class TestAsset(AssetSetup): asset_doc.name, ) - self.assertEqual(gle, expected_gle) + self.assertSequenceEqual(gle, expected_gle) def test_asset_cwip_toggling_cases(self): cwip = frappe.db.get_value("Asset Category", "Computers", "enable_cwip_accounting") @@ -1287,7 +1287,7 @@ class TestDepreciationBasics(AssetSetup): asset.name, ) - self.assertEqual(gle, expected_gle) + self.assertSequenceEqual(gle, expected_gle) self.assertEqual(asset.get("value_after_depreciation"), 0) def test_expected_value_change(self): diff --git a/erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py b/erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py index ebeb174d13..62c636624c 100644 --- a/erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py +++ b/erpnext/assets/doctype/asset_value_adjustment/test_asset_value_adjustment.py @@ -91,7 +91,7 @@ class TestAssetValueAdjustment(unittest.TestCase): adj_doc.journal_entry, ) - self.assertEqual(gle, expected_gle) + self.assertSequenceEqual(gle, expected_gle) def make_asset_value_adjustment(**args): From 3c26415b6f538e4ea68bdfffd9049c5e0cfcd73d Mon Sep 17 00:00:00 2001 From: Gavin D'souza Date: Tue, 28 Jun 2022 15:10:59 +0530 Subject: [PATCH 08/11] fix(gd): Scan FY only if current_fiscal_year set --- .../global_defaults/global_defaults.py | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/erpnext/setup/doctype/global_defaults/global_defaults.py b/erpnext/setup/doctype/global_defaults/global_defaults.py index 984bab4729..16e94343a3 100644 --- a/erpnext/setup/doctype/global_defaults/global_defaults.py +++ b/erpnext/setup/doctype/global_defaults/global_defaults.py @@ -30,18 +30,20 @@ class GlobalDefaults(Document): frappe.db.set_default(key, self.get(keydict[key], "")) # update year start date and year end date from fiscal_year - year_start_end_date = frappe.db.sql( - """select year_start_date, year_end_date - from `tabFiscal Year` where name=%s""", - self.current_fiscal_year, - ) - if year_start_end_date: - ysd = year_start_end_date[0][0] or "" - yed = year_start_end_date[0][1] or "" + if self.current_fiscal_year: + if fiscal_year := frappe.get_all( + "Fiscal Year", + filters={"name": self.current_fiscal_year}, + fields=["year_start_date", "year_end_date"], + limit=1, + order_by=None, + ): + ysd = fiscal_year[0].year_start_date or "" + yed = fiscal_year[0].year_end_date or "" - if ysd and yed: - frappe.db.set_default("year_start_date", ysd.strftime("%Y-%m-%d")) - frappe.db.set_default("year_end_date", yed.strftime("%Y-%m-%d")) + if ysd and yed: + frappe.db.set_default("year_start_date", ysd.strftime("%Y-%m-%d")) + frappe.db.set_default("year_end_date", yed.strftime("%Y-%m-%d")) # enable default currency if self.default_currency: @@ -50,7 +52,6 @@ class GlobalDefaults(Document): self.toggle_rounded_total() self.toggle_in_words() - # clear cache frappe.clear_cache() @frappe.whitelist() From 38e71b06390652acb6412a8059290ec6feee113c Mon Sep 17 00:00:00 2001 From: Sagar Vora Date: Tue, 26 Jul 2022 13:08:39 +0530 Subject: [PATCH 09/11] docs: improve README --- README.md | 104 ++++++++++++++++++++---------------------------------- 1 file changed, 38 insertions(+), 66 deletions(-) diff --git a/README.md b/README.md index cea3472447..d6bbacc81f 100644 --- a/README.md +++ b/README.md @@ -1,87 +1,59 @@
- - - -

ERPNext

-

-

ERP made simple

-

-[![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) -[![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) + +

India Compliance

-[https://erpnext.com](https://erpnext.com) +Simple, yet powerful compliance solutions for Indian businesses + +[![Server Tests](https://github.com/resilient-tech/india-compliance/actions/workflows/server-tests.yml/badge.svg)](https://github.com/resilient-tech/india-compliance/actions/workflows/server-tests.yml)
-ERPNext as a monolith includes the following areas for managing businesses: -1. [Accounting](https://erpnext.com/open-source-accounting) -1. [Warehouse Management](https://erpnext.com/distribution/warehouse-management-system) -1. [CRM](https://erpnext.com/open-source-crm) -1. [Sales](https://erpnext.com/open-source-sales-purchase) -1. [Purchase](https://erpnext.com/open-source-sales-purchase) -1. [HRMS](https://erpnext.com/open-source-hrms) -1. [Project Management](https://erpnext.com/open-source-projects) -1. [Support](https://erpnext.com/open-source-help-desk-software) -1. [Asset Management](https://erpnext.com/open-source-asset-management-software) -1. [Quality Management](https://erpnext.com/docs/user/manual/en/quality-management) -1. [Manufacturing](https://erpnext.com/open-source-manufacturing-erp-software) -1. [Website Management](https://erpnext.com/open-source-website-builder-software) -1. [Customize ERPNext](https://erpnext.com/docs/user/manual/en/customize-erpnext) -1. [And More](https://erpnext.com/docs/user/manual/en/) -ERPNext is built on the [Frappe Framework](https://github.com/frappe/frappe), a full-stack web app framework built with Python & JavaScript. +## Introduction + +India Compliance has been designed to make compliance with Indian rules and regulations simple, swift and reliable. To this end, it has been carefully integrated with GST APIs to simplify recurring compliance processes. + +India Compliance builds on top of [ERPNext](https://github.com/frappe/erpnext) and the [Frappe Framework](https://github.com/frappe/frappe) - incredible FOSS projects built and maintained by the incredible folks at Frappe. Go check these out if you haven't already! + +## Key Features + +- End-to-end GST e-Waybill management +- Automated GST e-Invoice generation and cancellation +- Autofill Party and Address details by entering their GSTIN +- Configurable features based on business needs +- Powerful validations to ensure correct compliance + +For a detailed overview of these features, please [refer to the documentation](https://docs.erpnext.com/docs/v14/user/manual/en/regional/india). ## Installation - - -> Login for the PWD site: (username: Administrator, password: admin) - -### Containerized Installation - -Use docker to deploy ERPNext in production or for development of [Frappe](https://github.com/frappe/frappe) apps. See https://github.com/frappe/frappe_docker for more details. - -### Manual Install - -The Easy Way: our install script for bench will install all dependencies (e.g. MariaDB). See https://github.com/frappe/bench for more details. - -New passwords will be created for the ERPNext "Administrator" user, the MariaDB root user, and the frappe user (the script displays the passwords and saves them to ~/frappe_passwords.txt). +Once you've [set up a Frappe site](https://frappeframework.com/docs/v14/user/en/installation/), installing India Compliance is simple: -## Learning and community +1. Download the app using the Bench CLI -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. -4. [Telegram Group](https://t.me/erpnexthelp) - Get instant help from huge community of users. + ```bash + bench get-app https://github.com/resilient-tech/india-compliance.git + ``` +2. Install the app on your site + + ```bash + bench --site [site name] install-app india_compliance + ``` + +## Planned Features + +- Advanced purchase reconciliation based on GSTR-2B and GSTR-2A +- Quick and easy filing process for GSTR-1 and GSTR-3B ## Contributing -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) -1. [Translations](https://translate.erpnext.com) - +- [Issue Guidelines](https://github.com/frappe/erpnext/wiki/Issue-Guidelines) +- [Pull Request Requirements](https://github.com/frappe/erpnext/wiki/Contribution-Guidelines) ## License -GNU/General Public License (see [license.txt](license.txt)) - -The ERPNext code is licensed as GNU General Public License (v3) and the Documentation is licensed as Creative Commons (CC-BY-SA-3.0) and the copyright is owned by Frappe Technologies Pvt Ltd (Frappe) and Contributors. - -## Logo and Trademark Policy - -Please read our [Logo and Trademark Policy](TRADEMARK_POLICY.md). +[GNU General Public License (v3)](https://github.com/resilient-tech/india-compliance/blob/develop/license.txt) From c6fbb7b27d570b75073668f0fa249e4501da5d4d Mon Sep 17 00:00:00 2001 From: Sagar Vora Date: Tue, 26 Jul 2022 13:09:46 +0530 Subject: [PATCH 10/11] Revert "docs: improve README" This reverts commit 38e71b06390652acb6412a8059290ec6feee113c. --- README.md | 104 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 66 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index d6bbacc81f..cea3472447 100644 --- a/README.md +++ b/README.md @@ -1,59 +1,87 @@
+ + + +

ERPNext

+

+

ERP made simple

+

- -

India Compliance

+[![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) +[![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) -Simple, yet powerful compliance solutions for Indian businesses - -[![Server Tests](https://github.com/resilient-tech/india-compliance/actions/workflows/server-tests.yml/badge.svg)](https://github.com/resilient-tech/india-compliance/actions/workflows/server-tests.yml) +[https://erpnext.com](https://erpnext.com)
+ERPNext as a monolith includes the following areas for managing businesses: +1. [Accounting](https://erpnext.com/open-source-accounting) +1. [Warehouse Management](https://erpnext.com/distribution/warehouse-management-system) +1. [CRM](https://erpnext.com/open-source-crm) +1. [Sales](https://erpnext.com/open-source-sales-purchase) +1. [Purchase](https://erpnext.com/open-source-sales-purchase) +1. [HRMS](https://erpnext.com/open-source-hrms) +1. [Project Management](https://erpnext.com/open-source-projects) +1. [Support](https://erpnext.com/open-source-help-desk-software) +1. [Asset Management](https://erpnext.com/open-source-asset-management-software) +1. [Quality Management](https://erpnext.com/docs/user/manual/en/quality-management) +1. [Manufacturing](https://erpnext.com/open-source-manufacturing-erp-software) +1. [Website Management](https://erpnext.com/open-source-website-builder-software) +1. [Customize ERPNext](https://erpnext.com/docs/user/manual/en/customize-erpnext) +1. [And More](https://erpnext.com/docs/user/manual/en/) -## Introduction - -India Compliance has been designed to make compliance with Indian rules and regulations simple, swift and reliable. To this end, it has been carefully integrated with GST APIs to simplify recurring compliance processes. - -India Compliance builds on top of [ERPNext](https://github.com/frappe/erpnext) and the [Frappe Framework](https://github.com/frappe/frappe) - incredible FOSS projects built and maintained by the incredible folks at Frappe. Go check these out if you haven't already! - -## Key Features - -- End-to-end GST e-Waybill management -- Automated GST e-Invoice generation and cancellation -- Autofill Party and Address details by entering their GSTIN -- Configurable features based on business needs -- Powerful validations to ensure correct compliance - -For a detailed overview of these features, please [refer to the documentation](https://docs.erpnext.com/docs/v14/user/manual/en/regional/india). +ERPNext is built on the [Frappe Framework](https://github.com/frappe/frappe), a full-stack web app framework built with Python & JavaScript. ## Installation -Once you've [set up a Frappe site](https://frappeframework.com/docs/v14/user/en/installation/), installing India Compliance is simple: + + +> Login for the PWD site: (username: Administrator, password: admin) + +### Containerized Installation + +Use docker to deploy ERPNext in production or for development of [Frappe](https://github.com/frappe/frappe) apps. See https://github.com/frappe/frappe_docker for more details. + +### Manual Install + +The Easy Way: our install script for bench will install all dependencies (e.g. MariaDB). See https://github.com/frappe/bench for more details. + +New passwords will be created for the ERPNext "Administrator" user, the MariaDB root user, and the frappe user (the script displays the passwords and saves them to ~/frappe_passwords.txt). -1. Download the app using the Bench CLI +## Learning and community - ```bash - bench get-app https://github.com/resilient-tech/india-compliance.git - ``` +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. +4. [Telegram Group](https://t.me/erpnexthelp) - Get instant help from huge community of users. -2. Install the app on your site - - ```bash - bench --site [site name] install-app india_compliance - ``` - -## Planned Features - -- Advanced purchase reconciliation based on GSTR-2B and GSTR-2A -- Quick and easy filing process for GSTR-1 and GSTR-3B ## Contributing -- [Issue Guidelines](https://github.com/frappe/erpnext/wiki/Issue-Guidelines) -- [Pull Request Requirements](https://github.com/frappe/erpnext/wiki/Contribution-Guidelines) +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) +1. [Translations](https://translate.erpnext.com) + ## License -[GNU General Public License (v3)](https://github.com/resilient-tech/india-compliance/blob/develop/license.txt) +GNU/General Public License (see [license.txt](license.txt)) + +The ERPNext code is licensed as GNU General Public License (v3) and the Documentation is licensed as Creative Commons (CC-BY-SA-3.0) and the copyright is owned by Frappe Technologies Pvt Ltd (Frappe) and Contributors. + +## Logo and Trademark Policy + +Please read our [Logo and Trademark Policy](TRADEMARK_POLICY.md). From 5b7b58322f463993722fafd2f963f9f76fe11532 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 26 Jul 2022 13:46:03 +0530 Subject: [PATCH 11/11] fix: hero image not loading in portal homepage (backport #31699) (#31700) fix: hero image not loading in portal homepage (#31699) (cherry picked from commit 8a6432ec3f4bf63c39d1f687f618cec2360ebccf) Co-authored-by: Rucha Mahabal --- erpnext/templates/pages/home.css | 1 - erpnext/templates/pages/home.html | 6 +++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/erpnext/templates/pages/home.css b/erpnext/templates/pages/home.css index 785d8059ba..f2661491ce 100644 --- a/erpnext/templates/pages/home.css +++ b/erpnext/templates/pages/home.css @@ -1,7 +1,6 @@ /* csslint ignore:start */ {% if homepage.hero_image %} .hero-image { - background-image: url("{{ homepage.hero_image }}"); background-size: cover; padding: 10rem 0; } diff --git a/erpnext/templates/pages/home.html b/erpnext/templates/pages/home.html index 9a61eabaf8..4c69b8388d 100644 --- a/erpnext/templates/pages/home.html +++ b/erpnext/templates/pages/home.html @@ -5,7 +5,11 @@ {% block content %}
{% if homepage.hero_section_based_on == 'Default' %} -
+

{{ homepage.tag_line }}

{{ homepage.tag_line }}