From de6957262d6129d9a084edcbdb92b8ce17f5f20b Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 28 Feb 2024 05:13:29 +0000 Subject: [PATCH 01/30] chore(release): Bumped to Version 14.64.0 # [14.64.0](https://github.com/frappe/erpnext/compare/v14.63.3...v14.64.0) (2024-02-28) ### Bug Fixes * add flags for repost to ensure correct accounting from India Compliance App ([8c772cf](https://github.com/frappe/erpnext/commit/8c772cfb9f2c01f2e1dbf514fb819b3d0f3836f7)) * amount label according to party type ([bb3a7cd](https://github.com/frappe/erpnext/commit/bb3a7cdb3dfa6db1a219fc80d6c93f6e9f28001d)) * Cannot read properties of undefined (backport [#40081](https://github.com/frappe/erpnext/issues/40081)) ([#40082](https://github.com/frappe/erpnext/issues/40082)) ([579b27d](https://github.com/frappe/erpnext/commit/579b27d0102c86c42c32b61c2adbd16280d45532)) * capacity planning issue in the job card (backport [#40092](https://github.com/frappe/erpnext/issues/40092)) ([#40100](https://github.com/frappe/erpnext/issues/40100)) ([8a573a1](https://github.com/frappe/erpnext/commit/8a573a1aff13dd878e5c990fd0b2d8f492ed8ad2)) * check_credit_limit on_update_after_submit of Sales Order ([3112fca](https://github.com/frappe/erpnext/commit/3112fca087153d95699ff9ecaa1fc1215d65fa91)) * communication_date in party dashboards (backport [#40005](https://github.com/frappe/erpnext/issues/40005)) ([#40020](https://github.com/frappe/erpnext/issues/40020)) ([b364fe7](https://github.com/frappe/erpnext/commit/b364fe704723cfc0e508c8ff9f39645a8625b703)) * Completed Work Orders report not working ([c8e1409](https://github.com/frappe/erpnext/commit/c8e1409b803e42f6ecedb4c2bd56dffb147fdbf9)) * Cr/Dr notes with POS Payments ([e5098c5](https://github.com/frappe/erpnext/commit/e5098c521ba5eb0371a902b671b0f3e0f5213d86)) * default taxable value for item not found in item list ([30315ab](https://github.com/frappe/erpnext/commit/30315aba37bb86eb2ecf2805c77b9ef2316d26ba)) * Delete linked asset movement record on cancellation of purchase receipt/invoice ([11bddc1](https://github.com/frappe/erpnext/commit/11bddc14bb3169fed080ea7451b6573f1b92a980)) * Delete orphaned asset movement item records ([46cd929](https://github.com/frappe/erpnext/commit/46cd929d00a0a71ef067ef66490d999921884110)) * delete PLE containing invoice in against ([08459ce](https://github.com/frappe/erpnext/commit/08459cef4ab4399ec6cce8590c0e4aae7a3d72c7)) * do not make MR against raw materials of available sub assemblies (backport [#40085](https://github.com/frappe/erpnext/issues/40085)) ([#40086](https://github.com/frappe/erpnext/issues/40086)) ([e461185](https://github.com/frappe/erpnext/commit/e4611853171bc1fdcd68a3de5f373e82cae4d108)) * incorrect item name in MR (backport [#40018](https://github.com/frappe/erpnext/issues/40018)) ([#40023](https://github.com/frappe/erpnext/issues/40023)) ([079ba76](https://github.com/frappe/erpnext/commit/079ba7670c83b8530b196ae948fb0c402c93f8a3)) * linter issue ([ea1a0b3](https://github.com/frappe/erpnext/commit/ea1a0b3a28cdb4cc2f6e41c748e9577a49470ac8)) * linting issue ([65a2adf](https://github.com/frappe/erpnext/commit/65a2adfc551546744ad97194b5d72fc0b8f42237)) * linting issue ([e289aef](https://github.com/frappe/erpnext/commit/e289aef1b4a6a0ab4827214422486f16efd7d4cd)) * negative stock error while making stock reconciliation (backport [#40016](https://github.com/frappe/erpnext/issues/40016)) ([#40025](https://github.com/frappe/erpnext/issues/40025)) ([865cba4](https://github.com/frappe/erpnext/commit/865cba406f7826501e33853052d15665d6b72448)) * on unreconciliation, update advance paid ([fe88a11](https://github.com/frappe/erpnext/commit/fe88a110b1c6c7eebc015f4ad90319fcdf1246b1)) * only check for delinked PLEs ([3d243a7](https://github.com/frappe/erpnext/commit/3d243a7fa5918572eff91c6279c459c8b4c725d6)) * only consider contributed qty towards achieved targets ([0484857](https://github.com/frappe/erpnext/commit/0484857402b987212084a083f15cb759103dca82)) * parent warehouse checks in the production plan for sub-assemblies (backport [#40150](https://github.com/frappe/erpnext/issues/40150)) ([#40156](https://github.com/frappe/erpnext/issues/40156)) ([9a85ab4](https://github.com/frappe/erpnext/commit/9a85ab45e7233aa7a66884f04044ffb404d4e0f1)) * remove cancelled payment entry from Payment Period Based On Invoice Date ([2fc490a](https://github.com/frappe/erpnext/commit/2fc490a5d77a3c25d1e17124bdd626442257da4d)) * remove cancelled payment entry from PPBOID report ([a1c0c23](https://github.com/frappe/erpnext/commit/a1c0c2359f5a3b78006c77f2b8e3eac9c488fa21)) * remove config for default bank account in test ([ad60677](https://github.com/frappe/erpnext/commit/ad6067795f87140c3252c9053d01e22f735dce49)) * sales funnel text color in light/dark theme ([#40132](https://github.com/frappe/erpnext/issues/40132)) ([193cd0d](https://github.com/frappe/erpnext/commit/193cd0db96d45c9bdd377a29e7ae530ed18ec0aa)) * skip max discount validation for rate adjustment ([8c7d0d4](https://github.com/frappe/erpnext/commit/8c7d0d4b85daa7749e5dee1dbe1fc0fcc6f4c158)) * skip SO & DN validation for debit note ([882cf98](https://github.com/frappe/erpnext/commit/882cf98288103ad6ec731a4cfc58357471337287)) * test for plaid bank account validation ([22db6f6](https://github.com/frappe/erpnext/commit/22db6f6b72ae80126b31c84eaa48b7e80e6e68a1)) * timesheet per billed state edge case (backport [#40010](https://github.com/frappe/erpnext/issues/40010)) ([#40028](https://github.com/frappe/erpnext/issues/40028)) ([2a2f314](https://github.com/frappe/erpnext/commit/2a2f314821d38ede4c39ef750ed34503748d623a)) * translatable columns in Sales Pipeline Analytics report ([3c170b9](https://github.com/frappe/erpnext/commit/3c170b980575f76a3caf3624f0cbee8845a0044f)) * unique gl account for plaid bank accounts ([8638d14](https://github.com/frappe/erpnext/commit/8638d14babaf4c846a7f6222c7018fc8f59545b2)) * use correct variable name for hotfix branches ([812eebf](https://github.com/frappe/erpnext/commit/812eebf1ab7c71ca8daea273684dec5d0f4a539b)) * Webpages not working without login ([d6fad08](https://github.com/frappe/erpnext/commit/d6fad08d20c6d29e799a9dc43c75db4c0c6926fa)) ### Features * show contributed qty in transaction summary ([89d1942](https://github.com/frappe/erpnext/commit/89d19422d1f0236c10ae5165fc682c431c3d076c)) * update billed amount in PO and PR ([019d8f9](https://github.com/frappe/erpnext/commit/019d8f92fed10d479870ecea94b6abc2f7c508dd)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 96f8ec27ec1..17db2feece6 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.63.3" +__version__ = "14.64.0" def get_default_company(user=None): From b424a184b91d3c69222496116524b85fc69aff34 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 6 Mar 2024 03:31:16 +0000 Subject: [PATCH 02/30] chore(release): Bumped to Version 14.65.0 # [14.65.0](https://github.com/frappe/erpnext/compare/v14.64.0...v14.65.0) (2024-03-06) ### Bug Fixes * account validation error on bank account after editing existing bank account ([8b3c809](https://github.com/frappe/erpnext/commit/8b3c809cb68ed9badb4d9fa4defc083b38bd4184)) * allow gain/loss for Journals against Journals ([52e1c2f](https://github.com/frappe/erpnext/commit/52e1c2f48b6750767fe1e047ff31499b727dcef9)) * do not allow to cancel incomplete reposting (backport [#40224](https://github.com/frappe/erpnext/issues/40224)) ([#40229](https://github.com/frappe/erpnext/issues/40229)) ([091d6f3](https://github.com/frappe/erpnext/commit/091d6f330a8ecc48e1797955dd36a70587ddb698)) * don't override reference exchange rate ([e25ec41](https://github.com/frappe/erpnext/commit/e25ec4156e894c855d6b7bef8b9b5868d29420cc)) * handle partial invoice against provisional entry ([5f23614](https://github.com/frappe/erpnext/commit/5f23614960aa0f41b11d8b5f651d85cbfbf2753c)) * incorrect exchange rate if JE has multi parties ([1b5a237](https://github.com/frappe/erpnext/commit/1b5a23709a751f925d78c476bd5e51b743135d3f)) * incorrect TCS on customer and suppliers with same name ([af56846](https://github.com/frappe/erpnext/commit/af568464dbb05d5dc3922daffbf8b57a956f85c6)) * make use of 'flt' to prevent really low precision exc gain/loss ([c1a0ac6](https://github.com/frappe/erpnext/commit/c1a0ac655ea5fd3b9d8d00f36c5ea15ca5af3038)) * make warning for previously existing SO an alert ([c8b817c](https://github.com/frappe/erpnext/commit/c8b817c87a9e510a865c48ad9e2890c892246e8e)) * over billing qty along with rate ([14d9d29](https://github.com/frappe/erpnext/commit/14d9d29913e78a585230763b3f25a2e903c263a7)) * **Project:** filter department by company ([646b55e](https://github.com/frappe/erpnext/commit/646b55eeea46f6d9b2597e2beb3a1cdad461df8a)) * provisional reverse entry amount ([e62c49d](https://github.com/frappe/erpnext/commit/e62c49d9a69f7549a2ca425b000cea648a802daf)) * rate change on changing of the qty (backport [#40241](https://github.com/frappe/erpnext/issues/40241)) ([#40242](https://github.com/frappe/erpnext/issues/40242)) ([b937c4b](https://github.com/frappe/erpnext/commit/b937c4be4f25d079a5340402f8702515005b698e)) * **setup:** avoid duplicate entry for Analytics role (backport [#40183](https://github.com/frappe/erpnext/issues/40183)) ([#40184](https://github.com/frappe/erpnext/issues/40184)) ([035c90c](https://github.com/frappe/erpnext/commit/035c90c3b84934711f82ee61242b737a7d1a1290)) ### Features * add company filter to child table field ([38baf8d](https://github.com/frappe/erpnext/commit/38baf8d4061969f08aecbedba4b456e6551b1678)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 17db2feece6..1ed6e0263cd 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.64.0" +__version__ = "14.65.0" def get_default_company(user=None): From fa5a19b548776002f286f9162f0f1c70e85b708b Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Tue, 12 Mar 2024 16:42:45 +0000 Subject: [PATCH 03/30] chore(release): Bumped to Version 14.65.1 ## [14.65.1](https://github.com/frappe/erpnext/compare/v14.65.0...v14.65.1) (2024-03-12) ### Bug Fixes * barcode field on line item not working (backport [#40381](https://github.com/frappe/erpnext/issues/40381)) ([#40383](https://github.com/frappe/erpnext/issues/40383)) ([80df609](https://github.com/frappe/erpnext/commit/80df6094e31edc72b079addc843e52d147048f46)) * conditionally apply `is_group` filter in accounting dimension query (backport [#40414](https://github.com/frappe/erpnext/issues/40414)) ([#40415](https://github.com/frappe/erpnext/issues/40415)) ([cd40038](https://github.com/frappe/erpnext/commit/cd40038b18379c259e6fe75024f39f38c8d11881)) * error message wording ([#40403](https://github.com/frappe/erpnext/issues/40403)) ([7402303](https://github.com/frappe/erpnext/commit/74023035af87384026c278db03a0bf2b4cf8e69c)) * Filter for projects in Sales Cycle ([8d63d19](https://github.com/frappe/erpnext/commit/8d63d19d451de4b9ff50d1c34e8d3cd911af94c3)) * get_user_default_as_list args order ([e0d1b4b](https://github.com/frappe/erpnext/commit/e0d1b4b15f0064bc7488848e21ea44991564f553)) * incorrect work order status (backport [#40407](https://github.com/frappe/erpnext/issues/40407)) ([#40410](https://github.com/frappe/erpnext/issues/40410)) ([c413b04](https://github.com/frappe/erpnext/commit/c413b04539364a8f4e236d51b7cf25163275abed)) * load ignored doctype and include Mode of Payment Account ([#40334](https://github.com/frappe/erpnext/issues/40334)) ([411157c](https://github.com/frappe/erpnext/commit/411157c258a94a1c162d081b3a4fb2bfb3afe12e)) * message for subscription when no current inv ([e9c2f6d](https://github.com/frappe/erpnext/commit/e9c2f6d6f1051d7c3b74a0d82fe7a12dbcac80a9)) * MR Default Supplier search query (backport [#40273](https://github.com/frappe/erpnext/issues/40273)) ([#40350](https://github.com/frappe/erpnext/issues/40350)) ([c6fe409](https://github.com/frappe/erpnext/commit/c6fe409b567ad5f53a9561b035658acb055d8845)) * qc created for raw materials during manufacture entry (backport [#40408](https://github.com/frappe/erpnext/issues/40408)) ([#40412](https://github.com/frappe/erpnext/issues/40412)) ([21b57d9](https://github.com/frappe/erpnext/commit/21b57d9aefa1694e94806f8a626d4c2b30422044)) * recursion issue while submitting work order (backport [#40400](https://github.com/frappe/erpnext/issues/40400)) ([#40401](https://github.com/frappe/erpnext/issues/40401)) ([06e3874](https://github.com/frappe/erpnext/commit/06e38749bc10bff280696caa1685ac3c39e2a663)) * Sender email in process statements of accounts ([ea605e7](https://github.com/frappe/erpnext/commit/ea605e76a33c4014ec25e791ee8c9504ec515683)) * **Shipment Parcel:** make length, width and height non-mandatory ([911a582](https://github.com/frappe/erpnext/commit/911a582941ec2a63aeb642b43d2af91c7e543b6a)) * subcontracting receipt -> alllow to change Batch / Serial Nos (v14) ([#40371](https://github.com/frappe/erpnext/issues/40371)) ([ffd04b3](https://github.com/frappe/erpnext/commit/ffd04b39602f4e5077942baf1a3c02c05e2dc058)) * UAE tax computation fix ([02cd8c4](https://github.com/frappe/erpnext/commit/02cd8c4b9898f053016b902d59fd47d08131958b)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 52cf3aaac25..b0abaca6c36 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.65.0" +__version__ = "14.65.1" def get_default_company(user=None): From 561f6a7af7d19096793503f28ef7e406a2bc4ff8 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Thu, 14 Mar 2024 06:01:38 +0000 Subject: [PATCH 04/30] chore(release): Bumped to Version 14.65.2 ## [14.65.2](https://github.com/frappe/erpnext/compare/v14.65.1...v14.65.2) (2024-03-14) ### Bug Fixes * added index for price_list column in Item Price ([d279e23](https://github.com/frappe/erpnext/commit/d279e23623f13f93c6f7c870fef0c2335e6d2b15)) * Book depreciation until the asset disposal date and removed unwanted commits ([5fcf8c5](https://github.com/frappe/erpnext/commit/5fcf8c588a2e365ce8670fa3e1d05e4dee359316)) * convert str to date ([34c3e75](https://github.com/frappe/erpnext/commit/34c3e75d5c9fe57a16ac573a3f8567488b06a794)) * flaky Accounts Receivable test case ([41bda58](https://github.com/frappe/erpnext/commit/41bda583e86be7686c1a68e90a50de9da8f2534d)) * incorrect gross profit on the quotation (backport [#40438](https://github.com/frappe/erpnext/issues/40438)) ([#40441](https://github.com/frappe/erpnext/issues/40441)) ([fe54590](https://github.com/frappe/erpnext/commit/fe54590af7953a5cd96875e2d738e4dc61b4af39)) * linter issues ([ac0dd50](https://github.com/frappe/erpnext/commit/ac0dd5083fd958edd03e779617c183eb7a8d8c4f)) * linter issues ([668a931](https://github.com/frappe/erpnext/commit/668a93128b12f0c1d0379779fa312841c5428675)) * linter issues ([acc0b2f](https://github.com/frappe/erpnext/commit/acc0b2faf82c2b352cc2caf14ef26e6e55f34230)) * minor fixes ([5cd9bf3](https://github.com/frappe/erpnext/commit/5cd9bf3bda1c63fc04b6b4db8ddfdb2f9c7b456e)) * Patch to remove cancelled asset capitalization from asset ([23e256a](https://github.com/frappe/erpnext/commit/23e256aedf65c8ad9fb39a507772798a374a209a)) * Reload document on cancel to avoid document modified error ([c7ed854](https://github.com/frappe/erpnext/commit/c7ed854850739d39442828019d6a813c5aa064fc)) * **test:** manually filter rows and assert ([5fe200b](https://github.com/frappe/erpnext/commit/5fe200bc4d2923b474008d682ecc126caa947be8)) ### Performance Improvements * Cache accounting dimension filter map ([e4bd173](https://github.com/frappe/erpnext/commit/e4bd1738752896e9a50231561c8ca5f3a2ee15c5)) * Cached accounting dimensions details ([8cd8b8f](https://github.com/frappe/erpnext/commit/8cd8b8f885419fac8297b171e90be7657357a0e3)) * Caching in checking allowance for qty and amount ([8d682fa](https://github.com/frappe/erpnext/commit/8d682fa8840ef69a1d8a78e4bb418668f251585b)) * Caching in gl entry ([b07769d](https://github.com/frappe/erpnext/commit/b07769d8d7890580a9c47598bd166347ca8c1aec)) * Get bin details only for stock items ([6ff9e6e](https://github.com/frappe/erpnext/commit/6ff9e6ee848e68c1d84bc17ad682b376214c5d59)) * Optimization for providional gl entries ([d7b738f](https://github.com/frappe/erpnext/commit/d7b738ff61e0ebab62ff2c15247f90b79401e9a4)) * Optimzed code for merging similar gl entries ([aa75a60](https://github.com/frappe/erpnext/commit/aa75a6014264853668acd15e996e8fd0af8e7ebe)) * Performance optimization for validating budget ([f204d81](https://github.com/frappe/erpnext/commit/f204d810bba5a6fdb3137b780489907c30b650fc)) * refactored handling provisional gl entries for non-stock items ([49c7436](https://github.com/frappe/erpnext/commit/49c74369a58c313f114a8a9d99bb3b316febe4cf)) * skip unnecessary validation while transaction cancellation ([05385e4](https://github.com/frappe/erpnext/commit/05385e4acb0f3af7e9cd19c752df8d7287f73401)) * validate expense against budget only if budget exists ([c15b2d5](https://github.com/frappe/erpnext/commit/c15b2d5490975a2eb69ee0819611bc46fcd0dd3e)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index b0abaca6c36..5d79e3b4dbe 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.65.1" +__version__ = "14.65.2" def get_default_company(user=None): From 0999d09700af8ab8135f2a449516e0604ad3fa41 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 13:04:16 +0530 Subject: [PATCH 05/30] fix: Data too long for column 'stock_queue' (backport #40450) (#40452) fix: Data too long for column 'stock_queue' (#40450) (cherry picked from commit 3340463b8e2a0ba36f5cc4e783f40759a259cbb6) Co-authored-by: rohitwaghchaure --- .../stock/doctype/stock_ledger_entry/stock_ledger_entry.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.json b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.json index b07c0876a25..0a666b44fbd 100644 --- a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.json +++ b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.json @@ -226,7 +226,7 @@ }, { "fieldname": "stock_queue", - "fieldtype": "Text", + "fieldtype": "Long Text", "label": "FIFO Stock Queue (qty, rate)", "oldfieldname": "fcfs_stack", "oldfieldtype": "Text", @@ -324,7 +324,7 @@ "in_create": 1, "index_web_pages_for_search": 1, "links": [], - "modified": "2023-10-23 18:07:42.063615", + "modified": "2024-03-13 09:56:13.021696", "modified_by": "Administrator", "module": "Stock", "name": "Stock Ledger Entry", From 314e9f5787ad774baf0fa669320605a72277fa7a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 13:04:41 +0530 Subject: [PATCH 06/30] fix: warehouse issue in pick list (backport #40453) (#40455) fix: warehouse issue in pick list (#40453) (cherry picked from commit 5a2eaf90923c245d5b366718164355e9d4a0e120) Co-authored-by: rohitwaghchaure --- erpnext/selling/doctype/sales_order/sales_order.py | 6 +++++- erpnext/stock/doctype/pick_list/pick_list.py | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 3821a237161..81f9cedbc62 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -1305,7 +1305,11 @@ def create_pick_list(source_name, target_doc=None): "Sales Order", source_name, { - "Sales Order": {"doctype": "Pick List", "validation": {"docstatus": ["=", 1]}}, + "Sales Order": { + "doctype": "Pick List", + "field_map": {"set_warehouse": "parent_warehouse"}, + "validation": {"docstatus": ["=", 1]}, + }, "Sales Order Item": { "doctype": "Pick List Item", "field_map": {"parent": "sales_order", "name": "sales_order_item"}, diff --git a/erpnext/stock/doctype/pick_list/pick_list.py b/erpnext/stock/doctype/pick_list/pick_list.py index 86462476a5d..fb202a31f58 100644 --- a/erpnext/stock/doctype/pick_list/pick_list.py +++ b/erpnext/stock/doctype/pick_list/pick_list.py @@ -188,9 +188,9 @@ class PickList(Document): picked_items_details = self.get_picked_items_details(items) self.item_location_map = frappe._dict() - from_warehouses = None + from_warehouses = [self.parent_warehouse] if self.parent_warehouse else [] if self.parent_warehouse: - from_warehouses = get_descendants_of("Warehouse", self.parent_warehouse) + from_warehouses.extend(get_descendants_of("Warehouse", self.parent_warehouse)) # Create replica before resetting, to handle empty table on update after submit. locations_replica = self.get("locations") From 009cdb732f3fa4a15cad35935f5b100a35d66958 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Thu, 14 Mar 2024 07:36:22 +0000 Subject: [PATCH 07/30] chore(release): Bumped to Version 14.65.3 ## [14.65.3](https://github.com/frappe/erpnext/compare/v14.65.2...v14.65.3) (2024-03-14) ### Bug Fixes * Data too long for column 'stock_queue' (backport [#40450](https://github.com/frappe/erpnext/issues/40450)) ([#40452](https://github.com/frappe/erpnext/issues/40452)) ([0999d09](https://github.com/frappe/erpnext/commit/0999d09700af8ab8135f2a449516e0604ad3fa41)) * warehouse issue in pick list (backport [#40453](https://github.com/frappe/erpnext/issues/40453)) ([#40455](https://github.com/frappe/erpnext/issues/40455)) ([314e9f5](https://github.com/frappe/erpnext/commit/314e9f5787ad774baf0fa669320605a72277fa7a)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 5d79e3b4dbe..d8d9b10d319 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.65.2" +__version__ = "14.65.3" def get_default_company(user=None): From b6575176f72b7e0ca89527a20684827c42552cbc Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 20 Mar 2024 05:23:36 +0000 Subject: [PATCH 08/30] chore(release): Bumped to Version 14.65.4 ## [14.65.4](https://github.com/frappe/erpnext/compare/v14.65.3...v14.65.4) (2024-03-20) ### Bug Fixes * added index for voucher_detail_no in gl entry ([a1c8b93](https://github.com/frappe/erpnext/commit/a1c8b93e99173530aae14ae8bcfa492186affd49)) * currency symbol for Landed Cost Voucher Amount (backport [#40550](https://github.com/frappe/erpnext/issues/40550)) ([#40553](https://github.com/frappe/erpnext/issues/40553)) ([7851311](https://github.com/frappe/erpnext/commit/785131121d5fb9b016ff98c37327808c43ff2457)) * Data too long for column 'stock_queue' ([#40450](https://github.com/frappe/erpnext/issues/40450)) ([3340463](https://github.com/frappe/erpnext/commit/3340463b8e2a0ba36f5cc4e783f40759a259cbb6)) * flaky ecommerce test case ([#40534](https://github.com/frappe/erpnext/issues/40534)) ([b197c19](https://github.com/frappe/erpnext/commit/b197c1926fb618a744001e5902fcfd425eb90f48)) * get unique provisional accounts ([39d958c](https://github.com/frappe/erpnext/commit/39d958c507091ccbb76e80331d1abd198f0b538c)) * index error on Exchange Rate Revaluation creation ([8813b6b](https://github.com/frappe/erpnext/commit/8813b6b2fd7334cf7125a7ab526b4896a29b26be)) * invalid exchange loss booking on invoice againts base accounts ([a27f386](https://github.com/frappe/erpnext/commit/a27f386665612da003420e3a9509b996e3b791f7)) * missing range for ageing summary ([9f0ad7a](https://github.com/frappe/erpnext/commit/9f0ad7a4ea415a8b2f94631338810d2cc00f94d0)) * provisional entry for non-stock item ([0aef7f9](https://github.com/frappe/erpnext/commit/0aef7f9671477d9fa86b9312472882954dd6571b)) * **Supplier Quotation Comparison:** group by options ([cfed706](https://github.com/frappe/erpnext/commit/cfed706c150f3bf803faeed0605ff1a0ebd078ad)) * Update Existing Price List Rate not working (backport [#40333](https://github.com/frappe/erpnext/issues/40333)) ([#40526](https://github.com/frappe/erpnext/issues/40526)) ([64f1844](https://github.com/frappe/erpnext/commit/64f1844bc89b114856f3dceb6b3ba9099cd9c18b)) * warehouse issue in pick list ([#40453](https://github.com/frappe/erpnext/issues/40453)) ([5a2eaf9](https://github.com/frappe/erpnext/commit/5a2eaf90923c245d5b366718164355e9d4a0e120)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index d8d9b10d319..1f8b719b760 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.65.3" +__version__ = "14.65.4" def get_default_company(user=None): From 7df09d18e126ed131f9012c9af50b5e37403fc96 Mon Sep 17 00:00:00 2001 From: Gursheen Anand Date: Wed, 20 Mar 2024 16:09:14 +0530 Subject: [PATCH 09/30] fix: use Text Editor for rendering tax breakup table (cherry picked from commit 1c639838736dee633c435ec728e4b7319cbd9748) # Conflicts: # erpnext/accounts/doctype/pos_invoice/pos_invoice.py # erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py # erpnext/accounts/doctype/sales_invoice/sales_invoice.py # erpnext/buying/doctype/purchase_order/purchase_order.json # erpnext/buying/doctype/purchase_order/purchase_order.py # erpnext/buying/doctype/supplier_quotation/supplier_quotation.json # erpnext/buying/doctype/supplier_quotation/supplier_quotation.py # erpnext/selling/doctype/quotation/quotation.json # erpnext/selling/doctype/quotation/quotation.py # erpnext/selling/doctype/sales_order/sales_order.py # erpnext/stock/doctype/delivery_note/delivery_note.json # erpnext/stock/doctype/delivery_note/delivery_note.py # erpnext/stock/doctype/purchase_receipt/purchase_receipt.py --- .../doctype/pos_invoice/pos_invoice.json | 4 +- .../doctype/pos_invoice/pos_invoice.py | 166 ++++++++++++++++ .../purchase_invoice/purchase_invoice.json | 4 +- .../purchase_invoice/purchase_invoice.py | 175 ++++++++++++++++ .../doctype/sales_invoice/sales_invoice.json | 6 +- .../doctype/sales_invoice/sales_invoice.py | 188 ++++++++++++++++++ .../purchase_order/purchase_order.json | 6 +- .../doctype/purchase_order/purchase_order.py | 135 +++++++++++++ .../supplier_quotation.json | 6 +- .../supplier_quotation/supplier_quotation.py | 92 +++++++++ .../selling/doctype/quotation/quotation.json | 6 +- .../selling/doctype/quotation/quotation.py | 106 ++++++++++ .../doctype/sales_order/sales_order.json | 4 +- .../doctype/sales_order/sales_order.py | 138 +++++++++++++ .../doctype/delivery_note/delivery_note.json | 6 +- .../doctype/delivery_note/delivery_note.py | 125 ++++++++++++ .../purchase_receipt/purchase_receipt.json | 4 +- .../purchase_receipt/purchase_receipt.py | 115 +++++++++++ 18 files changed, 1271 insertions(+), 15 deletions(-) diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.json b/erpnext/accounts/doctype/pos_invoice/pos_invoice.json index de333cb9e8d..854523f1009 100644 --- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.json +++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.json @@ -774,7 +774,7 @@ }, { "fieldname": "other_charges_calculation", - "fieldtype": "Long Text", + "fieldtype": "Text Editor", "label": "Taxes and Charges Calculation", "no_copy": 1, "oldfieldtype": "HTML", @@ -1562,7 +1562,7 @@ "icon": "fa fa-file-text", "is_submittable": 1, "links": [], - "modified": "2023-11-20 12:27:12.848149", + "modified": "2024-03-20 16:00:34.268756", "modified_by": "Administrator", "module": "Accounts", "name": "POS Invoice", diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py index 383b9dab24a..18eee1d9562 100644 --- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py +++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py @@ -26,6 +26,172 @@ from erpnext.stock.doctype.serial_no.serial_no import ( class POSInvoice(SalesInvoice): +<<<<<<< HEAD +======= + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + from erpnext.accounts.doctype.payment_schedule.payment_schedule import PaymentSchedule + from erpnext.accounts.doctype.pos_invoice_item.pos_invoice_item import POSInvoiceItem + from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail + from erpnext.accounts.doctype.sales_invoice_advance.sales_invoice_advance import ( + SalesInvoiceAdvance, + ) + from erpnext.accounts.doctype.sales_invoice_payment.sales_invoice_payment import ( + SalesInvoicePayment, + ) + from erpnext.accounts.doctype.sales_invoice_timesheet.sales_invoice_timesheet import ( + SalesInvoiceTimesheet, + ) + from erpnext.accounts.doctype.sales_taxes_and_charges.sales_taxes_and_charges import ( + SalesTaxesandCharges, + ) + from erpnext.selling.doctype.sales_team.sales_team import SalesTeam + from erpnext.stock.doctype.packed_item.packed_item import PackedItem + + account_for_change_amount: DF.Link | None + additional_discount_percentage: DF.Float + address_display: DF.SmallText | None + advances: DF.Table[SalesInvoiceAdvance] + against_income_account: DF.SmallText | None + allocate_advances_automatically: DF.Check + amended_from: DF.Link | None + amount_eligible_for_commission: DF.Currency + apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] + auto_repeat: DF.Link | None + base_change_amount: DF.Currency + base_discount_amount: DF.Currency + base_grand_total: DF.Currency + base_in_words: DF.Data | None + base_net_total: DF.Currency + base_paid_amount: DF.Currency + base_rounded_total: DF.Currency + base_rounding_adjustment: DF.Currency + base_total: DF.Currency + base_total_taxes_and_charges: DF.Currency + base_write_off_amount: DF.Currency + campaign: DF.Link | None + cash_bank_account: DF.Link | None + change_amount: DF.Currency + commission_rate: DF.Float + company: DF.Link + company_address: DF.Link | None + company_address_display: DF.SmallText | None + consolidated_invoice: DF.Link | None + contact_display: DF.SmallText | None + contact_email: DF.Data | None + contact_mobile: DF.Data | None + contact_person: DF.Link | None + conversion_rate: DF.Float + cost_center: DF.Link | None + coupon_code: DF.Link | None + currency: DF.Link + customer: DF.Link | None + customer_address: DF.Link | None + customer_group: DF.Link | None + customer_name: DF.Data | None + debit_to: DF.Link + discount_amount: DF.Currency + due_date: DF.Date | None + from_date: DF.Date | None + grand_total: DF.Currency + group_same_items: DF.Check + ignore_pricing_rule: DF.Check + in_words: DF.Data | None + inter_company_invoice_reference: DF.Link | None + is_discounted: DF.Check + is_opening: DF.Literal["No", "Yes"] + is_pos: DF.Check + is_return: DF.Check + items: DF.Table[POSInvoiceItem] + language: DF.Data | None + letter_head: DF.Link | None + loyalty_amount: DF.Currency + loyalty_points: DF.Int + loyalty_program: DF.Link | None + loyalty_redemption_account: DF.Link | None + loyalty_redemption_cost_center: DF.Link | None + naming_series: DF.Literal["ACC-PSINV-.YYYY.-"] + net_total: DF.Currency + other_charges_calculation: DF.TextEditor | None + outstanding_amount: DF.Currency + packed_items: DF.Table[PackedItem] + paid_amount: DF.Currency + party_account_currency: DF.Link | None + payment_schedule: DF.Table[PaymentSchedule] + payment_terms_template: DF.Link | None + payments: DF.Table[SalesInvoicePayment] + plc_conversion_rate: DF.Float + po_date: DF.Date | None + po_no: DF.Data | None + pos_profile: DF.Link | None + posting_date: DF.Date + posting_time: DF.Time | None + price_list_currency: DF.Link + pricing_rules: DF.Table[PricingRuleDetail] + project: DF.Link | None + redeem_loyalty_points: DF.Check + remarks: DF.SmallText | None + return_against: DF.Link | None + rounded_total: DF.Currency + rounding_adjustment: DF.Currency + sales_partner: DF.Link | None + sales_team: DF.Table[SalesTeam] + scan_barcode: DF.Data | None + select_print_heading: DF.Link | None + selling_price_list: DF.Link + set_posting_time: DF.Check + set_warehouse: DF.Link | None + shipping_address: DF.SmallText | None + shipping_address_name: DF.Link | None + shipping_rule: DF.Link | None + source: DF.Link | None + status: DF.Literal[ + "", + "Draft", + "Return", + "Credit Note Issued", + "Consolidated", + "Submitted", + "Paid", + "Unpaid", + "Unpaid and Discounted", + "Overdue and Discounted", + "Overdue", + "Cancelled", + ] + tax_category: DF.Link | None + tax_id: DF.Data | None + taxes: DF.Table[SalesTaxesandCharges] + taxes_and_charges: DF.Link | None + tc_name: DF.Link | None + terms: DF.TextEditor | None + territory: DF.Link | None + timesheets: DF.Table[SalesInvoiceTimesheet] + title: DF.Data | None + to_date: DF.Date | None + total: DF.Currency + total_advance: DF.Currency + total_billing_amount: DF.Currency + total_commission: DF.Currency + total_net_weight: DF.Float + total_qty: DF.Float + total_taxes_and_charges: DF.Currency + update_billed_amount_in_delivery_note: DF.Check + update_billed_amount_in_sales_order: DF.Check + update_stock: DF.Check + write_off_account: DF.Link | None + write_off_amount: DF.Currency + write_off_cost_center: DF.Link | None + write_off_outstanding_amount_automatically: DF.Check + # end: auto-generated types + +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(POSInvoice, self).__init__(*args, **kwargs) diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json index 88dd0113192..6b0ec8e8c85 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.json @@ -756,7 +756,7 @@ }, { "fieldname": "other_charges_calculation", - "fieldtype": "Long Text", + "fieldtype": "Text Editor", "label": "Taxes and Charges Calculation", "no_copy": 1, "oldfieldtype": "HTML", @@ -1619,7 +1619,7 @@ "idx": 204, "is_submittable": 1, "links": [], - "modified": "2024-03-11 14:46:30.298184", + "modified": "2024-03-20 15:57:00.736868", "modified_by": "Administrator", "module": "Accounts", "name": "Purchase Invoice", diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py index f54787de717..beff6d95ca2 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -54,6 +54,181 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class PurchaseInvoice(BuyingController): +<<<<<<< HEAD +======= + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + from erpnext.accounts.doctype.advance_tax.advance_tax import AdvanceTax + from erpnext.accounts.doctype.payment_schedule.payment_schedule import PaymentSchedule + from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail + from erpnext.accounts.doctype.purchase_invoice_advance.purchase_invoice_advance import ( + PurchaseInvoiceAdvance, + ) + from erpnext.accounts.doctype.purchase_invoice_item.purchase_invoice_item import ( + PurchaseInvoiceItem, + ) + from erpnext.accounts.doctype.purchase_taxes_and_charges.purchase_taxes_and_charges import ( + PurchaseTaxesandCharges, + ) + from erpnext.accounts.doctype.tax_withheld_vouchers.tax_withheld_vouchers import ( + TaxWithheldVouchers, + ) + from erpnext.buying.doctype.purchase_receipt_item_supplied.purchase_receipt_item_supplied import ( + PurchaseReceiptItemSupplied, + ) + + additional_discount_percentage: DF.Float + address_display: DF.SmallText | None + advance_tax: DF.Table[AdvanceTax] + advances: DF.Table[PurchaseInvoiceAdvance] + against_expense_account: DF.SmallText | None + allocate_advances_automatically: DF.Check + amended_from: DF.Link | None + apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] + apply_tds: DF.Check + auto_repeat: DF.Link | None + base_discount_amount: DF.Currency + base_grand_total: DF.Currency + base_in_words: DF.Data | None + base_net_total: DF.Currency + base_paid_amount: DF.Currency + base_rounded_total: DF.Currency + base_rounding_adjustment: DF.Currency + base_tax_withholding_net_total: DF.Currency + base_taxes_and_charges_added: DF.Currency + base_taxes_and_charges_deducted: DF.Currency + base_total: DF.Currency + base_total_taxes_and_charges: DF.Currency + base_write_off_amount: DF.Currency + bill_date: DF.Date | None + bill_no: DF.Data | None + billing_address: DF.Link | None + billing_address_display: DF.SmallText | None + buying_price_list: DF.Link | None + cash_bank_account: DF.Link | None + clearance_date: DF.Date | None + company: DF.Link | None + contact_display: DF.SmallText | None + contact_email: DF.SmallText | None + contact_mobile: DF.SmallText | None + contact_person: DF.Link | None + conversion_rate: DF.Float + cost_center: DF.Link | None + credit_to: DF.Link + currency: DF.Link | None + disable_rounded_total: DF.Check + discount_amount: DF.Currency + due_date: DF.Date | None + from_date: DF.Date | None + grand_total: DF.Currency + group_same_items: DF.Check + hold_comment: DF.SmallText | None + ignore_default_payment_terms_template: DF.Check + ignore_pricing_rule: DF.Check + in_words: DF.Data | None + incoterm: DF.Link | None + inter_company_invoice_reference: DF.Link | None + is_internal_supplier: DF.Check + is_old_subcontracting_flow: DF.Check + is_opening: DF.Literal["No", "Yes"] + is_paid: DF.Check + is_return: DF.Check + is_subcontracted: DF.Check + items: DF.Table[PurchaseInvoiceItem] + language: DF.Data | None + letter_head: DF.Link | None + mode_of_payment: DF.Link | None + named_place: DF.Data | None + naming_series: DF.Literal["ACC-PINV-.YYYY.-", "ACC-PINV-RET-.YYYY.-"] + net_total: DF.Currency + on_hold: DF.Check + only_include_allocated_payments: DF.Check + other_charges_calculation: DF.TextEditor | None + outstanding_amount: DF.Currency + paid_amount: DF.Currency + party_account_currency: DF.Link | None + payment_schedule: DF.Table[PaymentSchedule] + payment_terms_template: DF.Link | None + per_received: DF.Percent + plc_conversion_rate: DF.Float + posting_date: DF.Date + posting_time: DF.Time | None + price_list_currency: DF.Link | None + pricing_rules: DF.Table[PricingRuleDetail] + project: DF.Link | None + rejected_warehouse: DF.Link | None + release_date: DF.Date | None + remarks: DF.SmallText | None + repost_required: DF.Check + represents_company: DF.Link | None + return_against: DF.Link | None + rounded_total: DF.Currency + rounding_adjustment: DF.Currency + scan_barcode: DF.Data | None + select_print_heading: DF.Link | None + set_from_warehouse: DF.Link | None + set_posting_time: DF.Check + set_warehouse: DF.Link | None + shipping_address: DF.Link | None + shipping_address_display: DF.SmallText | None + shipping_rule: DF.Link | None + status: DF.Literal[ + "", + "Draft", + "Return", + "Debit Note Issued", + "Submitted", + "Paid", + "Partly Paid", + "Unpaid", + "Overdue", + "Cancelled", + "Internal Transfer", + ] + subscription: DF.Link | None + supplied_items: DF.Table[PurchaseReceiptItemSupplied] + supplier: DF.Link + supplier_address: DF.Link | None + supplier_group: DF.Link | None + supplier_name: DF.Data | None + supplier_warehouse: DF.Link | None + tax_category: DF.Link | None + tax_id: DF.ReadOnly | None + tax_withheld_vouchers: DF.Table[TaxWithheldVouchers] + tax_withholding_category: DF.Link | None + tax_withholding_net_total: DF.Currency + taxes: DF.Table[PurchaseTaxesandCharges] + taxes_and_charges: DF.Link | None + taxes_and_charges_added: DF.Currency + taxes_and_charges_deducted: DF.Currency + tc_name: DF.Link | None + terms: DF.TextEditor | None + title: DF.Data | None + to_date: DF.Date | None + total: DF.Currency + total_advance: DF.Currency + total_net_weight: DF.Float + total_qty: DF.Float + total_taxes_and_charges: DF.Currency + unrealized_profit_loss_account: DF.Link | None + update_billed_amount_in_purchase_order: DF.Check + update_billed_amount_in_purchase_receipt: DF.Check + update_outstanding_for_self: DF.Check + update_stock: DF.Check + use_company_roundoff_cost_center: DF.Check + use_transaction_date_exchange_rate: DF.Check + write_off_account: DF.Link | None + write_off_amount: DF.Currency + write_off_cost_center: DF.Link | None + # end: auto-generated types + +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(PurchaseInvoice, self).__init__(*args, **kwargs) self.status_updater = [ diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json index 865362fbb48..ddb82d95f9d 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json @@ -943,7 +943,7 @@ }, { "fieldname": "other_charges_calculation", - "fieldtype": "Long Text", + "fieldtype": "Text Editor", "hide_days": 1, "hide_seconds": 1, "label": "Taxes and Charges Calculation", @@ -2183,7 +2183,7 @@ "link_fieldname": "consolidated_invoice" } ], - "modified": "2024-03-15 16:44:17.778370", + "modified": "2024-03-20 16:02:52.237732", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Invoice", @@ -2238,4 +2238,4 @@ "title_field": "title", "track_changes": 1, "track_seen": 1 -} +} \ No newline at end of file diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index 2a86d0daf45..02f5259f4aa 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -49,6 +49,194 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class SalesInvoice(SellingController): +<<<<<<< HEAD +======= + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + from erpnext.accounts.doctype.payment_schedule.payment_schedule import PaymentSchedule + from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail + from erpnext.accounts.doctype.sales_invoice_advance.sales_invoice_advance import ( + SalesInvoiceAdvance, + ) + from erpnext.accounts.doctype.sales_invoice_item.sales_invoice_item import SalesInvoiceItem + from erpnext.accounts.doctype.sales_invoice_payment.sales_invoice_payment import ( + SalesInvoicePayment, + ) + from erpnext.accounts.doctype.sales_invoice_timesheet.sales_invoice_timesheet import ( + SalesInvoiceTimesheet, + ) + from erpnext.accounts.doctype.sales_taxes_and_charges.sales_taxes_and_charges import ( + SalesTaxesandCharges, + ) + from erpnext.selling.doctype.sales_team.sales_team import SalesTeam + from erpnext.stock.doctype.packed_item.packed_item import PackedItem + + account_for_change_amount: DF.Link | None + additional_discount_account: DF.Link | None + additional_discount_percentage: DF.Float + address_display: DF.SmallText | None + advances: DF.Table[SalesInvoiceAdvance] + against_income_account: DF.SmallText | None + allocate_advances_automatically: DF.Check + amended_from: DF.Link | None + amount_eligible_for_commission: DF.Currency + apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] + auto_repeat: DF.Link | None + base_change_amount: DF.Currency + base_discount_amount: DF.Currency + base_grand_total: DF.Currency + base_in_words: DF.SmallText | None + base_net_total: DF.Currency + base_paid_amount: DF.Currency + base_rounded_total: DF.Currency + base_rounding_adjustment: DF.Currency + base_total: DF.Currency + base_total_taxes_and_charges: DF.Currency + base_write_off_amount: DF.Currency + campaign: DF.Link | None + cash_bank_account: DF.Link | None + change_amount: DF.Currency + commission_rate: DF.Float + company: DF.Link + company_address: DF.Link | None + company_address_display: DF.SmallText | None + company_tax_id: DF.Data | None + contact_display: DF.SmallText | None + contact_email: DF.Data | None + contact_mobile: DF.SmallText | None + contact_person: DF.Link | None + conversion_rate: DF.Float + cost_center: DF.Link | None + currency: DF.Link + customer: DF.Link | None + customer_address: DF.Link | None + customer_group: DF.Link | None + customer_name: DF.SmallText | None + debit_to: DF.Link + disable_rounded_total: DF.Check + discount_amount: DF.Currency + dispatch_address: DF.SmallText | None + dispatch_address_name: DF.Link | None + dont_create_loyalty_points: DF.Check + due_date: DF.Date | None + from_date: DF.Date | None + grand_total: DF.Currency + group_same_items: DF.Check + ignore_default_payment_terms_template: DF.Check + ignore_pricing_rule: DF.Check + in_words: DF.SmallText | None + incoterm: DF.Link | None + inter_company_invoice_reference: DF.Link | None + is_cash_or_non_trade_discount: DF.Check + is_consolidated: DF.Check + is_debit_note: DF.Check + is_discounted: DF.Check + is_internal_customer: DF.Check + is_opening: DF.Literal["No", "Yes"] + is_pos: DF.Check + is_return: DF.Check + items: DF.Table[SalesInvoiceItem] + language: DF.Data | None + letter_head: DF.Link | None + loyalty_amount: DF.Currency + loyalty_points: DF.Int + loyalty_program: DF.Link | None + loyalty_redemption_account: DF.Link | None + loyalty_redemption_cost_center: DF.Link | None + named_place: DF.Data | None + naming_series: DF.Literal["ACC-SINV-.YYYY.-", "ACC-SINV-RET-.YYYY.-"] + net_total: DF.Currency + only_include_allocated_payments: DF.Check + other_charges_calculation: DF.TextEditor | None + outstanding_amount: DF.Currency + packed_items: DF.Table[PackedItem] + paid_amount: DF.Currency + party_account_currency: DF.Link | None + payment_schedule: DF.Table[PaymentSchedule] + payment_terms_template: DF.Link | None + payments: DF.Table[SalesInvoicePayment] + plc_conversion_rate: DF.Float + po_date: DF.Date | None + po_no: DF.Data | None + pos_profile: DF.Link | None + posting_date: DF.Date + posting_time: DF.Time | None + price_list_currency: DF.Link + pricing_rules: DF.Table[PricingRuleDetail] + project: DF.Link | None + redeem_loyalty_points: DF.Check + remarks: DF.SmallText | None + repost_required: DF.Check + represents_company: DF.Link | None + return_against: DF.Link | None + rounded_total: DF.Currency + rounding_adjustment: DF.Currency + sales_partner: DF.Link | None + sales_team: DF.Table[SalesTeam] + scan_barcode: DF.Data | None + select_print_heading: DF.Link | None + selling_price_list: DF.Link + set_posting_time: DF.Check + set_target_warehouse: DF.Link | None + set_warehouse: DF.Link | None + shipping_address: DF.SmallText | None + shipping_address_name: DF.Link | None + shipping_rule: DF.Link | None + source: DF.Link | None + status: DF.Literal[ + "", + "Draft", + "Return", + "Credit Note Issued", + "Submitted", + "Paid", + "Partly Paid", + "Unpaid", + "Unpaid and Discounted", + "Partly Paid and Discounted", + "Overdue and Discounted", + "Overdue", + "Cancelled", + "Internal Transfer", + ] + subscription: DF.Link | None + tax_category: DF.Link | None + tax_id: DF.Data | None + taxes: DF.Table[SalesTaxesandCharges] + taxes_and_charges: DF.Link | None + tc_name: DF.Link | None + terms: DF.TextEditor | None + territory: DF.Link | None + timesheets: DF.Table[SalesInvoiceTimesheet] + title: DF.Data | None + to_date: DF.Date | None + total: DF.Currency + total_advance: DF.Currency + total_billing_amount: DF.Currency + total_billing_hours: DF.Float + total_commission: DF.Currency + total_net_weight: DF.Float + total_qty: DF.Float + total_taxes_and_charges: DF.Currency + unrealized_profit_loss_account: DF.Link | None + update_billed_amount_in_delivery_note: DF.Check + update_billed_amount_in_sales_order: DF.Check + update_outstanding_for_self: DF.Check + update_stock: DF.Check + use_company_roundoff_cost_center: DF.Check + write_off_account: DF.Link | None + write_off_amount: DF.Currency + write_off_cost_center: DF.Link | None + write_off_outstanding_amount_automatically: DF.Check + # end: auto-generated types + +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(SalesInvoice, self).__init__(*args, **kwargs) self.status_updater = [ diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.json b/erpnext/buying/doctype/purchase_order/purchase_order.json index 01ce8c33ff9..a2bb42bfe7d 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.json +++ b/erpnext/buying/doctype/purchase_order/purchase_order.json @@ -639,7 +639,7 @@ }, { "fieldname": "other_charges_calculation", - "fieldtype": "Long Text", + "fieldtype": "Text Editor", "label": "Taxes and Charges Calculation", "no_copy": 1, "oldfieldtype": "HTML", @@ -1273,7 +1273,11 @@ "idx": 105, "is_submittable": 1, "links": [], +<<<<<<< HEAD "modified": "2023-10-01 20:58:07.851037", +======= + "modified": "2024-03-20 16:03:31.611808", +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) "modified_by": "Administrator", "module": "Buying", "name": "Purchase Order", diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py index 9d4846056ea..cca058f806a 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/purchase_order.py @@ -33,6 +33,141 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class PurchaseOrder(BuyingController): +<<<<<<< HEAD +======= + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + from erpnext.accounts.doctype.payment_schedule.payment_schedule import PaymentSchedule + from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail + from erpnext.accounts.doctype.purchase_taxes_and_charges.purchase_taxes_and_charges import ( + PurchaseTaxesandCharges, + ) + from erpnext.buying.doctype.purchase_order_item.purchase_order_item import PurchaseOrderItem + from erpnext.buying.doctype.purchase_order_item_supplied.purchase_order_item_supplied import ( + PurchaseOrderItemSupplied, + ) + + additional_discount_percentage: DF.Float + address_display: DF.SmallText | None + advance_paid: DF.Currency + advance_payment_status: DF.Literal["Not Initiated", "Initiated", "Partially Paid", "Fully Paid"] + amended_from: DF.Link | None + apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] + apply_tds: DF.Check + auto_repeat: DF.Link | None + base_discount_amount: DF.Currency + base_grand_total: DF.Currency + base_in_words: DF.Data | None + base_net_total: DF.Currency + base_rounded_total: DF.Currency + base_rounding_adjustment: DF.Currency + base_tax_withholding_net_total: DF.Currency + base_taxes_and_charges_added: DF.Currency + base_taxes_and_charges_deducted: DF.Currency + base_total: DF.Currency + base_total_taxes_and_charges: DF.Currency + billing_address: DF.Link | None + billing_address_display: DF.SmallText | None + buying_price_list: DF.Link | None + company: DF.Link + contact_display: DF.SmallText | None + contact_email: DF.SmallText | None + contact_mobile: DF.SmallText | None + contact_person: DF.Link | None + conversion_rate: DF.Float + cost_center: DF.Link | None + currency: DF.Link + customer: DF.Link | None + customer_contact_display: DF.SmallText | None + customer_contact_email: DF.Code | None + customer_contact_mobile: DF.SmallText | None + customer_contact_person: DF.Link | None + customer_name: DF.Data | None + disable_rounded_total: DF.Check + discount_amount: DF.Currency + from_date: DF.Date | None + grand_total: DF.Currency + group_same_items: DF.Check + ignore_pricing_rule: DF.Check + in_words: DF.Data | None + incoterm: DF.Link | None + inter_company_order_reference: DF.Link | None + is_internal_supplier: DF.Check + is_old_subcontracting_flow: DF.Check + is_subcontracted: DF.Check + items: DF.Table[PurchaseOrderItem] + language: DF.Data | None + letter_head: DF.Link | None + named_place: DF.Data | None + naming_series: DF.Literal["PUR-ORD-.YYYY.-"] + net_total: DF.Currency + order_confirmation_date: DF.Date | None + order_confirmation_no: DF.Data | None + other_charges_calculation: DF.TextEditor | None + party_account_currency: DF.Link | None + payment_schedule: DF.Table[PaymentSchedule] + payment_terms_template: DF.Link | None + per_billed: DF.Percent + per_received: DF.Percent + plc_conversion_rate: DF.Float + price_list_currency: DF.Link | None + pricing_rules: DF.Table[PricingRuleDetail] + project: DF.Link | None + ref_sq: DF.Link | None + represents_company: DF.Link | None + rounded_total: DF.Currency + rounding_adjustment: DF.Currency + scan_barcode: DF.Data | None + schedule_date: DF.Date | None + select_print_heading: DF.Link | None + set_from_warehouse: DF.Link | None + set_reserve_warehouse: DF.Link | None + set_warehouse: DF.Link | None + shipping_address: DF.Link | None + shipping_address_display: DF.SmallText | None + shipping_rule: DF.Link | None + status: DF.Literal[ + "", + "Draft", + "On Hold", + "To Receive and Bill", + "To Bill", + "To Receive", + "Completed", + "Cancelled", + "Closed", + "Delivered", + ] + supplied_items: DF.Table[PurchaseOrderItemSupplied] + supplier: DF.Link + supplier_address: DF.Link | None + supplier_name: DF.Data | None + supplier_warehouse: DF.Link | None + tax_category: DF.Link | None + tax_withholding_category: DF.Link | None + tax_withholding_net_total: DF.Currency + taxes: DF.Table[PurchaseTaxesandCharges] + taxes_and_charges: DF.Link | None + taxes_and_charges_added: DF.Currency + taxes_and_charges_deducted: DF.Currency + tc_name: DF.Link | None + terms: DF.TextEditor | None + title: DF.Data + to_date: DF.Date | None + total: DF.Currency + total_net_weight: DF.Float + total_qty: DF.Float + total_taxes_and_charges: DF.Currency + transaction_date: DF.Date + # end: auto-generated types + +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(PurchaseOrder, self).__init__(*args, **kwargs) self.status_updater = [ diff --git a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json index aa89b81b5ed..7716a15ccba 100644 --- a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json +++ b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json @@ -461,7 +461,7 @@ }, { "fieldname": "other_charges_calculation", - "fieldtype": "Long Text", + "fieldtype": "Markdown Editor", "label": "Taxes and Charges Calculation", "no_copy": 1, "oldfieldtype": "HTML", @@ -927,7 +927,11 @@ "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], +<<<<<<< HEAD "modified": "2023-11-20 11:15:30.083077", +======= + "modified": "2024-03-20 16:03:59.069145", +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) "modified_by": "Administrator", "module": "Buying", "name": "Supplier Quotation", diff --git a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py index e27fbe8aaa2..70fea913591 100644 --- a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py +++ b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py @@ -14,6 +14,98 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class SupplierQuotation(BuyingController): +<<<<<<< HEAD +======= + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail + from erpnext.accounts.doctype.purchase_taxes_and_charges.purchase_taxes_and_charges import ( + PurchaseTaxesandCharges, + ) + from erpnext.buying.doctype.supplier_quotation_item.supplier_quotation_item import ( + SupplierQuotationItem, + ) + + additional_discount_percentage: DF.Float + address_display: DF.SmallText | None + amended_from: DF.Link | None + apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] + auto_repeat: DF.Link | None + base_discount_amount: DF.Currency + base_grand_total: DF.Currency + base_in_words: DF.Data | None + base_net_total: DF.Currency + base_rounded_total: DF.Currency + base_rounding_adjustment: DF.Currency + base_taxes_and_charges_added: DF.Currency + base_taxes_and_charges_deducted: DF.Currency + base_total: DF.Currency + base_total_taxes_and_charges: DF.Currency + billing_address: DF.Link | None + billing_address_display: DF.SmallText | None + buying_price_list: DF.Link | None + company: DF.Link + contact_display: DF.SmallText | None + contact_email: DF.Data | None + contact_mobile: DF.SmallText | None + contact_person: DF.Link | None + conversion_rate: DF.Float + cost_center: DF.Link | None + currency: DF.Link + disable_rounded_total: DF.Check + discount_amount: DF.Currency + grand_total: DF.Currency + group_same_items: DF.Check + ignore_pricing_rule: DF.Check + in_words: DF.Data | None + incoterm: DF.Link | None + is_subcontracted: DF.Check + items: DF.Table[SupplierQuotationItem] + language: DF.Data | None + letter_head: DF.Link | None + named_place: DF.Data | None + naming_series: DF.Literal["PUR-SQTN-.YYYY.-"] + net_total: DF.Currency + opportunity: DF.Link | None + other_charges_calculation: DF.MarkdownEditor | None + plc_conversion_rate: DF.Float + price_list_currency: DF.Link | None + pricing_rules: DF.Table[PricingRuleDetail] + project: DF.Link | None + quotation_number: DF.Data | None + rounded_total: DF.Currency + rounding_adjustment: DF.Currency + select_print_heading: DF.Link | None + shipping_address: DF.Link | None + shipping_address_display: DF.SmallText | None + shipping_rule: DF.Link | None + status: DF.Literal["", "Draft", "Submitted", "Stopped", "Cancelled", "Expired"] + supplier: DF.Link + supplier_address: DF.Link | None + supplier_name: DF.Data | None + tax_category: DF.Link | None + taxes: DF.Table[PurchaseTaxesandCharges] + taxes_and_charges: DF.Link | None + taxes_and_charges_added: DF.Currency + taxes_and_charges_deducted: DF.Currency + tc_name: DF.Link | None + terms: DF.TextEditor | None + title: DF.Data | None + total: DF.Currency + total_net_weight: DF.Float + total_qty: DF.Float + total_taxes_and_charges: DF.Currency + transaction_date: DF.Date + valid_till: DF.Date | None + # end: auto-generated types + +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def validate(self): super(SupplierQuotation, self).validate() diff --git a/erpnext/selling/doctype/quotation/quotation.json b/erpnext/selling/doctype/quotation/quotation.json index 2ffa6a5c120..f3c5439d987 100644 --- a/erpnext/selling/doctype/quotation/quotation.json +++ b/erpnext/selling/doctype/quotation/quotation.json @@ -556,7 +556,7 @@ }, { "fieldname": "other_charges_calculation", - "fieldtype": "Long Text", + "fieldtype": "Text Editor", "label": "Taxes and Charges Calculation", "no_copy": 1, "oldfieldtype": "HTML", @@ -1072,7 +1072,11 @@ "idx": 82, "is_submittable": 1, "links": [], +<<<<<<< HEAD "modified": "2023-04-14 16:50:44.550098", +======= + "modified": "2024-03-20 16:04:21.567847", +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) "modified_by": "Administrator", "module": "Selling", "name": "Quotation", diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py index de2cef90929..d09b1d30838 100644 --- a/erpnext/selling/doctype/quotation/quotation.py +++ b/erpnext/selling/doctype/quotation/quotation.py @@ -13,6 +13,112 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class Quotation(SellingController): +<<<<<<< HEAD +======= + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + from erpnext.accounts.doctype.payment_schedule.payment_schedule import PaymentSchedule + from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail + from erpnext.accounts.doctype.sales_taxes_and_charges.sales_taxes_and_charges import ( + SalesTaxesandCharges, + ) + from erpnext.crm.doctype.competitor_detail.competitor_detail import CompetitorDetail + from erpnext.selling.doctype.quotation_item.quotation_item import QuotationItem + from erpnext.setup.doctype.quotation_lost_reason_detail.quotation_lost_reason_detail import ( + QuotationLostReasonDetail, + ) + from erpnext.stock.doctype.packed_item.packed_item import PackedItem + + additional_discount_percentage: DF.Float + address_display: DF.SmallText | None + amended_from: DF.Link | None + apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] + auto_repeat: DF.Link | None + base_discount_amount: DF.Currency + base_grand_total: DF.Currency + base_in_words: DF.Data | None + base_net_total: DF.Currency + base_rounded_total: DF.Currency + base_rounding_adjustment: DF.Currency + base_total: DF.Currency + base_total_taxes_and_charges: DF.Currency + campaign: DF.Link | None + company: DF.Link + company_address: DF.Link | None + company_address_display: DF.SmallText | None + competitors: DF.TableMultiSelect[CompetitorDetail] + contact_display: DF.SmallText | None + contact_email: DF.Data | None + contact_mobile: DF.SmallText | None + contact_person: DF.Link | None + conversion_rate: DF.Float + coupon_code: DF.Link | None + currency: DF.Link + customer_address: DF.Link | None + customer_group: DF.Link | None + customer_name: DF.Data | None + discount_amount: DF.Currency + enq_det: DF.Text | None + grand_total: DF.Currency + group_same_items: DF.Check + ignore_pricing_rule: DF.Check + in_words: DF.Data | None + incoterm: DF.Link | None + items: DF.Table[QuotationItem] + language: DF.Data | None + letter_head: DF.Link | None + lost_reasons: DF.TableMultiSelect[QuotationLostReasonDetail] + named_place: DF.Data | None + naming_series: DF.Literal["SAL-QTN-.YYYY.-"] + net_total: DF.Currency + opportunity: DF.Link | None + order_lost_reason: DF.SmallText | None + order_type: DF.Literal["", "Sales", "Maintenance", "Shopping Cart"] + other_charges_calculation: DF.TextEditor | None + packed_items: DF.Table[PackedItem] + party_name: DF.DynamicLink | None + payment_schedule: DF.Table[PaymentSchedule] + payment_terms_template: DF.Link | None + plc_conversion_rate: DF.Float + price_list_currency: DF.Link + pricing_rules: DF.Table[PricingRuleDetail] + quotation_to: DF.Link + referral_sales_partner: DF.Link | None + rounded_total: DF.Currency + rounding_adjustment: DF.Currency + scan_barcode: DF.Data | None + select_print_heading: DF.Link | None + selling_price_list: DF.Link + shipping_address: DF.SmallText | None + shipping_address_name: DF.Link | None + shipping_rule: DF.Link | None + source: DF.Link | None + status: DF.Literal[ + "Draft", "Open", "Replied", "Partially Ordered", "Ordered", "Lost", "Cancelled", "Expired" + ] + supplier_quotation: DF.Link | None + tax_category: DF.Link | None + taxes: DF.Table[SalesTaxesandCharges] + taxes_and_charges: DF.Link | None + tc_name: DF.Link | None + terms: DF.TextEditor | None + territory: DF.Link | None + title: DF.Data | None + total: DF.Currency + total_net_weight: DF.Float + total_qty: DF.Float + total_taxes_and_charges: DF.Currency + transaction_date: DF.Date + valid_till: DF.Date | None + # end: auto-generated types + +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def set_indicator(self): if self.docstatus == 1: self.indicator_color = "blue" diff --git a/erpnext/selling/doctype/sales_order/sales_order.json b/erpnext/selling/doctype/sales_order/sales_order.json index 490bd7a9830..09b73878aa2 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.json +++ b/erpnext/selling/doctype/sales_order/sales_order.json @@ -774,7 +774,7 @@ }, { "fieldname": "other_charges_calculation", - "fieldtype": "Long Text", + "fieldtype": "Text Editor", "hide_days": 1, "hide_seconds": 1, "label": "Taxes and Charges Calculation", @@ -1631,7 +1631,7 @@ "idx": 105, "is_submittable": 1, "links": [], - "modified": "2023-10-18 12:41:54.813462", + "modified": "2024-03-20 16:04:43.627183", "modified_by": "Administrator", "module": "Selling", "name": "Sales Order", diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 81f9cedbc62..da196c7ac4e 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -41,6 +41,144 @@ class WarehouseRequired(frappe.ValidationError): class SalesOrder(SellingController): +<<<<<<< HEAD +======= + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + from erpnext.accounts.doctype.payment_schedule.payment_schedule import PaymentSchedule + from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail + from erpnext.accounts.doctype.sales_taxes_and_charges.sales_taxes_and_charges import ( + SalesTaxesandCharges, + ) + from erpnext.selling.doctype.sales_order_item.sales_order_item import SalesOrderItem + from erpnext.selling.doctype.sales_team.sales_team import SalesTeam + from erpnext.stock.doctype.packed_item.packed_item import PackedItem + + additional_discount_percentage: DF.Float + address_display: DF.SmallText | None + advance_paid: DF.Currency + advance_payment_status: DF.Literal["Not Requested", "Requested", "Partially Paid", "Fully Paid"] + amended_from: DF.Link | None + amount_eligible_for_commission: DF.Currency + apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] + auto_repeat: DF.Link | None + base_discount_amount: DF.Currency + base_grand_total: DF.Currency + base_in_words: DF.Data | None + base_net_total: DF.Currency + base_rounded_total: DF.Currency + base_rounding_adjustment: DF.Currency + base_total: DF.Currency + base_total_taxes_and_charges: DF.Currency + billing_status: DF.Literal["Not Billed", "Fully Billed", "Partly Billed", "Closed"] + campaign: DF.Link | None + commission_rate: DF.Float + company: DF.Link + company_address: DF.Link | None + company_address_display: DF.SmallText | None + contact_display: DF.SmallText | None + contact_email: DF.Data | None + contact_mobile: DF.SmallText | None + contact_person: DF.Link | None + contact_phone: DF.Data | None + conversion_rate: DF.Float + cost_center: DF.Link | None + coupon_code: DF.Link | None + currency: DF.Link + customer: DF.Link + customer_address: DF.Link | None + customer_group: DF.Link | None + customer_name: DF.Data | None + delivery_date: DF.Date | None + delivery_status: DF.Literal[ + "Not Delivered", "Fully Delivered", "Partly Delivered", "Closed", "Not Applicable" + ] + disable_rounded_total: DF.Check + discount_amount: DF.Currency + dispatch_address: DF.SmallText | None + dispatch_address_name: DF.Link | None + from_date: DF.Date | None + grand_total: DF.Currency + group_same_items: DF.Check + ignore_pricing_rule: DF.Check + in_words: DF.Data | None + incoterm: DF.Link | None + inter_company_order_reference: DF.Link | None + is_internal_customer: DF.Check + items: DF.Table[SalesOrderItem] + language: DF.Data | None + letter_head: DF.Link | None + loyalty_amount: DF.Currency + loyalty_points: DF.Int + named_place: DF.Data | None + naming_series: DF.Literal["SAL-ORD-.YYYY.-"] + net_total: DF.Currency + order_type: DF.Literal["", "Sales", "Maintenance", "Shopping Cart"] + other_charges_calculation: DF.TextEditor | None + packed_items: DF.Table[PackedItem] + party_account_currency: DF.Link | None + payment_schedule: DF.Table[PaymentSchedule] + payment_terms_template: DF.Link | None + per_billed: DF.Percent + per_delivered: DF.Percent + per_picked: DF.Percent + plc_conversion_rate: DF.Float + po_date: DF.Date | None + po_no: DF.Data | None + price_list_currency: DF.Link + pricing_rules: DF.Table[PricingRuleDetail] + project: DF.Link | None + represents_company: DF.Link | None + reserve_stock: DF.Check + rounded_total: DF.Currency + rounding_adjustment: DF.Currency + sales_partner: DF.Link | None + sales_team: DF.Table[SalesTeam] + scan_barcode: DF.Data | None + select_print_heading: DF.Link | None + selling_price_list: DF.Link + set_warehouse: DF.Link | None + shipping_address: DF.SmallText | None + shipping_address_name: DF.Link | None + shipping_rule: DF.Link | None + skip_delivery_note: DF.Check + source: DF.Link | None + status: DF.Literal[ + "", + "Draft", + "On Hold", + "To Pay", + "To Deliver and Bill", + "To Bill", + "To Deliver", + "Completed", + "Cancelled", + "Closed", + ] + tax_category: DF.Link | None + tax_id: DF.Data | None + taxes: DF.Table[SalesTaxesandCharges] + taxes_and_charges: DF.Link | None + tc_name: DF.Link | None + terms: DF.TextEditor | None + territory: DF.Link | None + title: DF.Data | None + to_date: DF.Date | None + total: DF.Currency + total_commission: DF.Currency + total_net_weight: DF.Float + total_qty: DF.Float + total_taxes_and_charges: DF.Currency + transaction_date: DF.Date + # end: auto-generated types + +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(SalesOrder, self).__init__(*args, **kwargs) diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.json b/erpnext/stock/doctype/delivery_note/delivery_note.json index 5731bda495e..ec22e550145 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.json +++ b/erpnext/stock/doctype/delivery_note/delivery_note.json @@ -680,7 +680,7 @@ }, { "fieldname": "other_charges_calculation", - "fieldtype": "Long Text", + "fieldtype": "Text Editor", "label": "Taxes and Charges Calculation", "no_copy": 1, "oldfieldtype": "HTML", @@ -1401,7 +1401,11 @@ "idx": 146, "is_submittable": 1, "links": [], +<<<<<<< HEAD "modified": "2023-12-18 17:19:39.368239", +======= + "modified": "2024-03-20 16:05:02.854990", +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) "modified_by": "Administrator", "module": "Stock", "name": "Delivery Note", diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py index a402bb5aed2..86e07bcd262 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/delivery_note.py @@ -19,6 +19,131 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class DeliveryNote(SellingController): +<<<<<<< HEAD +======= + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail + from erpnext.accounts.doctype.sales_taxes_and_charges.sales_taxes_and_charges import ( + SalesTaxesandCharges, + ) + from erpnext.selling.doctype.sales_team.sales_team import SalesTeam + from erpnext.stock.doctype.delivery_note_item.delivery_note_item import DeliveryNoteItem + from erpnext.stock.doctype.packed_item.packed_item import PackedItem + + additional_discount_percentage: DF.Float + address_display: DF.SmallText | None + amended_from: DF.Link | None + amount_eligible_for_commission: DF.Currency + apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] + auto_repeat: DF.Link | None + base_discount_amount: DF.Currency + base_grand_total: DF.Currency + base_in_words: DF.Data | None + base_net_total: DF.Currency + base_rounded_total: DF.Currency + base_rounding_adjustment: DF.Currency + base_total: DF.Currency + base_total_taxes_and_charges: DF.Currency + campaign: DF.Link | None + commission_rate: DF.Float + company: DF.Link + company_address: DF.Link | None + company_address_display: DF.SmallText | None + contact_display: DF.SmallText | None + contact_email: DF.Data | None + contact_mobile: DF.SmallText | None + contact_person: DF.Link | None + conversion_rate: DF.Float + cost_center: DF.Link | None + currency: DF.Link + customer: DF.Link + customer_address: DF.Link | None + customer_group: DF.Link | None + customer_name: DF.Data | None + disable_rounded_total: DF.Check + discount_amount: DF.Currency + dispatch_address: DF.SmallText | None + dispatch_address_name: DF.Link | None + driver: DF.Link | None + driver_name: DF.Data | None + excise_page: DF.Data | None + grand_total: DF.Currency + group_same_items: DF.Check + ignore_pricing_rule: DF.Check + in_words: DF.Data | None + incoterm: DF.Link | None + installation_status: DF.Literal[None] + instructions: DF.Text | None + inter_company_reference: DF.Link | None + is_internal_customer: DF.Check + is_return: DF.Check + issue_credit_note: DF.Check + items: DF.Table[DeliveryNoteItem] + language: DF.Data | None + letter_head: DF.Link | None + lr_date: DF.Date | None + lr_no: DF.Data | None + named_place: DF.Data | None + naming_series: DF.Literal["MAT-DN-.YYYY.-", "MAT-DN-RET-.YYYY.-"] + net_total: DF.Currency + other_charges_calculation: DF.TextEditor | None + packed_items: DF.Table[PackedItem] + per_billed: DF.Percent + per_installed: DF.Percent + per_returned: DF.Percent + pick_list: DF.Link | None + plc_conversion_rate: DF.Float + po_date: DF.Date | None + po_no: DF.SmallText | None + posting_date: DF.Date + posting_time: DF.Time + price_list_currency: DF.Link + pricing_rules: DF.Table[PricingRuleDetail] + print_without_amount: DF.Check + project: DF.Link | None + represents_company: DF.Link | None + return_against: DF.Link | None + rounded_total: DF.Currency + rounding_adjustment: DF.Currency + sales_partner: DF.Link | None + sales_team: DF.Table[SalesTeam] + scan_barcode: DF.Data | None + select_print_heading: DF.Link | None + selling_price_list: DF.Link + set_posting_time: DF.Check + set_target_warehouse: DF.Link | None + set_warehouse: DF.Link | None + shipping_address: DF.SmallText | None + shipping_address_name: DF.Link | None + shipping_rule: DF.Link | None + source: DF.Link | None + status: DF.Literal["", "Draft", "To Bill", "Completed", "Return Issued", "Cancelled", "Closed"] + tax_category: DF.Link | None + tax_id: DF.Data | None + taxes: DF.Table[SalesTaxesandCharges] + taxes_and_charges: DF.Link | None + tc_name: DF.Link | None + terms: DF.TextEditor | None + territory: DF.Link | None + title: DF.Data | None + total: DF.Currency + total_commission: DF.Currency + total_net_weight: DF.Float + total_qty: DF.Float + total_taxes_and_charges: DF.Currency + transporter: DF.Link | None + transporter_name: DF.Data | None + vehicle_no: DF.Data | None + # end: auto-generated types + +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(DeliveryNote, self).__init__(*args, **kwargs) self.status_updater = [ diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json index de1263d8f66..28c54dab9b2 100755 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.json @@ -649,7 +649,7 @@ }, { "fieldname": "other_charges_calculation", - "fieldtype": "Long Text", + "fieldtype": "Text Editor", "label": "Taxes and Charges Calculation", "no_copy": 1, "oldfieldtype": "HTML", @@ -1242,7 +1242,7 @@ "idx": 261, "is_submittable": 1, "links": [], - "modified": "2023-12-18 17:26:41.279663", + "modified": "2024-03-20 16:05:31.713453", "modified_by": "Administrator", "module": "Stock", "name": "Purchase Receipt", diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index 79e6ab84d95..e58fca99643 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -21,6 +21,121 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class PurchaseReceipt(BuyingController): +<<<<<<< HEAD +======= + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from frappe.types import DF + + from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail + from erpnext.accounts.doctype.purchase_taxes_and_charges.purchase_taxes_and_charges import ( + PurchaseTaxesandCharges, + ) + from erpnext.buying.doctype.purchase_receipt_item_supplied.purchase_receipt_item_supplied import ( + PurchaseReceiptItemSupplied, + ) + from erpnext.stock.doctype.purchase_receipt_item.purchase_receipt_item import PurchaseReceiptItem + + additional_discount_percentage: DF.Float + address_display: DF.SmallText | None + amended_from: DF.Link | None + apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] + apply_putaway_rule: DF.Check + auto_repeat: DF.Link | None + base_discount_amount: DF.Currency + base_grand_total: DF.Currency + base_in_words: DF.Data | None + base_net_total: DF.Currency + base_rounded_total: DF.Currency + base_rounding_adjustment: DF.Currency + base_taxes_and_charges_added: DF.Currency + base_taxes_and_charges_deducted: DF.Currency + base_total: DF.Currency + base_total_taxes_and_charges: DF.Currency + billing_address: DF.Link | None + billing_address_display: DF.SmallText | None + buying_price_list: DF.Link | None + company: DF.Link + contact_display: DF.SmallText | None + contact_email: DF.SmallText | None + contact_mobile: DF.SmallText | None + contact_person: DF.Link | None + conversion_rate: DF.Float + cost_center: DF.Link | None + currency: DF.Link + disable_rounded_total: DF.Check + discount_amount: DF.Currency + grand_total: DF.Currency + group_same_items: DF.Check + ignore_pricing_rule: DF.Check + in_words: DF.Data | None + incoterm: DF.Link | None + instructions: DF.SmallText | None + inter_company_reference: DF.Link | None + is_internal_supplier: DF.Check + is_old_subcontracting_flow: DF.Check + is_return: DF.Check + is_subcontracted: DF.Check + items: DF.Table[PurchaseReceiptItem] + language: DF.Data | None + letter_head: DF.Link | None + lr_date: DF.Date | None + lr_no: DF.Data | None + named_place: DF.Data | None + naming_series: DF.Literal["MAT-PRE-.YYYY.-", "MAT-PR-RET-.YYYY.-"] + net_total: DF.Currency + other_charges_calculation: DF.TextEditor | None + per_billed: DF.Percent + per_returned: DF.Percent + plc_conversion_rate: DF.Float + posting_date: DF.Date + posting_time: DF.Time + price_list_currency: DF.Link | None + pricing_rules: DF.Table[PricingRuleDetail] + project: DF.Link | None + range: DF.Data | None + rejected_warehouse: DF.Link | None + remarks: DF.SmallText | None + represents_company: DF.Link | None + return_against: DF.Link | None + rounded_total: DF.Currency + rounding_adjustment: DF.Currency + scan_barcode: DF.Data | None + select_print_heading: DF.Link | None + set_from_warehouse: DF.Link | None + set_posting_time: DF.Check + set_warehouse: DF.Link | None + shipping_address: DF.Link | None + shipping_address_display: DF.SmallText | None + shipping_rule: DF.Link | None + status: DF.Literal["", "Draft", "To Bill", "Completed", "Return Issued", "Cancelled", "Closed"] + subcontracting_receipt: DF.Link | None + supplied_items: DF.Table[PurchaseReceiptItemSupplied] + supplier: DF.Link + supplier_address: DF.Link | None + supplier_delivery_note: DF.Data | None + supplier_name: DF.Data | None + supplier_warehouse: DF.Link | None + tax_category: DF.Link | None + taxes: DF.Table[PurchaseTaxesandCharges] + taxes_and_charges: DF.Link | None + taxes_and_charges_added: DF.Currency + taxes_and_charges_deducted: DF.Currency + tc_name: DF.Link | None + terms: DF.TextEditor | None + title: DF.Data | None + total: DF.Currency + total_net_weight: DF.Float + total_qty: DF.Float + total_taxes_and_charges: DF.Currency + transporter_name: DF.Data | None + # end: auto-generated types + +>>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(PurchaseReceipt, self).__init__(*args, **kwargs) self.status_updater = [ From a0156e1e472671993fe8639d1b181c3625da4c62 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Wed, 20 Mar 2024 16:56:30 +0530 Subject: [PATCH 10/30] fix: style for tax breakup (cherry picked from commit 967540da18351705dfdcf7bebae62d5445eec7e2) # Conflicts: # erpnext/public/scss/erpnext.scss --- erpnext/public/scss/erpnext.scss | 59 ++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/erpnext/public/scss/erpnext.scss b/erpnext/public/scss/erpnext.scss index 6da8f24cf9b..9d65166f8a7 100644 --- a/erpnext/public/scss/erpnext.scss +++ b/erpnext/public/scss/erpnext.scss @@ -496,3 +496,62 @@ body[data-route="pos"] { .exercise-col { padding: 10px; } +<<<<<<< HEAD +======= + +.plant-floor, +.workstation-wrapper, +.workstation-card p { + border-radius: var(--border-radius-md); + border: 1px solid var(--border-color); + box-shadow: none; + background-color: var(--card-bg); + position: relative; +} + +.plant-floor { + padding-bottom: 25px; +} + +.plant-floor-filter { + padding-top: 10px; + display: flex; + flex-wrap: wrap; +} + +.plant-floor-container { + display: grid; + grid-template-columns: repeat(6, minmax(0, 1fr)); + gap: var(--margin-xl); +} + +@media screen and (max-width: 620px) { + .plant-floor-container { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } +} + +.plant-floor-container .workstation-card { + padding: 5px; +} + +.plant-floor-container .workstation-image-link { + width: 100%; + font-size: 50px; + margin: var(--margin-sm); + min-height: 9rem; +} + +.workstation-abbr { + display: flex; + background-color: var(--control-bg); + height: 100%; + width: 100%; + align-items: center; + justify-content: center; +} + +.frappe-control[data-fieldname="other_charges_calculation"] .ql-editor { + white-space: normal; +} +>>>>>>> 967540da18 (fix: style for tax breakup) From 381899bf5f2d44affe8a5b41f14e0ce894979b99 Mon Sep 17 00:00:00 2001 From: Gursheen Anand Date: Wed, 20 Mar 2024 20:25:31 +0530 Subject: [PATCH 11/30] chore: resolve conflicts --- .../doctype/pos_invoice/pos_invoice.py | 166 ---------------- .../purchase_invoice/purchase_invoice.py | 175 ---------------- .../doctype/sales_invoice/sales_invoice.py | 188 ------------------ .../purchase_order/purchase_order.json | 4 - .../doctype/purchase_order/purchase_order.py | 135 ------------- .../supplier_quotation.json | 4 - .../supplier_quotation/supplier_quotation.py | 92 --------- erpnext/public/scss/erpnext.scss | 55 ----- .../selling/doctype/quotation/quotation.json | 4 - .../selling/doctype/quotation/quotation.py | 106 ---------- .../doctype/sales_order/sales_order.py | 138 ------------- .../doctype/delivery_note/delivery_note.json | 4 - .../doctype/delivery_note/delivery_note.py | 125 ------------ .../purchase_receipt/purchase_receipt.py | 115 ----------- 14 files changed, 1311 deletions(-) diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py index 18eee1d9562..383b9dab24a 100644 --- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.py +++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.py @@ -26,172 +26,6 @@ from erpnext.stock.doctype.serial_no.serial_no import ( class POSInvoice(SalesInvoice): -<<<<<<< HEAD -======= - # begin: auto-generated types - # This code is auto-generated. Do not modify anything in this block. - - from typing import TYPE_CHECKING - - if TYPE_CHECKING: - from frappe.types import DF - - from erpnext.accounts.doctype.payment_schedule.payment_schedule import PaymentSchedule - from erpnext.accounts.doctype.pos_invoice_item.pos_invoice_item import POSInvoiceItem - from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail - from erpnext.accounts.doctype.sales_invoice_advance.sales_invoice_advance import ( - SalesInvoiceAdvance, - ) - from erpnext.accounts.doctype.sales_invoice_payment.sales_invoice_payment import ( - SalesInvoicePayment, - ) - from erpnext.accounts.doctype.sales_invoice_timesheet.sales_invoice_timesheet import ( - SalesInvoiceTimesheet, - ) - from erpnext.accounts.doctype.sales_taxes_and_charges.sales_taxes_and_charges import ( - SalesTaxesandCharges, - ) - from erpnext.selling.doctype.sales_team.sales_team import SalesTeam - from erpnext.stock.doctype.packed_item.packed_item import PackedItem - - account_for_change_amount: DF.Link | None - additional_discount_percentage: DF.Float - address_display: DF.SmallText | None - advances: DF.Table[SalesInvoiceAdvance] - against_income_account: DF.SmallText | None - allocate_advances_automatically: DF.Check - amended_from: DF.Link | None - amount_eligible_for_commission: DF.Currency - apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] - auto_repeat: DF.Link | None - base_change_amount: DF.Currency - base_discount_amount: DF.Currency - base_grand_total: DF.Currency - base_in_words: DF.Data | None - base_net_total: DF.Currency - base_paid_amount: DF.Currency - base_rounded_total: DF.Currency - base_rounding_adjustment: DF.Currency - base_total: DF.Currency - base_total_taxes_and_charges: DF.Currency - base_write_off_amount: DF.Currency - campaign: DF.Link | None - cash_bank_account: DF.Link | None - change_amount: DF.Currency - commission_rate: DF.Float - company: DF.Link - company_address: DF.Link | None - company_address_display: DF.SmallText | None - consolidated_invoice: DF.Link | None - contact_display: DF.SmallText | None - contact_email: DF.Data | None - contact_mobile: DF.Data | None - contact_person: DF.Link | None - conversion_rate: DF.Float - cost_center: DF.Link | None - coupon_code: DF.Link | None - currency: DF.Link - customer: DF.Link | None - customer_address: DF.Link | None - customer_group: DF.Link | None - customer_name: DF.Data | None - debit_to: DF.Link - discount_amount: DF.Currency - due_date: DF.Date | None - from_date: DF.Date | None - grand_total: DF.Currency - group_same_items: DF.Check - ignore_pricing_rule: DF.Check - in_words: DF.Data | None - inter_company_invoice_reference: DF.Link | None - is_discounted: DF.Check - is_opening: DF.Literal["No", "Yes"] - is_pos: DF.Check - is_return: DF.Check - items: DF.Table[POSInvoiceItem] - language: DF.Data | None - letter_head: DF.Link | None - loyalty_amount: DF.Currency - loyalty_points: DF.Int - loyalty_program: DF.Link | None - loyalty_redemption_account: DF.Link | None - loyalty_redemption_cost_center: DF.Link | None - naming_series: DF.Literal["ACC-PSINV-.YYYY.-"] - net_total: DF.Currency - other_charges_calculation: DF.TextEditor | None - outstanding_amount: DF.Currency - packed_items: DF.Table[PackedItem] - paid_amount: DF.Currency - party_account_currency: DF.Link | None - payment_schedule: DF.Table[PaymentSchedule] - payment_terms_template: DF.Link | None - payments: DF.Table[SalesInvoicePayment] - plc_conversion_rate: DF.Float - po_date: DF.Date | None - po_no: DF.Data | None - pos_profile: DF.Link | None - posting_date: DF.Date - posting_time: DF.Time | None - price_list_currency: DF.Link - pricing_rules: DF.Table[PricingRuleDetail] - project: DF.Link | None - redeem_loyalty_points: DF.Check - remarks: DF.SmallText | None - return_against: DF.Link | None - rounded_total: DF.Currency - rounding_adjustment: DF.Currency - sales_partner: DF.Link | None - sales_team: DF.Table[SalesTeam] - scan_barcode: DF.Data | None - select_print_heading: DF.Link | None - selling_price_list: DF.Link - set_posting_time: DF.Check - set_warehouse: DF.Link | None - shipping_address: DF.SmallText | None - shipping_address_name: DF.Link | None - shipping_rule: DF.Link | None - source: DF.Link | None - status: DF.Literal[ - "", - "Draft", - "Return", - "Credit Note Issued", - "Consolidated", - "Submitted", - "Paid", - "Unpaid", - "Unpaid and Discounted", - "Overdue and Discounted", - "Overdue", - "Cancelled", - ] - tax_category: DF.Link | None - tax_id: DF.Data | None - taxes: DF.Table[SalesTaxesandCharges] - taxes_and_charges: DF.Link | None - tc_name: DF.Link | None - terms: DF.TextEditor | None - territory: DF.Link | None - timesheets: DF.Table[SalesInvoiceTimesheet] - title: DF.Data | None - to_date: DF.Date | None - total: DF.Currency - total_advance: DF.Currency - total_billing_amount: DF.Currency - total_commission: DF.Currency - total_net_weight: DF.Float - total_qty: DF.Float - total_taxes_and_charges: DF.Currency - update_billed_amount_in_delivery_note: DF.Check - update_billed_amount_in_sales_order: DF.Check - update_stock: DF.Check - write_off_account: DF.Link | None - write_off_amount: DF.Currency - write_off_cost_center: DF.Link | None - write_off_outstanding_amount_automatically: DF.Check - # end: auto-generated types - ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(POSInvoice, self).__init__(*args, **kwargs) diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py index beff6d95ca2..f54787de717 100644 --- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -54,181 +54,6 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class PurchaseInvoice(BuyingController): -<<<<<<< HEAD -======= - # begin: auto-generated types - # This code is auto-generated. Do not modify anything in this block. - - from typing import TYPE_CHECKING - - if TYPE_CHECKING: - from frappe.types import DF - - from erpnext.accounts.doctype.advance_tax.advance_tax import AdvanceTax - from erpnext.accounts.doctype.payment_schedule.payment_schedule import PaymentSchedule - from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail - from erpnext.accounts.doctype.purchase_invoice_advance.purchase_invoice_advance import ( - PurchaseInvoiceAdvance, - ) - from erpnext.accounts.doctype.purchase_invoice_item.purchase_invoice_item import ( - PurchaseInvoiceItem, - ) - from erpnext.accounts.doctype.purchase_taxes_and_charges.purchase_taxes_and_charges import ( - PurchaseTaxesandCharges, - ) - from erpnext.accounts.doctype.tax_withheld_vouchers.tax_withheld_vouchers import ( - TaxWithheldVouchers, - ) - from erpnext.buying.doctype.purchase_receipt_item_supplied.purchase_receipt_item_supplied import ( - PurchaseReceiptItemSupplied, - ) - - additional_discount_percentage: DF.Float - address_display: DF.SmallText | None - advance_tax: DF.Table[AdvanceTax] - advances: DF.Table[PurchaseInvoiceAdvance] - against_expense_account: DF.SmallText | None - allocate_advances_automatically: DF.Check - amended_from: DF.Link | None - apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] - apply_tds: DF.Check - auto_repeat: DF.Link | None - base_discount_amount: DF.Currency - base_grand_total: DF.Currency - base_in_words: DF.Data | None - base_net_total: DF.Currency - base_paid_amount: DF.Currency - base_rounded_total: DF.Currency - base_rounding_adjustment: DF.Currency - base_tax_withholding_net_total: DF.Currency - base_taxes_and_charges_added: DF.Currency - base_taxes_and_charges_deducted: DF.Currency - base_total: DF.Currency - base_total_taxes_and_charges: DF.Currency - base_write_off_amount: DF.Currency - bill_date: DF.Date | None - bill_no: DF.Data | None - billing_address: DF.Link | None - billing_address_display: DF.SmallText | None - buying_price_list: DF.Link | None - cash_bank_account: DF.Link | None - clearance_date: DF.Date | None - company: DF.Link | None - contact_display: DF.SmallText | None - contact_email: DF.SmallText | None - contact_mobile: DF.SmallText | None - contact_person: DF.Link | None - conversion_rate: DF.Float - cost_center: DF.Link | None - credit_to: DF.Link - currency: DF.Link | None - disable_rounded_total: DF.Check - discount_amount: DF.Currency - due_date: DF.Date | None - from_date: DF.Date | None - grand_total: DF.Currency - group_same_items: DF.Check - hold_comment: DF.SmallText | None - ignore_default_payment_terms_template: DF.Check - ignore_pricing_rule: DF.Check - in_words: DF.Data | None - incoterm: DF.Link | None - inter_company_invoice_reference: DF.Link | None - is_internal_supplier: DF.Check - is_old_subcontracting_flow: DF.Check - is_opening: DF.Literal["No", "Yes"] - is_paid: DF.Check - is_return: DF.Check - is_subcontracted: DF.Check - items: DF.Table[PurchaseInvoiceItem] - language: DF.Data | None - letter_head: DF.Link | None - mode_of_payment: DF.Link | None - named_place: DF.Data | None - naming_series: DF.Literal["ACC-PINV-.YYYY.-", "ACC-PINV-RET-.YYYY.-"] - net_total: DF.Currency - on_hold: DF.Check - only_include_allocated_payments: DF.Check - other_charges_calculation: DF.TextEditor | None - outstanding_amount: DF.Currency - paid_amount: DF.Currency - party_account_currency: DF.Link | None - payment_schedule: DF.Table[PaymentSchedule] - payment_terms_template: DF.Link | None - per_received: DF.Percent - plc_conversion_rate: DF.Float - posting_date: DF.Date - posting_time: DF.Time | None - price_list_currency: DF.Link | None - pricing_rules: DF.Table[PricingRuleDetail] - project: DF.Link | None - rejected_warehouse: DF.Link | None - release_date: DF.Date | None - remarks: DF.SmallText | None - repost_required: DF.Check - represents_company: DF.Link | None - return_against: DF.Link | None - rounded_total: DF.Currency - rounding_adjustment: DF.Currency - scan_barcode: DF.Data | None - select_print_heading: DF.Link | None - set_from_warehouse: DF.Link | None - set_posting_time: DF.Check - set_warehouse: DF.Link | None - shipping_address: DF.Link | None - shipping_address_display: DF.SmallText | None - shipping_rule: DF.Link | None - status: DF.Literal[ - "", - "Draft", - "Return", - "Debit Note Issued", - "Submitted", - "Paid", - "Partly Paid", - "Unpaid", - "Overdue", - "Cancelled", - "Internal Transfer", - ] - subscription: DF.Link | None - supplied_items: DF.Table[PurchaseReceiptItemSupplied] - supplier: DF.Link - supplier_address: DF.Link | None - supplier_group: DF.Link | None - supplier_name: DF.Data | None - supplier_warehouse: DF.Link | None - tax_category: DF.Link | None - tax_id: DF.ReadOnly | None - tax_withheld_vouchers: DF.Table[TaxWithheldVouchers] - tax_withholding_category: DF.Link | None - tax_withholding_net_total: DF.Currency - taxes: DF.Table[PurchaseTaxesandCharges] - taxes_and_charges: DF.Link | None - taxes_and_charges_added: DF.Currency - taxes_and_charges_deducted: DF.Currency - tc_name: DF.Link | None - terms: DF.TextEditor | None - title: DF.Data | None - to_date: DF.Date | None - total: DF.Currency - total_advance: DF.Currency - total_net_weight: DF.Float - total_qty: DF.Float - total_taxes_and_charges: DF.Currency - unrealized_profit_loss_account: DF.Link | None - update_billed_amount_in_purchase_order: DF.Check - update_billed_amount_in_purchase_receipt: DF.Check - update_outstanding_for_self: DF.Check - update_stock: DF.Check - use_company_roundoff_cost_center: DF.Check - use_transaction_date_exchange_rate: DF.Check - write_off_account: DF.Link | None - write_off_amount: DF.Currency - write_off_cost_center: DF.Link | None - # end: auto-generated types - ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(PurchaseInvoice, self).__init__(*args, **kwargs) self.status_updater = [ diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index 02f5259f4aa..2a86d0daf45 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -49,194 +49,6 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class SalesInvoice(SellingController): -<<<<<<< HEAD -======= - # begin: auto-generated types - # This code is auto-generated. Do not modify anything in this block. - - from typing import TYPE_CHECKING - - if TYPE_CHECKING: - from frappe.types import DF - - from erpnext.accounts.doctype.payment_schedule.payment_schedule import PaymentSchedule - from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail - from erpnext.accounts.doctype.sales_invoice_advance.sales_invoice_advance import ( - SalesInvoiceAdvance, - ) - from erpnext.accounts.doctype.sales_invoice_item.sales_invoice_item import SalesInvoiceItem - from erpnext.accounts.doctype.sales_invoice_payment.sales_invoice_payment import ( - SalesInvoicePayment, - ) - from erpnext.accounts.doctype.sales_invoice_timesheet.sales_invoice_timesheet import ( - SalesInvoiceTimesheet, - ) - from erpnext.accounts.doctype.sales_taxes_and_charges.sales_taxes_and_charges import ( - SalesTaxesandCharges, - ) - from erpnext.selling.doctype.sales_team.sales_team import SalesTeam - from erpnext.stock.doctype.packed_item.packed_item import PackedItem - - account_for_change_amount: DF.Link | None - additional_discount_account: DF.Link | None - additional_discount_percentage: DF.Float - address_display: DF.SmallText | None - advances: DF.Table[SalesInvoiceAdvance] - against_income_account: DF.SmallText | None - allocate_advances_automatically: DF.Check - amended_from: DF.Link | None - amount_eligible_for_commission: DF.Currency - apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] - auto_repeat: DF.Link | None - base_change_amount: DF.Currency - base_discount_amount: DF.Currency - base_grand_total: DF.Currency - base_in_words: DF.SmallText | None - base_net_total: DF.Currency - base_paid_amount: DF.Currency - base_rounded_total: DF.Currency - base_rounding_adjustment: DF.Currency - base_total: DF.Currency - base_total_taxes_and_charges: DF.Currency - base_write_off_amount: DF.Currency - campaign: DF.Link | None - cash_bank_account: DF.Link | None - change_amount: DF.Currency - commission_rate: DF.Float - company: DF.Link - company_address: DF.Link | None - company_address_display: DF.SmallText | None - company_tax_id: DF.Data | None - contact_display: DF.SmallText | None - contact_email: DF.Data | None - contact_mobile: DF.SmallText | None - contact_person: DF.Link | None - conversion_rate: DF.Float - cost_center: DF.Link | None - currency: DF.Link - customer: DF.Link | None - customer_address: DF.Link | None - customer_group: DF.Link | None - customer_name: DF.SmallText | None - debit_to: DF.Link - disable_rounded_total: DF.Check - discount_amount: DF.Currency - dispatch_address: DF.SmallText | None - dispatch_address_name: DF.Link | None - dont_create_loyalty_points: DF.Check - due_date: DF.Date | None - from_date: DF.Date | None - grand_total: DF.Currency - group_same_items: DF.Check - ignore_default_payment_terms_template: DF.Check - ignore_pricing_rule: DF.Check - in_words: DF.SmallText | None - incoterm: DF.Link | None - inter_company_invoice_reference: DF.Link | None - is_cash_or_non_trade_discount: DF.Check - is_consolidated: DF.Check - is_debit_note: DF.Check - is_discounted: DF.Check - is_internal_customer: DF.Check - is_opening: DF.Literal["No", "Yes"] - is_pos: DF.Check - is_return: DF.Check - items: DF.Table[SalesInvoiceItem] - language: DF.Data | None - letter_head: DF.Link | None - loyalty_amount: DF.Currency - loyalty_points: DF.Int - loyalty_program: DF.Link | None - loyalty_redemption_account: DF.Link | None - loyalty_redemption_cost_center: DF.Link | None - named_place: DF.Data | None - naming_series: DF.Literal["ACC-SINV-.YYYY.-", "ACC-SINV-RET-.YYYY.-"] - net_total: DF.Currency - only_include_allocated_payments: DF.Check - other_charges_calculation: DF.TextEditor | None - outstanding_amount: DF.Currency - packed_items: DF.Table[PackedItem] - paid_amount: DF.Currency - party_account_currency: DF.Link | None - payment_schedule: DF.Table[PaymentSchedule] - payment_terms_template: DF.Link | None - payments: DF.Table[SalesInvoicePayment] - plc_conversion_rate: DF.Float - po_date: DF.Date | None - po_no: DF.Data | None - pos_profile: DF.Link | None - posting_date: DF.Date - posting_time: DF.Time | None - price_list_currency: DF.Link - pricing_rules: DF.Table[PricingRuleDetail] - project: DF.Link | None - redeem_loyalty_points: DF.Check - remarks: DF.SmallText | None - repost_required: DF.Check - represents_company: DF.Link | None - return_against: DF.Link | None - rounded_total: DF.Currency - rounding_adjustment: DF.Currency - sales_partner: DF.Link | None - sales_team: DF.Table[SalesTeam] - scan_barcode: DF.Data | None - select_print_heading: DF.Link | None - selling_price_list: DF.Link - set_posting_time: DF.Check - set_target_warehouse: DF.Link | None - set_warehouse: DF.Link | None - shipping_address: DF.SmallText | None - shipping_address_name: DF.Link | None - shipping_rule: DF.Link | None - source: DF.Link | None - status: DF.Literal[ - "", - "Draft", - "Return", - "Credit Note Issued", - "Submitted", - "Paid", - "Partly Paid", - "Unpaid", - "Unpaid and Discounted", - "Partly Paid and Discounted", - "Overdue and Discounted", - "Overdue", - "Cancelled", - "Internal Transfer", - ] - subscription: DF.Link | None - tax_category: DF.Link | None - tax_id: DF.Data | None - taxes: DF.Table[SalesTaxesandCharges] - taxes_and_charges: DF.Link | None - tc_name: DF.Link | None - terms: DF.TextEditor | None - territory: DF.Link | None - timesheets: DF.Table[SalesInvoiceTimesheet] - title: DF.Data | None - to_date: DF.Date | None - total: DF.Currency - total_advance: DF.Currency - total_billing_amount: DF.Currency - total_billing_hours: DF.Float - total_commission: DF.Currency - total_net_weight: DF.Float - total_qty: DF.Float - total_taxes_and_charges: DF.Currency - unrealized_profit_loss_account: DF.Link | None - update_billed_amount_in_delivery_note: DF.Check - update_billed_amount_in_sales_order: DF.Check - update_outstanding_for_self: DF.Check - update_stock: DF.Check - use_company_roundoff_cost_center: DF.Check - write_off_account: DF.Link | None - write_off_amount: DF.Currency - write_off_cost_center: DF.Link | None - write_off_outstanding_amount_automatically: DF.Check - # end: auto-generated types - ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(SalesInvoice, self).__init__(*args, **kwargs) self.status_updater = [ diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.json b/erpnext/buying/doctype/purchase_order/purchase_order.json index a2bb42bfe7d..0230e499f4f 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.json +++ b/erpnext/buying/doctype/purchase_order/purchase_order.json @@ -1273,11 +1273,7 @@ "idx": 105, "is_submittable": 1, "links": [], -<<<<<<< HEAD - "modified": "2023-10-01 20:58:07.851037", -======= "modified": "2024-03-20 16:03:31.611808", ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) "modified_by": "Administrator", "module": "Buying", "name": "Purchase Order", diff --git a/erpnext/buying/doctype/purchase_order/purchase_order.py b/erpnext/buying/doctype/purchase_order/purchase_order.py index cca058f806a..9d4846056ea 100644 --- a/erpnext/buying/doctype/purchase_order/purchase_order.py +++ b/erpnext/buying/doctype/purchase_order/purchase_order.py @@ -33,141 +33,6 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class PurchaseOrder(BuyingController): -<<<<<<< HEAD -======= - # begin: auto-generated types - # This code is auto-generated. Do not modify anything in this block. - - from typing import TYPE_CHECKING - - if TYPE_CHECKING: - from frappe.types import DF - - from erpnext.accounts.doctype.payment_schedule.payment_schedule import PaymentSchedule - from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail - from erpnext.accounts.doctype.purchase_taxes_and_charges.purchase_taxes_and_charges import ( - PurchaseTaxesandCharges, - ) - from erpnext.buying.doctype.purchase_order_item.purchase_order_item import PurchaseOrderItem - from erpnext.buying.doctype.purchase_order_item_supplied.purchase_order_item_supplied import ( - PurchaseOrderItemSupplied, - ) - - additional_discount_percentage: DF.Float - address_display: DF.SmallText | None - advance_paid: DF.Currency - advance_payment_status: DF.Literal["Not Initiated", "Initiated", "Partially Paid", "Fully Paid"] - amended_from: DF.Link | None - apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] - apply_tds: DF.Check - auto_repeat: DF.Link | None - base_discount_amount: DF.Currency - base_grand_total: DF.Currency - base_in_words: DF.Data | None - base_net_total: DF.Currency - base_rounded_total: DF.Currency - base_rounding_adjustment: DF.Currency - base_tax_withholding_net_total: DF.Currency - base_taxes_and_charges_added: DF.Currency - base_taxes_and_charges_deducted: DF.Currency - base_total: DF.Currency - base_total_taxes_and_charges: DF.Currency - billing_address: DF.Link | None - billing_address_display: DF.SmallText | None - buying_price_list: DF.Link | None - company: DF.Link - contact_display: DF.SmallText | None - contact_email: DF.SmallText | None - contact_mobile: DF.SmallText | None - contact_person: DF.Link | None - conversion_rate: DF.Float - cost_center: DF.Link | None - currency: DF.Link - customer: DF.Link | None - customer_contact_display: DF.SmallText | None - customer_contact_email: DF.Code | None - customer_contact_mobile: DF.SmallText | None - customer_contact_person: DF.Link | None - customer_name: DF.Data | None - disable_rounded_total: DF.Check - discount_amount: DF.Currency - from_date: DF.Date | None - grand_total: DF.Currency - group_same_items: DF.Check - ignore_pricing_rule: DF.Check - in_words: DF.Data | None - incoterm: DF.Link | None - inter_company_order_reference: DF.Link | None - is_internal_supplier: DF.Check - is_old_subcontracting_flow: DF.Check - is_subcontracted: DF.Check - items: DF.Table[PurchaseOrderItem] - language: DF.Data | None - letter_head: DF.Link | None - named_place: DF.Data | None - naming_series: DF.Literal["PUR-ORD-.YYYY.-"] - net_total: DF.Currency - order_confirmation_date: DF.Date | None - order_confirmation_no: DF.Data | None - other_charges_calculation: DF.TextEditor | None - party_account_currency: DF.Link | None - payment_schedule: DF.Table[PaymentSchedule] - payment_terms_template: DF.Link | None - per_billed: DF.Percent - per_received: DF.Percent - plc_conversion_rate: DF.Float - price_list_currency: DF.Link | None - pricing_rules: DF.Table[PricingRuleDetail] - project: DF.Link | None - ref_sq: DF.Link | None - represents_company: DF.Link | None - rounded_total: DF.Currency - rounding_adjustment: DF.Currency - scan_barcode: DF.Data | None - schedule_date: DF.Date | None - select_print_heading: DF.Link | None - set_from_warehouse: DF.Link | None - set_reserve_warehouse: DF.Link | None - set_warehouse: DF.Link | None - shipping_address: DF.Link | None - shipping_address_display: DF.SmallText | None - shipping_rule: DF.Link | None - status: DF.Literal[ - "", - "Draft", - "On Hold", - "To Receive and Bill", - "To Bill", - "To Receive", - "Completed", - "Cancelled", - "Closed", - "Delivered", - ] - supplied_items: DF.Table[PurchaseOrderItemSupplied] - supplier: DF.Link - supplier_address: DF.Link | None - supplier_name: DF.Data | None - supplier_warehouse: DF.Link | None - tax_category: DF.Link | None - tax_withholding_category: DF.Link | None - tax_withholding_net_total: DF.Currency - taxes: DF.Table[PurchaseTaxesandCharges] - taxes_and_charges: DF.Link | None - taxes_and_charges_added: DF.Currency - taxes_and_charges_deducted: DF.Currency - tc_name: DF.Link | None - terms: DF.TextEditor | None - title: DF.Data - to_date: DF.Date | None - total: DF.Currency - total_net_weight: DF.Float - total_qty: DF.Float - total_taxes_and_charges: DF.Currency - transaction_date: DF.Date - # end: auto-generated types - ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(PurchaseOrder, self).__init__(*args, **kwargs) self.status_updater = [ diff --git a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json index 7716a15ccba..f13ceb04a50 100644 --- a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json +++ b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.json @@ -927,11 +927,7 @@ "index_web_pages_for_search": 1, "is_submittable": 1, "links": [], -<<<<<<< HEAD - "modified": "2023-11-20 11:15:30.083077", -======= "modified": "2024-03-20 16:03:59.069145", ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) "modified_by": "Administrator", "module": "Buying", "name": "Supplier Quotation", diff --git a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py index 70fea913591..e27fbe8aaa2 100644 --- a/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py +++ b/erpnext/buying/doctype/supplier_quotation/supplier_quotation.py @@ -14,98 +14,6 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class SupplierQuotation(BuyingController): -<<<<<<< HEAD -======= - # begin: auto-generated types - # This code is auto-generated. Do not modify anything in this block. - - from typing import TYPE_CHECKING - - if TYPE_CHECKING: - from frappe.types import DF - - from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail - from erpnext.accounts.doctype.purchase_taxes_and_charges.purchase_taxes_and_charges import ( - PurchaseTaxesandCharges, - ) - from erpnext.buying.doctype.supplier_quotation_item.supplier_quotation_item import ( - SupplierQuotationItem, - ) - - additional_discount_percentage: DF.Float - address_display: DF.SmallText | None - amended_from: DF.Link | None - apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] - auto_repeat: DF.Link | None - base_discount_amount: DF.Currency - base_grand_total: DF.Currency - base_in_words: DF.Data | None - base_net_total: DF.Currency - base_rounded_total: DF.Currency - base_rounding_adjustment: DF.Currency - base_taxes_and_charges_added: DF.Currency - base_taxes_and_charges_deducted: DF.Currency - base_total: DF.Currency - base_total_taxes_and_charges: DF.Currency - billing_address: DF.Link | None - billing_address_display: DF.SmallText | None - buying_price_list: DF.Link | None - company: DF.Link - contact_display: DF.SmallText | None - contact_email: DF.Data | None - contact_mobile: DF.SmallText | None - contact_person: DF.Link | None - conversion_rate: DF.Float - cost_center: DF.Link | None - currency: DF.Link - disable_rounded_total: DF.Check - discount_amount: DF.Currency - grand_total: DF.Currency - group_same_items: DF.Check - ignore_pricing_rule: DF.Check - in_words: DF.Data | None - incoterm: DF.Link | None - is_subcontracted: DF.Check - items: DF.Table[SupplierQuotationItem] - language: DF.Data | None - letter_head: DF.Link | None - named_place: DF.Data | None - naming_series: DF.Literal["PUR-SQTN-.YYYY.-"] - net_total: DF.Currency - opportunity: DF.Link | None - other_charges_calculation: DF.MarkdownEditor | None - plc_conversion_rate: DF.Float - price_list_currency: DF.Link | None - pricing_rules: DF.Table[PricingRuleDetail] - project: DF.Link | None - quotation_number: DF.Data | None - rounded_total: DF.Currency - rounding_adjustment: DF.Currency - select_print_heading: DF.Link | None - shipping_address: DF.Link | None - shipping_address_display: DF.SmallText | None - shipping_rule: DF.Link | None - status: DF.Literal["", "Draft", "Submitted", "Stopped", "Cancelled", "Expired"] - supplier: DF.Link - supplier_address: DF.Link | None - supplier_name: DF.Data | None - tax_category: DF.Link | None - taxes: DF.Table[PurchaseTaxesandCharges] - taxes_and_charges: DF.Link | None - taxes_and_charges_added: DF.Currency - taxes_and_charges_deducted: DF.Currency - tc_name: DF.Link | None - terms: DF.TextEditor | None - title: DF.Data | None - total: DF.Currency - total_net_weight: DF.Float - total_qty: DF.Float - total_taxes_and_charges: DF.Currency - transaction_date: DF.Date - valid_till: DF.Date | None - # end: auto-generated types - ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def validate(self): super(SupplierQuotation, self).validate() diff --git a/erpnext/public/scss/erpnext.scss b/erpnext/public/scss/erpnext.scss index 9d65166f8a7..be3aed1ed0b 100644 --- a/erpnext/public/scss/erpnext.scss +++ b/erpnext/public/scss/erpnext.scss @@ -496,62 +496,7 @@ body[data-route="pos"] { .exercise-col { padding: 10px; } -<<<<<<< HEAD -======= - -.plant-floor, -.workstation-wrapper, -.workstation-card p { - border-radius: var(--border-radius-md); - border: 1px solid var(--border-color); - box-shadow: none; - background-color: var(--card-bg); - position: relative; -} - -.plant-floor { - padding-bottom: 25px; -} - -.plant-floor-filter { - padding-top: 10px; - display: flex; - flex-wrap: wrap; -} - -.plant-floor-container { - display: grid; - grid-template-columns: repeat(6, minmax(0, 1fr)); - gap: var(--margin-xl); -} - -@media screen and (max-width: 620px) { - .plant-floor-container { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } -} - -.plant-floor-container .workstation-card { - padding: 5px; -} - -.plant-floor-container .workstation-image-link { - width: 100%; - font-size: 50px; - margin: var(--margin-sm); - min-height: 9rem; -} - -.workstation-abbr { - display: flex; - background-color: var(--control-bg); - height: 100%; - width: 100%; - align-items: center; - justify-content: center; -} .frappe-control[data-fieldname="other_charges_calculation"] .ql-editor { white-space: normal; } ->>>>>>> 967540da18 (fix: style for tax breakup) diff --git a/erpnext/selling/doctype/quotation/quotation.json b/erpnext/selling/doctype/quotation/quotation.json index f3c5439d987..40fa986951e 100644 --- a/erpnext/selling/doctype/quotation/quotation.json +++ b/erpnext/selling/doctype/quotation/quotation.json @@ -1072,11 +1072,7 @@ "idx": 82, "is_submittable": 1, "links": [], -<<<<<<< HEAD - "modified": "2023-04-14 16:50:44.550098", -======= "modified": "2024-03-20 16:04:21.567847", ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) "modified_by": "Administrator", "module": "Selling", "name": "Quotation", diff --git a/erpnext/selling/doctype/quotation/quotation.py b/erpnext/selling/doctype/quotation/quotation.py index d09b1d30838..de2cef90929 100644 --- a/erpnext/selling/doctype/quotation/quotation.py +++ b/erpnext/selling/doctype/quotation/quotation.py @@ -13,112 +13,6 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class Quotation(SellingController): -<<<<<<< HEAD -======= - # begin: auto-generated types - # This code is auto-generated. Do not modify anything in this block. - - from typing import TYPE_CHECKING - - if TYPE_CHECKING: - from frappe.types import DF - - from erpnext.accounts.doctype.payment_schedule.payment_schedule import PaymentSchedule - from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail - from erpnext.accounts.doctype.sales_taxes_and_charges.sales_taxes_and_charges import ( - SalesTaxesandCharges, - ) - from erpnext.crm.doctype.competitor_detail.competitor_detail import CompetitorDetail - from erpnext.selling.doctype.quotation_item.quotation_item import QuotationItem - from erpnext.setup.doctype.quotation_lost_reason_detail.quotation_lost_reason_detail import ( - QuotationLostReasonDetail, - ) - from erpnext.stock.doctype.packed_item.packed_item import PackedItem - - additional_discount_percentage: DF.Float - address_display: DF.SmallText | None - amended_from: DF.Link | None - apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] - auto_repeat: DF.Link | None - base_discount_amount: DF.Currency - base_grand_total: DF.Currency - base_in_words: DF.Data | None - base_net_total: DF.Currency - base_rounded_total: DF.Currency - base_rounding_adjustment: DF.Currency - base_total: DF.Currency - base_total_taxes_and_charges: DF.Currency - campaign: DF.Link | None - company: DF.Link - company_address: DF.Link | None - company_address_display: DF.SmallText | None - competitors: DF.TableMultiSelect[CompetitorDetail] - contact_display: DF.SmallText | None - contact_email: DF.Data | None - contact_mobile: DF.SmallText | None - contact_person: DF.Link | None - conversion_rate: DF.Float - coupon_code: DF.Link | None - currency: DF.Link - customer_address: DF.Link | None - customer_group: DF.Link | None - customer_name: DF.Data | None - discount_amount: DF.Currency - enq_det: DF.Text | None - grand_total: DF.Currency - group_same_items: DF.Check - ignore_pricing_rule: DF.Check - in_words: DF.Data | None - incoterm: DF.Link | None - items: DF.Table[QuotationItem] - language: DF.Data | None - letter_head: DF.Link | None - lost_reasons: DF.TableMultiSelect[QuotationLostReasonDetail] - named_place: DF.Data | None - naming_series: DF.Literal["SAL-QTN-.YYYY.-"] - net_total: DF.Currency - opportunity: DF.Link | None - order_lost_reason: DF.SmallText | None - order_type: DF.Literal["", "Sales", "Maintenance", "Shopping Cart"] - other_charges_calculation: DF.TextEditor | None - packed_items: DF.Table[PackedItem] - party_name: DF.DynamicLink | None - payment_schedule: DF.Table[PaymentSchedule] - payment_terms_template: DF.Link | None - plc_conversion_rate: DF.Float - price_list_currency: DF.Link - pricing_rules: DF.Table[PricingRuleDetail] - quotation_to: DF.Link - referral_sales_partner: DF.Link | None - rounded_total: DF.Currency - rounding_adjustment: DF.Currency - scan_barcode: DF.Data | None - select_print_heading: DF.Link | None - selling_price_list: DF.Link - shipping_address: DF.SmallText | None - shipping_address_name: DF.Link | None - shipping_rule: DF.Link | None - source: DF.Link | None - status: DF.Literal[ - "Draft", "Open", "Replied", "Partially Ordered", "Ordered", "Lost", "Cancelled", "Expired" - ] - supplier_quotation: DF.Link | None - tax_category: DF.Link | None - taxes: DF.Table[SalesTaxesandCharges] - taxes_and_charges: DF.Link | None - tc_name: DF.Link | None - terms: DF.TextEditor | None - territory: DF.Link | None - title: DF.Data | None - total: DF.Currency - total_net_weight: DF.Float - total_qty: DF.Float - total_taxes_and_charges: DF.Currency - transaction_date: DF.Date - valid_till: DF.Date | None - # end: auto-generated types - ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def set_indicator(self): if self.docstatus == 1: self.indicator_color = "blue" diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index da196c7ac4e..81f9cedbc62 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -41,144 +41,6 @@ class WarehouseRequired(frappe.ValidationError): class SalesOrder(SellingController): -<<<<<<< HEAD -======= - # begin: auto-generated types - # This code is auto-generated. Do not modify anything in this block. - - from typing import TYPE_CHECKING - - if TYPE_CHECKING: - from frappe.types import DF - - from erpnext.accounts.doctype.payment_schedule.payment_schedule import PaymentSchedule - from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail - from erpnext.accounts.doctype.sales_taxes_and_charges.sales_taxes_and_charges import ( - SalesTaxesandCharges, - ) - from erpnext.selling.doctype.sales_order_item.sales_order_item import SalesOrderItem - from erpnext.selling.doctype.sales_team.sales_team import SalesTeam - from erpnext.stock.doctype.packed_item.packed_item import PackedItem - - additional_discount_percentage: DF.Float - address_display: DF.SmallText | None - advance_paid: DF.Currency - advance_payment_status: DF.Literal["Not Requested", "Requested", "Partially Paid", "Fully Paid"] - amended_from: DF.Link | None - amount_eligible_for_commission: DF.Currency - apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] - auto_repeat: DF.Link | None - base_discount_amount: DF.Currency - base_grand_total: DF.Currency - base_in_words: DF.Data | None - base_net_total: DF.Currency - base_rounded_total: DF.Currency - base_rounding_adjustment: DF.Currency - base_total: DF.Currency - base_total_taxes_and_charges: DF.Currency - billing_status: DF.Literal["Not Billed", "Fully Billed", "Partly Billed", "Closed"] - campaign: DF.Link | None - commission_rate: DF.Float - company: DF.Link - company_address: DF.Link | None - company_address_display: DF.SmallText | None - contact_display: DF.SmallText | None - contact_email: DF.Data | None - contact_mobile: DF.SmallText | None - contact_person: DF.Link | None - contact_phone: DF.Data | None - conversion_rate: DF.Float - cost_center: DF.Link | None - coupon_code: DF.Link | None - currency: DF.Link - customer: DF.Link - customer_address: DF.Link | None - customer_group: DF.Link | None - customer_name: DF.Data | None - delivery_date: DF.Date | None - delivery_status: DF.Literal[ - "Not Delivered", "Fully Delivered", "Partly Delivered", "Closed", "Not Applicable" - ] - disable_rounded_total: DF.Check - discount_amount: DF.Currency - dispatch_address: DF.SmallText | None - dispatch_address_name: DF.Link | None - from_date: DF.Date | None - grand_total: DF.Currency - group_same_items: DF.Check - ignore_pricing_rule: DF.Check - in_words: DF.Data | None - incoterm: DF.Link | None - inter_company_order_reference: DF.Link | None - is_internal_customer: DF.Check - items: DF.Table[SalesOrderItem] - language: DF.Data | None - letter_head: DF.Link | None - loyalty_amount: DF.Currency - loyalty_points: DF.Int - named_place: DF.Data | None - naming_series: DF.Literal["SAL-ORD-.YYYY.-"] - net_total: DF.Currency - order_type: DF.Literal["", "Sales", "Maintenance", "Shopping Cart"] - other_charges_calculation: DF.TextEditor | None - packed_items: DF.Table[PackedItem] - party_account_currency: DF.Link | None - payment_schedule: DF.Table[PaymentSchedule] - payment_terms_template: DF.Link | None - per_billed: DF.Percent - per_delivered: DF.Percent - per_picked: DF.Percent - plc_conversion_rate: DF.Float - po_date: DF.Date | None - po_no: DF.Data | None - price_list_currency: DF.Link - pricing_rules: DF.Table[PricingRuleDetail] - project: DF.Link | None - represents_company: DF.Link | None - reserve_stock: DF.Check - rounded_total: DF.Currency - rounding_adjustment: DF.Currency - sales_partner: DF.Link | None - sales_team: DF.Table[SalesTeam] - scan_barcode: DF.Data | None - select_print_heading: DF.Link | None - selling_price_list: DF.Link - set_warehouse: DF.Link | None - shipping_address: DF.SmallText | None - shipping_address_name: DF.Link | None - shipping_rule: DF.Link | None - skip_delivery_note: DF.Check - source: DF.Link | None - status: DF.Literal[ - "", - "Draft", - "On Hold", - "To Pay", - "To Deliver and Bill", - "To Bill", - "To Deliver", - "Completed", - "Cancelled", - "Closed", - ] - tax_category: DF.Link | None - tax_id: DF.Data | None - taxes: DF.Table[SalesTaxesandCharges] - taxes_and_charges: DF.Link | None - tc_name: DF.Link | None - terms: DF.TextEditor | None - territory: DF.Link | None - title: DF.Data | None - to_date: DF.Date | None - total: DF.Currency - total_commission: DF.Currency - total_net_weight: DF.Float - total_qty: DF.Float - total_taxes_and_charges: DF.Currency - transaction_date: DF.Date - # end: auto-generated types - ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(SalesOrder, self).__init__(*args, **kwargs) diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.json b/erpnext/stock/doctype/delivery_note/delivery_note.json index ec22e550145..60e69599dae 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.json +++ b/erpnext/stock/doctype/delivery_note/delivery_note.json @@ -1401,11 +1401,7 @@ "idx": 146, "is_submittable": 1, "links": [], -<<<<<<< HEAD - "modified": "2023-12-18 17:19:39.368239", -======= "modified": "2024-03-20 16:05:02.854990", ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) "modified_by": "Administrator", "module": "Stock", "name": "Delivery Note", diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py index 86e07bcd262..a402bb5aed2 100644 --- a/erpnext/stock/doctype/delivery_note/delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/delivery_note.py @@ -19,131 +19,6 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class DeliveryNote(SellingController): -<<<<<<< HEAD -======= - # begin: auto-generated types - # This code is auto-generated. Do not modify anything in this block. - - from typing import TYPE_CHECKING - - if TYPE_CHECKING: - from frappe.types import DF - - from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail - from erpnext.accounts.doctype.sales_taxes_and_charges.sales_taxes_and_charges import ( - SalesTaxesandCharges, - ) - from erpnext.selling.doctype.sales_team.sales_team import SalesTeam - from erpnext.stock.doctype.delivery_note_item.delivery_note_item import DeliveryNoteItem - from erpnext.stock.doctype.packed_item.packed_item import PackedItem - - additional_discount_percentage: DF.Float - address_display: DF.SmallText | None - amended_from: DF.Link | None - amount_eligible_for_commission: DF.Currency - apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] - auto_repeat: DF.Link | None - base_discount_amount: DF.Currency - base_grand_total: DF.Currency - base_in_words: DF.Data | None - base_net_total: DF.Currency - base_rounded_total: DF.Currency - base_rounding_adjustment: DF.Currency - base_total: DF.Currency - base_total_taxes_and_charges: DF.Currency - campaign: DF.Link | None - commission_rate: DF.Float - company: DF.Link - company_address: DF.Link | None - company_address_display: DF.SmallText | None - contact_display: DF.SmallText | None - contact_email: DF.Data | None - contact_mobile: DF.SmallText | None - contact_person: DF.Link | None - conversion_rate: DF.Float - cost_center: DF.Link | None - currency: DF.Link - customer: DF.Link - customer_address: DF.Link | None - customer_group: DF.Link | None - customer_name: DF.Data | None - disable_rounded_total: DF.Check - discount_amount: DF.Currency - dispatch_address: DF.SmallText | None - dispatch_address_name: DF.Link | None - driver: DF.Link | None - driver_name: DF.Data | None - excise_page: DF.Data | None - grand_total: DF.Currency - group_same_items: DF.Check - ignore_pricing_rule: DF.Check - in_words: DF.Data | None - incoterm: DF.Link | None - installation_status: DF.Literal[None] - instructions: DF.Text | None - inter_company_reference: DF.Link | None - is_internal_customer: DF.Check - is_return: DF.Check - issue_credit_note: DF.Check - items: DF.Table[DeliveryNoteItem] - language: DF.Data | None - letter_head: DF.Link | None - lr_date: DF.Date | None - lr_no: DF.Data | None - named_place: DF.Data | None - naming_series: DF.Literal["MAT-DN-.YYYY.-", "MAT-DN-RET-.YYYY.-"] - net_total: DF.Currency - other_charges_calculation: DF.TextEditor | None - packed_items: DF.Table[PackedItem] - per_billed: DF.Percent - per_installed: DF.Percent - per_returned: DF.Percent - pick_list: DF.Link | None - plc_conversion_rate: DF.Float - po_date: DF.Date | None - po_no: DF.SmallText | None - posting_date: DF.Date - posting_time: DF.Time - price_list_currency: DF.Link - pricing_rules: DF.Table[PricingRuleDetail] - print_without_amount: DF.Check - project: DF.Link | None - represents_company: DF.Link | None - return_against: DF.Link | None - rounded_total: DF.Currency - rounding_adjustment: DF.Currency - sales_partner: DF.Link | None - sales_team: DF.Table[SalesTeam] - scan_barcode: DF.Data | None - select_print_heading: DF.Link | None - selling_price_list: DF.Link - set_posting_time: DF.Check - set_target_warehouse: DF.Link | None - set_warehouse: DF.Link | None - shipping_address: DF.SmallText | None - shipping_address_name: DF.Link | None - shipping_rule: DF.Link | None - source: DF.Link | None - status: DF.Literal["", "Draft", "To Bill", "Completed", "Return Issued", "Cancelled", "Closed"] - tax_category: DF.Link | None - tax_id: DF.Data | None - taxes: DF.Table[SalesTaxesandCharges] - taxes_and_charges: DF.Link | None - tc_name: DF.Link | None - terms: DF.TextEditor | None - territory: DF.Link | None - title: DF.Data | None - total: DF.Currency - total_commission: DF.Currency - total_net_weight: DF.Float - total_qty: DF.Float - total_taxes_and_charges: DF.Currency - transporter: DF.Link | None - transporter_name: DF.Data | None - vehicle_no: DF.Data | None - # end: auto-generated types - ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(DeliveryNote, self).__init__(*args, **kwargs) self.status_updater = [ diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py index e58fca99643..79e6ab84d95 100644 --- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.py @@ -21,121 +21,6 @@ form_grid_templates = {"items": "templates/form_grid/item_grid.html"} class PurchaseReceipt(BuyingController): -<<<<<<< HEAD -======= - # begin: auto-generated types - # This code is auto-generated. Do not modify anything in this block. - - from typing import TYPE_CHECKING - - if TYPE_CHECKING: - from frappe.types import DF - - from erpnext.accounts.doctype.pricing_rule_detail.pricing_rule_detail import PricingRuleDetail - from erpnext.accounts.doctype.purchase_taxes_and_charges.purchase_taxes_and_charges import ( - PurchaseTaxesandCharges, - ) - from erpnext.buying.doctype.purchase_receipt_item_supplied.purchase_receipt_item_supplied import ( - PurchaseReceiptItemSupplied, - ) - from erpnext.stock.doctype.purchase_receipt_item.purchase_receipt_item import PurchaseReceiptItem - - additional_discount_percentage: DF.Float - address_display: DF.SmallText | None - amended_from: DF.Link | None - apply_discount_on: DF.Literal["", "Grand Total", "Net Total"] - apply_putaway_rule: DF.Check - auto_repeat: DF.Link | None - base_discount_amount: DF.Currency - base_grand_total: DF.Currency - base_in_words: DF.Data | None - base_net_total: DF.Currency - base_rounded_total: DF.Currency - base_rounding_adjustment: DF.Currency - base_taxes_and_charges_added: DF.Currency - base_taxes_and_charges_deducted: DF.Currency - base_total: DF.Currency - base_total_taxes_and_charges: DF.Currency - billing_address: DF.Link | None - billing_address_display: DF.SmallText | None - buying_price_list: DF.Link | None - company: DF.Link - contact_display: DF.SmallText | None - contact_email: DF.SmallText | None - contact_mobile: DF.SmallText | None - contact_person: DF.Link | None - conversion_rate: DF.Float - cost_center: DF.Link | None - currency: DF.Link - disable_rounded_total: DF.Check - discount_amount: DF.Currency - grand_total: DF.Currency - group_same_items: DF.Check - ignore_pricing_rule: DF.Check - in_words: DF.Data | None - incoterm: DF.Link | None - instructions: DF.SmallText | None - inter_company_reference: DF.Link | None - is_internal_supplier: DF.Check - is_old_subcontracting_flow: DF.Check - is_return: DF.Check - is_subcontracted: DF.Check - items: DF.Table[PurchaseReceiptItem] - language: DF.Data | None - letter_head: DF.Link | None - lr_date: DF.Date | None - lr_no: DF.Data | None - named_place: DF.Data | None - naming_series: DF.Literal["MAT-PRE-.YYYY.-", "MAT-PR-RET-.YYYY.-"] - net_total: DF.Currency - other_charges_calculation: DF.TextEditor | None - per_billed: DF.Percent - per_returned: DF.Percent - plc_conversion_rate: DF.Float - posting_date: DF.Date - posting_time: DF.Time - price_list_currency: DF.Link | None - pricing_rules: DF.Table[PricingRuleDetail] - project: DF.Link | None - range: DF.Data | None - rejected_warehouse: DF.Link | None - remarks: DF.SmallText | None - represents_company: DF.Link | None - return_against: DF.Link | None - rounded_total: DF.Currency - rounding_adjustment: DF.Currency - scan_barcode: DF.Data | None - select_print_heading: DF.Link | None - set_from_warehouse: DF.Link | None - set_posting_time: DF.Check - set_warehouse: DF.Link | None - shipping_address: DF.Link | None - shipping_address_display: DF.SmallText | None - shipping_rule: DF.Link | None - status: DF.Literal["", "Draft", "To Bill", "Completed", "Return Issued", "Cancelled", "Closed"] - subcontracting_receipt: DF.Link | None - supplied_items: DF.Table[PurchaseReceiptItemSupplied] - supplier: DF.Link - supplier_address: DF.Link | None - supplier_delivery_note: DF.Data | None - supplier_name: DF.Data | None - supplier_warehouse: DF.Link | None - tax_category: DF.Link | None - taxes: DF.Table[PurchaseTaxesandCharges] - taxes_and_charges: DF.Link | None - taxes_and_charges_added: DF.Currency - taxes_and_charges_deducted: DF.Currency - tc_name: DF.Link | None - terms: DF.TextEditor | None - title: DF.Data | None - total: DF.Currency - total_net_weight: DF.Float - total_qty: DF.Float - total_taxes_and_charges: DF.Currency - transporter_name: DF.Data | None - # end: auto-generated types - ->>>>>>> 1c63983873 (fix: use Text Editor for rendering tax breakup table) def __init__(self, *args, **kwargs): super(PurchaseReceipt, self).__init__(*args, **kwargs) self.status_updater = [ From 74ec853b971a9b9904392ba94a7dded01bfea523 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 20 Mar 2024 15:22:12 +0000 Subject: [PATCH 12/30] chore(release): Bumped to Version 14.65.5 ## [14.65.5](https://github.com/frappe/erpnext/compare/v14.65.4...v14.65.5) (2024-03-20) ### Bug Fixes * style for tax breakup ([a0156e1](https://github.com/frappe/erpnext/commit/a0156e1e472671993fe8639d1b181c3625da4c62)) * use Text Editor for rendering tax breakup table ([7df09d1](https://github.com/frappe/erpnext/commit/7df09d18e126ed131f9012c9af50b5e37403fc96)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 1f8b719b760..0e033b3d6e9 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.65.4" +__version__ = "14.65.5" def get_default_company(user=None): From 18279a6dbdce61a7f64992446744fd26f3c009f4 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 21 Mar 2024 21:04:03 +0530 Subject: [PATCH 13/30] fix: rate not fetching from the item price (cherry picked from commit d893a465d79b2e301b49b093f05d21d9eb196c9d) (cherry picked from commit 9b3c4ac5757d049b6ed5f48a9f13572b383eba09) --- erpnext/stock/get_item_details.py | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 289a654ac12..aa2878727b0 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -859,7 +859,6 @@ def get_price_list_rate(args, item_doc, out=None): ): if args.price_list and args.rate: insert_item_price(args) - return out out.price_list_rate = ( flt(price_list_rate) * flt(args.plc_conversion_rate) / flt(args.conversion_rate) From 14f7aef4d0aba241b43df0f2fc43c787eeae1007 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Thu, 21 Mar 2024 17:33:34 +0000 Subject: [PATCH 14/30] chore(release): Bumped to Version 14.65.6 ## [14.65.6](https://github.com/frappe/erpnext/compare/v14.65.5...v14.65.6) (2024-03-21) ### Bug Fixes * rate not fetching from the item price ([18279a6](https://github.com/frappe/erpnext/commit/18279a6dbdce61a7f64992446744fd26f3c009f4)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 0e033b3d6e9..3988e961b8d 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.65.5" +__version__ = "14.65.6" def get_default_company(user=None): From e09b3ad720fbba456630d466858b3374ce60e824 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 22 Mar 2024 15:03:38 +0530 Subject: [PATCH 15/30] fix: rate reset to zero (cherry picked from commit 6821baa850e4f820bdd274b5113a34e3fea3daba) (cherry picked from commit 2f839fbf6dcb04d56a452ccd139d9d2396b1912f) --- erpnext/stock/get_item_details.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index aa2878727b0..33abdcb5321 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -860,6 +860,9 @@ def get_price_list_rate(args, item_doc, out=None): if args.price_list and args.rate: insert_item_price(args) + if not price_list_rate: + return out + out.price_list_rate = ( flt(price_list_rate) * flt(args.plc_conversion_rate) / flt(args.conversion_rate) ) From 1c6f5b6525955f97e4d50d1724c2aabc4deaf02a Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Fri, 22 Mar 2024 10:32:42 +0000 Subject: [PATCH 16/30] chore(release): Bumped to Version 14.65.7 ## [14.65.7](https://github.com/frappe/erpnext/compare/v14.65.6...v14.65.7) (2024-03-22) ### Bug Fixes * rate reset to zero ([e09b3ad](https://github.com/frappe/erpnext/commit/e09b3ad720fbba456630d466858b3374ce60e824)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 3988e961b8d..7675494209f 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.65.6" +__version__ = "14.65.7" def get_default_company(user=None): From 73c534cf1a1bcaddd3c7017876503df5452eac5c Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 22 Mar 2024 16:11:05 +0530 Subject: [PATCH 17/30] fix: reset update outstanding flag for old records (cherry picked from commit a88bf8419e7c9987d81b7d0c1d05f45be26d65cc) --- erpnext/patches.txt | 2 +- erpnext/patches/v14_0/update_flag_for_return_invoices.py | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 9b3cf5d7bc7..09f90edd399 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -354,7 +354,7 @@ execute:frappe.db.set_single_value("Buying Settings", "project_update_frequency" erpnext.patches.v14_0.clear_reconciliation_values_from_singles erpnext.patches.v14_0.update_total_asset_cost_field erpnext.patches.v14_0.create_accounting_dimensions_in_reconciliation_tool -erpnext.patches.v14_0.update_flag_for_return_invoices +erpnext.patches.v14_0.update_flag_for_return_invoices #2024-03-22 # below migration patch should always run last erpnext.patches.v14_0.migrate_gl_to_payment_ledger erpnext.stock.doctype.delivery_note.patches.drop_unused_return_against_index # 2023-12-20 diff --git a/erpnext/patches/v14_0/update_flag_for_return_invoices.py b/erpnext/patches/v14_0/update_flag_for_return_invoices.py index feb43beacf8..bea99575425 100644 --- a/erpnext/patches/v14_0/update_flag_for_return_invoices.py +++ b/erpnext/patches/v14_0/update_flag_for_return_invoices.py @@ -12,6 +12,10 @@ def execute(): creation_date = "2024-01-25" si = qb.DocType("Sales Invoice") + + # unset flag, as migration would have set it for all records, as the field was introduced with default '1' + qb.update(si).set(si.update_outstanding_for_self, False).run() + if cr_notes := ( qb.from_(si) .select(si.name) @@ -37,6 +41,10 @@ def execute(): ).run() pi = qb.DocType("Purchase Invoice") + + # unset flag, as migration would have set it for all records, as the field was introduced with default '1' + qb.update(pi).set(pi.update_outstanding_for_self, False).run() + if dr_notes := ( qb.from_(pi) .select(pi.name) From adec93de186c8c9e50328ef15030a70f15699533 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Fri, 22 Mar 2024 17:50:51 +0530 Subject: [PATCH 18/30] refactor: hide on print formats (cherry picked from commit fdcdc8a56ea8892f197dd2a45b175d20137953f6) --- erpnext/accounts/doctype/sales_invoice/sales_invoice.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json index ddb82d95f9d..25f11b65e49 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.json +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.json @@ -2170,7 +2170,8 @@ "fieldname": "update_outstanding_for_self", "fieldtype": "Check", "label": "Update Outstanding for Self", - "no_copy": 1 + "no_copy": 1, + "print_hide": 1 } ], "icon": "fa fa-file-text", @@ -2183,7 +2184,7 @@ "link_fieldname": "consolidated_invoice" } ], - "modified": "2024-03-20 16:02:52.237732", + "modified": "2024-03-22 17:50:34.395602", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Invoice", From cf770e784daf1d7660b8163c48c4b9310f141474 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Mon, 25 Mar 2024 02:57:34 +0000 Subject: [PATCH 19/30] chore(release): Bumped to Version 14.65.8 ## [14.65.8](https://github.com/frappe/erpnext/compare/v14.65.7...v14.65.8) (2024-03-25) ### Bug Fixes * reset update outstanding flag for old records ([73c534c](https://github.com/frappe/erpnext/commit/73c534cf1a1bcaddd3c7017876503df5452eac5c)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 7675494209f..0d3ffcf2d09 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.65.7" +__version__ = "14.65.8" def get_default_company(user=None): From 4ea3876f3094a08d8e7f3892330e773f7b3d8d99 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 27 Mar 2024 03:27:23 +0000 Subject: [PATCH 20/30] chore(release): Bumped to Version 14.66.0 # [14.66.0](https://github.com/frappe/erpnext/compare/v14.65.8...v14.66.0) (2024-03-27) ### Bug Fixes * achieved targets for sales partners ([f9ab763](https://github.com/frappe/erpnext/commit/f9ab763cc8a7c592fd47e25b63b9ad1e5b32c988)) * Add default finance book check in P&L statement ([4485121](https://github.com/frappe/erpnext/commit/44851212551b48245b656633588704e31e89d437)) * incorrect total qty in job card ([fb252ec](https://github.com/frappe/erpnext/commit/fb252ec29acb51090b93b77ef795985776363300)) * pass empty string email content of pos invoice ([ee7bd98](https://github.com/frappe/erpnext/commit/ee7bd988788a49f7bda35eaa0dcb525983684cbf)) * permissions during bulk transaction logs ([99faafb](https://github.com/frappe/erpnext/commit/99faafb5be7ee8faef64c549a0ac47a3208a0901)) * rate not fetching from the item price ([9b3c4ac](https://github.com/frappe/erpnext/commit/9b3c4ac5757d049b6ed5f48a9f13572b383eba09)) * rate reset to zero ([2f839fb](https://github.com/frappe/erpnext/commit/2f839fbf6dcb04d56a452ccd139d9d2396b1912f)) * remove microsecond from posting datetime ([#40017](https://github.com/frappe/erpnext/issues/40017)) ([c3f9338](https://github.com/frappe/erpnext/commit/c3f93384301c64e0b38df7ca291d0a8f8d01244d)) * show correct variance for durations with no vouchers ([fe3bee4](https://github.com/frappe/erpnext/commit/fe3bee44e21ea2c96f30d653f7fec7040493db09)) * style for tax breakup ([e922ac7](https://github.com/frappe/erpnext/commit/e922ac7c31a9f3d7ec5b43a1601638266da2e81e)) * use Text Editor for rendering tax breakup table ([bba1ac5](https://github.com/frappe/erpnext/commit/bba1ac5735a3597dba06d9f5661fc15475a83051)) * validate gl for previous fiscal year ([82b6133](https://github.com/frappe/erpnext/commit/82b613353bfcbfbcb436aec847986cb1773c74bc)) * wrong buying amount if delivered and billed qty varies ([2b31113](https://github.com/frappe/erpnext/commit/2b311131ba9346dfd4a0246d6d2261be224631c6)) ### Features * bisect doctype ([5ad3918](https://github.com/frappe/erpnext/commit/5ad39182321cdab8fe211adb2b5f28957260ab3b)) * nodes doctype ([6afb6ff](https://github.com/frappe/erpnext/commit/6afb6ff4dff51c861901c828061a11fb40ae4364)) ### Performance Improvements * add in some indexes (backport [#40590](https://github.com/frappe/erpnext/issues/40590)) ([#40604](https://github.com/frappe/erpnext/issues/40604)) ([390d3a6](https://github.com/frappe/erpnext/commit/390d3a6a9fdfbe35ed1cfcd8c6cfecdde97c7d36)) * new column posting datetime in SLE to optimize stock ledger related queries ([5e68ebd](https://github.com/frappe/erpnext/commit/5e68ebd030418e589bebc8bdb6f041ef00a20625)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 0d3ffcf2d09..fc00bf28d1a 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.65.8" +__version__ = "14.66.0" def get_default_company(user=None): From af6dd3bcfb5d13e80b5774ed396788c5e118d9c1 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Wed, 27 Mar 2024 15:07:44 +0530 Subject: [PATCH 21/30] fix: Priority not copied from project template (cherry picked from commit 33fd7b8a1f125e0387a7a7851a149f91297b9958) (cherry picked from commit 4f4470b9d209dc5b2c04a2c61029d69dd4f976c8) --- erpnext/projects/doctype/project/project.py | 1 + erpnext/projects/doctype/project/test_project.py | 9 +++++++-- erpnext/projects/doctype/task/test_task.py | 2 ++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py index 748c755d377..8704147cd22 100644 --- a/erpnext/projects/doctype/project/project.py +++ b/erpnext/projects/doctype/project/project.py @@ -87,6 +87,7 @@ class Project(Document): is_group=task_details.is_group, color=task_details.color, template_task=task_details.name, + priority=task_details.priority, ) ).insert() diff --git a/erpnext/projects/doctype/project/test_project.py b/erpnext/projects/doctype/project/test_project.py index e49fecd1f47..b8340ffe193 100644 --- a/erpnext/projects/doctype/project/test_project.py +++ b/erpnext/projects/doctype/project/test_project.py @@ -23,7 +23,11 @@ class TestProject(FrappeTestCase): task1 = task_exists("Test Template Task with No Parent and Dependency") if not task1: task1 = create_task( - subject="Test Template Task with No Parent and Dependency", is_template=1, begin=5, duration=3 + subject="Test Template Task with No Parent and Dependency", + is_template=1, + begin=5, + duration=3, + priority="High", ) template = make_project_template( @@ -32,11 +36,12 @@ class TestProject(FrappeTestCase): project = get_project(project_name, template) tasks = frappe.get_all( "Task", - ["subject", "exp_end_date", "depends_on_tasks"], + ["subject", "exp_end_date", "depends_on_tasks", "priority"], dict(project=project.name), order_by="creation asc", ) + self.assertEqual(tasks[0].priority, "High") self.assertEqual(tasks[0].subject, "Test Template Task with No Parent and Dependency") self.assertEqual(getdate(tasks[0].exp_end_date), calculate_end_date(project, 5, 3)) self.assertEqual(len(tasks), 1) diff --git a/erpnext/projects/doctype/task/test_task.py b/erpnext/projects/doctype/task/test_task.py index c0333f8f590..ea7d6edcdf9 100644 --- a/erpnext/projects/doctype/task/test_task.py +++ b/erpnext/projects/doctype/task/test_task.py @@ -122,6 +122,7 @@ def create_task( begin=0, duration=0, save=True, + priority=None, ): if not frappe.db.exists("Task", subject): task = frappe.new_doc("Task") @@ -139,6 +140,7 @@ def create_task( task.duration = duration task.is_group = is_group task.parent_task = parent_task + task.priority = priority if save: task.save() else: From 5827bdcbc2ff3670bc3ea74b1ef64db54e9b831e Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 27 Mar 2024 11:21:16 +0000 Subject: [PATCH 22/30] chore(release): Bumped to Version 14.66.1 ## [14.66.1](https://github.com/frappe/erpnext/compare/v14.66.0...v14.66.1) (2024-03-27) ### Bug Fixes * Priority not copied from project template ([af6dd3b](https://github.com/frappe/erpnext/commit/af6dd3bcfb5d13e80b5774ed396788c5e118d9c1)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index fc00bf28d1a..1a3426fea9d 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.66.0" +__version__ = "14.66.1" def get_default_company(user=None): From 0322c1a36ea9ca92c217d9cdec52a0ee5d687f72 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 28 Mar 2024 13:28:59 +0530 Subject: [PATCH 23/30] fix: use sql to clear comments (cherry picked from commit 1f46c1530e68263ca2b5f9f86f59bb06063cd05e) --- .../transaction_deletion_record.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py index db5024bbc19..c32df4ec9d0 100644 --- a/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py +++ b/erpnext/setup/doctype/transaction_deletion_record/transaction_deletion_record.py @@ -388,17 +388,11 @@ class TransactionDeletionRecord(Document): frappe.delete_doc("Communication", batch, ignore_permissions=True) def delete_comments(self, doctype, reference_doc_names): - comments = frappe.get_all( - "Comment", - filters={"reference_doctype": doctype, "reference_name": ["in", reference_doc_names]}, - ) - comment_names = [c.name for c in comments] - - if not comment_names: - return - - for batch in create_batch(comment_names, self.batch_size): - frappe.delete_doc("Comment", batch, ignore_permissions=True) + if reference_doc_names: + comment = qb.DocType("Comment") + qb.from_(comment).delete().where( + (comment.reference_doctype == doctype) & (comment.reference_name.isin(reference_doc_names)) + ).run() def unlink_attachments(self, doctype, reference_doc_names): files = frappe.get_all( From c1a95c05bc275a8c1efcd9a79d52b9ebe3cc6f45 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Fri, 29 Mar 2024 05:41:39 +0000 Subject: [PATCH 24/30] chore(release): Bumped to Version 14.66.2 ## [14.66.2](https://github.com/frappe/erpnext/compare/v14.66.1...v14.66.2) (2024-03-29) ### Bug Fixes * use sql to clear comments ([0322c1a](https://github.com/frappe/erpnext/commit/0322c1a36ea9ca92c217d9cdec52a0ee5d687f72)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 1a3426fea9d..7e2270131e0 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.66.1" +__version__ = "14.66.2" def get_default_company(user=None): From fb076d34b1e446fea95dbc7555ea999fb61e02ce Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 3 Apr 2024 10:32:43 +0000 Subject: [PATCH 25/30] chore(release): Bumped to Version 14.66.3 ## [14.66.3](https://github.com/frappe/erpnext/compare/v14.66.2...v14.66.3) (2024-04-03) ### Bug Fixes * cost center shouldn't update debit/credit in Exc gain/loss JV ([f66b53b](https://github.com/frappe/erpnext/commit/f66b53b2c1f2855ad72500731c350bc37ccf8218)) * do not fetch received items in purchase receipt ([e778d7e](https://github.com/frappe/erpnext/commit/e778d7e69041f2f4cd63c6ecaa23a8146c86fe4f)) * linter issues ([515f933](https://github.com/frappe/erpnext/commit/515f93336263b4a865b66bd79fe8e884c88b79aa)) * markdown to text editor set for supplier quotation ([b5629d2](https://github.com/frappe/erpnext/commit/b5629d2d4e93adffda39f027a2de861167b709b6)) * payment_order_status should be no_copy ([8dff18e](https://github.com/frappe/erpnext/commit/8dff18eab478a3a17d485dc500dbcdeda84eaf0f)) * Priority not copied from project template ([4f4470b](https://github.com/frappe/erpnext/commit/4f4470b9d209dc5b2c04a2c61029d69dd4f976c8)) * show currency symbol in base currency in fixed asset register report ([cfe5f00](https://github.com/frappe/erpnext/commit/cfe5f009f6eef125d836601ab72d1913b50d90e9)) * show future payments allocated sales returns is considered as payment ([803ed90](https://github.com/frappe/erpnext/commit/803ed904a9aa1201af0b7a701861ad03a8306fcd)) * Warehouse linked company name in multicompany setup (backport [#40779](https://github.com/frappe/erpnext/issues/40779)) ([#40780](https://github.com/frappe/erpnext/issues/40780)) ([ceac42d](https://github.com/frappe/erpnext/commit/ceac42dfaa691d169603a529545c6fd70facf247)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 7e2270131e0..b82a818ad05 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.66.2" +__version__ = "14.66.3" def get_default_company(user=None): From 60ba62e882f71895256e763d830fb06de2e6ed8b Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Sat, 6 Apr 2024 15:29:00 +0530 Subject: [PATCH 26/30] fix: incorrect operator causing incorrect validation (cherry picked from commit 6b317b0c0d94f8c65743bedb444ef0a3d10beaa6) (cherry picked from commit 7e1ab75b382d18d8453d59c496f20641567851de) --- .../doctype/closing_stock_balance/closing_stock_balance.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/closing_stock_balance/closing_stock_balance.py b/erpnext/stock/doctype/closing_stock_balance/closing_stock_balance.py index e905f673365..c762ad68adc 100644 --- a/erpnext/stock/doctype/closing_stock_balance/closing_stock_balance.py +++ b/erpnext/stock/doctype/closing_stock_balance/closing_stock_balance.py @@ -44,7 +44,7 @@ class ClosingStockBalance(Document): & ( (table.from_date.between(self.from_date, self.to_date)) | (table.to_date.between(self.from_date, self.to_date)) - | (table.from_date >= self.from_date and table.to_date >= self.to_date) + | ((table.from_date >= self.from_date) & (table.to_date >= self.to_date)) ) ) ) From 8d8feadeae1b52b82783f2bdbd32ef4cd8067688 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Sun, 7 Apr 2024 12:34:56 +0000 Subject: [PATCH 27/30] chore(release): Bumped to Version 14.66.4 ## [14.66.4](https://github.com/frappe/erpnext/compare/v14.66.3...v14.66.4) (2024-04-07) ### Bug Fixes * incorrect operator causing incorrect validation ([60ba62e](https://github.com/frappe/erpnext/commit/60ba62e882f71895256e763d830fb06de2e6ed8b)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index b82a818ad05..09803b97019 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.66.3" +__version__ = "14.66.4" def get_default_company(user=None): From cc6bacb1902b1a9b603ba91ebfb2309386c9d7b1 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Wed, 10 Apr 2024 14:22:01 +0000 Subject: [PATCH 28/30] chore(release): Bumped to Version 14.67.0 # [14.67.0](https://github.com/frappe/erpnext/compare/v14.66.4...v14.67.0) (2024-04-10) ### Bug Fixes * Get pro-rata depr amount based on correct days ([10d7600](https://github.com/frappe/erpnext/commit/10d760089e3ad44859c89dac2250c296c68dc764)) * group warehouse added in the stock reconciliation ([9dea6d3](https://github.com/frappe/erpnext/commit/9dea6d3393c6f02feed666e05d3ae792bee2afc1)) * ignore dimension validation for cancelled entries ([9745724](https://github.com/frappe/erpnext/commit/9745724d413d65ff533654a4a2a66d8ddae892a9)) * incorrect currency symbol in General Ledger print ([5896e75](https://github.com/frappe/erpnext/commit/5896e755bf3cf9e5b4385699b6ddfc7cef852b4f)) * incorrect operator causing incorrect validation ([7e1ab75](https://github.com/frappe/erpnext/commit/7e1ab75b382d18d8453d59c496f20641567851de)) * query_report.trigger_refresh is not a function ([a6145fa](https://github.com/frappe/erpnext/commit/a6145fa13c7dc6d5334cef7aeb9d712c2c9f4c27)) * translatable web footer ([#40834](https://github.com/frappe/erpnext/issues/40834)) ([b55d859](https://github.com/frappe/erpnext/commit/b55d8597e8dffee0412c3806f76b99ac1920e35c)) * use reference type name to update exc rate ([09cda60](https://github.com/frappe/erpnext/commit/09cda60bdf11444bb05d6ec8968deffee59559f7)) ### Features * ledger health doctype ([b667a02](https://github.com/frappe/erpnext/commit/b667a024709ce70851eaf308ff48e6550e9c07af)) * new hook `fields_for_group_similar_items` to group additional fields for print formats ([#40831](https://github.com/frappe/erpnext/issues/40831)) ([0172880](https://github.com/frappe/erpnext/commit/0172880fd3a20a4a6a07685c208bbb5d1df7afd9)) ### Performance Improvements * memory consumption for the Batch-Wise Balance History report ([3165682](https://github.com/frappe/erpnext/commit/3165682d7a6efb73b1123998417ef0356c276bd2)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 09803b97019..4901e265147 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.66.4" +__version__ = "14.67.0" def get_default_company(user=None): From 4672f59599bfc0d57f0d0479058b37b1a3d07d74 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 12 Apr 2024 15:30:27 +0530 Subject: [PATCH 29/30] fix: Subcontracting Receipt GL Entries (backport #40773) (backport #40978) (#40982) * fix: Subcontracting Receipt GL Entries (backport #40773) (#40978) * fix: Subcontracting Receipt GL Entries (cherry picked from commit 9808ae92a44328f357c224e2f61c89e79c9255f7) * chore: linter --------- Co-authored-by: s-aga-r (cherry picked from commit c2c4548cc0013dd058e564157c767e9b18f66582) # Conflicts: # erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py * chore: `conflicts` --------- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: s-aga-r --- .../subcontracting_receipt.py | 89 +++++++++++++------ .../test_subcontracting_receipt.py | 67 ++++++++++---- 2 files changed, 112 insertions(+), 44 deletions(-) diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py index 3e5e2b42c04..84a90707c31 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py @@ -307,8 +307,6 @@ class SubcontractingReceipt(SubcontractingController): return process_gl_map(gl_entries) def make_item_gl_entries(self, gl_entries, warehouse_account=None): - stock_rbnb = self.get_company_default("stock_received_but_not_billed") - warehouse_with_no_account = [] for item in self.items: @@ -326,29 +324,39 @@ class SubcontractingReceipt(SubcontractingController): "stock_value_difference", ) - warehouse_account_name = warehouse_account[item.warehouse]["account"] - warehouse_account_currency = warehouse_account[item.warehouse]["account_currency"] + accepted_warehouse_account = warehouse_account[item.warehouse]["account"] supplier_warehouse_account = warehouse_account.get(self.supplier_warehouse, {}).get("account") - supplier_warehouse_account_currency = warehouse_account.get(self.supplier_warehouse, {}).get( - "account_currency" - ) remarks = self.get("remarks") or _("Accounting Entry for Stock") - # FG Warehouse Account (Debit) + # Accepted Warehouse Account (Debit) self.add_gl_entry( gl_entries=gl_entries, - account=warehouse_account_name, + account=accepted_warehouse_account, cost_center=item.cost_center, debit=stock_value_diff, credit=0.0, remarks=remarks, - against_account=stock_rbnb, - account_currency=warehouse_account_currency, + against_account=item.expense_account, + account_currency=get_account_currency(accepted_warehouse_account), + project=item.project, + item=item, + ) + # Expense Account (Credit) + self.add_gl_entry( + gl_entries=gl_entries, + account=item.expense_account, + cost_center=item.cost_center, + debit=0.0, + credit=stock_value_diff, + remarks=remarks, + against_account=accepted_warehouse_account, + account_currency=get_account_currency(item.expense_account), + project=item.project, item=item, ) - # Supplier Warehouse Account (Credit) - if flt(item.rm_supp_cost) and warehouse_account.get(self.supplier_warehouse): + if flt(item.rm_supp_cost) and supplier_warehouse_account: + # Supplier Warehouse Account (Credit) self.add_gl_entry( gl_entries=gl_entries, account=supplier_warehouse_account, @@ -356,40 +364,64 @@ class SubcontractingReceipt(SubcontractingController): debit=0.0, credit=flt(item.rm_supp_cost), remarks=remarks, - against_account=warehouse_account_name, - account_currency=supplier_warehouse_account_currency, + against_account=item.expense_account, + account_currency=get_account_currency(supplier_warehouse_account), + project=item.project, item=item, ) - - # Expense Account (Credit) - if flt(item.service_cost_per_qty): + # Expense Account (Debit) self.add_gl_entry( gl_entries=gl_entries, account=item.expense_account, cost_center=item.cost_center, - debit=0.0, - credit=flt(item.service_cost_per_qty) * flt(item.qty), + debit=flt(item.rm_supp_cost), + credit=0.0, remarks=remarks, - against_account=warehouse_account_name, + against_account=supplier_warehouse_account, account_currency=get_account_currency(item.expense_account), + project=item.project, item=item, ) - # Loss Account (Credit) - divisional_loss = flt(item.amount - stock_value_diff, item.precision("amount")) + # Expense Account (Debit) + if item.additional_cost_per_qty: + self.add_gl_entry( + gl_entries=gl_entries, + account=item.expense_account, + cost_center=self.cost_center or self.get_company_default("cost_center"), + debit=item.qty * item.additional_cost_per_qty, + credit=0.0, + remarks=remarks, + against_account=None, + account_currency=get_account_currency(item.expense_account), + ) - if divisional_loss: - loss_account = item.expense_account + if divisional_loss := flt(item.amount - stock_value_diff, item.precision("amount")): + loss_account = self.get_company_default("stock_adjustment_account", ignore_validation=True) + # Loss Account (Credit) self.add_gl_entry( gl_entries=gl_entries, account=loss_account, cost_center=item.cost_center, + debit=0.0, + credit=divisional_loss, + remarks=remarks, + against_account=item.expense_account, + account_currency=get_account_currency(loss_account), + project=item.project, + item=item, + ) + # Expense Account (Debit) + self.add_gl_entry( + gl_entries=gl_entries, + account=item.expense_account, + cost_center=item.cost_center, debit=divisional_loss, credit=0.0, remarks=remarks, - against_account=warehouse_account_name, - account_currency=get_account_currency(loss_account), + against_account=loss_account, + account_currency=get_account_currency(item.expense_account), project=item.project, item=item, ) @@ -399,7 +431,6 @@ class SubcontractingReceipt(SubcontractingController): ): warehouse_with_no_account.append(item.warehouse) - # Additional Costs Expense Accounts (Credit) for row in self.additional_costs: credit_amount = ( flt(row.base_amount) @@ -407,6 +438,7 @@ class SubcontractingReceipt(SubcontractingController): else flt(row.amount) ) + # Additional Cost Expense Account (Credit) self.add_gl_entry( gl_entries=gl_entries, account=row.expense_account, @@ -415,6 +447,7 @@ class SubcontractingReceipt(SubcontractingController): credit=credit_amount, remarks=remarks, against_account=None, + account_currency=get_account_currency(row.expense_account), ) if warehouse_with_no_account: diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py index b05ed755c7f..a4986989aac 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/test_subcontracting_receipt.py @@ -442,26 +442,15 @@ class TestSubcontractingReceipt(FrappeTestCase): self.assertEqual(cint(erpnext.is_perpetual_inventory_enabled(scr.company)), 1) gl_entries = get_gl_entries("Subcontracting Receipt", scr.name) - self.assertTrue(gl_entries) fg_warehouse_ac = get_inventory_account(scr.company, scr.items[0].warehouse) - supplier_warehouse_ac = get_inventory_account(scr.company, scr.supplier_warehouse) expense_account = scr.items[0].expense_account - - if fg_warehouse_ac == supplier_warehouse_ac: - expected_values = { - fg_warehouse_ac: [2100.0, 1000.0], # FG Amount (D), RM Cost (C) - expense_account: [0.0, 1000.0], # Service Cost (C) - additional_costs_expense_account: [0.0, 100.0], # Additional Cost (C) - } - else: - expected_values = { - fg_warehouse_ac: [2100.0, 0.0], # FG Amount (D) - supplier_warehouse_ac: [0.0, 1000.0], # RM Cost (C) - expense_account: [0.0, 1000.0], # Service Cost (C) - additional_costs_expense_account: [0.0, 100.0], # Additional Cost (C) - } + expected_values = { + fg_warehouse_ac: [2100.0, 1000], + expense_account: [1100, 2100], + additional_costs_expense_account: [0.0, 100.0], + } for gle in gl_entries: self.assertEqual(expected_values[gle.account][0], gle.debit) @@ -471,6 +460,52 @@ class TestSubcontractingReceipt(FrappeTestCase): scr.cancel() self.assertTrue(get_gl_entries("Subcontracting Receipt", scr.name)) + def test_subcontracting_receipt_with_zero_service_cost(self): + warehouse = "Stores - TCP1" + service_items = [ + { + "warehouse": warehouse, + "item_code": "Subcontracted Service Item 7", + "qty": 10, + "rate": 0, + "fg_item": "Subcontracted Item SA7", + "fg_item_qty": 10, + }, + ] + sco = get_subcontracting_order( + company="_Test Company with perpetual inventory", + warehouse=warehouse, + supplier_warehouse="Work In Progress - TCP1", + service_items=service_items, + ) + rm_items = get_rm_items(sco.supplied_items) + itemwise_details = make_stock_in_entry(rm_items=rm_items) + make_stock_transfer_entry( + sco_no=sco.name, + rm_items=rm_items, + itemwise_details=copy.deepcopy(itemwise_details), + ) + scr = make_subcontracting_receipt(sco.name) + scr.save() + scr.submit() + + gl_entries = get_gl_entries("Subcontracting Receipt", scr.name) + self.assertTrue(gl_entries) + + fg_warehouse_ac = get_inventory_account(scr.company, scr.items[0].warehouse) + expense_account = scr.items[0].expense_account + expected_values = { + fg_warehouse_ac: [1000, 1000], + expense_account: [1000, 1000], + } + + for gle in gl_entries: + self.assertEqual(expected_values[gle.account][0], gle.debit) + self.assertEqual(expected_values[gle.account][1], gle.credit) + + scr.reload() + scr.cancel() + def test_supplied_items_consumed_qty(self): # Set Backflush Based On as "Material Transferred for Subcontracting" to transfer RM's more than the required qty set_backflush_based_on("Material Transferred for Subcontract") From 7a6c0e52836d228a98cfbcdeac861568a19c6f36 Mon Sep 17 00:00:00 2001 From: Frappe PR Bot Date: Fri, 12 Apr 2024 10:01:51 +0000 Subject: [PATCH 30/30] chore(release): Bumped to Version 14.67.1 ## [14.67.1](https://github.com/frappe/erpnext/compare/v14.67.0...v14.67.1) (2024-04-12) ### Bug Fixes * Subcontracting Receipt GL Entries (backport [#40773](https://github.com/frappe/erpnext/issues/40773)) (backport [#40978](https://github.com/frappe/erpnext/issues/40978)) ([#40982](https://github.com/frappe/erpnext/issues/40982)) ([4672f59](https://github.com/frappe/erpnext/commit/4672f59599bfc0d57f0d0479058b37b1a3d07d74)) --- erpnext/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/__init__.py b/erpnext/__init__.py index 4901e265147..f06f45bf862 100644 --- a/erpnext/__init__.py +++ b/erpnext/__init__.py @@ -3,7 +3,7 @@ import inspect import frappe -__version__ = "14.67.0" +__version__ = "14.67.1" def get_default_company(user=None):