From 2b0b24f7c34f6aadec0a334c73263bdf065656f7 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 11 Apr 2023 11:40:59 +0000 Subject: [PATCH 01/32] chore(release): Bumped to Version 14.21.0 # [14.21.0](https://github.com/frappe/erpnext/compare/v14.20.3...v14.21.0) (2023-04-11) ### Bug Fixes * `payment entry is already created` on posawesome. (backport [#34712](https://github.com/frappe/erpnext/issues/34712)) ([#34752](https://github.com/frappe/erpnext/issues/34752)) ([8ba1e0f](https://github.com/frappe/erpnext/commit/8ba1e0f31e1769bfb4b3111870e4b46cf2c20d16)) * add german translation of "Partly Paid" ([#34776](https://github.com/frappe/erpnext/issues/34776)) ([3023dbb](https://github.com/frappe/erpnext/commit/3023dbbe9500e540a75dfde8d3da96dba609014f)) * Allocate tax loss to tax account head on early payment discount ([#34287](https://github.com/frappe/erpnext/issues/34287)) ([be2990e](https://github.com/frappe/erpnext/commit/be2990ec88087cc1081d51feb8100e97e9031fd8)) * asset monthly WDV and DD schedule [v14] ([#34644](https://github.com/frappe/erpnext/issues/34644)) ([88c8c36](https://github.com/frappe/erpnext/commit/88c8c3680573232c23429a8123619f9044b7d091)) * Bank clearance for case loan (disburstment/repayment) ([#34586](https://github.com/frappe/erpnext/issues/34586)) ([f1687cf](https://github.com/frappe/erpnext/commit/f1687cfb14fc204a0b6081577c6c8d683ac1282a)) * BOM Update Cost, when no actual qty ([8757435](https://github.com/frappe/erpnext/commit/875743589863ae353f2617ed712f453f0e58620b)) * bom update log not working for large batch size ([551190a](https://github.com/frappe/erpnext/commit/551190af305f1dcd6862bbaf298729c79e2a4183)) * Column value mismatch in COA blank template ([#34658](https://github.com/frappe/erpnext/issues/34658)) ([5e03a4e](https://github.com/frappe/erpnext/commit/5e03a4e9e2fe076707aacc701b910eeed6d605c5)) * consider qty field precision ([2c54e76](https://github.com/frappe/erpnext/commit/2c54e763e48f570d62f0fc7a2bac5f7f3593242c)) * customer selection not mandatory in purchase invoice to fetch item details ([#34810](https://github.com/frappe/erpnext/issues/34810)) ([994272b](https://github.com/frappe/erpnext/commit/994272b9664200a1fceea77eba05f2b739bd3c0b)) * don't include cancelled JVs in assdeprledger report ([3896d41](https://github.com/frappe/erpnext/commit/3896d41e95a2054b4ec76c5f5b2819b3f28ef98e)) * enclose ternary operator in parentheses ([b835760](https://github.com/frappe/erpnext/commit/b835760b0ba11c30e94582937f930c09e03299d6)) * incorrect arg name in asset value adjustment ([8d9305e](https://github.com/frappe/erpnext/commit/8d9305ee5feea229ce0430303c44bc9cc3c30482)) * incorrect balance qty in the stock ledger report ([3494c9c](https://github.com/frappe/erpnext/commit/3494c9ccb69adbe646b8c778bec03667fed90f0d)) * incorrect stock balance quantity for batch item ([d817c50](https://github.com/frappe/erpnext/commit/d817c50581fedd46b5ee93f3cfd55247d1fd9823)) * Item tax validity comparison fixes ([#34784](https://github.com/frappe/erpnext/issues/34784)) ([cc21241](https://github.com/frappe/erpnext/commit/cc21241887621283c7dd0f79281fd24d625cf3b4)) * lost opportunity report issue ([#34626](https://github.com/frappe/erpnext/issues/34626)) ([3e67994](https://github.com/frappe/erpnext/commit/3e67994cc771c8863780c35a7503d300d61b06ca)) * Multiple issues in purchase invoice submission ([#34600](https://github.com/frappe/erpnext/issues/34600)) ([5677f25](https://github.com/frappe/erpnext/commit/5677f25215e356f53bd94e57b05540de64e3942e)) * plaid log_error syntax issue (backport [#34642](https://github.com/frappe/erpnext/issues/34642)) ([#34667](https://github.com/frappe/erpnext/issues/34667)) ([61858a6](https://github.com/frappe/erpnext/commit/61858a60c20ea67b627be97b3ce6e46a008717dd)) * posting time issue ([bb5eeb6](https://github.com/frappe/erpnext/commit/bb5eeb6bd6fa1f51a7545de657437393391d270c)) * provide filter by depreciable assets in fixed asset register ([#34803](https://github.com/frappe/erpnext/issues/34803)) ([fee4cd5](https://github.com/frappe/erpnext/commit/fee4cd5f40c462a76b22414d2c6f7952f8c09cdb)) * reposting record not created for backdated stock reco ([9b90323](https://github.com/frappe/erpnext/commit/9b90323d539df3043293954b27943c05a0eee791)) * serial no with zero quantity issue in stock reco ([f47be46](https://github.com/frappe/erpnext/commit/f47be467177900fd1824ee1b4bccdf54dd0b50b5)) * Shop by category fixes (backport [#34688](https://github.com/frappe/erpnext/issues/34688)) ([#34750](https://github.com/frappe/erpnext/issues/34750)) ([3ad5d67](https://github.com/frappe/erpnext/commit/3ad5d676ab07b3ddd2347842dd23aebf4cd40995)) * Subcontracting Receipt incorrect `status` ([99226d3](https://github.com/frappe/erpnext/commit/99226d3811db504a747ccafcaef4f2ed2022c924)) * Supplier RFQ email link ([#34338](https://github.com/frappe/erpnext/issues/34338)) ([a00459a](https://github.com/frappe/erpnext/commit/a00459aec39f0337d8b62e8f2c143f87e6a35daf)) * Total debit and credit while importing via Data Import ([#34659](https://github.com/frappe/erpnext/issues/34659)) ([5e28d02](https://github.com/frappe/erpnext/commit/5e28d0234ef6e272d9252e55a5aa75dc08f02d9d)) * **ui:** recalculate difference amount on allocation change ([#34694](https://github.com/frappe/erpnext/issues/34694)) ([6b866e2](https://github.com/frappe/erpnext/commit/6b866e24f63c349181811b533dd712e83516182b)) * Unable to create payment request against purchase invoice ([#34762](https://github.com/frappe/erpnext/issues/34762)) ([a1f7e35](https://github.com/frappe/erpnext/commit/a1f7e359142132a3e0bbcd49f37bab84071ef4dc)) * use stock qty to calculate POS reserved stock ([c0f7f7d](https://github.com/frappe/erpnext/commit/c0f7f7da429dc6e9edd6e6c8da76c3a347d82d24)) * UX for stock entry, bom and work order ([d4a6035](https://github.com/frappe/erpnext/commit/d4a6035c83b766a4dde740ffb9249e16f437cd57)) ### Features * add `Received Qty` field in `Delivery Note Item` ([1c5e36c](https://github.com/frappe/erpnext/commit/1c5e36c7b6791482cb42c673bd0ecc116bce8b41)) * Auto allocate advance payments only against orders ([#34727](https://github.com/frappe/erpnext/issues/34727)) ([05d24e3](https://github.com/frappe/erpnext/commit/05d24e36650ef07d46668248d7109732926e601b)) ### Reverts * remove frappe.send_message (v14) ([#34816](https://github.com/frappe/erpnext/issues/34816)) ([8a331e0](https://github.com/frappe/erpnext/commit/8a331e0f261e668cee04f4e66f281ed7cd850ad7)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 456ca52020b..6e0406bea63 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import inspect import frappe -__version__ = "14.20.3" +__version__ = "14.21.0" def get_default_company(user=None): From b12bd5f558a00a178b57da485b9f3aac7e5d9487 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 19 Apr 2023 01:36:11 +0000 Subject: [PATCH 02/32] chore(release): Bumped to Version 14.22.0 # [14.22.0](https://github.com/frappe/erpnext/compare/v14.21.0...v14.22.0) (2023-04-19) ### Bug Fixes * Add offers info to website item ([#34873](https://github.com/frappe/erpnext/issues/34873)) ([f1a1fc6](https://github.com/frappe/erpnext/commit/f1a1fc6c5bb6fde45167d490efee36bca4d3856c)) * Advance payment against payment terms ([#34872](https://github.com/frappe/erpnext/issues/34872)) ([7461239](https://github.com/frappe/erpnext/commit/74612392183623a9c234e49066f8d8b7873d6c62)) * change discuss forum url ([#34891](https://github.com/frappe/erpnext/issues/34891)) ([8f26d62](https://github.com/frappe/erpnext/commit/8f26d62b35a8c1f65cb6bc810b2386e043c710f1)) * don't show disabled warehouses in the Warehouse Wise Stock Balance report ([461780d](https://github.com/frappe/erpnext/commit/461780da222ce2bf9c22a8279fab2da8df7b59fe)) * Don't use stale item details ([#34847](https://github.com/frappe/erpnext/issues/34847)) ([c11aeba](https://github.com/frappe/erpnext/commit/c11aebaaae7edb910d29309cb7d1a9bbc63842ee)) * for Tree Type item and item group show net amount ([#31776](https://github.com/frappe/erpnext/issues/31776)) ([7c8194a](https://github.com/frappe/erpnext/commit/7c8194a1a86283e52b60923143ac883f880043d1)) * linters issues ([c53dc06](https://github.com/frappe/erpnext/commit/c53dc06f80cd86fcaa7c92dc8de42526f6b6c6c4)) * Remove unnecessary checkbox from Accounts doctype ([#34821](https://github.com/frappe/erpnext/issues/34821)) ([0cf6144](https://github.com/frappe/erpnext/commit/0cf6144b3f6e66ad160e29759aed666225f79af0)) * selling workspace is not migrating properly ([79fd38c](https://github.com/frappe/erpnext/commit/79fd38cf3fbd5dd91c6b0080b3e3420407df7987)) * stock reco test case ([2f356dc](https://github.com/frappe/erpnext/commit/2f356dcc6cbb74660f95efdd40d3d1ba401e30b5)) * too many writes error while making backdated stock reconciliation ([a981b79](https://github.com/frappe/erpnext/commit/a981b79865c6ccd0938692a6a133e00cd0bc52e7)) * unable to change `company` for manual `Serial No` entry ([2e7043c](https://github.com/frappe/erpnext/commit/2e7043ca9087dc386303c00f1064508afe28f0d6)) * **ux:** don't throw error when company defaults aren't set ([#34825](https://github.com/frappe/erpnext/issues/34825)) ([15f5e8d](https://github.com/frappe/erpnext/commit/15f5e8d4ffba5ea76470c1c3c371ddf1c569a711)) * whitelist doc method ([09b92fd](https://github.com/frappe/erpnext/commit/09b92fd78c3b321ae848f0c5c0b4f2c3b8552570)) ### Features * add german sales tax template ([#34823](https://github.com/frappe/erpnext/issues/34823)) ([3738ea5](https://github.com/frappe/erpnext/commit/3738ea5794dd5e56bc18237dc4b4afeb482dcf85)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 6e0406bea63..52fcc56b487 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import inspect import frappe -__version__ = "14.21.0" +__version__ = "14.22.0" def get_default_company(user=None): From 78ad0eaa740fa849db03574c12aa73296999c160 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 20 Apr 2023 10:37:58 +0530 Subject: [PATCH 03/32] fix: add limit for get_next_stock_reco (#34937) fix: limit stock reco issue (cherry picked from commit fcfa8842a7d0413a865741be4f7904034b365411) Co-authored-by: Rohit Waghchaure (cherry picked from commit 7131ff28fdd207872b1c60790b9b1487160a8b7f) --- erpnext/stock/stock_ledger.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index b638f08ed9b..c197769d0a3 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -1453,6 +1453,7 @@ def get_next_stock_reco(kwargs): ) .orderby(CombineDatetime(sle.posting_date, sle.posting_time)) .orderby(sle.creation) + .limit(1) ) if kwargs.get("batch_no"): From 6faf459f970906076b91d93aaa2b6c2beb1df877 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Thu, 20 Apr 2023 05:12:57 +0000 Subject: [PATCH 04/32] chore(release): Bumped to Version 14.22.1 ## [14.22.1](https://github.com/frappe/erpnext/compare/v14.22.0...v14.22.1) (2023-04-20) ### Bug Fixes * add limit for get_next_stock_reco ([#34937](https://github.com/frappe/erpnext/issues/34937)) ([78ad0ea](https://github.com/frappe/erpnext/commit/78ad0eaa740fa849db03574c12aa73296999c160)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 52fcc56b487..02b2caf6ce1 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import inspect import frappe -__version__ = "14.22.0" +__version__ = "14.22.1" def get_default_company(user=None): From 1b827e6b67514a5b5f235f551fd6617343b1e901 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 20 Apr 2023 12:50:40 +0530 Subject: [PATCH 05/32] fix: filtering via batch no (#34951) fix: filtering via batch no(#34950) * fix: filtering via batch no (cherry picked from commit ea6eeace8028ded8d19ae4795887ec9750298d89) Co-authored-by: Deepesh Garg (cherry picked from commit 3b23fc1ebaea09dd1ab51b446575eca3f4f652b0) --- erpnext/stock/stock_ledger.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index c197769d0a3..0f12987fbb6 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -1457,7 +1457,7 @@ def get_next_stock_reco(kwargs): ) if kwargs.get("batch_no"): - query.where(sle.batch_no == kwargs.get("batch_no")) + query = query.where(sle.batch_no == kwargs.get("batch_no")) return query.run(as_dict=True) From ca9b02fb535948ccd2e1534d16f252450330d18e Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Thu, 20 Apr 2023 07:24:45 +0000 Subject: [PATCH 06/32] chore(release): Bumped to Version 14.22.2 ## [14.22.2](https://github.com/frappe/erpnext/compare/v14.22.1...v14.22.2) (2023-04-20) ### Bug Fixes * filtering via batch no ([#34951](https://github.com/frappe/erpnext/issues/34951)) ([1b827e6](https://github.com/frappe/erpnext/commit/1b827e6b67514a5b5f235f551fd6617343b1e901)), closes [#34950](https://github.com/frappe/erpnext/issues/34950) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 02b2caf6ce1..8cd602e5dbe 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import inspect import frappe -__version__ = "14.22.1" +__version__ = "14.22.2" def get_default_company(user=None): From d5910fba44c15ce8e65ffcf376680a39af0ff833 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Mon, 24 Apr 2023 17:32:32 +0530 Subject: [PATCH 07/32] fix: incorrect OR condition causing timeout error (cherry picked from commit 379b215aeafe0d6fe01952cd31ab536ef4959974) (cherry picked from commit c020789bfc6731760e151563da3a7e7a97e6e03a) --- erpnext/stock/stock_ledger.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index 0f12987fbb6..6234f95e876 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -1441,13 +1441,13 @@ def get_next_stock_reco(kwargs): ( CombineDatetime(sle.posting_date, sle.posting_time) > CombineDatetime(kwargs.get("posting_date"), kwargs.get("posting_time")) - | ( - ( - CombineDatetime(sle.posting_date, sle.posting_time) - == CombineDatetime(kwargs.get("posting_date"), kwargs.get("posting_time")) - ) - & (sle.creation > kwargs.get("creation")) + ) + | ( + ( + CombineDatetime(sle.posting_date, sle.posting_time) + == CombineDatetime(kwargs.get("posting_date"), kwargs.get("posting_time")) ) + & (sle.creation > kwargs.get("creation")) ) ) ) From 943acbfea884e1f02d0264d7f5fe2f63ce25807c Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Mon, 24 Apr 2023 12:41:30 +0000 Subject: [PATCH 08/32] chore(release): Bumped to Version 14.22.3 ## [14.22.3](https://github.com/frappe/erpnext/compare/v14.22.2...v14.22.3) (2023-04-24) ### Bug Fixes * incorrect OR condition causing timeout error ([d5910fb](https://github.com/frappe/erpnext/commit/d5910fba44c15ce8e65ffcf376680a39af0ff833)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 8cd602e5dbe..a26916d40ea 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -2,7 +2,7 @@ import inspect import frappe -__version__ = "14.22.2" +__version__ = "14.22.3" def get_default_company(user=None): From 85f3a5d318058676b8cd9f751d48399eb8b5b4d1 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 25 Apr 2023 17:00:40 +0000 Subject: [PATCH 09/32] chore(release): Bumped to Version 14.23.0 # [14.23.0](https://github.com/frappe/erpnext/compare/v14.22.3...v14.23.0) (2023-04-25) ### Bug Fixes * `PermissionError` in Work Order ([a3568c1](https://github.com/frappe/erpnext/commit/a3568c1b277a3e2da98e04622de4759f236d66c5)) * Add company field to lower deduction certificate ([#34914](https://github.com/frappe/erpnext/issues/34914)) ([d732083](https://github.com/frappe/erpnext/commit/d7320831669019a3d7a28d336ba2fe75f3a74933)) * add item-code filter for SCR supplied-items batch-no ([7c4f83e](https://github.com/frappe/erpnext/commit/7c4f83ed60bea28375ec92b8a551b790c452c8b7)) * add limit for get_next_stock_reco ([#34937](https://github.com/frappe/erpnext/issues/34937)) ([7131ff2](https://github.com/frappe/erpnext/commit/7131ff28fdd207872b1c60790b9b1487160a8b7f)) * added validation for extra job card ([a5fde5d](https://github.com/frappe/erpnext/commit/a5fde5d9331425495bfaa92ddede9eda0a45474f)) * batch qty conversion factor issue fixed in pos transaction ([#34917](https://github.com/frappe/erpnext/issues/34917)) ([56ef0ba](https://github.com/frappe/erpnext/commit/56ef0baa9d615feee37e5d9ad82bea55ce7c3685)) * broken 'set exchange gain/loss' btn in payment entry ([#34940](https://github.com/frappe/erpnext/issues/34940)) ([00968ba](https://github.com/frappe/erpnext/commit/00968badf5bf2680408ef010e2497bfcab29c5a9)) * Bulk Payment Entry from PO/SO ([#34942](https://github.com/frappe/erpnext/issues/34942)) ([878d747](https://github.com/frappe/erpnext/commit/878d7477bcb8f37283e2c7fbd00b50e4b193a871)) * click handler should not attempt indexed access of empty array ([#35013](https://github.com/frappe/erpnext/issues/35013)) ([06f204a](https://github.com/frappe/erpnext/commit/06f204a8d646739f644d91f82cb5dbad03641856)) * Common party JV cost center ([#35008](https://github.com/frappe/erpnext/issues/35008)) ([693007a](https://github.com/frappe/erpnext/commit/693007adfe6f8d9abf7375de38a2ad64405dc784)) * duplicate reposting entries of same voucher ([aeac43c](https://github.com/frappe/erpnext/commit/aeac43ccf9059042be27d16b2862e845c353d1d0)) * FEC report for France accountancy ([#34781](https://github.com/frappe/erpnext/issues/34781)) ([6aabab2](https://github.com/frappe/erpnext/commit/6aabab26d8c796c16e52bbeed5800d6f14d09401)) * filtering via batch no ([#34951](https://github.com/frappe/erpnext/issues/34951)) ([3b23fc1](https://github.com/frappe/erpnext/commit/3b23fc1ebaea09dd1ab51b446575eca3f4f652b0)), closes [#34950](https://github.com/frappe/erpnext/issues/34950) * Incorrect difference value in Stock and Account Value Comparison report ([e7ca833](https://github.com/frappe/erpnext/commit/e7ca83392976dae6578391614e7f51e288111d5d)) * incorrect OR condition causing timeout error ([c020789](https://github.com/frappe/erpnext/commit/c020789bfc6731760e151563da3a7e7a97e6e03a)) * internal Purchase Receipt GL Entries ([f7e436f](https://github.com/frappe/erpnext/commit/f7e436fe717cd2718d70ddb20dd88f5a7633ab99)) * item not showing in the BOM ([28cd79a](https://github.com/frappe/erpnext/commit/28cd79a0403aa256cb6abd5cf9896348ca6a57e4)) * pass reference_doctype in link queries (backport [#35038](https://github.com/frappe/erpnext/issues/35038)) ([#35039](https://github.com/frappe/erpnext/issues/35039)) ([5cc3978](https://github.com/frappe/erpnext/commit/5cc3978c165497c4a4a3e52df30df3648df41046)) * Payment entry with TDS in bank reco statement ([#34961](https://github.com/frappe/erpnext/issues/34961)) ([f43ea0d](https://github.com/frappe/erpnext/commit/f43ea0d6ff2a3cbd1ef152b119a1c4114b958046)) * per_billed condition for Payment Entry ([#34969](https://github.com/frappe/erpnext/issues/34969)) ([f9f42c7](https://github.com/frappe/erpnext/commit/f9f42c7e988426bc688ad2db3e3a804f13b88edc)) * process_loss_percentage in BOM ([4418862](https://github.com/frappe/erpnext/commit/44188629655a6f86935f86adc9863d23ee6ce8d2)) * removed depends on for the Employee Detail section ([9d17d3f](https://github.com/frappe/erpnext/commit/9d17d3ff065f21bf9575312dfff766d1f7bcd791)) * respect title_field from doctype to bulk transactions ([#34928](https://github.com/frappe/erpnext/issues/34928)) ([29aa4a0](https://github.com/frappe/erpnext/commit/29aa4a0222e70d4685fdf96bdd6b38a0b545ed67)) * set `frappe.flags.company` to call regional code accurately ([789dfd6](https://github.com/frappe/erpnext/commit/789dfd6774b46e1b835842d723d9192d87e67ad5)) * simplify `erpnext.get_region` ([87595bd](https://github.com/frappe/erpnext/commit/87595bdb7e6193dcfe689929614d9343fc160294)) * SLA permissions (backport [#34981](https://github.com/frappe/erpnext/issues/34981)) ([#34986](https://github.com/frappe/erpnext/issues/34986)) ([83a1b83](https://github.com/frappe/erpnext/commit/83a1b836f964f6823780805d5967a7325c7409c6)) * stock entry type issue ([33a1608](https://github.com/frappe/erpnext/commit/33a16086efa498fbabe7d819c5fc4a535bf81cbe)) * **test:** `test_backdated_stock_reco_cancellation_future_negative_stock` ([2ad157b](https://github.com/frappe/erpnext/commit/2ad157bd77f2ade86d777c3f871ea8f1a86a0401)) * **test:** `test_internal_pr_gl_entries` ([7740ceb](https://github.com/frappe/erpnext/commit/7740ceb27e8aee0f9e67467ef883b6c4b2be5a2c)) * Unable to allocate advance against invoice ([#35007](https://github.com/frappe/erpnext/issues/35007)) ([5045ad6](https://github.com/frappe/erpnext/commit/5045ad6be6c728492de64b9e2137f1f9b10fe270)) * use `functools.wraps` to preserve doc signature ([2ec18eb](https://github.com/frappe/erpnext/commit/2ec18eb4cf17a56014071161c1b2fc81113d86a0)) * use CombineDatetime instead of Timestamp in QB queries ([55da91c](https://github.com/frappe/erpnext/commit/55da91cb34972a9bd19569d267d171fcd4584a1a)) * use filter_by_finance_book instead of only_depreciable_assets in fixed asset register (backport [#35031](https://github.com/frappe/erpnext/issues/35031)) ([#35035](https://github.com/frappe/erpnext/issues/35035)) ([5630e81](https://github.com/frappe/erpnext/commit/5630e8189bd3c6bbbd35fafc01a6d7326b7ef1f5)) * Use set instead of db_set as it is called from validate ([#34967](https://github.com/frappe/erpnext/issues/34967)) ([6650212](https://github.com/frappe/erpnext/commit/665021270f337fd4f17418a914d53fb7ec83531f)) * v14, Bank Reconcile Tools not cover case JV debit bank ([#35000](https://github.com/frappe/erpnext/issues/35000)) ([82d8379](https://github.com/frappe/erpnext/commit/82d83791889ed8a87b27b5c9698df5c6103970ba)) * validation for internal transfer entry ([a582354](https://github.com/frappe/erpnext/commit/a5823547d3998bfeec2a5d9c62301ddbbad2a757)) * value of depreciable assets not updating after manual depr entry [v14] ([#35010](https://github.com/frappe/erpnext/issues/35010)) ([3c75e55](https://github.com/frappe/erpnext/commit/3c75e55cb91f2c78356054b9c1ac9ea280032959)) * wrong qty of remaining work orders to be created when using "Create" > "Work Order" ([#34726](https://github.com/frappe/erpnext/issues/34726)) ([47df41f](https://github.com/frappe/erpnext/commit/47df41fdbde0ed7efad8690b3f6848b0db673995)) ### Features * Reconcile Payments in background ([#34596](https://github.com/frappe/erpnext/issues/34596)) ([5923a80](https://github.com/frappe/erpnext/commit/5923a80a0fc4e66e3cbfcba0012ddccebff9f8fe)) ### Performance Improvements * Journal Entries (backport [#34918](https://github.com/frappe/erpnext/issues/34918)) ([#35054](https://github.com/frappe/erpnext/issues/35054)) ([39b5147](https://github.com/frappe/erpnext/commit/39b51477682608c0c99530b6c63a33aa913050aa)) ### Reverts * Revert "fix: Rate from LDC in TDS reports (#33699)" ([f44a79f](https://github.com/frappe/erpnext/commit/f44a79fa73e9558ba1d77ff9ec98bd7eb00bc7ca)), closes [#33699](https://github.com/frappe/erpnext/issues/33699) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 66c526c4745..cde0d02eb2c 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.22.3" +__version__ = "14.23.0" def get_default_company(user=None): From 5eb5bf7102dd5cb78f4e2ab36c47e58a187ec285 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 3 May 2023 04:22:30 +0000 Subject: [PATCH 10/32] chore(release): Bumped to Version 14.23.1 ## [14.23.1](https://github.com/frappe/erpnext/compare/v14.23.0...v14.23.1) (2023-05-03) ### Bug Fixes * conflicts ([3ba2b9e](https://github.com/frappe/erpnext/commit/3ba2b9ed2e17860c1346284c4a9cd64a6ee9caf9)) * don't allow to make reposting for the closed period ([cca2fce](https://github.com/frappe/erpnext/commit/cca2fcec54bfbd730565858a1c5c8e96219a884f)) * don't create material request from sales order against the delivered items ([a5489ee](https://github.com/frappe/erpnext/commit/a5489ee2ac915aeba3afa1d070ff9495bf0db603)) * handle expected_value_after_useful_life properly in asset value adjustment ([#35117](https://github.com/frappe/erpnext/issues/35117)) ([80230fe](https://github.com/frappe/erpnext/commit/80230fec3ef079b75825447a61836f8a9ce64f57)) * handle finance book properly in trial balance and general ledger [v14] ([#35136](https://github.com/frappe/erpnext/issues/35136)) ([344c339](https://github.com/frappe/erpnext/commit/344c33948400ad51ed769309ed52c7cf1c72e937)) * Hyperlink in Quality Inspection Summary ([e4ce6fa](https://github.com/frappe/erpnext/commit/e4ce6fa195a68c6f0b18fb1f5b928d48574161ec)) * incorrect paid_amount and exchange rate in PE ([f50b4d8](https://github.com/frappe/erpnext/commit/f50b4d80f182ae94be5025a580c08633419e5238)) * linter issue ([78c34d7](https://github.com/frappe/erpnext/commit/78c34d71e2d50ea4f845dd5717fb50f011cf12fe)) * linter issue ([453249d](https://github.com/frappe/erpnext/commit/453249d868f82b015c7f963b3cf3da15ec099b2c)) * Naming series error in Journal Entry template ([#35084](https://github.com/frappe/erpnext/issues/35084)) ([7021e3a](https://github.com/frappe/erpnext/commit/7021e3adb17aa6b386a98216550de66447a38aa0)) * not able to create delivery note from sales order ([28dfc13](https://github.com/frappe/erpnext/commit/28dfc13dc6a676fab9f0544d83c282a043a1264a)) * Report link, option, and added a link for Sales Person in GP ([fc611cf](https://github.com/frappe/erpnext/commit/fc611cf86bbc98e9cb654c599a2208ad84434949)) * test case ([35ec125](https://github.com/frappe/erpnext/commit/35ec125b3492743dea76f7e4aba602267003fbd8)) * test case ([6597c74](https://github.com/frappe/erpnext/commit/6597c74d6cad1f7200f1fcb111350f31495ac619)) * test case ([d844a2b](https://github.com/frappe/erpnext/commit/d844a2b990c2561157332c7181b2ec74e3b8986c)) * timeout error while submitting delivery note ([e33fb3b](https://github.com/frappe/erpnext/commit/e33fb3b2429e18c88483cfd7ab13d83b32f987d1)) * Updates in process statement of Accounts ([#35064](https://github.com/frappe/erpnext/issues/35064)) ([bef9dd7](https://github.com/frappe/erpnext/commit/bef9dd79e7e1ec92a3e393f4f24a340da7c83d8a)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index cde0d02eb2c..4261cbaaa86 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.23.0" +__version__ = "14.23.1" def get_default_company(user=None): From 4e83d0baa6abebf7595737b2ae95ed00db341505 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 3 May 2023 23:22:59 +0530 Subject: [PATCH 11/32] fix: over production percentage not considered in validation (cherry picked from commit a84d0af81e1dbba309a76471cd98e91bf6441d22) (cherry picked from commit bf6e1b67a5870af7cf7881f409b1dd35b0f4e7f7) --- .../doctype/job_card/job_card.py | 19 +++++++++++++++++-- .../doctype/work_order/test_work_order.py | 8 ++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/erpnext/manufacturing/doctype/job_card/job_card.py b/erpnext/manufacturing/doctype/job_card/job_card.py index f89951619e0..877362dcba4 100644 --- a/erpnext/manufacturing/doctype/job_card/job_card.py +++ b/erpnext/manufacturing/doctype/job_card/job_card.py @@ -87,6 +87,12 @@ class JobCard(Document): frappe.db.get_value("Work Order Operation", self.operation_id, "completed_qty") ) + over_production_percentage = flt( + frappe.db.get_single_value("Manufacturing Settings", "overproduction_percentage_for_work_order") + ) + + wo_qty = wo_qty + (wo_qty * over_production_percentage / 100) + job_card_qty = frappe.get_all( "Job Card", fields=["sum(for_quantity)"], @@ -101,8 +107,17 @@ class JobCard(Document): job_card_qty = flt(job_card_qty[0][0]) if job_card_qty else 0 if job_card_qty and ((job_card_qty - completed_qty) > wo_qty): - msg = f"""Job Card quantity cannot be greater than - Work Order quantity for the operation {self.operation}""" + form_link = get_link_to_form("Manufacturing Settings", "Manufacturing Settings") + + msg = f""" + Qty To Manufacture in the job card + cannot be greater than Qty To Manufacture in the + work order for the operation {bold(self.operation)}. +

Solution: Either you can reduce the + Qty To Manufacture in the job card or set the + 'Overproduction Percentage For Work Order' + in the {form_link}.""" + frappe.throw(_(msg), title=_("Extra Job Card Quantity")) def set_sub_operations(self): diff --git a/erpnext/manufacturing/doctype/work_order/test_work_order.py b/erpnext/manufacturing/doctype/work_order/test_work_order.py index 540b7dc9ea6..bb53c8c225c 100644 --- a/erpnext/manufacturing/doctype/work_order/test_work_order.py +++ b/erpnext/manufacturing/doctype/work_order/test_work_order.py @@ -1649,6 +1649,14 @@ class TestWorkOrder(FrappeTestCase): job_card2 = frappe.copy_doc(job_card_doc) self.assertRaises(frappe.ValidationError, job_card2.save) + frappe.db.set_single_value( + "Manufacturing Settings", "overproduction_percentage_for_work_order", 100 + ) + + job_card2 = frappe.copy_doc(job_card_doc) + job_card2.time_logs = [] + job_card2.save() + def prepare_data_for_workstation_type_check(): from erpnext.manufacturing.doctype.operation.test_operation import make_operation From 144594b3e1d899216796c49ff124b48e770010af Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Thu, 4 May 2023 04:54:00 +0000 Subject: [PATCH 12/32] chore(release): Bumped to Version 14.23.2 ## [14.23.2](https://github.com/frappe/erpnext/compare/v14.23.1...v14.23.2) (2023-05-04) ### Bug Fixes * over production percentage not considered in validation ([4e83d0b](https://github.com/frappe/erpnext/commit/4e83d0baa6abebf7595737b2ae95ed00db341505)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 4261cbaaa86..6f54f99bb43 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.23.1" +__version__ = "14.23.2" def get_default_company(user=None): From 736c34e61af457598d5fc0839169887a0a33e45f Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 4 May 2023 15:38:35 +0530 Subject: [PATCH 13/32] fix: internal transfer condition (cherry picked from commit b5a2ccf21d0b0ca9fb4c8d958d29d60dcfb5ecb2) (cherry picked from commit f5f49024945940988fedbb52a07b18d4a3952fef) --- .../doctype/purchase_receipt/purchase_receipt.py | 2 +- erpnext/stock/stock_ledger.py | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index 530427328a8..3373d8ac8c5 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -379,7 +379,7 @@ class PurchaseReceipt(BuyingController): ) outgoing_amount = d.base_net_amount - if self.is_internal_supplier and d.valuation_rate: + if self.is_internal_transfer() and d.valuation_rate: outgoing_amount = abs( frappe.db.get_value( "Stock Ledger Entry", diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py index 8b517bf1e0f..103ed4ac3d0 100644 --- a/erpnext/stock/stock_ledger.py +++ b/erpnext/stock/stock_ledger.py @@ -556,7 +556,7 @@ class update_entries_after(object): sle.voucher_type in ["Purchase Receipt", "Purchase Invoice"] and sle.voucher_detail_no and sle.actual_qty < 0 - and frappe.get_cached_value(sle.voucher_type, sle.voucher_no, "is_internal_supplier") + and is_internal_transfer(sle) ): sle.outgoing_rate = get_incoming_rate_for_inter_company_transfer(sle) @@ -679,7 +679,7 @@ class update_entries_after(object): elif ( sle.voucher_type in ["Purchase Receipt", "Purchase Invoice"] and sle.voucher_detail_no - and frappe.get_cached_value(sle.voucher_type, sle.voucher_no, "is_internal_supplier") + and is_internal_transfer(sle) ): rate = get_incoming_rate_for_inter_company_transfer(sle) else: @@ -1609,3 +1609,15 @@ def get_incoming_rate_for_inter_company_transfer(sle) -> float: ) return rate + + +def is_internal_transfer(sle): + data = frappe.get_cached_value( + sle.voucher_type, + sle.voucher_no, + ["is_internal_supplier", "represents_company", "company"], + as_dict=True, + ) + + if data.is_internal_supplier and data.represents_company == data.company: + return True From 580641f55cb4fd1d2e2da638d9dee3c0b571310b Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 4 May 2023 18:15:25 +0530 Subject: [PATCH 14/32] fix: not allow to transfer excess materials against the job card (cherry picked from commit 8167b24219519793a672db2f05055dca1e6a348a) (cherry picked from commit b0c042de1b78e09344c67530306220bac7b82faa) --- .../doctype/job_card/test_job_card.py | 36 +++++++++++++++++++ .../stock/doctype/stock_entry/stock_entry.py | 19 ++++++++++ 2 files changed, 55 insertions(+) diff --git a/erpnext/manufacturing/doctype/job_card/test_job_card.py b/erpnext/manufacturing/doctype/job_card/test_job_card.py index 4d2dab73e3a..61766a67511 100644 --- a/erpnext/manufacturing/doctype/job_card/test_job_card.py +++ b/erpnext/manufacturing/doctype/job_card/test_job_card.py @@ -272,6 +272,42 @@ class TestJobCard(FrappeTestCase): transfer_entry_2.insert() self.assertRaises(JobCardOverTransferError, transfer_entry_2.submit) + @change_settings("Manufacturing Settings", {"job_card_excess_transfer": 0}) + def test_job_card_excess_material_transfer_with_no_reference(self): + + self.transfer_material_against = "Job Card" + self.source_warehouse = "Stores - _TC" + + self.generate_required_stock(self.work_order) + + job_card_name = frappe.db.get_value("Job Card", {"work_order": self.work_order.name}) + + # fully transfer both RMs + transfer_entry_1 = make_stock_entry_from_jc(job_card_name) + row = transfer_entry_1.items[0] + + # Add new row without reference of the job card item + transfer_entry_1.append( + "items", + { + "item_code": row.item_code, + "item_name": row.item_name, + "item_group": row.item_group, + "qty": row.qty, + "uom": row.uom, + "conversion_factor": row.conversion_factor, + "stock_uom": row.stock_uom, + "basic_rate": row.basic_rate, + "basic_amount": row.basic_amount, + "expense_account": row.expense_account, + "cost_center": row.cost_center, + "s_warehouse": row.s_warehouse, + "t_warehouse": row.t_warehouse, + }, + ) + + self.assertRaises(frappe.ValidationError, transfer_entry_1.insert) + def test_job_card_partial_material_transfer(self): "Test partial material transfer against Job Card" self.transfer_material_against = "Job Card" diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 5d6e45013d8..2e89078440f 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -130,6 +130,7 @@ class StockEntry(StockController): self.validate_fg_completed_qty() self.validate_difference_account() self.set_job_card_data() + self.validate_job_card_item() self.set_purpose_for_stock_entry() self.clean_serial_nos() self.validate_duplicate_serial_no() @@ -214,6 +215,24 @@ class StockEntry(StockController): self.from_bom = 1 self.bom_no = data.bom_no + def validate_job_card_item(self): + if not self.job_card: + return + + if cint(frappe.db.get_single_value("Manufacturing Settings", "job_card_excess_transfer")): + return + + for row in self.items: + if row.job_card_item: + continue + + msg = f"""Row #{0}: The job card item reference + is missing. Kindly create the stock entry + from the job card. If you have added the row manually + then you won't be able to add job card item reference.""" + + frappe.throw(_(msg)) + def validate_work_order_status(self): pro_doc = frappe.get_doc("Work Order", self.work_order) if pro_doc.status == "Completed": From a1842103b66682f3096686d640261d75a550ed00 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Thu, 4 May 2023 18:02:30 +0000 Subject: [PATCH 15/32] chore(release): Bumped to Version 14.23.3 ## [14.23.3](https://github.com/frappe/erpnext/compare/v14.23.2...v14.23.3) (2023-05-04) ### Bug Fixes * internal transfer condition ([736c34e](https://github.com/frappe/erpnext/commit/736c34e61af457598d5fc0839169887a0a33e45f)) * not allow to transfer excess materials against the job card ([580641f](https://github.com/frappe/erpnext/commit/580641f55cb4fd1d2e2da638d9dee3c0b571310b)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 6f54f99bb43..061b1617af1 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.23.2" +__version__ = "14.23.3" def get_default_company(user=None): From a5a08c988934d2ab35148e382bac438ff4521c9b Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Sat, 6 May 2023 16:41:10 +0530 Subject: [PATCH 16/32] fix: handle empty FBs properly in TB and GL [v14] (backport #35189) (#35191) fix: handle empty FBs properly in TB and GL [v14] (#35189) fix: handle empty FBs properly in TB and GL (cherry picked from commit ed5f39c2c2f7cb960e0cccac80b252cdce1077cf) Co-authored-by: Anand Baburajan --- erpnext/accounts/report/financial_statements.py | 12 ++++++++---- .../accounts/report/general_ledger/general_ledger.py | 8 ++++---- .../accounts/report/trial_balance/trial_balance.py | 10 ++++++---- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py index 86fdaaa924a..fc3285be3db 100644 --- a/erpnext/accounts/report/financial_statements.py +++ b/erpnext/accounts/report/financial_statements.py @@ -500,14 +500,18 @@ def get_additional_conditions(from_date, ignore_closing_entries, filters): _("To use a different finance book, please uncheck 'Include Default Book Entries'") ) else: - additional_conditions.append("(finance_book in (%(finance_book)s) OR finance_book IS NULL)") + additional_conditions.append( + "(finance_book in (%(finance_book)s, '') OR finance_book IS NULL)" + ) else: - additional_conditions.append("(finance_book in (%(company_fb)s) OR finance_book IS NULL)") + additional_conditions.append("(finance_book in (%(company_fb)s, '') OR finance_book IS NULL)") else: if filters.get("finance_book"): - additional_conditions.append("(finance_book in (%(finance_book)s) OR finance_book IS NULL)") + additional_conditions.append( + "(finance_book in (%(finance_book)s, '') OR finance_book IS NULL)" + ) else: - additional_conditions.append("(finance_book IS NULL)") + additional_conditions.append("(finance_book in ('') OR finance_book IS NULL)") if accounting_dimensions: for dimension in accounting_dimensions: diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py index 6a4f394ebc8..227d9b68ce6 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.py +++ b/erpnext/accounts/report/general_ledger/general_ledger.py @@ -253,14 +253,14 @@ def get_conditions(filters): _("To use a different finance book, please uncheck 'Include Default Book Entries'") ) else: - conditions.append("(finance_book in (%(finance_book)s) OR finance_book IS NULL)") + conditions.append("(finance_book in (%(finance_book)s, '') OR finance_book IS NULL)") else: - conditions.append("(finance_book in (%(company_fb)s) OR finance_book IS NULL)") + conditions.append("(finance_book in (%(company_fb)s, '') OR finance_book IS NULL)") else: if filters.get("finance_book"): - conditions.append("(finance_book in (%(finance_book)s) OR finance_book IS NULL)") + conditions.append("(finance_book in (%(finance_book)s, '') OR finance_book IS NULL)") else: - conditions.append("(finance_book IS NULL)") + conditions.append("(finance_book in ('') OR finance_book IS NULL)") if not filters.get("show_cancelled_entries"): conditions.append("is_cancelled = 0") diff --git a/erpnext/accounts/report/trial_balance/trial_balance.py b/erpnext/accounts/report/trial_balance/trial_balance.py index d2300cd1238..3bcd1bc68d0 100644 --- a/erpnext/accounts/report/trial_balance/trial_balance.py +++ b/erpnext/accounts/report/trial_balance/trial_balance.py @@ -166,14 +166,16 @@ def get_rootwise_opening_balances(filters, report_type): _("To use a different finance book, please uncheck 'Include Default Book Entries'") ) else: - additional_conditions += " AND (finance_book in (%(finance_book)s) OR finance_book IS NULL)" + additional_conditions += ( + " AND (finance_book in (%(finance_book)s, '') OR finance_book IS NULL)" + ) else: - additional_conditions += " AND (finance_book in (%(company_fb)s) OR finance_book IS NULL)" + additional_conditions += " AND (finance_book in (%(company_fb)s, '') OR finance_book IS NULL)" else: if filters.get("finance_book"): - additional_conditions += " AND (finance_book in (%(finance_book)s) OR finance_book IS NULL)" + additional_conditions += " AND (finance_book in (%(finance_book)s, '') OR finance_book IS NULL)" else: - additional_conditions += " AND (finance_book IS NULL)" + additional_conditions += " AND (finance_book in ('') OR finance_book IS NULL)" accounting_dimensions = get_accounting_dimensions(as_list=False) From 9a755ca23d8f02859a1ba08c115bc53a8d87b6dc Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Sat, 6 May 2023 11:12:52 +0000 Subject: [PATCH 17/32] chore(release): Bumped to Version 14.23.4 ## [14.23.4](https://github.com/frappe/erpnext/compare/v14.23.3...v14.23.4) (2023-05-06) ### Bug Fixes * handle empty FBs properly in TB and GL [v14] (backport [#35189](https://github.com/frappe/erpnext/issues/35189)) ([#35191](https://github.com/frappe/erpnext/issues/35191)) ([a5a08c9](https://github.com/frappe/erpnext/commit/a5a08c988934d2ab35148e382bac438ff4521c9b)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 061b1617af1..d61288be98f 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.23.3" +__version__ = "14.23.4" def get_default_company(user=None): From e509664d4fa9b16ccd8affdded185ce517772885 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 10 May 2023 05:40:21 +0000 Subject: [PATCH 18/32] chore(release): Bumped to Version 14.24.0 # [14.24.0](https://github.com/frappe/erpnext/compare/v14.23.4...v14.24.0) (2023-05-10) ### Bug Fixes * added search index to improve performance ([362003e](https://github.com/frappe/erpnext/commit/362003ec5fcd449f0f2cdda42e84d312e76cabb3)) * broken save on empty row existance ([c0f9ff4](https://github.com/frappe/erpnext/commit/c0f9ff4995864ad344c2a9f72586e435475367e8)) * bypass flag in Customer Group wasn't effective ([c73b76f](https://github.com/frappe/erpnext/commit/c73b76fdb63130a2e6445c5462dc0971506f4abf)) * Changed type of column 'serial_no' in Stock Reconciliation to fix Data too long error ([709f94c](https://github.com/frappe/erpnext/commit/709f94c8d3dc08b58b7e1a05c0a4b34f2f2b1a0d)) * child acc will inherit acc currency if explicitly specified ([72255fa](https://github.com/frappe/erpnext/commit/72255fae8047c9eb321224ae33bf54458fb7b0d1)) * enabling lead even after "Opportunity" created against it ([#34627](https://github.com/frappe/erpnext/issues/34627)) ([5e98679](https://github.com/frappe/erpnext/commit/5e98679f918618dd5bb31f432fc260f78c6409b9)) * error regarding accepted and supplier warehouse ([42f5888](https://github.com/frappe/erpnext/commit/42f5888426f49bb6f3b9f8e12e3539f3d03e50ec)) * fetch default sales team on Quotation -> Sales Order creation ([f42225b](https://github.com/frappe/erpnext/commit/f42225bc822a30dde2d4f114fb28a149cf595b99)) * handle empty FBs properly in TB and GL [v14] ([#35189](https://github.com/frappe/erpnext/issues/35189)) ([ed5f39c](https://github.com/frappe/erpnext/commit/ed5f39c2c2f7cb960e0cccac80b252cdce1077cf)) * incorrect fg item quantity in subcontracted PO ([5c38645](https://github.com/frappe/erpnext/commit/5c38645560281b47fd86f2e8efe3873ac6f44b12)) * internal transfer condition ([f5f4902](https://github.com/frappe/erpnext/commit/f5f49024945940988fedbb52a07b18d4a3952fef)) * non manufacturing items/fixed asset items in BOM ([8133be4](https://github.com/frappe/erpnext/commit/8133be4868079d410bb57ebbc5507a68c696b750)) * not allow to transfer excess materials against the job card ([b0c042d](https://github.com/frappe/erpnext/commit/b0c042de1b78e09344c67530306220bac7b82faa)) * over production percentage not considered in validation ([bf6e1b6](https://github.com/frappe/erpnext/commit/bf6e1b67a5870af7cf7881f409b1dd35b0f4e7f7)) * pick the in progress reposting entries first ([545f956](https://github.com/frappe/erpnext/commit/545f95616071b6865b69ddcecdceae5dba7dd03e)) ### Features * configuration to notify reposting errors to specific role ([33cd14f](https://github.com/frappe/erpnext/commit/33cd14f859dfd8959048aac59adb9fdffdd216b8)) * reserve qty against production plan raw materials in BIN ([d1a9117](https://github.com/frappe/erpnext/commit/d1a91177e551850a65aaa846fec58527e87b68a9)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index d61288be98f..1cfb81bc5b4 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.23.4" +__version__ = "14.24.0" def get_default_company(user=None): From 762a46a5e3d1ba6094a0f91fdbfffaee89f65622 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 11 May 2023 23:17:09 +0530 Subject: [PATCH 19/32] fix: enqueue submit/cancel action for stock entry to avoid time out error (cherry picked from commit 7a3801578cb3cf6fbaa6fc35814fc97e73820dcd) (cherry picked from commit 457846e34c472bad2ae1cc1e728c570241c23ed9) --- .../stock/doctype/stock_entry/stock_entry.py | 44 ++++++++++++++++++- .../doctype/stock_entry/test_stock_entry.py | 30 ++++++++++++- 2 files changed, 72 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 2e89078440f..2dbfeadf0f4 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -9,7 +9,17 @@ import frappe from frappe import _ from frappe.model.mapper import get_mapped_doc from frappe.query_builder.functions import Sum -from frappe.utils import cint, comma_or, cstr, flt, format_time, formatdate, getdate, nowdate +from frappe.utils import ( + cint, + comma_or, + cstr, + flt, + format_time, + formatdate, + getdate, + month_diff, + nowdate, +) import erpnext from erpnext.accounts.general_ledger import process_gl_map @@ -154,6 +164,38 @@ class StockEntry(StockController): self.reset_default_field_value("from_warehouse", "items", "s_warehouse") self.reset_default_field_value("to_warehouse", "items", "t_warehouse") + def submit(self): + if self.is_enqueue_action(): + frappe.msgprint( + _( + "The task has been enqueued as a background job. In case there is any issue on processing in background, the system will add a comment about the error on this Stock Reconciliation and revert to the Draft stage" + ) + ) + self.queue_action("submit", timeout=2000) + else: + self._submit() + + def cancel(self): + if self.is_enqueue_action(): + frappe.msgprint( + _( + "The task has been enqueued as a background job. In case there is any issue on processing in background, the system will add a comment about the error on this Stock Reconciliation and revert to the Submitted stage" + ) + ) + self.queue_action("cancel", timeout=2000) + else: + self._cancel() + + def is_enqueue_action(self, force=False) -> bool: + if force: + return True + + # If line items are more than 100 or record is older than 6 months + if len(self.items) > 100 or month_diff(nowdate(), self.posting_date) > 6: + return True + + return False + def on_submit(self): self.update_stock_ledger() diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py index c43a1b1b81e..9a748abb3be 100644 --- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py @@ -5,7 +5,7 @@ import frappe from frappe.permissions import add_user_permission, remove_user_permission from frappe.tests.utils import FrappeTestCase, change_settings -from frappe.utils import add_days, flt, nowdate, nowtime, today +from frappe.utils import add_days, add_to_date, flt, nowdate, nowtime, today from erpnext.accounts.doctype.account.test_account import get_inventory_account from erpnext.stock.doctype.item.test_item import ( @@ -1707,6 +1707,34 @@ class TestStockEntry(FrappeTestCase): self.assertRaises(frappe.ValidationError, sr_doc.submit) + def test_enqueue_action(self): + item_code = "Test Enqueue Item - 001" + create_item(item_code=item_code, is_stock_item=1, valuation_rate=10) + + doc = make_stock_entry( + item_code=item_code, + posting_date=add_to_date(today(), months=-7), + posting_time="00:00:00", + purpose="Material Receipt", + qty=10, + to_warehouse="_Test Warehouse - _TC", + do_not_submit=True, + ) + + self.assertTrue(doc.is_enqueue_action()) + + doc = make_stock_entry( + item_code=item_code, + posting_date=today(), + posting_time="00:00:00", + purpose="Material Receipt", + qty=10, + to_warehouse="_Test Warehouse - _TC", + do_not_submit=True, + ) + + self.assertFalse(doc.is_enqueue_action()) + def make_serialized_item(**args): args = frappe._dict(args) From 1783594178a7023b144a55021e3f5c8024729571 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 12 May 2023 10:51:14 +0530 Subject: [PATCH 20/32] fix: test case (cherry picked from commit 2d6f112727185cff40662d8d5873cedb128d9218) (cherry picked from commit 9b2b46737e6b105b45b938d54f0e9a4406503425) --- erpnext/stock/doctype/stock_entry/stock_entry.py | 3 +++ erpnext/stock/doctype/stock_entry/test_stock_entry.py | 2 ++ 2 files changed, 5 insertions(+) diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 2dbfeadf0f4..d82fab8749a 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -190,6 +190,9 @@ class StockEntry(StockController): if force: return True + if frappe.flags.in_test: + return False + # If line items are more than 100 or record is older than 6 months if len(self.items) > 100 or month_diff(nowdate(), self.posting_date) > 6: return True diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py index 9a748abb3be..de74fda687d 100644 --- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py @@ -1708,6 +1708,7 @@ class TestStockEntry(FrappeTestCase): self.assertRaises(frappe.ValidationError, sr_doc.submit) def test_enqueue_action(self): + frappe.flags.in_test = False item_code = "Test Enqueue Item - 001" create_item(item_code=item_code, is_stock_item=1, valuation_rate=10) @@ -1734,6 +1735,7 @@ class TestStockEntry(FrappeTestCase): ) self.assertFalse(doc.is_enqueue_action()) + frappe.flags.in_test = True def make_serialized_item(**args): From 54e822d83a97f04b76f54a03d5f02578561e1e68 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 12 May 2023 13:08:32 +0530 Subject: [PATCH 21/32] fix: bom item filter issue (cherry picked from commit 2879cb7c280d82e879dd787c5d4a90e9f27cda14) (cherry picked from commit 098603dd35ed571bf1cfa27633657e2a986dbb4a) --- erpnext/manufacturing/doctype/bom/bom.js | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/manufacturing/doctype/bom/bom.js b/erpnext/manufacturing/doctype/bom/bom.js index 066a373da24..231c476734c 100644 --- a/erpnext/manufacturing/doctype/bom/bom.js +++ b/erpnext/manufacturing/doctype/bom/bom.js @@ -48,7 +48,6 @@ frappe.ui.form.on("BOM", { return { query: "erpnext.manufacturing.doctype.bom.bom.item_query", filters: { - "item_code": doc.item, "include_item_in_manufacturing": 1, "is_fixed_asset": 0 } From b02ed0d9a8b3c1031841361a0795c3e08804bab6 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 12 May 2023 13:47:53 +0530 Subject: [PATCH 22/32] fix: incorrect packing items (cherry picked from commit a686b8c337abe8425a041ab82e702d904f48b617) (cherry picked from commit ab564701711657698e56e5480bb9eb0c698dffdf) --- .../doctype/sales_order/sales_order.py | 4 ++ .../doctype/sales_order/test_sales_order.py | 69 +++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index de63f6dec58..06467e51a63 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -620,6 +620,8 @@ def make_project(source_name, target_doc=None): @frappe.whitelist() def make_delivery_note(source_name, target_doc=None, skip_item_mapping=False): + from erpnext.stock.doctype.packed_item.packed_item import make_packing_list + def set_missing_values(source, target): target.run_method("set_missing_values") target.run_method("set_po_nos") @@ -634,6 +636,8 @@ def make_delivery_note(source_name, target_doc=None, skip_item_mapping=False): if target.company_address: target.update(get_fetch_values("Delivery Note", "company_address", target.company_address)) + make_packing_list(target) + def update_item(source, target, source_parent): target.base_amount = (flt(source.qty) - flt(source.delivered_qty)) * flt(source.base_rate) target.amount = (flt(source.qty) - flt(source.delivered_qty)) * flt(source.rate) diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py index ba8bbc21857..9854f159cfe 100644 --- a/erpnext/selling/doctype/sales_order/test_sales_order.py +++ b/erpnext/selling/doctype/sales_order/test_sales_order.py @@ -1909,6 +1909,75 @@ class TestSalesOrder(FrappeTestCase): self.assertEqual(mr.items[0].qty, 6) + def test_packed_items_for_partial_sales_order(self): + # test Update Items with product bundle + for product_bundle in [ + "_Test Product Bundle Item Partial 1", + "_Test Product Bundle Item Partial 2", + ]: + if not frappe.db.exists("Item", product_bundle): + bundle_item = make_item(product_bundle, {"is_stock_item": 0}) + bundle_item.append( + "item_defaults", {"company": "_Test Company", "default_warehouse": "_Test Warehouse - _TC"} + ) + bundle_item.save(ignore_permissions=True) + + for product_bundle in ["_Packed Item Partial 1", "_Packed Item Partial 2"]: + if not frappe.db.exists("Item", product_bundle): + make_item(product_bundle, {"is_stock_item": 1, "stock_uom": "Nos"}) + + make_stock_entry(item=product_bundle, target="_Test Warehouse - _TC", qty=2, rate=10) + + make_product_bundle("_Test Product Bundle Item Partial 1", ["_Packed Item Partial 1"], 1) + + make_product_bundle("_Test Product Bundle Item Partial 2", ["_Packed Item Partial 2"], 1) + + so = make_sales_order( + item_code="_Test Product Bundle Item Partial 1", + warehouse="_Test Warehouse - _TC", + qty=1, + uom="Nos", + stock_uom="Nos", + conversion_factor=1, + transaction_date=nowdate(), + delivery_note=nowdate(), + do_not_submit=1, + ) + + so.append( + "items", + { + "item_code": "_Test Product Bundle Item Partial 2", + "warehouse": "_Test Warehouse - _TC", + "qty": 1, + "uom": "Nos", + "stock_uom": "Nos", + "conversion_factor": 1, + "delivery_note": nowdate(), + }, + ) + + so.save() + so.submit() + + dn = make_delivery_note(so.name) + dn.remove(dn.items[1]) + dn.save() + dn.submit() + + self.assertEqual(len(dn.items), 1) + self.assertEqual(len(dn.packed_items), 1) + self.assertEqual(dn.items[0].item_code, "_Test Product Bundle Item Partial 1") + + so.load_from_db() + + dn = make_delivery_note(so.name) + dn.save() + + self.assertEqual(len(dn.items), 1) + self.assertEqual(len(dn.packed_items), 1) + self.assertEqual(dn.items[0].item_code, "_Test Product Bundle Item Partial 2") + def automatically_fetch_payment_terms(enable=1): accounts_settings = frappe.get_doc("Accounts Settings") From 897a4678467aaa3d3856f2b3d0d954259532a3bc Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Fri, 12 May 2023 10:05:31 +0000 Subject: [PATCH 23/32] chore(release): Bumped to Version 14.24.1 ## [14.24.1](https://github.com/frappe/erpnext/compare/v14.24.0...v14.24.1) (2023-05-12) ### Bug Fixes * bom item filter issue ([54e822d](https://github.com/frappe/erpnext/commit/54e822d83a97f04b76f54a03d5f02578561e1e68)) * enqueue submit/cancel action for stock entry to avoid time out error ([762a46a](https://github.com/frappe/erpnext/commit/762a46a5e3d1ba6094a0f91fdbfffaee89f65622)) * incorrect packing items ([b02ed0d](https://github.com/frappe/erpnext/commit/b02ed0d9a8b3c1031841361a0795c3e08804bab6)) * test case ([1783594](https://github.com/frappe/erpnext/commit/1783594178a7023b144a55021e3f5c8024729571)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 1cfb81bc5b4..30029002af1 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.24.0" +__version__ = "14.24.1" def get_default_company(user=None): From 7076c23a4f9f110d9a1e2513a04febe2fffcd383 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 16 May 2023 17:00:00 +0000 Subject: [PATCH 24/32] chore(release): Bumped to Version 14.24.2 ## [14.24.2](https://github.com/frappe/erpnext/compare/v14.24.1...v14.24.2) (2023-05-16) ### Bug Fixes * add missing options for `Content Align` ([3697e8f](https://github.com/frappe/erpnext/commit/3697e8f1f9d2f17672cf83109f4b41b040c2d38b)) * allow over-payment against SO ([#35079](https://github.com/frappe/erpnext/issues/35079)) ([fe9e0c2](https://github.com/frappe/erpnext/commit/fe9e0c2121d869546d0315adcacd62ed52223543)) * bad strings format for command get-untraslated ([#34361](https://github.com/frappe/erpnext/issues/34361)) ([5a54296](https://github.com/frappe/erpnext/commit/5a542966868249165012ccd7985120d71b949a07)) * bad strings format for update-translations ([#34592](https://github.com/frappe/erpnext/issues/34592)) ([e3c1d73](https://github.com/frappe/erpnext/commit/e3c1d736ce6da0d2149dea26051980c06311128c)) * bom item filter issue ([098603d](https://github.com/frappe/erpnext/commit/098603dd35ed571bf1cfa27633657e2a986dbb4a)) * cancelled vouchers in tax withheld vouchers list ([#35309](https://github.com/frappe/erpnext/issues/35309)) ([c41e1d7](https://github.com/frappe/erpnext/commit/c41e1d7d71a005c894fd737fe6a6a777c879a497)) * enqueue submit/cancel action for stock entry to avoid time out error ([457846e](https://github.com/frappe/erpnext/commit/457846e34c472bad2ae1cc1e728c570241c23ed9)) * force to do reposting for cancelled document ([6f96e5d](https://github.com/frappe/erpnext/commit/6f96e5dcd4d066c722bb02b350cb2ddfb8c58770)) * function `batch_no` should only be declared once ([#35115](https://github.com/frappe/erpnext/issues/35115)) ([26928b3](https://github.com/frappe/erpnext/commit/26928b395bc25f2733ecdc49ce21939cf9d172de)) * incorrect packing items ([ab56470](https://github.com/frappe/erpnext/commit/ab564701711657698e56e5480bb9eb0c698dffdf)) * inventory dimension for inter company transfer return use case ([6d121b8](https://github.com/frappe/erpnext/commit/6d121b8107a80c48738dd4d864f9f72f91974457)) * inventory dimension for material transfer not working ([1d8050d](https://github.com/frappe/erpnext/commit/1d8050d24d04ac8f688c788056af32313db07fec)) * item list view not working ([d9efa66](https://github.com/frappe/erpnext/commit/d9efa662d47f340b3070486688c621194c62840d)) * port option for additional_conditions in item wise sales register ([#35187](https://github.com/frappe/erpnext/issues/35187)) ([42037f9](https://github.com/frappe/erpnext/commit/42037f9f739135505eab3eb3668abef3b3d8e3eb)) * recalculate costs in SCR while reposting ([9a8ee62](https://github.com/frappe/erpnext/commit/9a8ee62d5ac2bd5bd874e5296751128c5cc83cca)) * sales person allocated amount calculation error nonetype and float ([#35293](https://github.com/frappe/erpnext/issues/35293)) ([3a7c69f](https://github.com/frappe/erpnext/commit/3a7c69fc71548f2bc6d9e853e1228c6d6b490aba)) * test case ([3f8928b](https://github.com/frappe/erpnext/commit/3f8928be5cca77b6a4cc95464623cf2989ef463a)) * test case ([9b2b467](https://github.com/frappe/erpnext/commit/9b2b46737e6b105b45b938d54f0e9a4406503425)) * typo ([2772a91](https://github.com/frappe/erpnext/commit/2772a911ed98b6c7e2b9e2b3203a775ebeac6ff6)) * unable to create partial invoice with auto fetch terms enabled ([#35285](https://github.com/frappe/erpnext/issues/35285)) ([fa9fa97](https://github.com/frappe/erpnext/commit/fa9fa97e05e66dbe3996515ffe70d615d6a49706)) * update workstation hour rate when workstation change in job card ([bc88415](https://github.com/frappe/erpnext/commit/bc88415e73d24ed96c90cfc50c51741b2ac2cfe6)) * **UX:** misc "home" onboarding improvements (backport [#35319](https://github.com/frappe/erpnext/issues/35319)) ([#35321](https://github.com/frappe/erpnext/issues/35321)) ([f8c58b6](https://github.com/frappe/erpnext/commit/f8c58b6893ef9b747ffd510ab16bd03666f5f472)) * validate for active sla ([#32132](https://github.com/frappe/erpnext/issues/32132)) ([38e27a6](https://github.com/frappe/erpnext/commit/38e27a68d597e9c3cdf4124cb2b53645eb11f53e)) ### Performance Improvements * cache and simplify queries for holiday list (backport [#35315](https://github.com/frappe/erpnext/issues/35315)) ([#35318](https://github.com/frappe/erpnext/issues/35318)) ([0e78403](https://github.com/frappe/erpnext/commit/0e7840301f459005e0003b24578d93df9d45fcb8)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 30029002af1..a14b6f2e505 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.24.1" +__version__ = "14.24.2" def get_default_company(user=None): From 14565ed8b10cbd160a8ad4308cb468bb938cf60c Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Wed, 17 May 2023 13:40:33 +0530 Subject: [PATCH 25/32] fix: tds incorrectly calculated for invoice that are below threshold Two purchase invoices for the same supplier, using different tax withholding categories have this issue. | Category | single | cumulative | |----------+--------+------------| | cat1 | 100 | 500 | | cat2 | 1000 | 5000 | 1. PINV1 of net total: 105/- uses cat1. TDS is calculated as it breached single threshold 2. PINV2 of net total: 200/- uses cat2. TDS incorrectly calculated as PINV1 already has TDS calculated and 'consider_party_ledger_amount' is enabled. (cherry picked from commit 84b7c1bba09f89a390a17898b4d8fa665adcbc8f) --- .../tax_withholding_category/tax_withholding_category.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py index ad3477ef3d3..1f2d9803739 100644 --- a/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py +++ b/erpnext/accounts/doctype/tax_withholding_category/tax_withholding_category.py @@ -302,7 +302,7 @@ def get_invoice_vouchers(parties, tax_details, company, party_type="Supplier"): "docstatus": 1, } - if not tax_details.get("consider_party_ledger_amount") and doctype != "Sales Invoice": + if doctype != "Sales Invoice": filters.update( {"apply_tds": 1, "tax_withholding_category": tax_details.get("tax_withholding_category")} ) From cdd378c51800549a28b1794fed40804048e1e047 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 18 May 2023 12:00:59 +0530 Subject: [PATCH 26/32] fix(test): cumulative threshold checks (cherry picked from commit 132846bbd107a921dfbfde9240f368bea9382cf7) --- .../test_tax_withholding_category.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py b/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py index 1e86cf5d2ef..bc4f6709fca 100644 --- a/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py +++ b/erpnext/accounts/doctype/tax_withholding_category/test_tax_withholding_category.py @@ -110,9 +110,9 @@ class TestTaxWithholdingCategory(unittest.TestCase): invoices.append(pi1) # Cumulative threshold is 30000 - # Threshold calculation should be on both the invoices - # TDS should be applied only on 1000 - self.assertEqual(pi1.taxes[0].tax_amount, 1000) + # Threshold calculation should be only on the Second invoice + # Second didn't breach, no TDS should be applied + self.assertEqual(pi1.taxes, []) for d in reversed(invoices): d.cancel() From 756ac6c5873b78e55dfca44d7e93645f64dd94ea Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Thu, 18 May 2023 14:07:04 +0000 Subject: [PATCH 27/32] chore(release): Bumped to Version 14.24.3 ## [14.24.3](https://github.com/frappe/erpnext/compare/v14.24.2...v14.24.3) (2023-05-18) ### Bug Fixes * tds incorrectly calculated for invoice that are below threshold ([14565ed](https://github.com/frappe/erpnext/commit/14565ed8b10cbd160a8ad4308cb468bb938cf60c)) * **test:** cumulative threshold checks ([cdd378c](https://github.com/frappe/erpnext/commit/cdd378c51800549a28b1794fed40804048e1e047)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index a14b6f2e505..77c431ba6ff 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.24.2" +__version__ = "14.24.3" def get_default_company(user=None): From cd3991dd1445af6f25ef26d13fee5579301e1a3d Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 24 May 2023 03:05:06 +0000 Subject: [PATCH 28/32] chore(release): Bumped to Version 14.25.0 # [14.25.0](https://github.com/frappe/erpnext/compare/v14.24.3...v14.25.0) (2023-05-24) ### Bug Fixes * consider 0 if rate/qty are null (backport [#35338](https://github.com/frappe/erpnext/issues/35338)) ([#35340](https://github.com/frappe/erpnext/issues/35340)) ([15c1af3](https://github.com/frappe/erpnext/commit/15c1af3d8a44ad25b1d681cfe30de75faf1c10bd)) * Creating landed cost voucher from connections ([2631224](https://github.com/frappe/erpnext/commit/2631224e497d173684c25eb683ac3c86539b2ac3)) * depreciation schedule for existing assets [v14] ([#35255](https://github.com/frappe/erpnext/issues/35255)) ([0a080ef](https://github.com/frappe/erpnext/commit/0a080efce26e99198a326009caa5d353a8fae862)) * don't recalculate rate for SCR rejected warehouse SLE ([633a170](https://github.com/frappe/erpnext/commit/633a1703dcbfb54bab897259c023862791cfbff4)) * error while saving job card ([fb7d3b7](https://github.com/frappe/erpnext/commit/fb7d3b7878640a2088140c05636c5e557d36ae34)) * incorrect depr schedule and posting dates on selling of existing assets [v14] ([#35396](https://github.com/frappe/erpnext/issues/35396)) ([8af6a11](https://github.com/frappe/erpnext/commit/8af6a113d1bb4993b5310a2365dd7a85454b14fe)) * Pick List Status ([4888436](https://github.com/frappe/erpnext/commit/48884366ea6ca177813f2101a6347e0c2237d9f3)) * Pick List TypeError ([6df9b53](https://github.com/frappe/erpnext/commit/6df9b53682d4f24051bcc31f6d1212de102f09e5)) * possible type error on quotation -> sales order creation ([d23b93a](https://github.com/frappe/erpnext/commit/d23b93a46246499ac07b4ccadfe8330a9b86157a)) * replace quotation with invoice in first onboarding (backport [#35389](https://github.com/frappe/erpnext/issues/35389)) ([#35394](https://github.com/frappe/erpnext/issues/35394)) ([9b9772e](https://github.com/frappe/erpnext/commit/9b9772eb14c86d144d3d3a97eb683f8679787d4a)) * tds incorrectly calculated for invoice that are below threshold ([bdf81a4](https://github.com/frappe/erpnext/commit/bdf81a43c646703d05dc0a720fa0078331a03142)) * **test:** cumulative threshold checks ([879946e](https://github.com/frappe/erpnext/commit/879946e2c80de336fd81a063c5699cce48d7ca10)) * use flt instead of mandatory field ([668b092](https://github.com/frappe/erpnext/commit/668b092f6bfe13728d4774db21078c6896032026)) * **ux:** SCR consumed-qty read-only property ([aa7fede](https://github.com/frappe/erpnext/commit/aa7fede0dc92509394b2f5d8643b604df315f033)) ### Features * provision to make reposting entries from Stock and Account Value Comparison Report ([3a0cdf3](https://github.com/frappe/erpnext/commit/3a0cdf30ce0e841f5867a4022d99bda85a2afcc5)) * provision to skip available sub assembly items in the production plan ([ce601af](https://github.com/frappe/erpnext/commit/ce601afc4eb682d61ff8157561c877f6323d2df6)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 77c431ba6ff..d17979d64bc 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.24.3" +__version__ = "14.25.0" def get_default_company(user=None): From 20ceb6c617907c4cd68f12c99f3ecff49a227990 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 24 May 2023 15:24:05 +0530 Subject: [PATCH 29/32] fix: Negative value in Reserved Qty for Production Plan (cherry picked from commit a37608a36cad289770767f7b54d7289cd1ca7247) (cherry picked from commit 6fe42c937c5b3e81ebacb4fcab3336c0277db8f0) --- .../manufacturing/doctype/production_plan/production_plan.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.py b/erpnext/manufacturing/doctype/production_plan/production_plan.py index e40539acf34..0800bdd2af9 100644 --- a/erpnext/manufacturing/doctype/production_plan/production_plan.py +++ b/erpnext/manufacturing/doctype/production_plan/production_plan.py @@ -1534,7 +1534,7 @@ def get_reserved_qty_for_production_plan(item_code, warehouse): frappe.qb.from_(table) .inner_join(child) .on(table.name == child.parent) - .select(Sum(child.quantity * IfNull(child.conversion_factor, 1.0))) + .select(Sum(child.required_bom_qty * IfNull(child.conversion_factor, 1.0))) .where( (table.docstatus == 1) & (child.item_code == item_code) @@ -1552,6 +1552,9 @@ def get_reserved_qty_for_production_plan(item_code, warehouse): get_reserved_qty_for_production(item_code, warehouse, check_production_plan=True) ) + if reserved_qty_for_production > reserved_qty_for_production_plan: + return 0.0 + return reserved_qty_for_production_plan - reserved_qty_for_production From eb723637d3b9d6dbf9280d4269beb68ef9f4f95f Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Thu, 25 May 2023 06:54:14 +0000 Subject: [PATCH 30/32] chore(release): Bumped to Version 14.25.1 ## [14.25.1](https://github.com/frappe/erpnext/compare/v14.25.0...v14.25.1) (2023-05-25) ### Bug Fixes * Negative value in Reserved Qty for Production Plan ([20ceb6c](https://github.com/frappe/erpnext/commit/20ceb6c617907c4cd68f12c99f3ecff49a227990)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index d17979d64bc..3b5e8cc8100 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.25.0" +__version__ = "14.25.1" def get_default_company(user=None): From 69b214b85b84be6656e71da67d952b7563d354ff Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 31 May 2023 06:16:00 +0000 Subject: [PATCH 31/32] chore(release): Bumped to Version 14.26.0 # [14.26.0](https://github.com/frappe/erpnext/compare/v14.25.1...v14.26.0) (2023-05-31) ### Bug Fixes * account group totals calculation to consider include_in_gross ([8dcb930](https://github.com/frappe/erpnext/commit/8dcb9302b417618505ea24e5566c017eff451c1e)) * add total col for gross and net profit ([cb9b4fb](https://github.com/frappe/erpnext/commit/cb9b4fbb91f4b73916416167932064ef5965eed1)) * available qty not fetching for raw material in PP ([746a734](https://github.com/frappe/erpnext/commit/746a7342575a1702248e00997ae8e8c893e6bb8f)) * balance quantity ([56ba7d6](https://github.com/frappe/erpnext/commit/56ba7d6a8acec4fd2463a2419443eef2b3e4c4c6)) * Billing Address display in buying transactions ([#35451](https://github.com/frappe/erpnext/issues/35451)) ([33e8d05](https://github.com/frappe/erpnext/commit/33e8d0571815cd20362d9ca65d6dd0de633daf21)) * don't map items twice ([6f0c7cf](https://github.com/frappe/erpnext/commit/6f0c7cf9a413922551f632d2e66f63a9f9376698)) * Error while validating budget ([#35487](https://github.com/frappe/erpnext/issues/35487)) ([5fd00e7](https://github.com/frappe/erpnext/commit/5fd00e7113ab7323ed2ab10338f6e2f99e8c8561)) * **Gross Profit:** 'company' column is ambiguous in filter ([a59c205](https://github.com/frappe/erpnext/commit/a59c205d2ef8aaa4341c472cdb942fd365ac6167)) * incorrect `POS Reserved Qty` in `Stock Projected Qty` Report ([71e4f34](https://github.com/frappe/erpnext/commit/71e4f34b86df785cb055a713debe2283683defa8)) * incorrect available quantity in BIN ([5a9452f](https://github.com/frappe/erpnext/commit/5a9452f4a30a6ed7523a46884824a04ac8f2616b)) * incorrect transferred qty in the job card ([#35478](https://github.com/frappe/erpnext/issues/35478)) ([86801c2](https://github.com/frappe/erpnext/commit/86801c29cb973c9f05de553cf7298a673fe94017)) * make DN item reference mandatory for Packing Slip Item ([b4e481a](https://github.com/frappe/erpnext/commit/b4e481a39003ea2acb3f9f848808a63a45dc8444)) * map `Packed Items` while creating `Packing Slip` ([984e32c](https://github.com/frappe/erpnext/commit/984e32c34a28756d2fabf1b5992287db99cf2f59)) * monthly WDV depr schedule for existing assets [v14] ([#35458](https://github.com/frappe/erpnext/issues/35458)) ([37d437a](https://github.com/frappe/erpnext/commit/37d437a33cb2741b87c7c0e913c825aea85dc9ca)) * Negative value in Reserved Qty for Production Plan ([6fe42c9](https://github.com/frappe/erpnext/commit/6fe42c937c5b3e81ebacb4fcab3336c0277db8f0)) * Packing Slip Item Qty ([5345ebe](https://github.com/frappe/erpnext/commit/5345ebe2426d518f8de7d9463fec47fc020bace2)) * **patch:** add patch to set `packed_qty` in draft DN ([b3da2f7](https://github.com/frappe/erpnext/commit/b3da2f7c261fc4d465dc63e3924a13ef5a9d137c)) * rate not fetching properly for inter transfer purchase order ([7b75f45](https://github.com/frappe/erpnext/commit/7b75f454d391d7635ac70dd3b8401ef143f63fb7)) * remove duplicate items validation ([c7628c9](https://github.com/frappe/erpnext/commit/c7628c98c58b9242255bc18245c4d27b5d7169c8)) * retention stock entry: grab conversion factor from source ([bd75584](https://github.com/frappe/erpnext/commit/bd75584c27b0236607b248273f3e7eeb8ca1d4ea)) * Show future payments in accounts receivable summary ([#35416](https://github.com/frappe/erpnext/issues/35416)) ([11440cc](https://github.com/frappe/erpnext/commit/11440cca4c066969a2f04d82d4c93245eab5b62b)) * Stock Analytics and Warehouse wise Item Balance Age and Value issue ([2058993](https://github.com/frappe/erpnext/commit/205899348a5df33757e154ee6641728e629d3107)) * stock onboarding (backport [#35453](https://github.com/frappe/erpnext/issues/35453)) ([#35480](https://github.com/frappe/erpnext/issues/35480)) ([d231b19](https://github.com/frappe/erpnext/commit/d231b19b9fd701b18cd9aaa0fcae6fbd87394544)) * tab-uniformity (backport [#35400](https://github.com/frappe/erpnext/issues/35400)) ([#35402](https://github.com/frappe/erpnext/issues/35402)) ([989052c](https://github.com/frappe/erpnext/commit/989052c0753dab2ce181623cf43b2fac538117e4)) * travis ([fe1e2fe](https://github.com/frappe/erpnext/commit/fe1e2fec7aefbc68d02d6a350454e83524dfd53e)) * update `Packed Qty` in DN on submit and cancel of `Packing Slip` ([0bed062](https://github.com/frappe/erpnext/commit/0bed06284e4ca5adff72fe0f2e1c648536b062b1)) * **ux:** don't show `Create > Packing Slip` button if items are already packed ([9854c84](https://github.com/frappe/erpnext/commit/9854c84ad8717dbe93ffb7745191f9220c3486e5)) * **ux:** get items on selecting DN in Packing Slip ([b96aa75](https://github.com/frappe/erpnext/commit/b96aa75ded13def19a3f587884d84a30b6786809)) * **ux:** remove `Get Items` button from `Packing Slip` ([4017342](https://github.com/frappe/erpnext/commit/4017342c151e6f0352c82a1c88ad6ef4c06c71cd)) * validate Packing Slip Item Qty with DN Items ([cc7e267](https://github.com/frappe/erpnext/commit/cc7e267c350116d598a1f0e6cb8223ad7e1561e9)) ### Features * add field `Packed Qty` in `Delivery Note Item` and `Packed Item` ([509b684](https://github.com/frappe/erpnext/commit/509b68404c05a1d52b77925c4f14b45be9bfc47a)) * add field `pi_detail` in `Packing Slip` ([2b75474](https://github.com/frappe/erpnext/commit/2b754746494a0f7a5ccc043a260c0ed374fd9b70)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 3b5e8cc8100..c6931dcdc4a 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.25.1" +__version__ = "14.26.0" def get_default_company(user=None): From 1e09a020a996a6a1b8e4fec258bf5853eb8a34b9 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 1 Jun 2023 11:57:07 +0530 Subject: [PATCH 32/32] refactor: Workspace cleanup (backport #35409) (#35512) refactor: Workspace cleanup (backport #35409) (#35505) * refactor: Workspace cleanup (cherry picked from commit 243c49c5506ad11608009d0adf561883a7a5356e) # Conflicts: # erpnext/accounts/workspace/accounting/accounting.json # erpnext/assets/workspace/assets/assets.json * fix: Delete Retail and Utilities worspaces amd hide default Settings and Integration workspaces (cherry picked from commit 0b28f641add5b804a4b576ef1e80bb31e497cc93) * fix: Added pos links in Selling workspace (cherry picked from commit 86f88817a9b300b783c4d7b5fa9ba883f105b6e5) * fix: removed duplicate links of manufacturing workspace (cherry picked from commit 5cf4c8c8b7c6586d891ac46be8d7b942604e3a34) * fix: Rearranged accounting module links (cherry picked from commit e78a7de1e5ba21b0176f23aaa7c1ea0507bfc383) # Conflicts: # erpnext/accounts/workspace/accounting/accounting.json * chore: typo (cherry picked from commit bb67cc03df67adf129aee1c9f766ad041c0c1089) * chore: conflicts --------- Co-authored-by: Nabin Hait Co-authored-by: Ankush Menat Co-authored-by: Ankush Menat (cherry picked from commit 841d2e4b2c94a478d14a4a851608697a1f2bbdf1) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- .../workspace/accounting/accounting.json | 6 +- erpnext/assets/workspace/assets/assets.json | 10 +- erpnext/buying/workspace/buying/buying.json | 8 +- .../linkedin_settings/linkedin_settings.js | 8 +- .../twitter_settings/twitter_settings.js | 2 +- erpnext/crm/workspace/crm/crm.json | 333 ++++++------ .../erpnext_integrations.json | 208 +++++++- .../workspace/loans/loans.json | 6 +- .../manufacturing/manufacturing.json | 109 +--- erpnext/patches.txt | 1 + erpnext/patches/v14_0/cleanup_workspaces.py | 9 + .../projects/workspace/projects/projects.json | 7 +- .../workspace/quality/quality.json | 8 +- erpnext/selling/workspace/retail/retail.json | 123 ----- .../selling/workspace/selling/selling.json | 167 ++---- erpnext/setup/install.py | 6 + .../erpnext_settings/erpnext_settings.json | 495 ++++++++++++++++-- erpnext/setup/workspace/home/home.json | 7 +- erpnext/stock/workspace/stock/stock.json | 7 +- .../support/workspace/support/support.json | 10 +- .../workspace/utilities/utilities.json | 55 -- 21 files changed, 925 insertions(+), 660 deletions(-) create mode 100644 erpnext/patches/v14_0/cleanup_workspaces.py delete mode 100644 erpnext/selling/workspace/retail/retail.json delete mode 100644 erpnext/utilities/workspace/utilities/utilities.json diff --git a/erpnext/accounts/workspace/accounting/accounting.json b/erpnext/accounts/workspace/accounting/accounting.json index b0c112494d6..511ba82cc95 100644 --- a/erpnext/accounts/workspace/accounting/accounting.json +++ b/erpnext/accounts/workspace/accounting/accounting.json @@ -5,8 +5,9 @@ "label": "Profit and Loss" } ], - "content": "[{\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Accounts\",\"col\":12}},{\"type\":\"chart\",\"data\":{\"chart_name\":\"Profit and Loss\",\"col\":12}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Chart of Accounts\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Invoice\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Invoice\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Journal Entry\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Payment Entry\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Accounts Receivable\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"General Ledger\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Trial Balance\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Accounting Masters\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"General Ledger\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Accounts Receivable\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Accounts Payable\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Financial Statements\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Multi Currency\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Bank Statement\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Subscription Management\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Share Management\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Cost Center and Budgeting\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Opening and Closing\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Taxes\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Profitability\",\"col\":4}}]", + "content": "[{\"id\":\"MmUf9abwxg\",\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Accounts\",\"col\":12}},{\"id\":\"i0EtSjDAXq\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Profit and Loss\",\"col\":12}},{\"id\":\"X78jcbq1u3\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"vikWSkNm6_\",\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"id\":\"pMywM0nhlj\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Chart of Accounts\",\"col\":3}},{\"id\":\"_pRdD6kqUG\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Invoice\",\"col\":3}},{\"id\":\"G984SgVRJN\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Invoice\",\"col\":3}},{\"id\":\"1ArNvt9qhz\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Journal Entry\",\"col\":3}},{\"id\":\"F9f4I1viNr\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Payment Entry\",\"col\":3}},{\"id\":\"4IBBOIxfqW\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Accounts Receivable\",\"col\":3}},{\"id\":\"El2anpPaFY\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"General Ledger\",\"col\":3}},{\"id\":\"1nwcM9upJo\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Trial Balance\",\"col\":3}},{\"id\":\"OF9WOi1Ppc\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"id\":\"B7-uxs8tkU\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"tHb3yxthkR\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"DnNtsmxpty\",\"type\":\"card\",\"data\":{\"card_name\":\"Accounting Masters\",\"col\":4}},{\"id\":\"nKKr6fjgjb\",\"type\":\"card\",\"data\":{\"card_name\":\"General Ledger\",\"col\":4}},{\"id\":\"xOHTyD8b5l\",\"type\":\"card\",\"data\":{\"card_name\":\"Accounts Receivable\",\"col\":4}},{\"id\":\"_Cb7C8XdJJ\",\"type\":\"card\",\"data\":{\"card_name\":\"Accounts Payable\",\"col\":4}},{\"id\":\"p7NY6MHe2Y\",\"type\":\"card\",\"data\":{\"card_name\":\"Financial Statements\",\"col\":4}},{\"id\":\"KlqilF5R_V\",\"type\":\"card\",\"data\":{\"card_name\":\"Taxes\",\"col\":4}},{\"id\":\"jTUy8LB0uw\",\"type\":\"card\",\"data\":{\"card_name\":\"Cost Center and Budgeting\",\"col\":4}},{\"id\":\"Wn2lhs7WLn\",\"type\":\"card\",\"data\":{\"card_name\":\"Multi Currency\",\"col\":4}},{\"id\":\"PAQMqqNkBM\",\"type\":\"card\",\"data\":{\"card_name\":\"Bank Statement\",\"col\":4}},{\"id\":\"Q_hBCnSeJY\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}},{\"id\":\"3AK1Zf0oew\",\"type\":\"card\",\"data\":{\"card_name\":\"Profitability\",\"col\":4}},{\"id\":\"kxhoaiqdLq\",\"type\":\"card\",\"data\":{\"card_name\":\"Opening and Closing\",\"col\":4}},{\"id\":\"q0MAlU2j_Z\",\"type\":\"card\",\"data\":{\"card_name\":\"Subscription Management\",\"col\":4}},{\"id\":\"ptm7T6Hwu-\",\"type\":\"card\",\"data\":{\"card_name\":\"Share Management\",\"col\":4}},{\"id\":\"OX7lZHbiTr\",\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}}]", "creation": "2020-03-02 15:41:59.515192", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", @@ -1093,10 +1094,11 @@ "type": "Link" } ], - "modified": "2022-06-24 05:41:09.236458", + "modified": "2023-05-30 13:23:29.316711", "modified_by": "Administrator", "module": "Accounts", "name": "Accounting", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, diff --git a/erpnext/assets/workspace/assets/assets.json b/erpnext/assets/workspace/assets/assets.json index 9d6080e94e8..d810effda00 100644 --- a/erpnext/assets/workspace/assets/assets.json +++ b/erpnext/assets/workspace/assets/assets.json @@ -7,12 +7,14 @@ ], "content": "[{\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Assets\",\"col\":12}},{\"type\":\"chart\",\"data\":{\"chart_name\":\"Asset Value Analytics\",\"col\":12}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Asset\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Asset Category\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Fixed Asset Register\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Assets\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Maintenance\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}}]", "creation": "2020-03-02 15:43:27.634865", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "assets", "idx": 0, + "is_hidden": 0, "label": "Assets", "links": [ { @@ -183,13 +185,15 @@ "type": "Link" } ], - "modified": "2021-10-04 12:15:54.839454", + "modified": "2023-05-24 14:47:20.243146", "modified_by": "Administrator", "module": "Assets", "name": "Assets", + "number_cards": [], "owner": "Administrator", - "parent_page": "", + "parent_page": "Accounting", "public": 1, + "quick_lists": [], "restrict_to_domain": "", "roles": [], "sequence_id": 4.0, @@ -216,4 +220,4 @@ } ], "title": "Assets" -} +} \ No newline at end of file diff --git a/erpnext/buying/workspace/buying/buying.json b/erpnext/buying/workspace/buying/buying.json index 5ad93f0e594..58c8f747106 100644 --- a/erpnext/buying/workspace/buying/buying.json +++ b/erpnext/buying/workspace/buying/buying.json @@ -7,12 +7,14 @@ ], "content": "[{\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Buying\",\"col\":12}},{\"type\":\"chart\",\"data\":{\"chart_name\":\"Purchase Order Trends\",\"col\":12}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Item\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Material Request\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Order\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Analytics\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Order Analysis\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Buying\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Items & Pricing\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Supplier\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Supplier Scorecard\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Key Reports\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Other Reports\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Regional\",\"col\":4}}]", "creation": "2020-01-28 11:50:26.195467", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "buying", "idx": 0, + "is_hidden": 0, "label": "Buying", "links": [ { @@ -509,16 +511,18 @@ "type": "Link" } ], - "modified": "2022-01-13 17:26:39.090190", + "modified": "2023-05-24 14:47:20.535772", "modified_by": "Administrator", "module": "Buying", "name": "Buying", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, + "quick_lists": [], "restrict_to_domain": "", "roles": [], - "sequence_id": 6.0, + "sequence_id": 5.0, "shortcuts": [ { "color": "Green", diff --git a/erpnext/crm/doctype/linkedin_settings/linkedin_settings.js b/erpnext/crm/doctype/linkedin_settings/linkedin_settings.js index d532236b7d2..7d6b3955cde 100644 --- a/erpnext/crm/doctype/linkedin_settings/linkedin_settings.js +++ b/erpnext/crm/doctype/linkedin_settings/linkedin_settings.js @@ -5,7 +5,7 @@ frappe.ui.form.on('LinkedIn Settings', { onload: function(frm) { if (frm.doc.session_status == 'Expired' && frm.doc.consumer_key && frm.doc.consumer_secret) { frappe.confirm( - __('Session not valid, Do you want to login?'), + __('Session not valid. Do you want to login?'), function(){ frm.trigger("login"); }, @@ -14,11 +14,11 @@ frappe.ui.form.on('LinkedIn Settings', { } ); } - frm.dashboard.set_headline(__("For more information, {0}.", [`${__('Click here')}`])); + frm.dashboard.set_headline(__("For more information, {0}.", [`${__('click here')}`])); }, refresh: function(frm) { if (frm.doc.session_status=="Expired"){ - let msg = __("Session Not Active. Save doc to login."); + let msg = __("Session not active. Save document to login."); frm.dashboard.set_headline_alert( `
@@ -37,7 +37,7 @@ frappe.ui.form.on('LinkedIn Settings', { let msg,color; if (days>0){ - msg = __("Your Session will be expire in {0} days.", [days]); + msg = __("Your session will be expire in {0} days.", [days]); color = "green"; } else { diff --git a/erpnext/crm/doctype/twitter_settings/twitter_settings.js b/erpnext/crm/doctype/twitter_settings/twitter_settings.js index 112f3d4d1c3..c322092d6f3 100644 --- a/erpnext/crm/doctype/twitter_settings/twitter_settings.js +++ b/erpnext/crm/doctype/twitter_settings/twitter_settings.js @@ -14,7 +14,7 @@ frappe.ui.form.on('Twitter Settings', { } ); } - frm.dashboard.set_headline(__("For more information, {0}.", [`${__('Click here')}`])); + frm.dashboard.set_headline(__("For more information, {0}.", [`${__('click here')}`])); }, refresh: function(frm) { let msg, color, flag=false; diff --git a/erpnext/crm/workspace/crm/crm.json b/erpnext/crm/workspace/crm/crm.json index 318754baffc..b107df76f8f 100644 --- a/erpnext/crm/workspace/crm/crm.json +++ b/erpnext/crm/workspace/crm/crm.json @@ -5,177 +5,18 @@ "label": "Territory Wise Sales" } ], - "content": "[{\"type\":\"chart\",\"data\":{\"chart_name\":\"Territory Wise Sales\",\"col\":12}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Lead\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Opportunity\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Customer\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Analytics\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Sales Pipeline\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Campaign\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Maintenance\",\"col\":4}}]", + "content": "[{\"id\":\"Cj2TyhgiWy\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Territory Wise Sales\",\"col\":12}},{\"id\":\"LAKRmpYMRA\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"XGIwEUStw_\",\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"id\":\"69RN0XsiJK\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Lead\",\"col\":3}},{\"id\":\"t6PQ0vY-Iw\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Opportunity\",\"col\":3}},{\"id\":\"VOFE0hqXRD\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Customer\",\"col\":3}},{\"id\":\"0ik53fuemG\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Analytics\",\"col\":3}},{\"id\":\"wdROEmB_XG\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"id\":\"-I9HhcgUKE\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"ttpROKW9vk\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"-76QPdbBHy\",\"type\":\"card\",\"data\":{\"card_name\":\"Sales Pipeline\",\"col\":4}},{\"id\":\"_YmGwzVWRr\",\"type\":\"card\",\"data\":{\"card_name\":\"Masters\",\"col\":4}},{\"id\":\"Bma1PxoXk3\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}},{\"id\":\"80viA0R83a\",\"type\":\"card\",\"data\":{\"card_name\":\"Campaign\",\"col\":4}},{\"id\":\"Buo5HtKRFN\",\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}},{\"id\":\"sLS_x4FMK2\",\"type\":\"card\",\"data\":{\"card_name\":\"Maintenance\",\"col\":4}}]", "creation": "2020-01-23 14:48:30.183272", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "crm", "idx": 0, + "is_hidden": 0, "label": "CRM", "links": [ - { - "hidden": 0, - "is_query_report": 0, - "label": "Sales Pipeline", - "link_count": 0, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Lead", - "link_count": 0, - "link_to": "Lead", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Opportunity", - "link_count": 0, - "link_to": "Opportunity", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Prospect", - "link_count": 0, - "link_to": "Prospect", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Customer", - "link_count": 0, - "link_to": "Customer", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Contact", - "link_count": 0, - "link_to": "Contact", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Communication", - "link_count": 0, - "link_to": "Communication", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Contract", - "link_count": 0, - "link_to": "Contract", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Appointment", - "link_count": 0, - "link_to": "Appointment", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Newsletter", - "link_count": 0, - "link_to": "Newsletter", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Lead Source", - "link_count": 0, - "link_to": "Lead Source", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Territory", - "link_count": 0, - "link_to": "Territory", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Customer Group", - "link_count": 0, - "link_to": "Customer Group", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Sales Person", - "link_count": 0, - "link_to": "Sales Person", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Sales Stage", - "link_count": 0, - "link_to": "Sales Stage", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, { "hidden": 0, "is_query_report": 0, @@ -446,19 +287,183 @@ "link_type": "DocType", "onboard": 0, "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Masters", + "link_count": 7, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Territory", + "link_count": 0, + "link_to": "Territory", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Customer Group", + "link_count": 0, + "link_to": "Customer Group", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Contact", + "link_count": 0, + "link_to": "Contact", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Prospect", + "link_count": 0, + "link_to": "Prospect", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Sales Person", + "link_count": 0, + "link_to": "Sales Person", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Sales Stage", + "link_count": 0, + "link_to": "Sales Stage", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Lead Source", + "link_count": 0, + "link_to": "Lead Source", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Sales Pipeline", + "link_count": 7, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Lead", + "link_count": 0, + "link_to": "Lead", + "link_type": "DocType", + "onboard": 1, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Opportunity", + "link_count": 0, + "link_to": "Opportunity", + "link_type": "DocType", + "onboard": 1, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Customer", + "link_count": 0, + "link_to": "Customer", + "link_type": "DocType", + "onboard": 1, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Contract", + "link_count": 0, + "link_to": "Contract", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Appointment", + "link_count": 0, + "link_to": "Appointment", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Newsletter", + "link_count": 0, + "link_to": "Newsletter", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Communication", + "link_count": 0, + "link_to": "Communication", + "link_type": "DocType", + "onboard": 0, + "type": "Link" } ], - "modified": "2022-07-22 15:03:30.755417", + "modified": "2023-05-26 16:49:04.298122", "modified_by": "Administrator", "module": "CRM", "name": "CRM", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, "quick_lists": [], "restrict_to_domain": "", "roles": [], - "sequence_id": 7.0, + "sequence_id": 10.0, "shortcuts": [ { "color": "Blue", diff --git a/erpnext/erpnext_integrations/workspace/erpnext_integrations/erpnext_integrations.json b/erpnext/erpnext_integrations/workspace/erpnext_integrations/erpnext_integrations.json index 1f2619b9a6e..ccc46b7a220 100644 --- a/erpnext/erpnext_integrations/workspace/erpnext_integrations/erpnext_integrations.json +++ b/erpnext/erpnext_integrations/workspace/erpnext_integrations/erpnext_integrations.json @@ -1,30 +1,185 @@ { "charts": [], - "content": "[{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Marketplace\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Payments\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}}]", + "content": "[{\"id\":\"e88ADOJ7WC\",\"type\":\"header\",\"data\":{\"text\":\"Integrations\",\"col\":12}},{\"id\":\"G0tyx9WOfm\",\"type\":\"card\",\"data\":{\"card_name\":\"Backup\",\"col\":4}},{\"id\":\"nu4oSjH5Rd\",\"type\":\"card\",\"data\":{\"card_name\":\"Authentication\",\"col\":4}},{\"id\":\"nG8cdkpzoc\",\"type\":\"card\",\"data\":{\"card_name\":\"Google Services\",\"col\":4}},{\"id\":\"4hwuQn6E95\",\"type\":\"card\",\"data\":{\"card_name\":\"Communication Channels\",\"col\":4}},{\"id\":\"sEGAzTJRmq\",\"type\":\"card\",\"data\":{\"card_name\":\"Payments\",\"col\":4}},{\"id\":\"ZC6xu-cLBR\",\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}}]", "creation": "2020-08-20 19:30:48.138801", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "integration", "idx": 0, + "is_hidden": 0, "label": "ERPNext Integrations", "links": [ { "hidden": 0, "is_query_report": 0, - "label": "Marketplace", - "link_count": 0, + "label": "Backup", + "link_count": 3, "onboard": 0, "type": "Card Break" }, { - "dependencies": "", "hidden": 0, "is_query_report": 0, - "label": "Woocommerce Settings", + "label": "Dropbox Settings", "link_count": 0, - "link_to": "Woocommerce Settings", + "link_to": "Dropbox Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "S3 Backup Settings", + "link_count": 0, + "link_to": "S3 Backup Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Google Drive", + "link_count": 0, + "link_to": "Google Drive", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Authentication", + "link_count": 4, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Social Login", + "link_count": 0, + "link_to": "Social Login Key", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "LDAP Settings", + "link_count": 0, + "link_to": "LDAP Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "OAuth Client", + "link_count": 0, + "link_to": "OAuth Client", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "OAuth Provider Settings", + "link_count": 0, + "link_to": "OAuth Provider Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Communication Channels", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Webhook", + "link_count": 0, + "link_to": "Webhook", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "SMS Settings", + "link_count": 0, + "link_to": "SMS Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Slack Webhook URL", + "link_count": 0, + "link_to": "Slack Webhook URL", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Google Services", + "link_count": 4, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Google Settings", + "link_count": 0, + "link_to": "Google Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Google Contacts", + "link_count": 0, + "link_to": "Google Contacts", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Google Calendar", + "link_count": 0, + "link_to": "Google Calendar", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Google Drive", + "link_count": 0, + "link_to": "Google Drive", "link_type": "DocType", "onboard": 0, "type": "Link" @@ -33,12 +188,11 @@ "hidden": 0, "is_query_report": 0, "label": "Payments", - "link_count": 0, + "link_count": 3, "onboard": 0, "type": "Card Break" }, { - "dependencies": "", "hidden": 0, "is_query_report": 0, "label": "GoCardless Settings", @@ -49,10 +203,9 @@ "type": "Link" }, { - "dependencies": "", "hidden": 0, "is_query_report": 0, - "label": "M-Pesa Settings", + "label": "Mpesa Settings", "link_count": 0, "link_to": "Mpesa Settings", "link_type": "DocType", @@ -60,15 +213,6 @@ "type": "Link" }, { - "hidden": 0, - "is_query_report": 0, - "label": "Settings", - "link_count": 0, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", "hidden": 0, "is_query_report": 0, "label": "Plaid Settings", @@ -78,6 +222,14 @@ "onboard": 0, "type": "Link" }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Settings", + "link_count": 2, + "onboard": 0, + "type": "Card Break" + }, { "dependencies": "", "hidden": 0, @@ -88,18 +240,30 @@ "link_type": "DocType", "onboard": 0, "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Woocommerce Settings", + "link_count": 0, + "link_to": "Woocommerce Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" } ], - "modified": "2022-01-13 17:35:35.508718", + "modified": "2023-05-24 14:47:25.984717", "modified_by": "Administrator", "module": "ERPNext Integrations", "name": "ERPNext Integrations", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, + "quick_lists": [], "restrict_to_domain": "", "roles": [], - "sequence_id": 10.0, + "sequence_id": 21.0, "shortcuts": [], "title": "ERPNext Integrations" -} +} \ No newline at end of file diff --git a/erpnext/loan_management/workspace/loans/loans.json b/erpnext/loan_management/workspace/loans/loans.json index c65be4efae9..c25f4d35d0b 100644 --- a/erpnext/loan_management/workspace/loans/loans.json +++ b/erpnext/loan_management/workspace/loans/loans.json @@ -2,6 +2,7 @@ "charts": [], "content": "[{\"id\":\"_38WStznya\",\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"id\":\"t7o_K__1jB\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Loan Application\",\"col\":3}},{\"id\":\"IRiNDC6w1p\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Loan\",\"col\":3}},{\"id\":\"xbbo0FYbq0\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"id\":\"7ZL4Bro-Vi\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"yhyioTViZ3\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"oYFn4b1kSw\",\"type\":\"card\",\"data\":{\"card_name\":\"Loan\",\"col\":4}},{\"id\":\"vZepJF5tl9\",\"type\":\"card\",\"data\":{\"card_name\":\"Loan Processes\",\"col\":4}},{\"id\":\"k-393Mjhqe\",\"type\":\"card\",\"data\":{\"card_name\":\"Disbursement and Repayment\",\"col\":4}},{\"id\":\"6crJ0DBiBJ\",\"type\":\"card\",\"data\":{\"card_name\":\"Loan Security\",\"col\":4}},{\"id\":\"Um5YwxVLRJ\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}}]", "creation": "2020-03-12 16:35:55.299820", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", @@ -279,17 +280,18 @@ "type": "Link" } ], - "modified": "2023-01-31 19:47:13.114415", + "modified": "2023-05-24 14:47:24.109945", "modified_by": "Administrator", "module": "Loan Management", "name": "Loans", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, "quick_lists": [], "restrict_to_domain": "", "roles": [], - "sequence_id": 16.0, + "sequence_id": 15.0, "shortcuts": [ { "color": "Green", diff --git a/erpnext/manufacturing/workspace/manufacturing/manufacturing.json b/erpnext/manufacturing/workspace/manufacturing/manufacturing.json index c25f606060f..d862c349e3d 100644 --- a/erpnext/manufacturing/workspace/manufacturing/manufacturing.json +++ b/erpnext/manufacturing/workspace/manufacturing/manufacturing.json @@ -1,13 +1,15 @@ { "charts": [], - "content": "[{\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"BOM\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Production Plan\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Work Order\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Job Card\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Forecasting\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"BOM Stock Report\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Production Planning Report\",\"col\":3}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Production\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Bill of Materials\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Tools\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}}]", + "content": "[{\"id\":\"csBCiDglCE\",\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"id\":\"xit0dg7KvY\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"BOM\",\"col\":3}},{\"id\":\"LRhGV9GAov\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Production Plan\",\"col\":3}},{\"id\":\"69KKosI6Hg\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Work Order\",\"col\":3}},{\"id\":\"PwndxuIpB3\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Job Card\",\"col\":3}},{\"id\":\"OaiDqTT03Y\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Forecasting\",\"col\":3}},{\"id\":\"OtMcArFRa5\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"BOM Stock Report\",\"col\":3}},{\"id\":\"76yYsI5imF\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Production Planning Report\",\"col\":3}},{\"id\":\"bN_6tHS-Ct\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"yVEFZMqVwd\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"rwrmsTI58-\",\"type\":\"card\",\"data\":{\"card_name\":\"Production\",\"col\":4}},{\"id\":\"6dnsyX-siZ\",\"type\":\"card\",\"data\":{\"card_name\":\"Bill of Materials\",\"col\":4}},{\"id\":\"CIq-v5f5KC\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}},{\"id\":\"8RRiQeYr0G\",\"type\":\"card\",\"data\":{\"card_name\":\"Tools\",\"col\":4}},{\"id\":\"Pu8z7-82rT\",\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}}]", "creation": "2020-03-02 17:11:37.032604", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "organization", "idx": 0, + "is_hidden": 0, "label": "Manufacturing", "links": [ { @@ -243,7 +245,7 @@ "hidden": 0, "is_query_report": 0, "label": "Bill of Materials", - "link_count": 15, + "link_count": 6, "onboard": 0, "type": "Card Break" }, @@ -312,117 +314,20 @@ "link_type": "DocType", "onboard": 0, "type": "Link" - }, - { - "dependencies": "Work Order", - "hidden": 0, - "is_query_report": 1, - "label": "Production Planning Report", - "link_count": 0, - "link_to": "Production Planning Report", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Quality Inspection", - "hidden": 0, - "is_query_report": 1, - "label": "Work Order Summary", - "link_count": 0, - "link_to": "Work Order Summary", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Downtime Entry", - "hidden": 0, - "is_query_report": 1, - "label": "Quality Inspection Summary", - "link_count": 0, - "link_to": "Quality Inspection Summary", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Job Card", - "hidden": 0, - "is_query_report": 1, - "label": "Downtime Analysis", - "link_count": 0, - "link_to": "Downtime Analysis", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "BOM", - "hidden": 0, - "is_query_report": 1, - "label": "Job Card Summary", - "link_count": 0, - "link_to": "Job Card Summary", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "BOM", - "hidden": 0, - "is_query_report": 1, - "label": "BOM Search", - "link_count": 0, - "link_to": "BOM Search", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Work Order", - "hidden": 0, - "is_query_report": 1, - "label": "BOM Stock Report", - "link_count": 0, - "link_to": "BOM Stock Report", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "BOM", - "hidden": 0, - "is_query_report": 1, - "label": "Production Analytics", - "link_count": 0, - "link_to": "Production Analytics", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "BOM Operations Time", - "link_count": 0, - "link_to": "BOM Operations Time", - "link_type": "Report", - "onboard": 0, - "type": "Link" } ], - "modified": "2022-11-14 14:53:34.616862", + "modified": "2023-05-27 16:41:04.776115", "modified_by": "Administrator", "module": "Manufacturing", "name": "Manufacturing", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, "quick_lists": [], "restrict_to_domain": "", "roles": [], - "sequence_id": 17.0, + "sequence_id": 8.0, "shortcuts": [ { "color": "Grey", diff --git a/erpnext/patches.txt b/erpnext/patches.txt index fbfb7d2094e..a2c5ca9b893 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -332,3 +332,4 @@ execute:frappe.db.set_single_value("Accounts Settings", "merge_similar_account_h erpnext.patches.v14_0.migrate_gl_to_payment_ledger erpnext.patches.v14_0.update_company_in_ldc erpnext.patches.v14_0.set_packed_qty_in_draft_delivery_notes +erpnext.patches.v14_0.cleanup_workspaces diff --git a/erpnext/patches/v14_0/cleanup_workspaces.py b/erpnext/patches/v14_0/cleanup_workspaces.py new file mode 100644 index 00000000000..2fc0a4f7d80 --- /dev/null +++ b/erpnext/patches/v14_0/cleanup_workspaces.py @@ -0,0 +1,9 @@ +import frappe + + +def execute(): + for ws in ["Retail", "Utilities"]: + frappe.delete_doc_if_exists("Workspace", ws) + + for ws in ["Integrations", "Settings"]: + frappe.db.set_value("Workspace", ws, "public", 0) diff --git a/erpnext/projects/workspace/projects/projects.json b/erpnext/projects/workspace/projects/projects.json index 4bdb1db387d..50730bac0db 100644 --- a/erpnext/projects/workspace/projects/projects.json +++ b/erpnext/projects/workspace/projects/projects.json @@ -7,12 +7,14 @@ ], "content": "[{\"type\":\"chart\",\"data\":{\"chart_name\":\"Open Projects\",\"col\":12}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Task\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Project\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Timesheet\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Project Billing Summary\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Projects\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Time Tracking\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}}]", "creation": "2020-03-02 15:46:04.874669", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "project", "idx": 0, + "is_hidden": 0, "label": "Projects", "links": [ { @@ -190,17 +192,18 @@ "type": "Link" } ], - "modified": "2022-10-11 22:39:10.436311", + "modified": "2023-05-24 14:47:23.179860", "modified_by": "Administrator", "module": "Projects", "name": "Projects", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, "quick_lists": [], "restrict_to_domain": "", "roles": [], - "sequence_id": 20.0, + "sequence_id": 11.0, "shortcuts": [ { "color": "Blue", diff --git a/erpnext/quality_management/workspace/quality/quality.json b/erpnext/quality_management/workspace/quality/quality.json index 3effd59d8ee..8183de9595c 100644 --- a/erpnext/quality_management/workspace/quality/quality.json +++ b/erpnext/quality_management/workspace/quality/quality.json @@ -2,12 +2,14 @@ "charts": [], "content": "[{\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Quality Goal\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Quality Procedure\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Quality Inspection\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Quality Review\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Quality Action\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Non Conformance\",\"col\":3}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Goal and Procedure\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Feedback\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Meeting\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Review and Action\",\"col\":4}}]", "creation": "2020-03-02 15:49:28.632014", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "quality", "idx": 0, + "is_hidden": 0, "label": "Quality", "links": [ { @@ -142,16 +144,18 @@ "type": "Link" } ], - "modified": "2022-01-13 17:42:20.105187", + "modified": "2023-05-24 14:47:22.597974", "modified_by": "Administrator", "module": "Quality Management", "name": "Quality", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, + "quick_lists": [], "restrict_to_domain": "", "roles": [], - "sequence_id": 21.0, + "sequence_id": 9.0, "shortcuts": [ { "color": "Grey", diff --git a/erpnext/selling/workspace/retail/retail.json b/erpnext/selling/workspace/retail/retail.json deleted file mode 100644 index 5bce3ca648a..00000000000 --- a/erpnext/selling/workspace/retail/retail.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "charts": [], - "content": "[{\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Point Of Sale\",\"col\":3}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Settings & Configurations\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Loyalty Program\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Opening & Closing\",\"col\":4}}]", - "creation": "2020-03-02 17:18:32.505616", - "docstatus": 0, - "doctype": "Workspace", - "for_user": "", - "hide_custom": 0, - "icon": "retail", - "idx": 0, - "label": "Retail", - "links": [ - { - "hidden": 0, - "is_query_report": 0, - "label": "Settings & Configurations", - "link_count": 2, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Point-of-Sale Profile", - "link_count": 0, - "link_to": "POS Profile", - "link_type": "DocType", - "onboard": 1, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "POS Settings", - "link_count": 0, - "link_to": "POS Settings", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Loyalty Program", - "link_count": 2, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Loyalty Program", - "link_count": 0, - "link_to": "Loyalty Program", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Loyalty Point Entry", - "link_count": 0, - "link_to": "Loyalty Point Entry", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 0, - "label": "Opening & Closing", - "link_count": 2, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "POS Opening Entry", - "link_count": 0, - "link_to": "POS Opening Entry", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "POS Closing Entry", - "link_count": 0, - "link_to": "POS Closing Entry", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - } - ], - "modified": "2022-01-13 18:07:56.711095", - "modified_by": "Administrator", - "module": "Selling", - "name": "Retail", - "owner": "Administrator", - "parent_page": "", - "public": 1, - "restrict_to_domain": "Retail", - "roles": [], - "sequence_id": 22.0, - "shortcuts": [ - { - "doc_view": "", - "label": "Point Of Sale", - "link_to": "point-of-sale", - "type": "Page" - } - ], - "title": "Retail" -} \ No newline at end of file diff --git a/erpnext/selling/workspace/selling/selling.json b/erpnext/selling/workspace/selling/selling.json index 180a3d783e0..f498223aa85 100644 --- a/erpnext/selling/workspace/selling/selling.json +++ b/erpnext/selling/workspace/selling/selling.json @@ -5,14 +5,16 @@ "label": "Sales Order Trends" } ], - "content": "[{\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Selling\",\"col\":12}},{\"type\":\"chart\",\"data\":{\"chart_name\":\"Sales Order Trends\",\"col\":12}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Quick Access\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Item\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Order\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Analytics\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Order Analysis\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Selling\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Items and Pricing\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Key Reports\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Other Reports\",\"col\":4}}]", + "content": "[{\"id\":\"ow595dYDrI\",\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Selling\",\"col\":12}},{\"id\":\"vBSf8Vi9U8\",\"type\":\"chart\",\"data\":{\"chart_name\":\"Sales Order Trends\",\"col\":12}},{\"id\":\"aW2i5R5GRP\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"1it3dCOnm6\",\"type\":\"header\",\"data\":{\"text\":\"Quick Access\",\"col\":12}},{\"id\":\"x7pLl-spS4\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Item\",\"col\":3}},{\"id\":\"SSGrXWmY-H\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Order\",\"col\":3}},{\"id\":\"-5J_yLxDaS\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Analytics\",\"col\":3}},{\"id\":\"6YEYpnIBKV\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Point of Sale\",\"col\":3}},{\"id\":\"c_GjZuZ2oN\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"id\":\"oNjjNbnUHp\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"0BcePLg0g1\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"uze5dJ1ipL\",\"type\":\"card\",\"data\":{\"card_name\":\"Selling\",\"col\":4}},{\"id\":\"3j2fYwMAkq\",\"type\":\"card\",\"data\":{\"card_name\":\"Point of Sale\",\"col\":4}},{\"id\":\"xImm8NepFt\",\"type\":\"card\",\"data\":{\"card_name\":\"Items and Pricing\",\"col\":4}},{\"id\":\"6MjIe7KCQo\",\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}},{\"id\":\"lBu2EKgmJF\",\"type\":\"card\",\"data\":{\"card_name\":\"Key Reports\",\"col\":4}},{\"id\":\"1ARHrjg4kI\",\"type\":\"card\",\"data\":{\"card_name\":\"Other Reports\",\"col\":4}}]", "creation": "2020-01-28 11:49:12.092882", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "sell", "idx": 0, + "is_hidden": 0, "label": "Selling", "links": [ { @@ -317,140 +319,68 @@ { "hidden": 0, "is_query_report": 0, - "label": "Other Reports", - "link_count": 12, + "label": "Point of Sale", + "link_count": 6, "onboard": 0, "type": "Card Break" }, { - "dependencies": "Lead", "hidden": 0, - "is_query_report": 1, - "label": "Lead Details", + "is_query_report": 0, + "label": "Point-of-Sale Profile", "link_count": 0, - "link_to": "Lead Details", - "link_type": "Report", + "link_to": "POS Profile", + "link_type": "DocType", "onboard": 0, "type": "Link" }, { - "dependencies": "Address", "hidden": 0, - "is_query_report": 1, - "label": "Customer Addresses And Contacts", + "is_query_report": 0, + "label": "POS Settings", "link_count": 0, - "link_to": "Address And Contacts", - "link_type": "Report", + "link_to": "POS Settings", + "link_type": "DocType", "onboard": 0, "type": "Link" }, { - "dependencies": "Item", "hidden": 0, - "is_query_report": 1, - "label": "Available Stock for Packing Items", + "is_query_report": 0, + "label": "POS Opening Entry", "link_count": 0, - "link_to": "Available Stock for Packing Items", - "link_type": "Report", + "link_to": "POS Opening Entry", + "link_type": "DocType", "onboard": 0, "type": "Link" }, { - "dependencies": "Sales Order", "hidden": 0, - "is_query_report": 1, - "label": "Pending SO Items For Purchase Request", + "is_query_report": 0, + "label": "POS Closing Entry", "link_count": 0, - "link_to": "Pending SO Items For Purchase Request", - "link_type": "Report", + "link_to": "POS Closing Entry", + "link_type": "DocType", "onboard": 0, "type": "Link" }, { - "dependencies": "Delivery Note", "hidden": 0, - "is_query_report": 1, - "label": "Delivery Note Trends", + "is_query_report": 0, + "label": "Loyalty Program", "link_count": 0, - "link_to": "Delivery Note Trends", - "link_type": "Report", + "link_to": "Loyalty Program", + "link_type": "DocType", "onboard": 0, "type": "Link" }, { - "dependencies": "Sales Invoice", "hidden": 0, - "is_query_report": 1, - "label": "Sales Invoice Trends", + "is_query_report": 0, + "label": "Loyalty Point Entry", "link_count": 0, - "link_to": "Sales Invoice Trends", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Customer", - "hidden": 0, - "is_query_report": 1, - "label": "Customer Credit Balance", - "link_count": 0, - "link_to": "Customer Credit Balance", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Customer", - "hidden": 0, - "is_query_report": 1, - "label": "Customers Without Any Sales Transactions", - "link_count": 0, - "link_to": "Customers Without Any Sales Transactions", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Customer", - "hidden": 0, - "is_query_report": 1, - "label": "Sales Partners Commission", - "link_count": 0, - "link_to": "Sales Partners Commission", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Order", - "hidden": 0, - "is_query_report": 1, - "label": "Territory Target Variance Based On Item Group", - "link_count": 0, - "link_to": "Territory Target Variance Based On Item Group", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Order", - "hidden": 0, - "is_query_report": 1, - "label": "Sales Person Target Variance Based On Item Group", - "link_count": 0, - "link_to": "Sales Person Target Variance Based On Item Group", - "link_type": "Report", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "Sales Order", - "hidden": 0, - "is_query_report": 1, - "label": "Sales Partner Target Variance Based On Item Group", - "link_count": 0, - "link_to": "Sales Partner Target Variance based on Item Group", - "link_type": "Report", + "link_to": "Loyalty Point Entry", + "link_type": "DocType", "onboard": 0, "type": "Link" }, @@ -458,7 +388,7 @@ "hidden": 0, "is_query_report": 0, "label": "Key Reports", - "link_count": 22, + "link_count": 9, "onboard": 0, "type": "Card Break" }, @@ -562,15 +492,12 @@ "type": "Link" }, { - "dependencies": "Lead", "hidden": 0, - "is_query_report": 1, - "label": "Lead Details", - "link_count": 0, - "link_to": "Lead Details", - "link_type": "Report", + "is_query_report": 0, + "label": "Other Reports", + "link_count": 11, "onboard": 0, - "type": "Link" + "type": "Card Break" }, { "dependencies": "Address", @@ -692,29 +619,26 @@ "link_type": "Report", "onboard": 0, "type": "Link" - }, - { - "hidden": 0, - "is_query_report": 1, - "label": "Payment Terms Status for Sales Order", - "link_count": 0, - "link_to": "Payment Terms Status for Sales Order", - "link_type": "Report", - "onboard": 0, - "type": "Link" } ], - "modified": "2023-04-16 13:29:55.087240", + "modified": "2023-05-26 16:31:53.634851", "modified_by": "Administrator", "module": "Selling", "name": "Selling", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, + "quick_lists": [], "restrict_to_domain": "", "roles": [], - "sequence_id": 23.0, + "sequence_id": 6.0, "shortcuts": [ + { + "label": "Point of Sale", + "link_to": "point-of-sale", + "type": "Page" + }, { "color": "Grey", "format": "{} Available", @@ -739,11 +663,6 @@ "stats_filter": "{ \"Status\": \"Open\" }", "type": "Report" }, - { - "label": "Sales Order Analysis", - "link_to": "Sales Order Analysis", - "type": "Report" - }, { "label": "Dashboard", "link_to": "Selling", diff --git a/erpnext/setup/install.py b/erpnext/setup/install.py index 3e1e39410ed..0d780c22817 100644 --- a/erpnext/setup/install.py +++ b/erpnext/setup/install.py @@ -31,6 +31,7 @@ def after_install(): add_standard_navbar_items() add_app_name() setup_log_settings() + hide_workspaces() frappe.db.commit() @@ -205,3 +206,8 @@ def setup_log_settings(): log_settings.append("logs_to_clear", {"ref_doctype": "Repost Item Valuation", "days": 60}) log_settings.save(ignore_permissions=True) + + +def hide_workspaces(): + for ws in ["Integration", "Settings"]: + frappe.db.set_value("Workspace", ws, "public", 0) diff --git a/erpnext/setup/workspace/erpnext_settings/erpnext_settings.json b/erpnext/setup/workspace/erpnext_settings/erpnext_settings.json index 4c0f2b5cbf7..5806fd1f788 100644 --- a/erpnext/setup/workspace/erpnext_settings/erpnext_settings.json +++ b/erpnext/setup/workspace/erpnext_settings/erpnext_settings.json @@ -1,31 +1,467 @@ { "charts": [], - "content": "[{\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Projects Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Accounts Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Stock Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"HR Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Selling Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Buying Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Support Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Shopping Cart Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Portal Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Domain Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Products Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Naming Series\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Manufacturing Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Education Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Hotel Settings\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"CRM Settings\",\"col\":3}}]", + "content": "[{\"id\":\"NO5yYHJopc\",\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\",\"col\":12}},{\"id\":\"CDxIM-WuZ9\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"System Settings\",\"col\":3}},{\"id\":\"-Uh7DKJNJX\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Accounts Settings\",\"col\":3}},{\"id\":\"K9ST9xcDXh\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Stock Settings\",\"col\":3}},{\"id\":\"27IdVHVQMb\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Selling Settings\",\"col\":3}},{\"id\":\"Rwp5zff88b\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Buying Settings\",\"col\":3}},{\"id\":\"hkfnQ2sevf\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Global Defaults\",\"col\":3}},{\"id\":\"jjxI_PDawD\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Print Settings\",\"col\":3}},{\"id\":\"R3CoYYFXye\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"yynbm1J_VO\",\"type\":\"header\",\"data\":{\"text\":\"Settings\",\"col\":12}},{\"id\":\"KDCv2MvSg3\",\"type\":\"card\",\"data\":{\"card_name\":\"Module Settings\",\"col\":4}},{\"id\":\"Q0_bqT7cxQ\",\"type\":\"card\",\"data\":{\"card_name\":\"Email / Notifications\",\"col\":4}},{\"id\":\"UnqK5haBnh\",\"type\":\"card\",\"data\":{\"card_name\":\"Website\",\"col\":4}},{\"id\":\"kp7u1H5hCd\",\"type\":\"card\",\"data\":{\"card_name\":\"Core\",\"col\":4}},{\"id\":\"Ufc3jycgy9\",\"type\":\"card\",\"data\":{\"card_name\":\"Printing\",\"col\":4}},{\"id\":\"89bSNzv3Yh\",\"type\":\"card\",\"data\":{\"card_name\":\"Workflow\",\"col\":4}}]", "creation": "2022-01-27 13:14:47.349433", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "setting", "idx": 0, + "is_hidden": 0, "label": "ERPNext Settings", - "links": [], - "modified": "2022-06-27 16:53:07.056620", + "links": [ + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Import Data", + "link_count": 0, + "link_to": "Data Import", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Export Data", + "link_count": 0, + "link_to": "Data Export", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Bulk Update", + "link_count": 0, + "link_to": "Bulk Update", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Download Backups", + "link_count": 0, + "link_to": "backups", + "link_type": "Page", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Deleted Documents", + "link_count": 0, + "link_to": "Deleted Document", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Email / Notifications", + "link_count": 0, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Email Account", + "link_count": 0, + "link_to": "Email Account", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Email Domain", + "link_count": 0, + "link_to": "Email Domain", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Notification", + "link_count": 0, + "link_to": "Notification", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Email Template", + "link_count": 0, + "link_to": "Email Template", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Auto Email Report", + "link_count": 0, + "link_to": "Auto Email Report", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Newsletter", + "link_count": 0, + "link_to": "Newsletter", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Notification Settings", + "link_count": 0, + "link_to": "Notification Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Website", + "link_count": 0, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Website Settings", + "link_count": 0, + "link_to": "Website Settings", + "link_type": "DocType", + "onboard": 1, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Website Theme", + "link_count": 0, + "link_to": "Website Theme", + "link_type": "DocType", + "onboard": 1, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Website Script", + "link_count": 0, + "link_to": "Website Script", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "About Us Settings", + "link_count": 0, + "link_to": "About Us Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Contact Us Settings", + "link_count": 0, + "link_to": "Contact Us Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Printing", + "link_count": 0, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Print Format Builder", + "link_count": 0, + "link_to": "print-format-builder", + "link_type": "Page", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Print Settings", + "link_count": 0, + "link_to": "Print Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Print Format", + "link_count": 0, + "link_to": "Print Format", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Print Style", + "link_count": 0, + "link_to": "Print Style", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Workflow", + "link_count": 0, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Workflow", + "link_count": 0, + "link_to": "Workflow", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Workflow State", + "link_count": 0, + "link_to": "Workflow State", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Workflow Action", + "link_count": 0, + "link_to": "Workflow Action", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Core", + "link_count": 3, + "onboard": 0, + "type": "Card Break" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "System Settings", + "link_count": 0, + "link_to": "System Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "dependencies": "", + "hidden": 0, + "is_query_report": 0, + "label": "Domain Settings", + "link_count": 0, + "link_to": "Domain Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Global Defaults", + "link_count": 0, + "link_to": "Global Defaults", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Module Settings", + "link_count": 8, + "onboard": 0, + "type": "Card Break" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Accounts Settings", + "link_count": 0, + "link_to": "Accounts Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Stock Settings", + "link_count": 0, + "link_to": "Stock Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Selling Settings", + "link_count": 0, + "link_to": "Selling Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Buying Settings", + "link_count": 0, + "link_to": "Buying Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Manufacturing Settings", + "link_count": 0, + "link_to": "Manufacturing Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "CRM Settings", + "link_count": 0, + "link_to": "CRM Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Projects Settings", + "link_count": 0, + "link_to": "Projects Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + }, + { + "hidden": 0, + "is_query_report": 0, + "label": "Support Settings", + "link_count": 0, + "link_to": "Support Settings", + "link_type": "DocType", + "onboard": 0, + "type": "Link" + } + ], + "modified": "2023-05-24 14:47:25.356531", "modified_by": "Administrator", "module": "Setup", "name": "ERPNext Settings", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, "quick_lists": [], "restrict_to_domain": "", "roles": [], - "sequence_id": 12.0, + "sequence_id": 19.0, "shortcuts": [ { - "icon": "project", - "label": "Projects Settings", - "link_to": "Projects Settings", + "color": "Grey", + "doc_view": "List", + "label": "Print Settings", + "link_to": "Print Settings", + "type": "DocType" + }, + { + "color": "Grey", + "doc_view": "List", + "label": "System Settings", + "link_to": "System Settings", "type": "DocType" }, { @@ -34,6 +470,13 @@ "link_to": "Accounts Settings", "type": "DocType" }, + { + "color": "Grey", + "doc_view": "List", + "label": "Global Defaults", + "link_to": "Global Defaults", + "type": "DocType" + }, { "icon": "stock", "label": "Stock Settings", @@ -51,44 +494,6 @@ "label": "Buying Settings", "link_to": "Buying Settings", "type": "DocType" - }, - { - "icon": "support", - "label": "Support Settings", - "link_to": "Support Settings", - "type": "DocType" - }, - { - "icon": "retail", - "label": "E Commerce Settings", - "link_to": "E Commerce Settings", - "type": "DocType" - }, - { - "icon": "website", - "label": "Portal Settings", - "link_to": "Portal Settings", - "type": "DocType" - }, - { - "icon": "organization", - "label": "Manufacturing Settings", - "link_to": "Manufacturing Settings", - "restrict_to_domain": "Manufacturing", - "type": "DocType" - }, - { - "icon": "setting", - "label": "Domain Settings", - "link_to": "Domain Settings", - "type": "DocType" - }, - { - "doc_view": "", - "icon": "crm", - "label": "CRM Settings", - "link_to": "CRM Settings", - "type": "DocType" } ], "title": "ERPNext Settings" diff --git a/erpnext/setup/workspace/home/home.json b/erpnext/setup/workspace/home/home.json index d26e57684fb..1fc1f787fb0 100644 --- a/erpnext/setup/workspace/home/home.json +++ b/erpnext/setup/workspace/home/home.json @@ -1,13 +1,15 @@ { "charts": [], - "content": "[{\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Home\",\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Item\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Customer\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Supplier\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Invoice\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Leaderboard\",\"col\":3}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Accounting\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Stock\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Human Resources\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"CRM\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Data Import and Settings\",\"col\":4}}]", + "content": "[{\"id\":\"aCk49ShVRs\",\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Home\",\"col\":12}},{\"id\":\"kb3XPLg8lb\",\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"id\":\"nWd2KJPW8l\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Item\",\"col\":3}},{\"id\":\"snrzfbFr5Y\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Customer\",\"col\":3}},{\"id\":\"SHJKakmLLf\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Supplier\",\"col\":3}},{\"id\":\"CPxEyhaf3G\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Sales Invoice\",\"col\":3}},{\"id\":\"WU4F-HUcIQ\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Leaderboard\",\"col\":3}},{\"id\":\"d_KVM1gsf9\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"JVu8-FJZCu\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"JiuSi0ubOg\",\"type\":\"card\",\"data\":{\"card_name\":\"Accounting\",\"col\":4}},{\"id\":\"ji2Jlm3Q8i\",\"type\":\"card\",\"data\":{\"card_name\":\"Stock\",\"col\":4}},{\"id\":\"N61oiXpuwK\",\"type\":\"card\",\"data\":{\"card_name\":\"CRM\",\"col\":4}},{\"id\":\"6J0CVl1mPo\",\"type\":\"card\",\"data\":{\"card_name\":\"Data Import and Settings\",\"col\":4}}]", "creation": "2020-01-23 13:46:38.833076", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "getting-started", "idx": 0, + "is_hidden": 0, "label": "Home", "links": [ { @@ -230,10 +232,11 @@ "type": "Link" } ], - "modified": "2022-06-27 16:54:35.462176", + "modified": "2023-05-24 14:47:18.765388", "modified_by": "Administrator", "module": "Setup", "name": "Home", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, diff --git a/erpnext/stock/workspace/stock/stock.json b/erpnext/stock/workspace/stock/stock.json index de5e6de8f13..502afde2f4c 100644 --- a/erpnext/stock/workspace/stock/stock.json +++ b/erpnext/stock/workspace/stock/stock.json @@ -7,12 +7,14 @@ ], "content": "[{\"type\":\"onboarding\",\"data\":{\"onboarding_name\":\"Stock\",\"col\":12}},{\"type\":\"chart\",\"data\":{\"chart_name\":\"Warehouse wise Stock Value\",\"col\":12}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Quick Access\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Item\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Material Request\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Stock Entry\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Purchase Receipt\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Delivery Note\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Stock Ledger\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Stock Balance\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Dashboard\",\"col\":3}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Masters & Reports\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Items and Pricing\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Stock Transactions\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Stock Reports\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Serial No and Batch\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Tools\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Key Reports\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Other Reports\",\"col\":4}}]", "creation": "2020-03-02 15:43:10.096528", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "stock", "idx": 0, + "is_hidden": 0, "label": "Stock", "links": [ { @@ -717,17 +719,18 @@ "type": "Link" } ], - "modified": "2022-12-06 17:03:56.397272", + "modified": "2023-05-24 14:47:21.707580", "modified_by": "Administrator", "module": "Stock", "name": "Stock", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, "quick_lists": [], "restrict_to_domain": "", "roles": [], - "sequence_id": 24.0, + "sequence_id": 7.0, "shortcuts": [ { "color": "Green", diff --git a/erpnext/support/workspace/support/support.json b/erpnext/support/workspace/support/support.json index 8ca3a676c92..1aaf2de99ed 100644 --- a/erpnext/support/workspace/support/support.json +++ b/erpnext/support/workspace/support/support.json @@ -1,13 +1,15 @@ { "charts": [], - "content": "[{\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Issue\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Maintenance Visit\",\"col\":3}},{\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Service Level Agreement\",\"col\":3}},{\"type\":\"spacer\",\"data\":{\"col\":12}},{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Issues\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Maintenance\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Service Level Agreement\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Warranty\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}},{\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}}]", + "content": "[{\"id\":\"qzP2mZrGOu\",\"type\":\"header\",\"data\":{\"text\":\"Your Shortcuts\",\"col\":12}},{\"id\":\"Fkdjo6bJ7A\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Issue\",\"col\":3}},{\"id\":\"OTS8kx2f3x\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Maintenance Visit\",\"col\":3}},{\"id\":\"smDTSjBR3Z\",\"type\":\"shortcut\",\"data\":{\"shortcut_name\":\"Service Level Agreement\",\"col\":3}},{\"id\":\"WCqL_gBYGU\",\"type\":\"spacer\",\"data\":{\"col\":12}},{\"id\":\"oxhWhXp9b2\",\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"id\":\"Ff8Ab3nLLN\",\"type\":\"card\",\"data\":{\"card_name\":\"Issues\",\"col\":4}},{\"id\":\"_lndiuJTVP\",\"type\":\"card\",\"data\":{\"card_name\":\"Maintenance\",\"col\":4}},{\"id\":\"R_aNO5ESzJ\",\"type\":\"card\",\"data\":{\"card_name\":\"Service Level Agreement\",\"col\":4}},{\"id\":\"N8aA2afWfi\",\"type\":\"card\",\"data\":{\"card_name\":\"Warranty\",\"col\":4}},{\"id\":\"M5fxGuFwUR\",\"type\":\"card\",\"data\":{\"card_name\":\"Settings\",\"col\":4}},{\"id\":\"xKH0kO9q4P\",\"type\":\"card\",\"data\":{\"card_name\":\"Reports\",\"col\":4}}]", "creation": "2020-03-02 15:48:23.224699", + "custom_blocks": [], "docstatus": 0, "doctype": "Workspace", "for_user": "", "hide_custom": 0, "icon": "support", "idx": 0, + "is_hidden": 0, "label": "Support", "links": [ { @@ -169,16 +171,18 @@ "type": "Link" } ], - "modified": "2022-01-13 17:48:27.247406", + "modified": "2023-05-24 14:47:23.408966", "modified_by": "Administrator", "module": "Support", "name": "Support", + "number_cards": [], "owner": "Administrator", "parent_page": "", "public": 1, + "quick_lists": [], "restrict_to_domain": "", "roles": [], - "sequence_id": 25.0, + "sequence_id": 12.0, "shortcuts": [ { "color": "Yellow", diff --git a/erpnext/utilities/workspace/utilities/utilities.json b/erpnext/utilities/workspace/utilities/utilities.json deleted file mode 100644 index 5b81e039b14..00000000000 --- a/erpnext/utilities/workspace/utilities/utilities.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "charts": [], - "content": "[{\"type\":\"header\",\"data\":{\"text\":\"Reports & Masters\",\"col\":12}},{\"type\":\"card\",\"data\":{\"card_name\":\"Video\",\"col\":4}}]", - "creation": "2020-09-10 12:21:22.335307", - "docstatus": 0, - "doctype": "Workspace", - "for_user": "", - "hide_custom": 0, - "idx": 0, - "label": "Utilities", - "links": [ - { - "hidden": 0, - "is_query_report": 0, - "label": "Video", - "link_count": 0, - "onboard": 0, - "type": "Card Break" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Video", - "link_count": 0, - "link_to": "Video", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - }, - { - "dependencies": "", - "hidden": 0, - "is_query_report": 0, - "label": "Video Settings", - "link_count": 0, - "link_to": "Video Settings", - "link_type": "DocType", - "onboard": 0, - "type": "Link" - } - ], - "modified": "2022-01-13 17:50:10.067510", - "modified_by": "Administrator", - "module": "Utilities", - "name": "Utilities", - "owner": "user@erpnext.com", - "parent_page": "", - "public": 1, - "restrict_to_domain": "", - "roles": [], - "sequence_id": 30.0, - "shortcuts": [], - "title": "Utilities" -} \ No newline at end of file