Compare commits

..

2940 Commits

Author SHA1 Message Date
Ankush Menat
2c5ea7417c fix(UX): separate weekly offs from actual holidays while sorting
It's annoying to scroll to multiple pages to see actual holidays, people
usually don't need to see weekly offs on this page.

Alternate: Always sort and show upcoming holidays first and past holidays at end.
2023-10-21 22:06:57 +05:30
Deepesh Garg
2a7d1c4c8d Merge pull request #37595 from vorasmit/purchase-gl
fix: add regional support to extend purchase gl entries
2023-10-20 16:51:58 +05:30
rohitwaghchaure
14b009b093 fix: incorrect cost center in the purchase invoice (#37591) 2023-10-20 16:22:29 +05:30
s-aga-r
530922848f Merge pull request #37605 from blaggacao/fix/rename-dt-fetch-stop-link-action
fix(delivery): rename dt fetch stop action
2023-10-20 16:08:44 +05:30
David Arnold
79d51a0a0b fix(delivery): rename dt fetch stop action 2023-10-20 12:31:46 +02:00
Ankush Menat
ce7ac29d06 fix: Correctly extract last message (#37602)
frappe.message_log now contains plain dictionary and not JSON strings,
so no need to load them.
2023-10-20 10:20:40 +00:00
Smit Vora
ff7108a3b1 fix: update existing doc if possible 2023-10-20 09:33:37 +05:30
Smit Vora
77cc91d06b fix: add regional support to extend purchase gl entries 2023-10-19 22:35:55 +05:30
Ankush Menat
40cdde8820 ci: seutp v15 config
https://github.com/frappe/frappe/issues/22817
2023-10-19 15:55:02 +05:30
rohitwaghchaure
d09618bf05 chore: remove debugger (#37584) 2023-10-19 12:35:36 +05:30
Deepesh Garg
6750af90f7 Merge pull request #37562 from GursheenK/subscription-tax-filters
fix(minor): filter tax template based on company in subscription
2023-10-18 17:49:09 +05:30
rohitwaghchaure
10311ff114 fix: payment entry count on supplier dashboard (#37571) 2023-10-18 17:42:35 +05:30
rohitwaghchaure
2851a41310 fix: Issues related to RFQ and Supplier Quotation on Portal (#37565)
fix: RFQ and Supplier Quotation for Portal
2023-10-18 16:31:35 +05:30
Gursheen Anand
1a2f659de2 fix: filter tax template based on company 2023-10-18 11:42:19 +05:30
Ankush Menat
1d186efaab Merge pull request #37554 from frappe/e_com_perms
fix: e-commerce permissions for address
2023-10-18 11:08:16 +05:30
s-aga-r
fbd8660403 Merge pull request #37539 from HarryPaulo/fix-purchase-order-analyse-invoiced-qty
fix: billed_qty to show a sum of all invoiced qty from the purchase order item.
2023-10-18 11:07:34 +05:30
ruthra kumar
2bcda494b2 Merge pull request #37549 from ruthra-kumar/use_account_in_key_for_ar_ap_reports
refactor: use account in key while grouping voucher in ar/ap report
2023-10-18 09:09:16 +05:30
Deepesh Garg
14760d9aea Merge pull request #37550 from deepeshgarg007/sales_order_item_dimensions
chore: Add accounting dimensions to Sales Order Item table
2023-10-17 22:54:04 +05:30
Ankush Menat
c197d37404 Merge branch 'develop' into e_com_perms 2023-10-17 22:29:44 +05:30
Ankush Menat
f4d74990fe fix: E-commerce permissions 2023-10-17 22:28:04 +05:30
ruthra kumar
244cec64b2 test: report output if party is missing 2023-10-17 20:40:50 +05:30
Ankush Menat
0931e93b4c Merge pull request #37552 from frappe/addr_fetch
fix: Ignore addr permission in internal code
2023-10-17 20:00:44 +05:30
Ankush Menat
7b9cedebf6 fix: Ignore addr permission in internal code 2023-10-17 19:00:52 +05:30
Deepesh Garg
88be7ada33 Merge branch 'develop' of https://github.com/frappe/erpnext into sales_order_item_dimensions 2023-10-17 18:30:49 +05:30
Deepesh Garg
e31db18912 chore: Add accounting dimensions to Sales Order Item table 2023-10-17 18:19:47 +05:30
ruthra kumar
601ab4567e refactor: use account in key while grouping voucher in ar/ap report 2023-10-17 17:48:04 +05:30
Sabu Siyad
f900a78995 refactor!: drop ecommerce in favor of webshop (#33265)
* refactor!: remove ecommerce item group field check

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!: remove `e_commerce` directory

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!: remove `get_context` from `item_group`

https://frappeframework.com/docs/v14/user/en/guides/portal-development/context

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!: remove related `./templates`

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!(navbar): remove wishlist (ecommerce)

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!(js): remove js from scripts

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!: remove `www/all-products`

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!: remove pages and js

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!: remove js/customer_reviews

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!(portal utils): remove shopping cart debtor account

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!: remove e_commerce events from hooks

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!(web): remove e_commerce js from bundle

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!(setup): remove shopping cart setup

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!: remove pages

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor(item): remove website item button

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!(payment request): remove `on_payment_authorized`

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!: @staticmethod `get_gateway_details`

to avoid monkey patching, in custom apps
https://discuss.erpnext.com/t/how-to-override-method-in-frappe/28786/36

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!(pages): remove product page

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!(homepage): do not setup website items

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor(workspace): remove link to ecommerce settings

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!(www): remove shop-by-category

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!(homepage): remove featured product

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor: remove products in homepage

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor(homepage): remove explore button

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor: remove products fields from homepage

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* Revert "refactor!: @staticmethod `get_gateway_details`"

This reverts commit 561bcd96680a930bb92627869502d9346b10611b.

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!: remove payment gateway e_commerce import

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* chore: pre-commit

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!: pass `party` into `get_price`

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor: move `get_item_codes_by_attributes` to `utilities/product`

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* refactor!(quotation): input customer group

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* chore: pre-commit

* refactor: remove custom `navbar_items.html`

* refactor!(item): remove `published_in_website`

* refactor: move `validate_duplicate_website_item` before rename

* test: remove `test_shopping_cart_without_website_item`

* chore: add doctype drop patch

* refactor: removed website item related code

* refactor: removed shopping_cart code

* refactor: removed e-commerce related patches

* refactor: removed website related fields from item group

* fix: patch create_asset_depreciation_schedules_from_assets, KeyError: '0K BU64 AUY'

---------

Signed-off-by: Sabu Siyad <hello@ssiyad.com>
Co-authored-by: Rohit Waghchaure <rohitw1991@gmail.com>
2023-10-17 17:05:44 +05:30
s-aga-r
9d687ca6e9 Merge pull request #37541 from s-aga-r/FIX-PROJECT-TEST
fix(test): project test case
2023-10-17 14:13:38 +05:30
s-aga-r
fd6aee15e6 fix(test): project test case 2023-10-17 12:48:07 +05:30
ruthra kumar
5bb3e290d2 Merge pull request #37330 from ruthra-kumar/provision_to_pick_exc_rate_on_transaction_date
refactor: checkbox to toggle exchange rate inheritence in PO->PI
2023-10-17 09:45:33 +05:30
HarryPaulo
8a72f4f58a fix: billed_qty to show a sum of all invoiced qty from the purchase order item. 2023-10-16 18:12:10 -03:00
mergify[bot]
27a1e3bf83 feat: validate negative stock for inventory dimension (backport #37373) (#37383)
* feat: validate negative stock for inventory dimension (#37373)

* feat: validate negative stock for inventory dimension

* test: test case for validate negative stock for inv dimension

(cherry picked from commit 1480acabb0)

# Conflicts:
#	erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py
#	erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py
#	erpnext/stock/stock_ledger.py

* chore: fix conflicts

* chore: fix conflicts

* chore: fix conflicts

* chore: fix linter issue

* chore: fix linter issue

* chore: fix linter issue

* chore: fix linter issue

* chore: fix linter issue

---------

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-10-16 19:15:18 +05:30
Ankush Menat
6e3e4c8ade Merge pull request #37532 from frappe/cust_role
fix: keep customer/supplier website role by default
2023-10-16 17:29:54 +05:30
Ankush Menat
d2096cfdb7 fix: keep customer/supplier website role by default 2023-10-16 16:55:09 +05:30
s-aga-r
f59066c185 Merge pull request #37528 from s-aga-r/FIX-4360
perf: index `dn_detail` in `Delivery Note Item`
2023-10-16 16:42:32 +05:30
s-aga-r
5b4528e614 perf: index dn_detail in Delivery Note Item 2023-10-16 16:26:03 +05:30
ruthra kumar
08315522bb refactor: checkbox to toggle exchange rate inheritence in PO->PI 2023-10-16 16:25:19 +05:30
Ankush Menat
2790ae0744 fix: Update frappe.link_search usage
refer https://github.com/frappe/frappe/pull/22745
2023-10-16 15:43:14 +05:30
s-aga-r
08aec7f6d7 Merge pull request #37517 from s-aga-r/FIX-4388-1
fix(test): purchase return test case
2023-10-16 01:12:15 +05:30
s-aga-r
240b161e81 fix: purchase return test case 2023-10-16 01:08:42 +05:30
s-aga-r
0f6d67d8d4 Merge pull request #37513 from s-aga-r/FIX-4388
fix: GL Entries not getting created for PR Return
2023-10-16 00:33:21 +05:30
s-aga-r
253d4782c6 test: add test case for PR return with zero rate 2023-10-15 23:34:58 +05:30
Deepesh Garg
bd2d04e222 Merge pull request #37312 from blaggacao/feat/add-delivery-roles
fix(stock): add delivery user and manager role
2023-10-15 20:28:42 +05:30
Deepesh Garg
10a9a7c52a Merge pull request #36780 from rtdany10/rounded-row-wise-tax
feat: item(row) wise tax amount rounding
2023-10-15 20:01:34 +05:30
s-aga-r
795020dddc Merge pull request #37414 from s-aga-r/FIX-4347
fix: consider received qty while creating SO -> MR
2023-10-15 19:11:14 +05:30
Deepesh Garg
15df4924e8 Merge pull request #36797 from rtdany10/uae-item-tax
fix(regional): item wise tax calc issue
2023-10-15 18:17:40 +05:30
Deepesh Garg
621da178e1 Merge branch 'develop' of https://github.com/frappe/erpnext into rounded-row-wise-tax 2023-10-15 18:10:27 +05:30
s-aga-r
46add06a29 fix: GL Entries not getting created for PR Return 2023-10-15 15:46:29 +05:30
ruthra kumar
dd099be690 Merge pull request #37478 from ruthra-kumar/tds_from_journals
refactor: back calculate total amt for TDS
2023-10-15 10:51:42 +05:30
ruthra kumar
dfd40ca7b3 Merge pull request #37319 from ruthra-kumar/test_fixtures_for_sales_purchase_invoice
test: use fixtures for sales and purchase invoice
2023-10-15 10:16:22 +05:30
ruthra kumar
fbabf4ac2e refactor(test): make sure TDS Payable is available for testing 2023-10-15 08:57:38 +05:30
ruthra kumar
0207d6e7c9 refactor(test): make use of @change_settings in PI test cases 2023-10-15 08:57:38 +05:30
ruthra kumar
a2e064d214 refactor(test): use test fixture in purchase invoice 2023-10-15 08:57:38 +05:30
ruthra kumar
3bdf4f628c refactor(test): use test fixture in subscription 2023-10-15 08:57:38 +05:30
ruthra kumar
de9baef84a refactor(test): use @change_settings to fix failing test cases 2023-10-15 08:57:38 +05:30
ruthra kumar
8ebe5733ac refactor(test): fix broken test cases in Sales Invoice 2023-10-15 08:57:38 +05:30
ruthra kumar
58065f31b1 refactor(test): use @change_settings in sales invoice 2023-10-15 08:57:38 +05:30
ruthra kumar
fc50b174eb refactor(test): unset accounts frozen date 2023-10-15 08:57:38 +05:30
ruthra kumar
c322e5f381 test: use fixtures for sales and purchase invoice 2023-10-15 08:57:38 +05:30
s-aga-r
b2cee396ac fix: consider received qty while creating SO -> MR 2023-10-14 20:43:32 +05:30
s-aga-r
afef9dc8df Merge pull request #37182 from s-aga-r/MOVE-PAYMENTS-GATEWAYS
refactor!: move payment gateways to the payments app
2023-10-14 16:48:11 +05:30
ruthra kumar
f4a294c5ce Merge pull request #37495 from ruthra-kumar/keyerror_on_comparison_report
fix: keyerror on gl and pl comparision report
2023-10-14 12:15:19 +05:30
ruthra kumar
8ca0e4eacc Merge pull request #37435 from rtdany10/sp-gp-fix
fix(gp): wrong `allocated_amount` when grouped by Sales Person
2023-10-14 12:12:14 +05:30
ruthra kumar
ad00df0af6 fix: keyerror on gl and pl comparision report 2023-10-13 15:39:54 +05:30
Ankush Menat
5167fb2bae Merge pull request #37475 from iamrishiksahu/fix/#37231-doc-is-not-defined
fix: fixed the doc not defined issue.
2023-10-13 15:30:39 +05:30
ruthra kumar
479fe915af Merge pull request #37484 from ruthra-kumar/ignore_links_on_closing_balance_patch
refactor(patch): ignore links on closing balance patch
2023-10-13 09:18:41 +05:30
ruthra kumar
17ca8756a7 refactor(patch): ignore links on closing balance patch 2023-10-12 20:43:15 +05:30
Anand Baburajan
18e3a8907a fix: don't set finance books if gross_purchase_amount is not set (#37480) 2023-10-12 19:41:11 +05:30
ruthra kumar
2c56ee97c7 refactor: back calculate total amt for TDS 2023-10-12 16:03:26 +05:30
Rishik Sahu
5ebf7c8c29 fixed-#37231-changed-doc-to-d/closes-the-isse 2023-10-12 14:03:49 +05:30
Deepesh Garg
ff7c77e9fd Merge pull request #37418 from barredterra/de-is-return
fix: german tranlations of "Is Return"
2023-10-12 07:49:52 +05:30
ruthra kumar
510f12a1e8 Merge pull request #37436 from ruthra-kumar/validate_for_repost_only_for_critical_fields
refactor: for non-repost fields, don't validate
2023-10-11 20:03:16 +05:30
ruthra kumar
30adfa9844 Merge pull request #37459 from ruthra-kumar/validate_advances
refactor: add validation for Advances in SI/PI
2023-10-11 20:02:36 +05:30
ruthra kumar
0cdd6435a5 refactor: add validation for Advances in SI/PI 2023-10-11 14:42:23 +05:30
rohitwaghchaure
f3238f9105 fix: production plan reserved qty incorrect calculation (#37400) 2023-10-11 14:08:11 +05:30
s-aga-r
847f774c8b Merge pull request #37452 from s-aga-r/FIX-4407
fix(ux): allow MR to Stop until fully received
2023-10-11 13:50:20 +05:30
ruthra kumar
c1782c5015 refactor: for non-repost fields, don't validate 2023-10-11 13:30:21 +05:30
Dany Robert
6a27cbd61d Merge branch 'frappe:develop' into rounded-row-wise-tax 2023-10-11 12:31:13 +05:30
Ankush Menat
cea0d65fbd chore: disable beta release 2023-10-11 12:22:06 +05:30
Ankush Menat
99d3d317fe Merge pull request #37453 from akhilnarang/fix-ci
fix: use mariadb instead of mysql
2023-10-11 11:53:47 +05:30
Akhil Narang
4a6108e912 fix: use mariadb instead of mysql
Drop mysql-client in favour of mariadb-client

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-10-11 11:17:47 +05:30
s-aga-r
0d7a0f393d fix(ux): allow MR to Stop until fully received 2023-10-11 10:51:40 +05:30
Dany Robert
bda82bf1e9 fix(gp): wrong allocated_amount on multi sales person invoice 2023-10-10 10:30:09 +00:00
ruthra kumar
b495e5a5a1 Merge pull request #37393 from ruthra-kumar/import_financial_statements_in_bundle
refactor: import 'financial_statements.js' in erpnext bundle
2023-10-10 11:58:40 +05:30
s-aga-r
78eaf5d035 fix: fetch dependent task subject and project (#37401) 2023-10-10 11:05:24 +05:30
ruthra kumar
db317d67d5 Merge pull request #37204 from GursheenK/pe-allocation-for-term-inv
fix: allocate payment amount for split invoices in PE
2023-10-10 10:11:24 +05:30
ruthra kumar
3d99e5757e Merge pull request #37123 from blaggacao/fix/payment-request-rounding
fix: payment request rounding in multi-currency and on status update
2023-10-10 10:07:25 +05:30
David Arnold
fb7c5f6d91 fix(sales): add sales user to read stock settings for js refresh code path (#37317) 2023-10-10 07:56:54 +05:30
Bernd Oliver Sünderhauf
2d6f1f8598 fix(UX): Un-require description fields on items (#37354)
fix(UX): Un-require description fields on items.
2023-10-10 07:26:37 +05:30
barredterra
38ca164662 fix: german tranlations of "Is Return" 2023-10-09 23:45:58 +02:00
Anand Baburajan
6959c928c6 test: add product_code in create_loan_product (#37416) 2023-10-09 20:58:56 +05:30
RitvikSardana
2c899dd13a fix: customer group and territory not mandatory (#37050)
* fix: customer group and territory not mandatory

* fix: supplier group not required

* test: added test case for customer and supplier without group

* test: Customer without customer group and territory

* chore: remove unwanted changes

* test: Supplier without supplier group

* test: code cleanup

---------

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-10-09 20:21:25 +05:30
Deepesh Garg
c9dfb909a5 Merge pull request #37310 from deepeshgarg007/lead_details_qb
chore: rewrite query using query builder
2023-10-09 20:07:58 +05:30
Deepesh Garg
8f9dd5407b Merge pull request #37324 from blaggacao/fix/portal-tx-row-total-display
fix(portal): used rounded total in transaction rows, if enabled
2023-10-09 19:37:26 +05:30
Deepesh Garg
6d43f90dc2 Merge branch 'develop' of https://github.com/frappe/erpnext into lead_details_qb 2023-10-09 19:23:16 +05:30
Rucha Mahabal
788df14ae8 Merge pull request #37376 from barredterra/hrms-translations 2023-10-09 13:18:55 +05:30
ruthra kumar
411be583a3 Merge pull request #37395 from ruthra-kumar/exception_on_exporting_errored_rows_in_bank_statement_import
fix: exception on exporting errored rows
2023-10-08 18:20:30 +05:30
ruthra kumar
d3c6000904 fix: exception on exporting errored rows 2023-10-08 13:16:28 +05:30
ruthra kumar
40e7c43ce3 refactor: import financial_statement in erpnext bundle 2023-10-07 21:03:31 +05:30
ruthra kumar
7d11fe1633 Merge pull request #37289 from GursheenK/ar-ageing-summary
fix: ageing summary in SOA AR
2023-10-07 15:09:21 +05:30
mergify[bot]
10c666bf69 fix: incorrect status of the returned purchase receipt (backport #37300) (#37380)
fix: incorrect status of the returned purchase receipt (#37300)

(cherry picked from commit 63f45739e0)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-10-06 14:43:13 +05:30
barredterra
4b8dc8a35c refactor: migrate translations from HRMS 2023-10-05 16:58:26 +02:00
barredterra
4b4efbc7a6 refactor: migrate translations to HRMS 2023-10-05 16:55:29 +02:00
mergify[bot]
d2aa4d5d6b fix: validation message for valuation rate (backport #37301) (#37351)
fix: validation message for valuation rate (#37301)

(cherry picked from commit 643bb0511c)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-10-05 18:13:23 +05:30
ruthra kumar
27bb0b1130 Merge pull request #37370 from ruthra-kumar/fetch_company_address_for_lead_based_quotation
fix: fetch company details for Lead based quotation
2023-10-05 13:50:03 +05:30
ruthra kumar
f388864fd5 fix: fetch company details for Lead based quotation 2023-10-05 13:13:11 +05:30
ruthra kumar
c006c14aaa Merge pull request #37359 from ruthra-kumar/change_request_response_strucutre_on_exchangerate
refactor: add `access_key` field to facilitate use of exchangerate.host provider
2023-10-05 09:18:56 +05:30
ruthra kumar
9396fb77f4 Merge pull request #37294 from ruthra-kumar/restrict_payment_as_ref_in_je_from_ui
refactor: block Payment Entry as ref in Journals from UI
2023-10-05 08:53:35 +05:30
ruthra kumar
c8e3dc6c4c chore: refactor test case for exchangerate.host provider 2023-10-05 08:43:08 +05:30
ruthra kumar
81591a34c2 refactor: introduce access_key field 2023-10-05 08:43:08 +05:30
ruthra kumar
aad77b133b Merge pull request #37362 from anandbaburajan/asset_cap_wip_1
test: fixing test_capitalization_with_wip_composite_asset
2023-10-05 08:37:31 +05:30
anandbaburajan
9468513d7c test: fixing test_capitalization_with_wip_composite_asset 2023-10-04 22:11:15 +05:30
Jignesh (GreyCube Technologies)
9f33cc5cf3 fix(Employee): enable no_copy for relieving_date (#37344)
Co-authored-by: Rucha Mahabal <ruchamahabal2@gmail.com>
2023-10-04 13:10:27 +05:30
mergify[bot]
f4f40cc776 feat: composite WIP asset (copy #37352) (#37353)
* feat: wip composite asset

(cherry picked from commit 4907e7acd4)

# Conflicts:
#	erpnext/accounts/doctype/purchase_invoice_item/purchase_invoice_item.json
#	erpnext/assets/doctype/asset/asset.json
#	erpnext/stock/doctype/purchase_receipt_item/purchase_receipt_item.json

* chore: resolving conflicts

---------

Co-authored-by: anandbaburajan <anandbaburajan@gmail.com>
2023-10-04 10:29:18 +05:30
mergify[bot]
9be554a147 chore: fix linter issue (backport #37349) (#37350)
chore: fix linter issue (#37349)

(cherry picked from commit e975a10a75)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-10-03 22:11:10 +05:30
mergify[bot]
7729c1a413 fix: do not consider submitted Work Orders in the Production Plan Res… (backport #37343) (#37347)
fix: do not consider submitted Work Orders in the Production Plan Res… (#37343)

fix: do not consider submitted Work Orders in the Production Plan Reserve qty
(cherry picked from commit c3aeb2dec5)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-10-03 22:05:01 +05:30
mergify[bot]
8d99f9a12a fix: currency symbol in the Supplier Quotation Comparison report (backport #37337) (#37342)
fix: currency symbol in the Supplier Quotation Comparison report (#37337)

fix: currency in the Supplier Quotation Comparison report
(cherry picked from commit 82e8606b3c)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-10-03 20:32:34 +05:30
ruthra kumar
ab378196bd Merge pull request #37304 from GursheenK/party-totals-payable-report
fix: only float row values for total in AP summary
2023-10-03 19:45:03 +05:30
ruthra kumar
67440c38ae refactor: use isinstance over type 2023-10-03 17:38:43 +05:30
Anand Baburajan
fed94845ce feat: asset salvage_value_percentage (#37302)
* feat: asset salvage_value_percentage

* chore: add missing parameter in get_item_details

* chore: change asset depr table colors
2023-10-03 12:21:17 +05:30
Anand Baburajan
087f378a4f refactor: rename loan type to loan product in lending (#37325)
refactor: rename loan type to loan product
2023-10-03 00:15:30 +05:30
David Arnold
fa8483fe8c fix(portal): used rounded total in transaction rows, if enabled 2023-10-02 17:46:39 +02:00
Deepesh Garg
fb51cae88b chore: fix shopping cart tests 2023-10-02 16:16:31 +05:30
Deepesh Garg
3c1f93215a Merge pull request #37297 from frappe/mergify/bp/develop/pr-37293
fix: Description field for the 'Ignore Available Stock' (backport #37293)
2023-10-02 10:56:33 +05:30
Deepesh Garg
964cd75f6e Merge pull request #37235 from niyazrazak/patch-13
fix: set route options to cost center
2023-10-02 10:54:02 +05:30
Deepesh Garg
559466e1ef Merge pull request #37229 from FHenry/dev_remove_regional_france
refactor!: Remove Regionalisation of France as now there is an App ERPNext France to manage it
2023-10-02 10:51:25 +05:30
s-aga-r
e7f4b7b190 fix: ignore user permissions for Source Warehouse (#37313) 2023-10-01 21:25:01 +05:30
David Arnold
d3f94a03fc fix(stock): add delivery user and manager role 2023-10-01 15:13:54 +02:00
Deepesh Garg
25718f5cc7 chore: rewrite query using query builder 2023-10-01 13:27:44 +05:30
Gursheen Anand
1dab195560 fix: add only float row values for total 2023-09-29 18:20:02 +05:30
s-aga-r
361e555118 fix: Not unique table/alias: 'tabTask' (#37285) 2023-09-29 15:05:02 +05:30
rohitwaghchaure
36364c235e fix: Description field for the 'Ignore Available Stock' (#37293)
(cherry picked from commit 7f1483ad70)
2023-09-29 09:06:47 +00:00
Gursheen Anand
644e25e587 test: process soa for gl and ar 2023-09-29 14:35:43 +05:30
Gursheen Anand
67f878ff8c refactor: separate function for statement dict 2023-09-29 14:34:43 +05:30
ruthra kumar
d391e81505 refactor: block Payment Entry as ref in JE from UI 2023-09-29 13:40:59 +05:30
Gursheen Anand
d9eb44e62d fix: ageing summary in AR 2023-09-29 11:12:19 +05:30
ruthra kumar
f160e49483 Merge pull request #37268 from GursheenK/ar-summary-party-filter
fix: AP AR filters from Party link
2023-09-28 11:54:34 +05:30
ruthra kumar
2c7d6aec89 test: multi select party filter in AR report 2023-09-28 11:17:38 +05:30
mergify[bot]
f375c8cc7f fix: incorrect qty for material request in Production Plan (backport #37270) (#37275)
fix: incorrect qty for material request in Production Plan (#37270)

(cherry picked from commit 8fe4a4d3aa)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-09-27 23:35:53 +05:30
Marica
d6e4f80187 fix: Set serial_and_batch_bundle in right field for Asset Repair Stock Entry (#37273)
fix: Set `serial_and_batch_bundle` in same field for Asset Repair SE
- `serial_and_batch_bundle` was earlier set in `serial_no` field
2023-09-27 23:34:57 +05:30
s-aga-r
296b233659 chore: patch to delete Payment Gateways 2023-09-27 15:27:29 +05:30
Gursheen Anand
59e8abfd57 fix: party format in test 2023-09-27 13:57:49 +05:30
Gursheen Anand
4b28154f5e fix: process soa filter for multiselect 2023-09-27 13:04:13 +05:30
Gursheen Anand
f7cb68a45f fix: summary report filters 2023-09-27 13:03:37 +05:30
Gursheen Anand
e7239e02d4 fix: query for multiselect filter 2023-09-27 13:02:52 +05:30
Gursheen Anand
9d15124a6a fix: set route filter values for AR 2023-09-27 13:01:48 +05:30
Gursheen Anand
888ed36eed fix: set route filter values for AP 2023-09-27 13:01:18 +05:30
Ankush Menat
2dc95e5d59 fix: trial balance report freezes when adding filters (#37264)
fix: Only add onclick if correct data is returned

workaround for https://github.com/frappe/datatable/issues/177
2023-09-27 12:34:40 +05:30
vr-greycube
4ada5a488e fix: Use default Cost Center of the Company for additional discount (#37234)
fix: Set cost center as default company cost center 

When Discount Accounting in enabled in Selling Settings, use Company default Cost Center while making GL entries for additional_discount_account
2023-09-27 10:38:32 +05:30
Deepesh Garg
8c5fcb8257 fix: PCV posting issues (#37029)
* fix: PCV posting issues

* fix: process closing entries separately in a background job

* test: Update tests

* chore: fix broken ci
2023-09-27 10:22:09 +05:30
ruthra kumar
a223935f14 Merge pull request #37248 from GursheenK/ar-summary-party-filter
fix: AP & AR summary filters to match AR
2023-09-27 09:41:01 +05:30
Ankush Menat
4555543920 Merge pull request #37249 from akhilnarang/drop-redundant-check
Drop redundant check
2023-09-26 21:54:36 +05:30
HENRY Florian
8051c2d3cb refactor: In Quotation Item, discount_and_margin section should have same collapsible_depends_on as other similar DocType (Sales Order Item,Sales Invoice Item,...) (#37252) 2023-09-26 18:59:27 +05:30
mergify[bot]
2cca37ad7d fix: reserved qty for production plan (backport #37251) (#37253)
fix: reserved qty for production plan (#37251)

(cherry picked from commit 0a0d5b3e66)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-09-26 18:29:54 +05:30
mergify[bot]
d558ba29fa fix: serial number decimal issue (backport #37242) (#37250)
fix: serial number decimal issue (#37242)

(cherry picked from commit 78ab2013e5)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-09-26 17:55:16 +05:30
ruthra kumar
796cc0915a Merge pull request #37194 from GursheenK/editable-purchase-invoice
feat: editable purchase invoice
2023-09-26 16:46:11 +05:30
Gursheen Anand
76a5d94f37 fix: set new AP summary filters 2023-09-26 15:11:54 +05:30
s-aga-r
b1770b3f86 refactor: remove test test_default_bank_account 2023-09-26 15:10:20 +05:30
Gursheen Anand
7d96044d8e fix: change filters for AR summary 2023-09-26 15:10:16 +05:30
Gursheen Anand
832d7e7d7b fix: set AR filters after rename 2023-09-26 15:08:40 +05:30
ruthra kumar
ed7f67b1a8 refactor: remove references in repost doctypes upon parent doc delet 2023-09-26 14:35:31 +05:30
Deepesh Garg
656c758263 chore: Add missing comma 2023-09-26 14:20:41 +05:30
Akhil Narang
dd911aa521 chore(stock_ledger): drop redundant check
Commit c2d7461d3c dropped a usage of
`last_valuation_rate` around this code block. After that, it was always checked
although the value would be None as it was being explicitly set above.

Signed-off-by: Akhil Narang <me@akhilnarang.dev>
2023-09-26 14:07:01 +05:30
s-aga-r
73fc974950 fix: incorrect Parent Task getting set for 2nd to nth child Task (#37230) 2023-09-26 10:54:23 +05:30
Abraham Kalungi
0f6b530032 feat: Added ledger for Botswana VAT (#37212)
feat: Added ledger for Botswana VAT (#37212)
2023-09-26 08:57:50 +05:30
NIYAZ RAZAK
5e4b73918d fix: set route to cost center
cost center mapping is not correct
2023-09-25 22:15:08 +03:00
Deepesh Garg
a444906093 Merge pull request #37191 from FHenry/dev_fr_translation
fix: missing french translation on Lead and Prospect
2023-09-25 18:24:16 +05:30
Florian HENRY
7657b721bc Merge branch 'develop' of https://github.com/frappe/erpnext into dev_remove_regional_france 2023-09-25 10:27:22 +02:00
Anand Baburajan
ee178ff2ce chore: add disabled field for bank account (#37226) 2023-09-25 12:12:11 +05:30
s-aga-r
38aebf65e2 refactor!: remove stripe_integration.py 2023-09-25 11:08:24 +05:30
Deepesh Garg
c7969b428d Merge pull request #37116 from blaggacao/fix/payment-url
fix: payment url display as link
2023-09-24 21:50:53 +05:30
Deepesh Garg
12e16aa95f Merge pull request #37190 from FHenry/dev_feat_adress_contact_postion
feat: Customer and Supplier - Primary Address and Contact on the same column as new address and contact
2023-09-24 21:39:05 +05:30
Raffael Meyer
7c4ebe2733 fix(Material Request): consider project for item details (#37215)
fix(Material Request): project in item details
2023-09-24 21:10:53 +05:30
Deepesh Garg
b8ff9e8166 Merge pull request #37214 from barredterra/german-purchase-receipt
fix!: german translation of Purchase Receipt
2023-09-24 20:20:11 +05:30
Deepesh Garg
08566204dc Merge pull request #37219 from frappe/mergify/bp/develop/pr-37167
fix: set customer currency in pos_invoice if exists (#37167)
2023-09-24 20:18:27 +05:30
milanpethani
62ea097b14 fix: set customer currency in pos_invoice if exists
if currency exists in the profile and customer currency doesn't exists still it will update currency to None, so update customer currency only if exists

(cherry picked from commit 041d52e828)
2023-09-24 12:23:58 +00:00
Deepesh Garg
9dbb9e7515 Merge pull request #37211 from deepeshgarg007/trial_balance_net_values
feat: Toggle net values in Trial Balance report
2023-09-24 17:45:11 +05:30
Deepesh Garg
b578317f03 Merge pull request #37213 from GursheenK/process-soa-gl-filters
fix: filter gl entries in process soa
2023-09-24 17:44:21 +05:30
barredterra
7f98100040 fix: german translation of Purchase Receipt 2023-09-23 20:54:13 +02:00
Gursheen Anand
61c6ebbb95 fix: validation for si 2023-09-23 20:30:50 +05:30
Gursheen Anand
8ef0d88708 fix: call validate before setting repost flag 2023-09-23 20:29:38 +05:30
Gursheen Anand
1856050ef9 fix: do not run bg job for single doc 2023-09-23 19:30:42 +05:30
Gursheen Anand
a856091ff4 refactor: remove repeated validation for voucher 2023-09-23 19:18:06 +05:30
Gursheen Anand
7ebf083683 refactor: use repost accounting legder 2023-09-23 19:13:33 +05:30
Gursheen Anand
ba7212c98b refactor: remove unused method 2023-09-23 19:11:46 +05:30
Gursheen Anand
5346c67b02 fix: apply gl report filters 2023-09-23 17:50:45 +05:30
Gursheen Anand
545f2ccdf1 chore: remove unused variable 2023-09-23 14:59:12 +05:30
Gursheen Anand
b3aa201eb5 fix: split inv allocated amt on server side 2023-09-23 14:57:53 +05:30
Deepesh Garg
06a45897de feat: Toggle net values in Trial Balance report 2023-09-23 14:34:11 +05:30
Florian HENRY
f15603017c refactor: missing translation 2023-09-22 16:56:12 +02:00
Florian HENRY
b2d520647f refactor: missing translation 2023-09-22 16:55:58 +02:00
Florian HENRY
d1c69aa229 Merge branch 'develop' of https://github.com/frappe/erpnext into dev_fr_translation 2023-09-22 16:53:13 +02:00
Florian HENRY
dc1294ec54 refactor: missing translation 2023-09-22 16:53:06 +02:00
s-aga-r
9554f6ea3c refactor!: remove GoCardless Templates 2023-09-22 19:04:51 +05:30
s-aga-r
543a76863f refactor!: remove GoCardless Mandate 2023-09-22 19:04:51 +05:30
s-aga-r
eb419e8e59 refactor!: remove Mpesa Settings 2023-09-22 19:04:49 +05:30
s-aga-r
eded7871f3 refactor!: remove GoCardless Settings 2023-09-22 18:59:28 +05:30
ruthra kumar
c5e4e01747 Merge pull request #37202 from ruthra-kumar/ignore_ple_on_pcv_cancellation
refactor: ignore PLE's on PCV cancellation
2023-09-22 13:28:40 +05:30
Gursheen Anand
ac28a5b372 fix: allocate amt for payment term invoices 2023-09-22 12:41:17 +05:30
ruthra kumar
301092dad1 refactor: ignore PLE's on PCV cancellation 2023-09-22 12:40:51 +05:30
ruthra kumar
5353f190ee Merge pull request #37200 from ruthra-kumar/ui_element_to_filter_on_payment_entry_exc_gain_loss
refactor: button in Payment Entry to filter associated Journals
2023-09-22 11:54:02 +05:30
ruthra kumar
150728deaa refactor: button on PE to filter associated Journals 2023-09-22 11:30:47 +05:30
Gursheen Anand
c66c438575 test: reposted acc entries for pi 2023-09-22 11:22:25 +05:30
ruthra kumar
d4773872aa Merge pull request #37069 from marination/advance-unlink-impact
fix: Recalculate `advance_paid` in SO/PO after unlinking from advance entry
2023-09-22 08:35:27 +05:30
s-aga-r
c679d54852 Merge pull request #37185 from s-aga-r/REFACTOR-SRE
refactor(minor): Stock Reservation Entry
2023-09-21 21:46:09 +05:30
s-aga-r
b6437e387f fix: Item Dashboard 2023-09-21 18:23:20 +05:30
s-aga-r
8b6430c886 refactor(minor): Stock Reservation Entry 2023-09-21 18:23:18 +05:30
Gursheen Anand
c88f6d1fa7 fix: linting issues 2023-09-21 17:41:59 +05:30
Gursheen Anand
23470bf52d feat: allow repost for pi 2023-09-21 17:30:53 +05:30
Gursheen Anand
e77814fbc0 feat: add repost btn in invoice 2023-09-21 17:29:14 +05:30
Gursheen Anand
68effd93bd refactor: move reposting logic to common controller 2023-09-21 17:28:07 +05:30
Gursheen Anand
e922ec60eb feat: allow on submit fields 2023-09-21 17:26:20 +05:30
Florian HENRY
c5667a6cc1 fix: missing french translation on Lead and Prospect 2023-09-21 12:53:30 +02:00
Florian HENRY
fb844920af feat: Customer and Supplier - Primary Address and Contact on the same column as new adress and contact 2023-09-21 12:28:09 +02:00
ruthra kumar
f31a527505 Merge pull request #37120 from vorasmit/fix-dup-advance
fix: handle multiple references with same name
2023-09-21 14:20:04 +05:30
s-aga-r
acda72d616 feat: Stock Ledger Variance report (#37165)
* feat: `Stock Ledger Variance` report

* refactor: `get_data()`
2023-09-21 12:51:28 +05:30
s-aga-r
f0859ecc60 fix: labels for Stock Ledger Invariant Check report (#37150)
refactor: `Stock Ledger Invariant Check` report
2023-09-20 18:36:24 +05:30
rohitwaghchaure
dd4769ecf1 feat: allow to edit Stock Quantity in the Sales and Purchase Transactions (#36600)
feat: allow to edit Stock Quantity in the Sales and Purchase transactions
2023-09-20 18:09:03 +05:30
rohitwaghchaure
e6199dc802 fix: allow to select parent warehouse in the website item (#37047) 2023-09-20 17:27:35 +05:30
Ankush Menat
bf01f3227f chore: remove import script
Unused
2023-09-20 16:22:49 +05:30
Smit Vora
3e282bfbce chore: add regional support for getting payment entries (#37119)
chore: add regional support for get payment entries
2023-09-19 20:47:21 +05:30
RJPvT
c35dea7177 chore: translations dutch (#37042)
update: translations dutch
2023-09-19 20:26:42 +05:30
Raffael Meyer
57d5c8a837 fix: update help links (#37098) 2023-09-19 19:59:16 +05:30
Raffael Meyer
84a9000db2 fix: german translation of Sales and Purchase Invoice (#37122)
* fix: german translation of Purchase Invoice

* fix: german translation of Sales Invoice
2023-09-19 19:57:43 +05:30
NandhiniDevi
6be567dbf6 fix: add item group filter added in item-wise purchase register (#36937)
fix: add item group filter added in item-wise purchase register (#36937)
2023-09-19 19:25:46 +05:30
NIYAZ RAZAK
141ba255e0 feat: validate duplicate date in holiday list (#37022)
* feat: validate duplicate date in table

* chore: cleanup

* chore: linting issues

* chore: linting issues

---------

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-09-19 18:50:47 +05:30
Deepesh Garg
e19e04b050 feat: Add a process document for Subscription (#37126)
* feat: Add a process document for Subscription

* chore: Remove print statements

* feat: Input for generating invoice before currenc invoice date

* chore: patch for backward compatability

* refactor: Unit tests for subscription

* chore: set status on insert
2023-09-19 18:39:44 +05:30
RitvikSardana
03f0abf6de fix: after applying coupon code, field in_words not updated (#37133)
* fix: after applying coupon code, field in_words not updated

* fix: changed the order of the function set_total_in_words
2023-09-19 13:08:17 +05:30
s-aga-r
9c9d0ecb73 feat: provision to create RIV from Stock Ledger Invariant Check report (#37115)
* feat: provision to create RIV from `Stock Ledger Invariant Check` report

* fix: `linter`
2023-09-19 13:00:44 +05:30
David Arnold
c99c486716 Merge branch 'develop' into fix/payment-url 2023-09-18 20:33:30 +02:00
David Arnold
7bc8ff21d4 fix: payment url display as link 2023-09-18 20:33:21 +02:00
David Arnold
6e1ad4c5bd fix: payment request rounding in multi-currency and on status update 2023-09-18 20:29:27 +02:00
mergify[bot]
195de14810 fix: don't set from warehouse for purchase material request (backport #37132) (#37134)
fix: don't set from warehouse for purchase material request (#37132)

(cherry picked from commit e62b783f34)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-09-18 22:31:22 +05:30
Ankush Menat
dd24a1b36e chore: remove obsolete welcome page (#37143) 2023-09-18 16:43:13 +00:00
Ankush Menat
d0eac47483 fix: stock summary page 2023-09-18 21:49:52 +05:30
ruthra kumar
2a575d9dc2 Merge pull request #37131 from ruthra-kumar/more_generic_customer_filter_in_ar_report
refactor: more generic filters in Accounts Receivable report
2023-09-18 16:59:25 +05:30
ruthra kumar
08d91ab831 refactor(test): AR output filtered on USD customers 2023-09-18 16:28:06 +05:30
ruthra kumar
083c82c206 chore: remove stale code 2023-09-18 16:28:06 +05:30
ruthra kumar
ac650d2e7a refactor: replace 'customer' filter with 'party_type' and 'party' 2023-09-18 16:28:02 +05:30
ruthra kumar
5acbf3f262 Merge pull request #37127 from ruthra-kumar/better_date_filters_in_get_outstanding_invoices
refactor: better date filters in `Get Outstanding Invoices` dialog
2023-09-18 13:20:32 +05:30
RitvikSardana
3764c01028 fix: accounting dimensions required while creating POS Profile (#36668)
* fix: accounting dimensions required while creating POS Porfile

* fix: accounting dimensions fetched while closing POS

* chore: code cleanup

* fix: ad set in final consolidated invoice

* chore: code cleanup

* chore: code cleanup

* fix: accounting dimension validation from backend

* chore: code cleanup

* chore: code cleanup

* chore: code cleanup

* fix: added edge case when acc dimension is created after creating pos profile

* test: added test case for Pos Closing For Required Accounting Dimension In Pos Profile

* test: fixed the test case

* test: fixing test case

* fix: changed test case location

* test: fixing test case

* test: fixing test case

---------

Co-authored-by: Ritvik Sardana <ritviksardana@Ritviks-MacBook-Air.local>
2023-09-18 13:07:14 +05:30
ruthra kumar
9004721859 refactor: better date filters in Get Outstanding Invoices dialog 2023-09-18 12:46:08 +05:30
Smit Vora
a9c85e4179 fix: handle multiple references with same name 2023-09-17 16:14:21 +05:30
Deepesh Garg
5e21e7cd1d fix: Don't allow merging accounts with different currency (#37074)
* fix: Don't allow merging accounts with different currency

* test: Update conflicting values

* test: Update conflicting values
2023-09-17 15:54:06 +05:30
ruthra kumar
21f94918a3 Merge pull request #36893 from marination/bank-reco-code-cleanup
refactor: Bank Reconciliation Tool APIs
2023-09-17 08:07:30 +05:30
Gursheen Kaur Anand
099468e3cf fix: company wise deferred accounting fields in item (#37023)
* fix: move deferred accounts in accounting section

* fix: move deferred check boxes in item accounting

* fix: show company wise acc in filters

* fix: fetch item deferred account from child table

* fix: tests using deferred acc

* refactor: use cached value

* fix: cached value call

* feat: patch to migrate deferred acc

* fix: hardcode education module doctypes in patch

* chore: resolve conflicts

---------

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-09-16 21:25:31 +05:30
HENRY Florian
34bb64e41a fix(ux): move get_route_options_for_new_doc to refresh (#37096)
fix: move `get_route_options_for_new_doc` to `refresh`
2023-09-16 15:59:09 +05:30
s-aga-r
fc016680c9 fix: ignore user permissions for Source Warehouse in MR (#37102)
fix: ignore user permissions for Source Warehouse in MR
2023-09-15 21:45:43 +05:30
Ankush Menat
7045810bae refactor: move clear data button to user action 2023-09-15 20:47:28 +05:30
ruthra kumar
a093dff039 Merge pull request #37108 from ruthra-kumar/better_asset_validation_on_returns
fix: asset validation misfire on debit notes
2023-09-15 20:01:34 +05:30
ruthra kumar
097b9892dc fix: asset validation misfire on debit notes 2023-09-15 17:54:20 +05:30
ruthra kumar
855a0d3bec Merge pull request #37105 from ruthra-kumar/move_unreconcile_btn_to_group
refactor: move `unreconcile` button into a drop down
2023-09-15 16:57:32 +05:30
Ankush Menat
61778d5058 ci: restart bench before final migrate (#37104)
Also remove few patches which are now handled automatically
2023-09-15 16:51:56 +05:30
ruthra kumar
94ce43b0d5 refactor: add unreconcile btn to purchase invoice 2023-09-15 16:21:50 +05:30
ruthra kumar
f2b0ac6868 refactor: move unreconcile btn inside a drop down 2023-09-15 16:19:27 +05:30
ruthra kumar
2be025311a test: bank reconciliation API methods 2023-09-15 14:44:07 +05:30
mergify[bot]
08aaf22b2a fix: precision issue and column name (backport #37073) (#37089)
fix: precision issue and column name (#37073)

(cherry picked from commit f2395a9297)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-09-15 12:09:48 +05:30
Ankush Menat
2f7b3bbfad ci: fix patch test (#37079)
* ci: fix patch test

* ci: use v13 DB as starting point for patch

* ci: remove payments from patch test

* ci: print bench logs after tests

* ci: restart bench on each update

* ci: patch test v13db > v14 > develop

and when v15 is out v13db > v14 > v15 > develop
2023-09-14 14:46:45 +05:30
ruthra kumar
85ebaa3aed Merge pull request #36879 from ruthra-kumar/unreconcile_feature
feat: Unreconcile Payments
2023-09-14 12:17:46 +05:30
Ankush Menat
4940edc386 Merge pull request #37087 from frappe/remove_social_media_post_module
refactor!: remove social media post module
2023-09-14 12:16:57 +05:30
Ankush Menat
2dbdc402bb refactor!: remove social media post module 2023-09-14 12:11:23 +05:30
Gursheen Kaur Anand
5976d0d13f fix: prorate factor in subscription invoice total (#36880)
fix: prorate factor calculation
2023-09-14 12:05:05 +05:30
Ankush Menat
0fadde037a Merge pull request #37086 from frappe/remove_twitter
refactor!: remove twitter integration
2023-09-14 11:49:03 +05:30
Ankush Menat
2135b0132d refactor!: remove twitter integration 2023-09-14 11:25:49 +05:30
s-aga-r
41fb40e26f Merge pull request #37015 from s-aga-r/REMOVE-WOOCOMMERCE
refactor!: remove `woocommerce` integration
2023-09-14 10:41:18 +05:30
Florian HENRY
0932f1c9d4 Merge branch 'develop' of https://github.com/frappe/erpnext into dev_remove_regional_france 2023-09-13 17:19:14 +02:00
Florian HENRY
a3ebef7a29 fix: fix CI 2023-09-13 17:18:13 +02:00
Abdo
6f4f5be990 chore: Translate Voucher Type in General Ledger Report (#36874)
chore: Translate Voucher Type in  General Ledger Report
2023-09-13 20:38:45 +05:30
ViralKansodiya
96363dbb07 fix: Remove redundant code (#37001)
fix: Remove redundant code
2023-09-13 20:34:20 +05:30
Deepesh Garg
7711744020 Merge pull request #37032 from HarryPaulo/auth-rule-based-on-item-group
feat: created "based on" Item Group to specify a different percentage…
2023-09-13 20:27:34 +05:30
Deepesh Garg
1db05c80e1 Merge pull request #37031 from HarryPaulo/fix-auth-rule-based-on
fix: "Based on" field always has the value "Not applicable"
2023-09-13 20:26:28 +05:30
Deepesh Garg
6664bc98a0 Merge pull request #37041 from vorasmit/fix-advances
fix: multiple fixes for booking advances in seperate account
2023-09-13 20:24:57 +05:30
marination
8a4954d713 test: Impact on SO of advance PE submit and unlinking/replacement by SI 2023-09-13 19:09:03 +05:30
s-aga-r
78905e35f2 Merge pull request #36973 from s-aga-r/FIX-967
fix: accepted warehouse and rejected warehouse can't be same
2023-09-13 16:30:21 +05:30
s-aga-r
d2f3286115 fix: ignore user permissions for From Warehouse in PR 2023-09-13 16:26:29 +05:30
Deepesh Garg
7bfd487b25 Merge pull request #36364 from SvbZ3r0/develop
fix: Naming Series preview when no previous transaction present
2023-09-13 15:17:51 +05:30
Deepesh Garg
1d014122c1 Merge pull request #36980 from anandbaburajan/SI_DI_internal_and_external_links
fix: + btn not appearing for delivery note connection
2023-09-13 15:16:11 +05:30
marination
426350eee6 fix: Update advance_paid in SO/PO after unlinking from advance entry 2023-09-13 14:24:56 +05:30
s-aga-r
b83d880d66 Merge pull request #37046 from s-aga-r/FIX-1081
fix: Purchase Receipt Provisional Accounting GL Entries
2023-09-13 14:21:59 +05:30
rohitwaghchaure
0e83190c19 fix: incorrect stock ledger entries in DN (#36944) 2023-09-13 13:34:40 +05:30
s-aga-r
1c78a5a9aa test: Purchase Receipt Provisional Accounting GL Entries 2023-09-13 12:28:18 +05:30
s-aga-r
74272a2e28 fix: patch to delete Woocommerce Settings DocType 2023-09-13 12:02:27 +05:30
s-aga-r
328ba4b656 refactor!: remove woocommerce 2023-09-13 11:50:04 +05:30
s-aga-r
6bab0eeaa1 fix: Purchase Receipt Provisional Accounting GL Entries 2023-09-13 11:24:10 +05:30
rohitwaghchaure
e6c302a397 fix: test case (#37063) 2023-09-13 11:22:43 +05:30
Deepesh Garg
88f7e57edf Merge pull request #37055 from deepeshgarg007/dimension_filters_gl
fix: Apply dimension filter, irrespective of dimension columns
2023-09-13 10:05:58 +05:30
ruthra kumar
5898a6f48e Merge pull request #37057 from ruthra-kumar/packed_item_picking_expired_price
fix: Packed item incorrectly picks expired price on Sales Order
2023-09-13 08:18:47 +05:30
ruthra kumar
055156d28a test: expired item price should not be picked 2023-09-13 07:48:59 +05:30
ruthra kumar
47ffa4983c fix: packed item using expired price 2023-09-13 06:03:12 +05:30
Deepesh Garg
1f02fb3bd9 Merge pull request #37017 from anandbaburajan/company_tabs
chore: add tabs for company doctype
2023-09-12 22:41:23 +05:30
Deepesh Garg
769db0b3bc fix: Apply dimension filter, irrespective of dimesion columns 2023-09-12 21:14:08 +05:30
HarryPaulo
da54ab5b3d fix: linters 2023-09-12 09:43:11 -03:00
rohitwaghchaure
9a23ba53c5 fix: button to make BOMs (#37049)
fix: custom button to make BOMs
2023-09-12 17:19:12 +05:30
mergify[bot]
93af6f6a1b feat: provision to set required by from Production Plan (backport #37039) (#37040)
feat: provision to set required by from Production Plan (#37039)

* feat: provision to set the Required By date from production plan

* test: added test case for validate schedule_date

(cherry picked from commit d278b11603)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-09-12 16:29:02 +05:30
Smit Vora
c09807845f fix: ensure correct preview and set latest transaction date 2023-09-12 13:25:51 +05:30
s-aga-r
3c6e527dd1 Merge pull request #37025 from s-aga-r/FIX-883
fix: `Parent Task` link with `Project Task`
2023-09-12 06:59:45 +05:30
HarryPaulo
623239d3f7 feat: created "based on" Item Group to specify a different percentage for each item group 2023-09-11 18:14:38 -03:00
HarryPaulo
fae640c56f fix: "Based on" field always has the value "Not applicable" 2023-09-11 17:57:31 -03:00
marination
2ad62be2c7 chore: Convert db.sql to QB queries 2023-09-12 00:00:06 +05:30
s-aga-r
0d5c8f03bd test: add test case for Task having common subject 2023-09-11 22:36:58 +05:30
marination
b9750f324b fix: Remove get_matching_vouchers_for_bank_reconciliation
- There should only be one hook to add queries to `get_linked_payments`
- `get_matching_queries` will be the only hook just like before
2023-09-11 21:51:10 +05:30
s-aga-r
5cae2e79bd fix: reload task before save 2023-09-11 20:36:27 +05:30
s-aga-r
d3295c43e3 fix: set Template Task ref in Project Task 2023-09-11 20:36:11 +05:30
s-aga-r
b4bcd9ba3f feat: new field in Task to hold ref of Template Task 2023-09-11 20:35:12 +05:30
Smit Vora
43061f4416 fix: correct set_query filters 2023-09-11 19:16:25 +05:30
s-aga-r
d739ab6ee3 fix(ux): docstatus filter for Reference Name in QI (#37024) 2023-09-11 18:52:31 +05:30
anandbaburajan
dda4c5ec59 chore: add tabs for company doctype 2023-09-10 22:06:28 +05:30
s-aga-r
ce549ce9b2 fix(ux): filters for SCR Item Serial and Batch Bundle (#37013) 2023-09-10 17:10:04 +05:30
Bernd Oliver Sünderhauf
846ae32d92 feat: Add half-yearly asset maintenance periodicity. (#37006) 2023-09-10 17:00:01 +05:30
Deepesh Garg
b34c03d306 Merge pull request #36843 from GursheenK/process-soa-pdf-name
fix: show customer name for naming series in process soa
2023-09-10 12:20:53 +05:30
Deepesh Garg
c849a012d5 Merge pull request #36974 from GursheenK/tax_withholding_category_base_total_for_si
fix: tax category field in tax withholding details report
2023-09-10 11:40:36 +05:30
Ankush Menat
f39a9145e9 Merge pull request #37008 from barredterra/migrate-translations
chore(translations): prisoner exchange with frappe
2023-09-10 10:27:49 +05:30
barredterra
3e0a795028 chore: migrate translations to frappe 2023-09-10 00:21:41 +02:00
barredterra
2a77b50191 chore: migrate translations from frappe 2023-09-10 00:17:02 +02:00
ruthra kumar
d398775715 test: multi currency invoice unreconciliation
exchange gain/loss associated with the unreconcile invoice should be
cancelled as well
2023-09-09 07:30:58 +05:30
ruthra kumar
5c09fdf941 refactor(test): more modularization 2023-09-09 06:54:50 +05:30
ruthra kumar
1d93d66c30 refactor: cancel gain/loss JE on multi currency transactions 2023-09-08 21:29:13 +05:30
Florian HENRY
bb8153173a Merge branch 'develop' of https://github.com/frappe/erpnext into dev_remove_regional_france 2023-09-07 13:14:45 +02:00
Anand Baburajan
034322c53f fix: correct asset daily depr schedule calculation [dev] (#36993)
fix: correct asset daily depr schedule calculation
2023-09-06 22:20:38 +05:30
Florian HENRY
f447177f8d refactor: Remove Regionalisation From France as now there is an App ERPNext France to manage it 2023-09-06 17:41:27 +02:00
Florian HENRY
662e9547da refactor: Remove Regionalisation From France as now there is an App ERPNext France to manage it 2023-09-06 17:40:19 +02:00
Deepesh Garg
c2f8f1d028 Merge pull request #36983 from deepeshgarg007/employee_utils
chore: Update employee for tests
2023-09-06 16:31:29 +05:30
Ankush Menat
0f065fe280 Merge pull request #36984 from resilient-tech/remove-unused-var
chore: remove unused variable `job`
2023-09-06 14:49:17 +05:30
Sagar Vora
1b853857aa chore: remove unused variable job 2023-09-06 14:14:22 +05:30
Deepesh Garg
ae01d70b33 chore: Update employee for tests 2023-09-06 13:19:00 +05:30
Anand Baburajan
0077659e93 chore: asset finance books validation (#36979) 2023-09-06 12:44:07 +05:30
Devin Slauenwhite
8ce6b8179e fix: use primary key for link lookup (#36919) 2023-09-06 11:44:45 +05:30
anandbaburajan
e1a94a9ba1 fix: move SI and DI connected links to internal_and_external_links 2023-09-05 21:38:06 +05:30
Gursheen Anand
175870ce8d test: tax withholding details report 2023-09-05 18:51:41 +05:30
Gursheen Anand
8eea4eb56e fix: remove tax category from common fields 2023-09-05 18:50:53 +05:30
Anand Baburajan
174f95d699 fix: ask for asset related accounts only when needed (#36960)
* fix: only ask for asset_received_but_not_billed account when needed

* chore: remove unnecessary if condition

* fix: only ask for expenses_included_in_asset_valuation account when needed
2023-09-05 17:45:23 +05:30
s-aga-r
f809e12747 fix: ignore mandatory fields while saving WO (#36954) 2023-09-05 16:27:17 +05:30
ruthra kumar
ccd2e2b086 Merge pull request #36963 from ruthra-kumar/index_error_on_receivable_report
fix: index error on Receivable report based on payment terms
2023-09-05 16:12:38 +05:30
ruthra kumar
b9c556c4a9 fix: index error on Receivable report based on payment terms
cr note's don't have payment terms. So, skip for them.
2023-09-05 15:07:07 +05:30
RitvikSardana
d2f03c8a65 fix: payment recon not showing payment entry when party_type is Student (#36920)
* fix: payment recon not showing payment entry when party_type is Student

* chore: code cleanup

* fix: payment recon based on account_type which is fetched from Party Type master
2023-09-05 12:00:54 +05:30
ruthra kumar
5dbcf7d2b9 refactor: only cancel specific gain/loss je 2023-09-05 09:52:36 +05:30
ruthra kumar
6fd1c1bca2 refactor: display allocated amount in account currency with symbol 2023-09-05 09:34:01 +05:30
ruthra kumar
9a1588f1cc fix: typo in doctype name and qb 2023-09-05 08:34:26 +05:30
ruthra kumar
67980188a7 test: more granular unreconciliation 2023-09-05 08:34:26 +05:30
ruthra kumar
9b6eac23b6 refactor: unlink individual vouchers from payments 2023-09-05 08:34:26 +05:30
ruthra kumar
b4dc2bdf28 chore: type info 2023-09-05 08:34:26 +05:30
ruthra kumar
0130aea2aa refactor: convert raw sql to query_builder 2023-09-05 08:34:26 +05:30
ruthra kumar
de910ab152 refactor: single fetch and unlinking logic for JE and PE 2023-09-05 08:34:26 +05:30
ruthra kumar
285963acdb feat: unreconcile support for journal entry 2023-09-05 08:34:26 +05:30
ruthra kumar
cce96669f0 refactor: modularisation and group by voucher_no 2023-09-05 08:34:26 +05:30
ruthra kumar
0ccb6d8242 chore: rename and add trigger in journal entry 2023-09-05 08:34:26 +05:30
ruthra kumar
69683776a5 chore: code cleanup 2023-09-05 08:34:26 +05:30
ruthra kumar
1981f3837a chore: fetch logic for payment entry 2023-09-05 08:34:26 +05:30
ruthra kumar
25fe752185 chore: move functions to a separate file in utils 2023-09-05 08:34:26 +05:30
ruthra kumar
5981c7e0ad chore: move dialog building function to utils.js file 2023-09-05 08:34:26 +05:30
ruthra kumar
58dc0e52e1 refactor: add UI elements 2023-09-05 08:34:26 +05:30
ruthra kumar
6bbe47c671 chore: delete unreoncile doc upon parent doc deletion 2023-09-05 08:34:26 +05:30
ruthra kumar
489a545bbb chore: track changes 2023-09-05 08:34:26 +05:30
ruthra kumar
42df0d3d67 refactor: remove references using framework 2023-09-05 08:34:26 +05:30
ruthra kumar
fbdfb8151c chore: delete references upon parent deletion 2023-09-05 08:34:26 +05:30
ruthra kumar
41eb2c9f5a feat: filter on voucher no 2023-09-05 08:34:26 +05:30
ruthra kumar
fc6be5bfb9 feat: UI for unreconcile 2023-09-05 08:34:26 +05:30
ruthra kumar
0faffaa8db test: basic unreconcile function 2023-09-05 08:34:26 +05:30
ruthra kumar
5114a9580d refactor: adding 'Get Allocations' button 2023-09-05 08:34:26 +05:30
ruthra kumar
e48a90efe6 chore: working state on barebones functions 2023-09-05 08:34:26 +05:30
ruthra kumar
dc71623295 feat: introduce unreconcile doctype 2023-09-05 08:34:26 +05:30
ruthra kumar
13ca474a46 Merge pull request #36950 from ruthra-kumar/use_reference_posting_date_on_je
refactor: gain/loss je should use same posting date as payment
2023-09-05 08:26:58 +05:30
ruthra kumar
f7865da4d2 refactor: gain/loss should use same posting date as payment 2023-09-04 21:40:40 +05:30
rohitwaghchaure
6a7bdeffdf fix: auto refresh serial and batch bundle field (#36943) 2023-09-04 14:11:42 +05:30
ruthra kumar
04bc353e7f Merge pull request #36940 from ruthra-kumar/invalid_gain_loss_in_expense_claim
fix: invalid gain/loss JE created on base currency Expense Claim
2023-09-04 13:56:01 +05:30
ruthra kumar
75d95acb23 fix: invalid gain/loss JE created on base currency Expense Claim 2023-09-04 13:05:57 +05:30
s-aga-r
cd8ddae7c5 refactor: remove Recalculate Rate from SCR Item (#36929) 2023-09-03 18:54:44 +05:30
s-aga-r
22cf1556cd feat: Service Item and Finished Good Map (#36647)
* feat: new DocType `Service Item and Finished Good Map`

* fix(ux): filters for Service Item and Finished Good

* fix: validations for Service Item and Finished Good

* feat: set FG Item on Service Item selection in PO

* refactor: one-to-many mapping between service item and finished goods

* feat: auto set Service Item for finished good in PO created from PP

* feat: auto set Service Item on Finished Good selection in PO

* test: add test case for service item and finished goods map

* feat: `BOM` field in `Finished Good Detail`

* feat: new DocType `Subcontracting BOM`

* fix: filters and validations for Subcontracting BOM

* feat: auto select Service Item in PO created from PP

* test: add test case for PO service item auto pick

* feat: pick BOM from Subcontracting BOM in SCO

* feat: auto pick `Service Item` on FG select

* refactor: remove DocType `Service Item and Finished Goods Map` and `Finished Good Detail`

* feat: fetch FG for Service Item

* chore: `linter`

* refactor: update `Auto Name` expression for Subcontracting BOM
2023-09-03 11:59:28 +00:00
HENRY Florian
24e1144de5 fix: when create doc from item dashboard default uom (buying or selling) is not correctly selected (#36892)
fix: when create doc from item dashboard defaut uom is not correctly selected
2023-09-03 16:37:52 +05:30
ruthra kumar
27e0dd9fdc Merge pull request #36911 from ruthra-kumar/deduplicate_gain_loss_journal_creation
fix: deduplicate gain/loss JE creation for journals as payment
2023-09-03 10:11:43 +05:30
ruthra kumar
0366928db5 test: cost center inheritance from payment 2023-09-03 09:21:26 +05:30
ruthra kumar
d6a3b9a5c7 refactor: use payment's CC for gain/loss if company default is unset 2023-09-03 09:21:23 +05:30
Anand Baburajan
4f0bb45a8b chore: patch to correct asset values if je has workflow [dev] (#36914)
chore: patch to correct asset values if je has workflow
2023-09-02 18:31:32 +05:30
Deepesh Garg
2e7548462d Merge pull request #36895 from blaggacao/fix-coa-dill-down-on-startup
fix(startup): coa drill down
2023-09-02 17:12:18 +05:30
Deepesh Garg
f3282b1bb3 Merge pull request #36908 from barredterra/unreconcile-bank-transaction
fix: only show "Unreconcile" if reconciled
2023-09-02 17:11:56 +05:30
Deepesh Garg
30aba9414c Merge pull request #36900 from GursheenK/pcv-request-timeout
fix: reduce threshold for background job in PCV
2023-09-02 17:11:08 +05:30
ruthra kumar
79fa562004 test: extend test to cancellation 2023-09-02 14:43:25 +05:30
ruthra kumar
cb6da6ec59 test: deduplicate gain/loss JE on reconciling journals against inv 2023-09-02 13:29:33 +05:30
ruthra kumar
79c6f0165b fix: deduplicate gain/loss JE creation for journals as payment 2023-09-02 13:29:31 +05:30
RitvikSardana
e599f75a51 fix: account payable currency and value (#36859)
* fix: account payable currency and value

* fix: added party_type and party in accounts payable report

* chore: code cleanup

* fix: customer group test case failure

* fix: added test case of the issue

* fix: filter toggle for party_type

* fix: filter toggle for party_type

* chore: fix typo

---------

Co-authored-by: ruthra kumar <ruthra@erpnext.com>
2023-09-02 13:08:08 +05:30
s-aga-r
2d8363a983 feat: Serial and Batch reservation (#35946)
* feat: add `Has Serial No` and `Has Batch No` fields in SRE

* chore: set `Has Serial No` and `Has Batch No` while creating SRE

* feat: add field `Reserved Serial and Batch` in SRE

* fix(ux): hide `Amend` button on cancelled SRE

* fix: add validation for SRE amended doc

* fix(ux): hide `Reserved Serial and Batch` Table for non-serial/batch item

* fix(ux): set `Display Depends On` for `Has Serial No` and `Has Batch No` in SRE

* fix(ux): make `serial_no` and `batch_no` fields read-only based on `has_serial_no` and `has_batch_no`

* chore: remove table `Serial and Batch Entry` fieldlabel

* fix(ux): set warehouse for new row

* fix(ux): make qty field read-only for serial item

* fix(ux): set rows qty to `1` before making the field read-only

* chore: add filters for serial no

* chore: add filters for batch no

* chore: don't show Serial NO if already selected

* chore: hide rate related fields

* feat: add field `Reservation Based On` in SRE

* chore: make `Reserved Qty` field editable in SCR

* chore: add method to get total reserved qty against a voucher

* fix: add validation for `Reserved Qty`

* fix: update SRE status and Voucher's Reserved Qty

* chore: enable `Track Changes` in SRE

* fix: add validation to prevent delivered SRE to get updated

* fix(ux): make fields `Reserved Qty` and `Reservation Based On` read-only for delivered SRE

* fix: consider voucher's delivered qty while calculating max reserved qty

* fix: add UOM validation for SRE Reserved Qty

* fix: SRE warehouse mismatch error in DN

* fix: auto cancel SRE on update if item is fully delivered for the SO

* fix: skip SRE creation for group warehouse

* feat: add `Set Warehouse` field in SO stock reservation dialog

* fix(ux): hide `Add Row` button in SO stock reservation dialog

* fix: group warehouse validation in SO

* fix(ux): don't show Batch No if already selected

* feat: add field `Auto Reserve Serial and Batch Nos` in `Stock Settings`

* refactor: SRE reserved qty validation

* feat: auto serial and batch reservation

* chore: add section for `Serial and Batch Reservation` in `Stock Settings`

* fix: make SRE sb_entries warehouse mandatory

* fix(ux): unreserved qty calculation

* fix: add validation for `Reserved Qty` against `Batch`

* refactor: combine `get_available_qty_to_reserve()` and `get_available_qty_to_reserve_batch()`

* fix: validate disabled batch

* fix: add validation to validate serial nos availability

* fix: update row qty if `Partial Reservation` is enabled

* fix: ignore reserved serial nos while getting available serial nos

* fix: add validation to prevent repeat batches

* fix(ux): add validation for duplicate Serial No

* fix: don't allow to update SRE with delivered stock

* fix: ignore reserved serial and batch if reservation based on is not Serial and Batch

* fix(ux): stock un-reservation confirmation before `Update Items`

* chore: return list instead os set

* feat: add field `Delivered Qty` in `Serial and Batch Entry`

* feat: option to get SO reserved stock in Delivery Note

* fix: ignore reserved batches while getting available batches

* chore: `conflicts`

* fix: incorrect available qty

* fix: 'str' object has no attribute 'nodes_'

* fix: `linter`

* fix(ux): hide `Get Items From > Stock Reservation` if Stock Reservation is disabled

* fix(ux): add `depends_on` for `Auto Reserve Serial and Batch Nos`

* fix(ux): hide Stock Reservation field description in submitted SO

* fix(ux): confirm before unreserve stock

* feat: option to create DN for reserved stock from SO

* fix: update delivered qty in SRE sb_entries

* fix: Delivery Note (Reserved Stock) based on Delivery Date

* fix(ux): SO `Update Items` confirmation on `Update` button click

* feat: add dialog box to select SRE to unreserve

* fix: `ZeroDivisionError` while saving the DN (Reserved Stock)

* fix: don't allow to create Pick List if stock is reserved against SO

* fix(ux): hide Create > Pick List button for SO with reserved stock

* refactor: map reserved stock by default in DN

* refactor: code cleanup and comments

* fix: don't allow Stock Reservation against SO having Pick List

* refactor: `create_stock_reservation_entries()`

* feat: add fields to hold Pick List ref in SRE

* feat: add field `Stock Reserved Qty` in Pick List Item

* feat: provision to reserve stock from Pick List against Sales Order

* fix: don't allow to update SRE if created against a Pick List

* fix(ux): confirm before unreserve stock in Pick List

* fix: don't allow to update Pick List having reserved stock

* fix: circular dependency while cancelling the DN created from Pick List with Reserved Stock

* chore: update `Max Reserve Qty` err msg to be more descriptive

* refactor: rename field `Reserve Stock on Sales Order Submission`

* fix: msg on partial reservation if disabled in stock settings

* chore: add field description for `Enable Stock Reservation`

* fix(test): `test_stock_reservation_against_sales_order`

* fix(test): `test_stock_reservation_against_sales_order`

* test: add test cases for serial and batch reservation

* fix: batch stock levels qty

* refactor: method `get_sre_reserved_qty_for_item_and_warehouse`

* feat: show `Reserved Stock` in item master stock levels

* feat: Reserved Stock Report

* fix(ux): SO stock reservation dialogs width

* refactor: get previous values from `_doc_before_save` instead of db

* fix(ux): make `Reservation Based On` read-only if created against Pick List

* feat: option to open `Reserved Stock` report from Sales Order

* fix(ux): Sales Order - Reserve and Unreserve dialog box

* fix: decrease SRE Delivered Qty on DN cancel

* fix(ux): hide `Unreserve` button once reserved stock is delivered

* chore: `linter`

* fix(test): `test_reserved_stock_report`

* test: add test case for DN cancellation

* chore: rename field `Auto Reserve Stock on Sales Order Submission`

* fix: `Insufficient Stock` error msg
2023-09-02 11:02:24 +05:30
barredterra
91e574609f fix: only show "Unreconcile" if reconciled 2023-09-01 19:23:27 +02:00
ruthra kumar
0e517227ee Merge pull request #36899 from ruthra-kumar/use_own_exchange_rate_on_references
fix: difference amount calculation logic in Payment Entry UI
2023-09-01 17:37:23 +05:30
Deepesh Garg
1e72a43a8e Merge pull request #36889 from GursheenK/discount-accounting-multi-currency-gle
fix: fetch currency in discount accounting SI
2023-09-01 15:11:21 +05:30
Deepesh Garg
39b598e0ec Merge pull request #36898 from rtdany10/company-ambiguous
fix: `company` is ambiguous
2023-09-01 14:28:34 +05:30
Gursheen Anand
b6e6f2ef8d fix: reduce threshold for bg job fn 2023-09-01 12:36:40 +05:30
ruthra kumar
a7e0709ae8 fix: difference amount in UI should not be calculated 2023-09-01 12:18:55 +05:30
Dany Robert
3e1065a561 fix: company is ambiguous 2023-09-01 04:58:59 +00:00
marination
480903e3f4 refactor: verbosity in get_linked_payments result
- Easier to read field names like x["rank"] than x[0]
- It's hard to keep up with what the indices mean, thus reducing readability
2023-08-31 21:05:40 +05:30
marination
a1ae4262c3 refactor: auto_reconcile_vouchers
- Use `reconcile_vouchers` instead of re-implementing
- More clear result message. Consider partially reconciled transactions
2023-08-31 20:34:37 +05:30
ruthra kumar
0d26f67be5 Merge pull request #36888 from ruthra-kumar/gain_loss_refactor_issue_01_patch_failed
fix: calcuate received/paid amount on exchange rate change in Payment Entry
2023-08-31 18:37:39 +05:30
ruthra kumar
64d835374b fix: calcuate received/paid amount on rate change in PE 2023-08-31 17:58:26 +05:30
Gursheen Anand
112cfe6dfa fix: fetch discount amount for gle in base currency 2023-08-31 17:08:51 +05:30
Deepesh Garg
2537f5674e Merge pull request #36886 from GursheenK/sales-register-tax-accounts
fix: tax accounts in sales register
2023-08-31 15:53:39 +05:30
Gursheen Anand
d73daafe77 fix: tax accounts in sales register 2023-08-31 15:19:46 +05:30
Deepesh Garg
cd74c6c07f Merge pull request #36881 from deepeshgarg007/patch_revert
chore: remove patch
2023-08-30 22:12:46 +05:30
Deepesh Garg
283c0a1c0f chore: remove patch 2023-08-30 19:43:32 +05:30
Suraj Shetty
f032476a75 Merge pull request #36869 from RitvikSardana/develop-ritvik-ignore-perm-tree-doctype 2023-08-30 16:46:28 +05:30
Suraj Shetty
e92d4e9b4a Merge branch 'develop' into develop-ritvik-ignore-perm-tree-doctype 2023-08-30 16:46:00 +05:30
Deepesh Garg
5e38109481 Merge pull request #36872 from deepeshgarg007/sales_purchase_register_query
fix: Sales/Purchase register showing duplicate records
2023-08-29 21:47:01 +05:30
Ankush Menat
e75b72ae2d Merge pull request #36856 from frappe/desk_user
refactor!: Lower all perm to `Desk User`
2023-08-29 20:55:55 +05:30
Deepesh Garg
92e503f75b fix: Sales/Purchase register showing duplicate records 2023-08-29 20:45:57 +05:30
rohitwaghchaure
dea802dc41 fix: added valuation field type (Float/Currency) in the filter (#36866) 2023-08-29 16:53:00 +05:30
Gursheen Anand
060da2c5bc fix: remove report field db set 2023-08-29 16:16:50 +05:30
Ankush Menat
4856e11549 chore: update integrations workspace 2023-08-29 15:51:40 +05:30
Gursheen Anand
a006b66e45 test: auto email for ar report 2023-08-29 14:51:35 +05:30
RitvikSardana
de433d8626 fix: added ignore_user_permissions to parent field of tree doctypes 2023-08-29 13:07:13 +05:30
Corentin Flr
5c4df3e0e3 fix: Setup flake8 to stop turning trailing commas into tuples (#36850) 2023-08-29 10:59:58 +05:30
Deepesh Garg
1c237f455e fix(demo): COA fixes for Mexico country (#36840) 2023-08-29 10:50:12 +05:30
Gursheen Kaur Anand
26e8b8f959 fix: create entries for only PR items present in LCV (#36852)
* fix: check if item code exists in lcv before creating gle

* refactor: use qb to fetch lcv items
2023-08-29 09:03:31 +05:30
Ankush Menat
0d22fe02be refactor!: Lower all perm to Desk User 2023-08-28 22:42:14 +05:30
ViralKansodiya
3a2933db4d fix: error in report when data is not available to load chart in report (#36842) 2023-08-28 18:14:52 +05:30
Gursheen Anand
f07f4ce86f fix: generate pdf only when result exists 2023-08-28 17:14:15 +05:30
s-aga-r
eb5c61be1e Merge pull request #36811 from s-aga-r/SCR-SCRAP-ITEMS
feat: provision to add scrap items in Subcontracting Receipt
2023-08-28 17:11:00 +05:30
s-aga-r
9d330a13ed fix: get Valuation Rate instead of BOM rate 2023-08-28 16:09:05 +05:30
s-aga-r
592c7b5ff1 fix: test cases 2023-08-28 15:32:08 +05:30
ruthra kumar
9895bc3246 Merge pull request #36844 from ruthra-kumar/validation_error_on_payment_entry
fix: allocation error on partial payment against sales order
2023-08-28 15:11:36 +05:30
ruthra kumar
2fdbe82835 test: assert rounded amount is calculated 2023-08-28 14:30:37 +05:30
ruthra kumar
67a0969b78 test: allocation err misfire on Sales Order 2023-08-28 14:21:21 +05:30
ruthra kumar
714b8289c1 fix: fetch rounded total while pulling reference details on SO 2023-08-28 14:01:12 +05:30
Gursheen Anand
5c2a949593 feat: add field for specifying pdf name 2023-08-28 13:11:28 +05:30
Gursheen Anand
0a9187ea42 fix: show letterhead and terms for AR pdf 2023-08-28 13:09:51 +05:30
s-aga-r
91927f2ada chore: woocommerce linter issue (#36837) 2023-08-28 00:21:51 +05:30
Dany Robert
159be1d40f fix: revert ignore_account_closing_balance field 2023-08-27 18:43:42 +00:00
s-aga-r
ffcbcd7397 test: add test case for SCR scrap items 2023-08-28 00:12:19 +05:30
ruthra kumar
25e78fb311 Merge pull request #36830 from ruthra-kumar/increase_test_coverage
test: Exchange Rate Revaluation functions and its impact on ledger
2023-08-27 15:09:25 +05:30
ruthra kumar
d40504b973 test: Exchange Rate Revaluation functions and its impact on ledger 2023-08-27 14:33:34 +05:30
L Mwangi
3f077479f4 fix: On woocommerce test ping issued during a webhook creation
fix: On woocommerce test ping issued during a webhook creation
2023-08-26 19:45:55 +05:30
Abdo
6b75c03f34 chore: translate currency (#36777)
chore: translate currency
2023-08-26 19:37:28 +05:30
mergify[bot]
35f72a17db Allow to make return against sales invoice which has closed sales order. (#36676)
fix: Allow to make return against sales invoice which has closed sales order

fix: Allow to make return against sales invoice which has closed sales order
(cherry picked from commit 0f98cc85e9)

Co-authored-by: Gourav Saini <63018500+gouravsaini021@users.noreply.github.com>
2023-08-26 19:29:33 +05:30
avc
fa2e5d5ab7 fix: create portal user for customer from shopping cart (#36745)
fix: create portal user  for customer from shopping cart
2023-08-26 18:27:42 +05:30
Dany Robert
9bc5952dd5 fix: missing company flag for regional fn (#36791)
* fix: missing company flag for regional fn
2023-08-26 18:14:40 +05:30
mergify[bot]
740fe95ff3 fix: error list index out of range when saving a production plan
fix: error list index out of range when saving a production plan (#36807)
2023-08-26 18:13:16 +05:30
s-aga-r
afd7d59c73 fix: AttributeError while saving subcontracting order 2023-08-26 13:10:47 +05:30
rohitwaghchaure
d4218a88ad chore: fixed bom creator linter issue (#36827) 2023-08-26 12:54:13 +05:30
s-aga-r
27d56461c5 Merge branch 'develop' into SCR-SCRAP-ITEMS 2023-08-26 12:07:58 +05:30
s-aga-r
ed4f498704 feat: allow scrap items when backflush based on is Material Transfer 2023-08-26 11:38:45 +05:30
s-aga-r
08bc33689c fix(ux): make Get Scrap Items button hidden for submitted and cancelled doc 2023-08-26 10:57:49 +05:30
Deepesh Garg
57538bd76a Merge pull request #36218 from GursheenK/view-projects-in-customer-portal
fix: project routes and permissions in portal
2023-08-25 22:01:01 +05:30
Deepesh Garg
5c48074bed Merge branch 'develop' of https://github.com/frappe/erpnext into view-projects-in-customer-portal 2023-08-25 21:05:59 +05:30
Deepesh Garg
a7137514b6 chore: Update patch 2023-08-25 21:05:49 +05:30
HENRY Florian
e462edc628 chore: update fr translation for Naming Series (#36785)
* chore: update fr translation for Naming Series

* chore: update fr translation

* chore: update fr translation

* chore: update fr translation
2023-08-25 20:40:31 +05:30
s-aga-r
c8d7433e30 refactor(minor): subcontracting_receipt.js 2023-08-25 20:23:39 +05:30
s-aga-r
1504ff8b6c fix: ignore scrap items while distribute additional cost 2023-08-25 20:18:30 +05:30
ruthra kumar
447b73fa77 Merge pull request #36821 from ruthra-kumar/increase_test_coverage_for_receivable_payable_report
test: use mixin and increase coverage in receivable report
2023-08-25 18:09:16 +05:30
ruthra kumar
ce81ffd844 test: increase coverage in ar/ap report 2023-08-25 17:28:54 +05:30
s-aga-r
879d31a588 fix: recalculate rate while getting scrap items 2023-08-25 16:13:08 +05:30
ruthra kumar
bb7bed4c1a refactor(test): make use of mixin in ar/ap report tests 2023-08-25 14:46:10 +05:30
Deepesh Garg
91ca2309da Merge pull request #36802 from GursheenK/tax_withholding_jvs_with_no_partytype
fix: fetch JVs without party value in tax withholding report
2023-08-25 14:43:41 +05:30
ViralKansodiya
388a42ec7e fix: Asset Category filter is not working in asset depreciation and b… (#36806)
fix: Asset Category filter is not working in asset depreciation and balances

Co-authored-by: ubuntu <viralkansodiya167@gmail.com>
2023-08-25 11:44:05 +05:30
s-aga-r
9b47617117 feat: button to get Scrap Items 2023-08-25 10:53:13 +05:30
s-aga-r
7a6db924d5 fix: validate scrap items 2023-08-25 09:56:48 +05:30
s-aga-r
199071b773 fix(ux): make Recalculate Rate field hidden for scrap items 2023-08-25 09:36:12 +05:30
s-aga-r
40a6b5cefe fix: don't recalculate rate for scrap items 2023-08-25 09:35:29 +05:30
s-aga-r
a6b2cf3acd fix: reduce scrap cost from FG total cost 2023-08-25 07:30:55 +05:30
s-aga-r
794edbb334 feat: add Scrap Cost Per Qty field in SCR Item 2023-08-24 22:02:29 +05:30
Deepesh Garg
1449e38b39 Merge pull request #36799 from deepeshgarg007/tds_on_debit_note
fix: Tax withholding reversal on Debit Notes
2023-08-24 19:30:54 +05:30
Deepesh Garg
abc5fdd47b Merge pull request #36804 from deepeshgarg007/demo_coa
fix(demo): Default accounts for demo company
2023-08-24 19:30:17 +05:30
s-aga-r
f78b6d0081 refactor: code cleanup 2023-08-24 18:56:16 +05:30
Deepesh Garg
8ed8698fdf Merge pull request #36596 from Nihantra-Patel/pos_receipt_mail
fix: POS Invoice Email Receipt Mail
2023-08-24 18:33:49 +05:30
Deepesh Garg
0120588f5f chore: Handle edge cases 2023-08-24 18:32:16 +05:30
Deepesh Garg
8bf87ebfdf Merge pull request #36805 from deepeshgarg007/comments
chore: Linting Issues
2023-08-24 18:02:38 +05:30
Deepesh Garg
299e32befd chore: Linting Issues 2023-08-24 18:02:06 +05:30
Deepesh Garg
5f75aea6fa fix(demo): Default accounts for demo company 2023-08-24 17:58:51 +05:30
Deepesh Garg
6349b67df4 fix(demo): Default accounts for demo company 2023-08-24 17:54:14 +05:30
rohitwaghchaure
3c15feadf6 feat: Multi-level BOM Creator (#36494)
* feat: Multi-level BOM Creator

* fix: renamed BOM Configurator to BOM Creator

* fix: added Cost in the tree

* fix: finished good cost

* fix: valuation rate in tree ui

* chore: conflicts and removed unnecessary files

* test: test cases for BOM Creator

* fix: added shortcut for the BOM Creator

* fix: added validation for Final Product
2023-08-24 17:24:44 +05:30
s-aga-r
a33b75f2cd feat: allow manually entry for scrap items in SCR 2023-08-24 16:37:57 +05:30
Gursheen Anand
7c1417e199 chore: fix linting issues 2023-08-24 12:55:54 +05:30
Gursheen Anand
8f1e00906f fix: fetch JVs with no party selected in filters 2023-08-24 12:55:00 +05:30
Ankush Menat
ab6e600b9e fix: demo data setup w/o territory (#36798)
This can fail because it's translated.
2023-08-24 12:23:33 +05:30
s-aga-r
d1e877b6f0 refactor: Subcontracting Receipt Item form view 2023-08-24 12:16:12 +05:30
s-aga-r
4e7cccbdf0 feat: Is Scrap Item field in Subcontracting Receipt Item 2023-08-24 11:53:09 +05:30
Deepesh Garg
6d9cebfee9 fix: Tax withholding reversal on Debit Notes 2023-08-24 11:49:03 +05:30
Dany Robert
89ddf3272e fix(regional): item wise tax calc issue 2023-08-24 05:56:56 +00:00
s-aga-r
49be1190d9 Merge pull request #36786 from s-aga-r/SCR-QI
feat: `Quality Inspection` for Subcontracting Receipt
2023-08-24 11:06:51 +05:30
s-aga-r
8010a157b1 fix: use flt for qty and rate fields 2023-08-24 11:06:19 +05:30
Dany Robert
9e1b2c9f57 fix: item wise split up rounding 2023-08-24 05:02:14 +00:00
s-aga-r
f31eb74234 test: add test case for SCR Quality Inspection 2023-08-24 10:22:21 +05:30
s-aga-r
723563c167 fix: SCR return status (#36793) 2023-08-24 10:13:47 +05:30
Raffael Meyer
54ffe41b54 feat(MR): Project and Cost Center in Connections (#36794) 2023-08-24 10:12:18 +05:30
ruthra kumar
758ea7bfe1 Merge pull request #35330 from ruthra-kumar/cr_note_posts_gl_for_itself
refactor: cr/dr note should be standalone even when created from another invoice
2023-08-23 20:38:14 +05:30
Deepesh Garg
2ed73c17c3 Merge pull request #36720 from git-avc/lost_reason_opportunity
fix: lost opportunity reason dialog don't appears
2023-08-23 19:42:22 +05:30
Anand Baburajan
bb3bd02f53 chore: styling improvements for asset depr sch table (#36792)
* chore: improve asset depr sch table

* chore: fix text color
2023-08-23 19:22:25 +05:30
Anand Baburajan
56b26852f3 fix: use current asset depr schedule to make temp schedule (#36783)
fix: use current depr schedule to make temp schedule
2023-08-23 18:01:59 +05:30
ruthra kumar
60eee564bf refactor: Payment btn criteria for Cr/Dr notes 2023-08-23 17:58:15 +05:30
s-aga-r
c9ae9df902 fix(ux): increase Quality Inspection dialog width 2023-08-23 13:58:43 +05:30
s-aga-r
3fab6610cb feat: setup Quality Inspection for Subcontracting Receipt
- SCR[docstatus=0, is_return=0] Create > Quality Inspection(s)
- Filters for Quality Inspection field in Subcontracting Receipt Items table
2023-08-23 13:58:40 +05:30
s-aga-r
3fdcd33b92 feat: Quality Inspection in Subcontracting Receipt 2023-08-23 12:15:35 +05:30
s-aga-r
5b62bbe073 Merge pull request #36752 from s-aga-r/FR-35157
feat: `Update Items` for Subcontract Purchase Order
2023-08-23 11:13:28 +05:30
Dany Robert
0ebcc2cf2c fix: round item_wise_tax_detail in taxes 2023-08-23 04:51:09 +00:00
Dany Robert
dfb5b88abb chore: linters 2023-08-23 04:01:00 +00:00
Dany Robert
c20258d2a3 fix: tax calc changes in js 2023-08-23 03:59:08 +00:00
ruthra kumar
bf6bf79ae3 Merge pull request #36650 from ruthra-kumar/refactor_payment_reconcliation_ui
perf: improve responsiveness of payment reconciliation tool
2023-08-23 09:12:36 +05:30
Deepesh Garg
53926b0620 Merge pull request #36758 from RitvikSardana/develop-ritvik-ap-currency
fix: Accounts Payable Currency bug
2023-08-22 22:27:54 +05:30
mergify[bot]
a77e9d36cc fix: Procurement Tracker report not showing material request items (backport #36768) (#36774)
fix: Procurement Tracker report not showing material request items (#36768)

(cherry picked from commit 6a9935c00e)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-08-22 22:09:45 +05:30
Dany Robert
3ead28906c feat: item(row) wise tax amount rounding 2023-08-22 14:41:07 +00:00
s-aga-r
305d39f6a1 test: add test case for Subcontract PO update items 2023-08-22 18:24:30 +05:30
mergify[bot]
611c2bf775 fix: not able to make stock entry (backport #36759) (#36767)
fix: not able to make stock entry (#36759)

(cherry picked from commit 873ee384a1)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-08-22 17:36:56 +05:30
s-aga-r
b9b1717e96 fix: re-validate PO while updating items 2023-08-22 16:53:54 +05:30
s-aga-r
9588bb7443 fix: validate FG Item and Qty 2023-08-22 16:29:14 +05:30
Anand Baburajan
87e2309e8e fix: avoid duplicate asset activity entries on asset capitalization (#36756) 2023-08-22 15:30:04 +05:30
RitvikSardana
9349bc77c5 fix: Accounts Payable Currency bug 2023-08-22 14:12:42 +05:30
Raffael Meyer
9d29ec8eac fix: attachments should be an empty list by default (#36757)
fix: attachments should be an empty list by default
2023-08-22 13:35:12 +05:30
Anand Baburajan
8f04945cef fix: incorrect schedule in asset value adjustment (#36747) 2023-08-22 12:36:09 +05:30
Raffael Meyer
4b75b6f309 feat(RFQ): optionally send document print (#36363) 2023-08-22 12:26:01 +05:30
ruthra kumar
3fd2778ae4 Merge pull request #36748 from ruthra-kumar/clean_up_reconcilition
chore: clean up stale code in reconciliation tool
2023-08-22 06:19:52 +05:30
ruthra kumar
e93b927051 chore: clean up stale code in reconciliation tool 2023-08-22 05:32:56 +05:30
ruthra kumar
3de9fed230 Merge pull request #36742 from ruthra-kumar/ar_summary_incorrect_gl_balance_on_multi_company
fix: incorrect gl balance on AR summary rpt on multi company setup
2023-08-21 22:06:47 +05:30
ruthra kumar
991770ed4a fix: incorrect gl balance on AR summary rpt on multi company setup 2023-08-21 21:32:23 +05:30
ruthra kumar
a4ff76c920 Merge pull request #36727 from ruthra-kumar/fix_broken_advance_field_in_ar_summary_rpt
fix: broken advance field in Accounts Receivable summary rpt
2023-08-21 20:53:03 +05:30
ruthra kumar
d01f0f2e96 refactor: filter for journal entries 2023-08-21 20:50:34 +05:30
ruthra kumar
86bac2cf52 refactor: filter on advance payments 2023-08-21 20:50:34 +05:30
ruthra kumar
52f609e67a refactor: filter on cr/dr notes 2023-08-21 20:50:34 +05:30
ruthra kumar
e48f8139eb refactor: trigger on value change 2023-08-21 20:50:34 +05:30
ruthra kumar
7a381affce refactor: limit output to 50 in reconciliation tool 2023-08-21 20:50:32 +05:30
ruthra kumar
af52f21ece test: add test for receivable summary report 2023-08-21 17:56:50 +05:30
ruthra kumar
06f86ad5e0 Merge pull request #36728 from ruthra-kumar/fetch_gain_loss_in_ar_ap_report
fix: include gain/loss journal in AR/AP reports
2023-08-21 17:22:31 +05:30
Ankush Menat
86cac1e1d2 fix: add missing items labels back (#36737)
[skip ci]
2023-08-21 15:59:52 +05:30
s-aga-r
faf9f13215 feat: allow Update Items for Subcontracted PO not having SCO created 2023-08-21 15:58:11 +05:30
Smit Vora
c47adcfdd9 fix: advance in seperate account 2023-08-21 15:12:11 +05:30
s-aga-r
450949cadd Merge pull request #36709 from s-aga-r/FIX-36695
fix: don't throw if item does not have default BOM
2023-08-21 14:43:03 +05:30
ruthra kumar
0dc5e5c430 refactor: use payment ledger to fetch advance amount 2023-08-21 09:19:38 +05:30
ruthra kumar
896b123fb1 fix: broken advance field in Accounts Receivable summary rpt 2023-08-20 21:17:27 +05:30
ruthra kumar
e3104f1898 fix: include gain/loss journal in AR/AP reports 2023-08-20 20:13:31 +05:30
Deepesh Garg
a7f921a557 Merge pull request #36666 from batonac/batonac-plaid-fixes
fix: Plaid Integration status and categories
2023-08-20 16:02:30 +05:30
Deepesh Garg
ddd929ef9b Merge pull request #36696 from RitvikSardana/develop-ritvik-pos-mode-of-payment
fix: mode of payment fetched from pos profile company in POS
2023-08-20 15:37:15 +05:30
mergify[bot]
87d02511a3 fix: timeout error coming during reposting (backport #36715) (#36717)
fix: timeout error coming during reposting (#36715)

(cherry picked from commit 620b21fec5)

Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
2023-08-19 15:37:33 +05:30
avc
f10a93f6ee fix: lost reason opportunity dialog don't appears
Fix #36719
2023-08-18 17:33:37 +02:00
ruthra kumar
a34cb8a8dc Merge pull request #36710 from ruthra-kumar/fix_broken_consolidated_financial_report
fix: broken consolidated report due to finance book filter
2023-08-18 14:54:03 +05:30
ruthra kumar
96847db0ec fix: broken consolidated report due to finance book filter 2023-08-18 14:04:46 +05:30
Gursheen Kaur Anand
6a7b45f689 Merge branch 'develop' into view-projects-in-customer-portal 2023-08-18 13:32:08 +05:30
s-aga-r
2e22b019a0 fix: throw if BOM No is not set 2023-08-18 13:24:49 +05:30
Gursheen Anand
e8f6c286d1 fix: remove portal menu items in pre-model sync patch 2023-08-18 13:21:37 +05:30
s-aga-r
268c19e745 fix: don't throw if item does not have default BOM 2023-08-18 13:14:53 +05:30
ruthra kumar
8f695123cd refactor: criteria for Credit Note Issued and Debit Note Issued 2023-08-18 10:13:48 +05:30
Deepesh Garg
21e6db2bc7 Merge pull request #36060 from rtdany10/skip_tcs
fix: skip tax witholding category if not account set for company
2023-08-17 20:56:37 +05:30
Ritvik Sardana
1bdd43d0f6 fix: mode of payment fetched from pos profile company in POS 2023-08-17 17:29:01 +05:30
Deepesh Garg
c70abaa43a Merge pull request #36684 from deepeshgarg007/gl_transaction_currency
feat: Transaction currency columns in GL report
2023-08-17 16:06:23 +05:30
rohitwaghchaure
3f6ff8e0b7 perf: enabled indexing for voucher no in SABB (#36688) 2023-08-17 13:48:37 +05:30
Shariq Ansari
5d9dde92fa Merge pull request #36685 from shariquerik/api-fix 2023-08-17 13:09:14 +05:30
Ankush Menat
6bf79f18c8 chore: skip demo banner if another one present 2023-08-17 12:37:29 +05:30
Shariq Ansari
21c1141fdb chore: linter fix 2023-08-17 12:14:13 +05:30
Raffael Meyer
552bbb1d46 fix(RFQ): make "update password" and "submit quotation" buttons the same size (#36667)
fix(RFQ): button styling
2023-08-17 12:04:05 +05:30
Shariq Ansari
7ec6909159 fix: check tax and charges if it is passed 2023-08-17 11:59:47 +05:30
Deepesh Garg
35be3ac5a1 feat: Transaction currency columns in GL report 2023-08-17 11:31:40 +05:30
Deepesh Garg
98adfb4c9a Merge pull request #36492 from RitvikSardana/develop-ritvik-POS-runtime-effect
fix: POS runtime effect
2023-08-17 10:54:48 +05:30
ruthra kumar
3345165206 Merge pull request #36649 from ruthra-kumar/perf_latest_details_only_pulled_for_linked_vouchers
perf: pull latest details only for referenced vouchers
2023-08-17 09:00:29 +05:30
Deepesh Garg
8601e5b3a4 Merge pull request #36677 from deepeshgarg007/ignore_prepared_report
fix(UX): Ignore prepared report
2023-08-16 21:31:50 +05:30
Deepesh Garg
124c0dbd88 fix(UX): Ignore prepared report 2023-08-16 19:10:39 +05:30
Gursheen Anand
d119d2ec32 fix: delete doc without filters 2023-08-16 17:35:07 +05:30
ruthra kumar
f6e4ac2b62 refactor(test): payments to invoice with -ve outstanding 2023-08-16 16:19:53 +05:30
Gursheen Anand
c071523e35 fix: delete portal settings for education doctypes 2023-08-16 12:23:10 +05:30
Ritvik Sardana
0d95fc0f20 fix: test_serial_no_case_1 test case works 2023-08-16 11:41:24 +05:30
Kevin Shenk
43f530b077 fix: Plaid Integration status and categories
"pending" is a boolean not a string, and "category" doesn't exist in some edge cases
2023-08-15 13:34:59 -04:00
ruthra kumar
924911e743 Merge pull request #36663 from ruthra-kumar/readd_permissions_in_journal
fix: re-add permission that was unintentionally removed
2023-08-15 17:06:24 +05:30
ruthra kumar
45662fa646 fix: re-add permission that was unintentionally removed
Remove `Reversal OF ITC` and re-add permissions. Both of them
unintended changes
2023-08-15 16:23:47 +05:30
Anand Baburajan
e0c79d3b53 chore: add validation for depreciation expense account in asset category (#36659) 2023-08-15 10:17:15 +00:00
Deepesh Garg
1e07f6eef9 fix(demo): More exception handling on demo data generation (#36652) 2023-08-15 10:45:36 +05:30
Gughan Ravikumar
cdf100d552 fix: Naming Series preview when no previous transaction present 2023-08-15 09:38:29 +05:30
ruthra kumar
0e2fb1188a refactor(test): ledger entries will be against itself 2023-08-15 09:03:02 +05:30
Babuuu
89e89de961 Fix tax amount in customer portal (#36453)
The net total is the value that is currently being displayed instead of the tax amount.
2023-08-15 08:54:06 +05:30
ruthra kumar
d77b0295fa Merge pull request #36642 from ruthra-kumar/toggle_for_negative_rates
refactor: toggle for negative item rates in Selling Settings
2023-08-15 08:12:10 +05:30
ruthra kumar
a0fc68538f refactor: toggle for negative rates in Selling Settings 2023-08-15 07:34:33 +05:30
ruthra kumar
deb0d71294 perf: pull latest details only for referenced vouchers 2023-08-15 05:26:26 +05:30
Kevin Shenk
7ab55b1bb2 fix: Document Name link validation in Bank Reconciliation Tool (#36495)
fix: format_row broke Document Name link validation

#35540 broke Voucher Matching, leading to an invalid link exception on submission. This is because the format_row() function overwrites the row data instead of just providing a formatter on the DataTable column, and therefore passes through the formatted (linked) column data instead of the Document Name only.

This patch moves the appropriate frappe.form.formatters.Link function to a dedicated format hook on the DataTable columns definition, both fixing the error and retaining the functionality of #35540.
2023-08-14 19:03:01 +05:30
abdosaeed95
670d9e5556 fix: validate loyalty_amount against rounded_total instead of grand_total (#36466) 2023-08-14 18:54:01 +05:30
HarryPaulo
843e77e72d fix: standard formula to calculate the "difference" (#36612) 2023-08-14 18:51:30 +05:30
Deepesh Garg
985ff9781b fix: Tax withholding post LDC limit consumed (#36611)
* fix: Tax withholding post LDC limit consumed

* fix: LDC condition check
2023-08-14 18:19:15 +05:30
Gursheen Kaur Anand
12a6f3b997 feat: add invoice totals in tax withholding report (#36567)
* fix: add invoice totals in tax withholding report

* fix: naming series col in tax withholding report

* fix: tds computation summary cols
2023-08-14 18:15:47 +05:30
mergify[bot]
1ff80fcbee fix: Button Alignment center in hero slider (backport #36607) (#36638)
fix: Button Alignment center in hero slider (#36607)

fix: speling in CSS (Button alignment center is not working on hero slider)#36561
(cherry picked from commit b131f70ed6)

Co-authored-by: ViralKansodiya <141210323+viralkansodiya@users.noreply.github.com>
2023-08-14 16:25:38 +05:30
Ankush Menat
8b57979e9c fix: clear demo data with unknown columns (#36637) 2023-08-14 08:46:48 +00:00
ViralKansodiya
75652799cd feat: Tick on checkbox to include draft timesheets (#36577)
feat: Tick on Check box to include Draft Timesheets
2023-08-14 14:14:49 +05:30
Ankush Menat
e023e33a15 fix(demo): drop parent item group (#36636)
This is translated according to user language, so "All Item Groups" might not
exist on site.

The code already finds root item group without doing anything.

towards https://github.com/frappe/erpnext/issues/36635
2023-08-14 13:46:16 +05:30
Ritvik Sardana
d4cc9daca1 chore: code clean up 2023-08-14 11:52:49 +05:30
Ritvik Sardana
68df3f9729 fix: get_items call improved 2023-08-14 11:44:47 +05:30
Deepesh Garg
fbb5058531 fix: AR/AP report based on payment terms (#36574)
* fix: AR/AP report based on payment terms

* fix: AR/AP report based on payment terms
2023-08-14 08:32:07 +05:30
Deepesh Garg
39ec11200e fix(demo): Item creation with India Compliance app (#36627) 2023-08-13 18:33:09 +05:30
ruthra kumar
b30c1e1abf refactor(test): return invoice will have -ve outstanding 2023-08-13 15:52:45 +05:30
ruthra kumar
00878707ae refactor: remove return_against for cr/dr note filter 2023-08-13 15:52:42 +05:30
ruthra kumar
db76e8a277 refactor: cr notes will post for itself 2023-08-13 15:30:17 +05:30
RitvikSardana
ae2c600223 fix: POS compatible for mobile view (#36534)
* fix: POS compatable for mobile view

* fix: variables for margin and font size, and dark mode compatibility while selecting any item from cart

---------

Co-authored-by: Ritvik Sardana <ritviksardana@Ritviks-MacBook-Air.local>
2023-08-13 13:27:43 +05:30
Naufal Afif
ce25f9e8c9 fix: wrong currency on financial-statement based reports (#36524)
* add missing field options on financial_statement Total field

* format financial statement code
2023-08-13 13:26:56 +05:30
ruthra kumar
3c7702c53c Merge pull request #36309 from ruthra-kumar/fix_incorrect_validation_on_partial_pay_for_so
fix: allocation validation blocks partial payment for SO and PO
2023-08-13 08:42:42 +05:30
s-aga-r
539cfd08f0 fix: fetch Stock UOM from Item if not set (#36606) 2023-08-12 22:42:01 +05:30
Ankush Menat
2d3fa8040c fix(UX): make demo button dismissable for session 2023-08-12 11:35:02 +05:30
Ankush Menat
6b464edf84 fix: dont render demo clear button if onboarding tour present 2023-08-12 11:35:02 +05:30
Deepesh Garg
f8e7bc08af Merge pull request #36564 from deepeshgarg007/monthly_sales_update
fix: Make default sales update frequency as monthly instead of each transaction
2023-08-11 22:39:04 +05:30
Deepesh Garg
7f062a71f1 Merge pull request #36582 from deepeshgarg007/final_total
fix: Group Account total not showing in Financial Statements
2023-08-11 21:56:44 +05:30
ruthra kumar
713880aef0 Merge pull request #36590 from ruthra-kumar/disallow_multiple_so_if_blocked_in_settings
fix: disallow mulitple SO with same Purchase Order No if not enabled in Settings
2023-08-11 19:46:24 +05:30
Anand Baburajan
627986efa1 fix: wrap none type rate under flt (#36602) 2023-08-11 18:01:27 +05:30
ruthra kumar
64614cd915 refactor(test): don't set po_no by default 2023-08-11 17:43:50 +05:30
Ankush Menat
57449589e7 chore: mergify - update stable branches
[skip ci]
2023-08-11 16:20:50 +05:30
Ankush Menat
581d98c5ae Merge pull request #35777 from deepeshgarg007/demo_data_on_install
feat: Demo setup
2023-08-11 14:38:38 +05:30
Anand Baburajan
98e82e0d99 chore: set default filter dates if missing (#36597) 2023-08-11 08:51:48 +00:00
Nihantra C. Patel
dd91a77fdd fix: POS Invoice Email Receipt Mail 2023-08-11 13:19:09 +05:30
Nihantra C. Patel
7e34468504 fix: POS Invoice Email Receipt Mail 2023-08-11 12:27:18 +05:30
ruthra kumar
5bed119de9 Merge pull request #36593 from ruthra-kumar/update_permission_for_semi_auto_reconciliation_tool
chore: update permissions for Process Payment Reconciliation
2023-08-11 11:42:47 +05:30
ruthra kumar
cd28d15292 chore: update permissions for Process Payment Reconciliation 2023-08-11 10:56:57 +05:30
ruthra kumar
dbd3fdbb41 fix: disallow mulitple SO with same PO No 2023-08-11 09:59:07 +05:30
Anand Baburajan
d138948c70 feat: daily asset depreciation method [dev] (#36588)
feat: daily asset depreciation method
2023-08-10 17:46:01 +00:00
Deepesh Garg
90bc0d6bd0 Merge branch 'demo_data_on_install' of https://github.com/deepeshgarg007/erpnext into demo_data_on_install 2023-08-10 21:48:03 +05:30
Deepesh Garg
567f4c37fc fix: Add order data 2023-08-10 21:46:34 +05:30
Deepesh Garg
000de4eddf chore: Update customer/supplier names 2023-08-10 21:45:55 +05:30
Ankush Menat
c8e6e067ae chore: telemetry for demo data erasure 2023-08-10 18:27:42 +05:30
Ritvik Sardana
f6c055cca9 fix: now time set in closing POS 2023-08-10 18:15:23 +05:30
Ankush Menat
8bdf280cfb fix: confirm before clearing demo data 2023-08-10 17:55:15 +05:30
Ankush Menat
e4b863af05 refactor: gracefully fail while clearing demo data 2023-08-10 17:52:53 +05:30
Ankush Menat
940b1d9e67 feat(ux): account workspace number cards 2023-08-10 17:46:35 +05:30
Ritvik Sardana
526f1d18fb fix: added test for runtime effect 2023-08-10 17:35:12 +05:30
Ankush Menat
704e6577e5 chore: use royalty free images 2023-08-10 17:29:55 +05:30
Ankush Menat
5fb92cbb49 fix: enqueue at front to speed up demo 2023-08-10 17:16:58 +05:30
Ankush Menat
3a21c90d10 fix: misc fixes in demo data
- Generate demo data field copy
- absolute imports
- remove whitelisting where it's not required
- telemetry
- banner copy
- move to background
- clear bootinfo after setup
2023-08-10 16:53:16 +05:30
Deepesh Garg
baf5cddd1b fix: Group Account total not showing in Financial Statements 2023-08-10 16:09:38 +05:30
ruthra kumar
936fb1decf Merge pull request #36578 from ruthra-kumar/toggle_uom_hiding_on_print
fix: unhide `uom` and `stock_uom` fields in print view
2023-08-10 15:38:32 +05:30
ruthra kumar
18e3c67d97 Merge pull request #36573 from ruthra-kumar/system_generated_field_and_update_remarks
refactor: 'is system generated' field and better remarks in Journal Entry
2023-08-10 15:37:47 +05:30
Ankush Menat
f2eb3d0f94 chore: remove old build system file
[skip ci]
2023-08-10 15:24:07 +05:30
Ankush Menat
ba6de0b4ff Merge branch 'develop' into demo_data_on_install 2023-08-10 15:22:52 +05:30
ruthra kumar
11cd163db7 fix: unhide uom and stock_uom fields in print view 2023-08-10 14:40:47 +05:30
ruthra kumar
4ed4b0240d refactor: enable 'no-copy' 2023-08-10 14:32:37 +05:30
ruthra kumar
de17eaef38 refactor: set flag display condition 2023-08-10 10:05:25 +05:30
Ankush Menat
5169006085 fix: move company rename to long queue 2023-08-10 10:02:59 +05:30
s-aga-r
4a7fc1506f fix: don't show disabled items in Item Shortage Report (#36550) 2023-08-10 09:40:58 +05:30
ruthra kumar
3997aa77d4 refactor: add is_system_generated field to Journal Entry 2023-08-09 20:50:11 +05:30
ruthra kumar
47cb349362 fix: better remarks on Cr note created by Reconciliation 2023-08-09 20:43:51 +05:30
Anand Baburajan
ad33cd73e8 perf: asset depreciation entry posting [develop] (#36555)
* perf: optimise post_depreciation_entries and make_depreciation_entry

* chore: fixing minor mistake

* chore: fix asset_value_adjustment test
2023-08-09 20:26:28 +05:30
Deepesh Garg
32863b4922 fix: Make default sales update frequency as monthly instead of each transaction 2023-08-09 15:36:28 +05:30
Ankush Menat
5740942de9 fix: lowercase fieldnames 2023-08-09 15:32:26 +05:30
ruthra kumar
3866be4c2a Merge pull request #36560 from ruthra-kumar/broken_bench_update
fix: broken `bench update` after subscription refactor
2023-08-09 14:44:54 +05:30
s-aga-r
e415cb2873 Merge pull request #36554 from barredterra/hide-description-in-print-and-report
fix(RFQ): hide description in print and report
2023-08-09 13:54:47 +05:30
ruthra kumar
9db8769e65 fix: broken bench update after subscription refactor 2023-08-09 13:54:26 +05:30
Ankush Menat
b0c79a0467 perf(invoice): Faster return amount query (#36556)
perf: Faster return amount query
2023-08-09 13:37:19 +05:30
ruthra kumar
e64b004eca feat: utility to repost accounting ledgers without cancellation (#36469)
* feat: introduce doctypes for repost

* refactor: basic filters and validations

* chore: basic validations

* chore: added barebones function to generate ledger entries

* chore: repost on submit

* chore: repost in background

* chore: include payment entry and journal entry

* chore: ignore repost doc on cancel

* chore: preview method

* chore: rudimentary form of preview

* refactor: preview template

* refactor: basic background colors to differentiate old and new

* chore: remove commented code

* test: basic functionality

* chore: fix conflict

* chore: prevent repost on invoices with deferred accounting

* refactor(test): rename and test basic validations and methods

* refactor(test): test all validations

* fix(test): use proper name account name

* refactor(test): fix failing test case

* refactor(test): clear old entries

* refactor(test): simpler logic to clear old records

* refactor(test): make use of deletion flag

* refactor(test): split into multiple test cases
2023-08-08 20:27:12 +05:30
barredterra
4fb844ab70 fix(RFQ): hide description in print and report 2023-08-08 16:30:53 +02:00
s-aga-r
c1dd06065b Merge pull request #36551 from barredterra/fix-rfq-link
fix(RFQ): link to supplier portal
2023-08-08 16:55:02 +05:30
barredterra
68ad62f7d0 test(RFQ): get_link 2023-08-08 12:31:37 +02:00
barredterra
fd91f2c2e0 fix(RFQ): link to supplier portal 2023-08-08 12:31:01 +02:00
rohitwaghchaure
0b36e7d10e fix: stock reconciliation negative stock error (#36544)
fix: stock reco negative stock error
2023-08-08 15:18:27 +05:30
ruthra kumar
11d5327d1b refactor: use base_tax_withholding_net_total for treshold validation (#36528)
* refactor: use base_tax_withholding_net_total for treshold validation

* fix: only for non payment entry doctypes
2023-08-08 14:14:30 +05:30
Deepesh Garg
492ea3bcc8 fix: Debit credit difference while submitting Sales Invoice (#36523)
* fix: Debit credit difference while submitting Sales Invoice

* test(fix): Update gl entry comparison

* test(fix): Update gl entry comparison
2023-08-08 11:39:44 +05:30
s-aga-r
ecba6ee183 fix: enqueue submit/cancel action for stock entry having more than 50 line items (#36532) 2023-08-07 19:36:19 +05:30
Raffael Meyer
8cc3df7c2c feat(RFQ): make sending attachments configurable (#36359) 2023-08-07 19:11:01 +05:30
rohitwaghchaure
28dfc88789 fix: stock entry decimal issue (#36530) 2023-08-07 17:31:38 +05:30
Raffael Meyer
21080afd92 feat(RFQ): make email message fully configurable (#36353)
feat: make RFQ message fully configurable
2023-08-07 17:12:31 +05:30
ruthra kumar
b86747c9d4 feat: ledger comparison report (#36485)
* feat: Accounting Ledger comparison report

* chore: barebones methods

* chore: working state

* chore: refactor internal logic

* chore: working multi select filter on Account

* chore: working voucher no filter

* chore: remove debugging statements

* chore: report with currency symbol

* chore: working start and end date filter

* test: basic report function

* refactor(test): test all filters
2023-08-07 11:28:07 +05:30
Ankush Menat
2eea90a873 perf: defer holiday list imports
Only used for configuring but loaded whenever
get_doc("holiday list", ...) is done
2023-08-07 10:08:34 +05:30
Ankush Menat
10a2191e3f Merge pull request #36519 from ankush/lang_separator
fix: use correct lang separator for frappe
2023-08-07 10:06:23 +05:30
Ankush Menat
f574ac11ea perf: defer babel import
Only required when configuring but will get loaded everywhere
2023-08-07 10:03:40 +05:30
Ankush Menat
0218ca538f fix: use correct lang separator for frappe 2023-08-07 09:59:54 +05:30
Himanshu
38805603db feat: subscription refactor (#30963)
* feat: subscription refactor

* fix: linter changes

* chore: linter changes

* chore: linter changes

* chore: Update tests

* chore: Remove commits

---------

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-08-07 08:33:47 +05:30
mergify[bot]
b717e2b5bf chore: don't merge asset capitalization gl entries (copy #36514) (#36515)
chore: don't merge asset capitalization gl entries

(cherry picked from commit 3c8f292ac3)

Co-authored-by: anandbaburajan <anandbaburajan@gmail.com>
2023-08-06 23:44:22 +05:30
Bernd Oliver Sünderhauf
5435c641a2 fix: Refine supplier scorecard standings. (#36414)
Co-authored-by: Bernd Oliver Sünderhauf <pancho@mailbox.org>
2023-08-05 23:13:14 +05:30
Deepesh Garg
93767eb7fc fix: Tax withholding against order via Payment Entry (#36493)
* fix: Tax withholding against order via Payment Entry

* test: Add test case

* fix: Nonetype exceptions
2023-08-05 22:22:03 +05:30
Deepesh Garg
96035b87d5 fix: Lower deduction certificate for multi-company (#36491) 2023-08-05 22:21:06 +05:30
Corentin Flr
559d914c0b fix(accounts): Translate columns in AP/AR report (#36503) 2023-08-05 22:18:36 +05:30
s-aga-r
758b31d895 fix: get incoming rate instead of BOM rate (#36496)
* fix: get incoming rate instead of BOM rate

* test: add test case for SCR rm rate
2023-08-05 19:28:38 +05:30
s-aga-r
e179499764 fix(ux): add Ordered Qty column in Get Items From > MR (#36486) 2023-08-05 19:26:11 +05:30
Michelle Alva
16bc1e228f chore: typo in onboarding (#36504)
* fix: typo in onboarding

* fix: typo
2023-08-05 18:30:24 +05:30
ruthra kumar
a4be6b0f10 Merge pull request #36501 from ruthra-kumar/fix_failing_gain_loss_unit_tests
fix(test): replace hardcoded reference to adv with dynamic one
2023-08-05 14:43:42 +05:30
ruthra kumar
466734fb4b fix(test): replace hardcoded reference to adv with dynamic one 2023-08-05 14:11:57 +05:30
Ritvik Sardana
b483364649 Merge branch 'develop' of https://github.com/frappe/erpnext into develop-ritvik-POS-runtime-effect 2023-08-05 11:26:47 +05:30
Ritvik Sardana
dbc000d655 fix: batched items method giving wrong quantity, so changed it back to previous way 2023-08-05 11:23:07 +05:30
mergify[bot]
b65ee6c2db fix: cross connect delivery note and sales invoice (backport #36183) (#36457)
fix: cross connect delivery note and sales invoice (#36183)

* fix: cross connect delivery note and sales invoice

* chore: remove unnecessary non_standard_fieldname

(cherry picked from commit 8501a1182a)

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-08-05 10:57:23 +05:30
RitvikSardana
b86afb2964 feat: Financial Ratio Report (#36130)
* feat: Financial Ratio report added

* fix: Made columns dynamic

* fix: Changed fieldtype of year column

* fix: Added Financial Ratios for all Fiscal Years

* fix: Added Validation of only Parent Having account_type of Direct Income, Indirect Income, Current Asset and Current Liability

* fix: Added 4 more ratios

* fix: added a function for repeated code

* fix: added account_type in accounts utils and cleaned report code

* fix: created function for avg_ratio_values

* fix: cleaning code

* fix: basic ratios completed

* fix: cleaned the code

* chore: code cleanup

* chore: remove comments

* chore: code cleanup

* chore: cleanup account query

* chore: Remove unused variables

---------

Co-authored-by: Ritvik Sardana <ritviksardana@Ritviks-MacBook-Air.local>
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-08-04 22:05:30 +05:30
Gursheen Kaur Anand
edbefee10c fix: payment allocation in invoice payment schedule (#36440)
* fix: payment allocation in invoice payment schedule

* test: payment allocation for payment terms

* chore: linting issues
2023-08-04 17:49:17 +05:30
Sumit Jain
49be740736 fix: Contact Doctype doesn't have any field called job_title
fix: Contact Doctype doesn't have any field called `job_title`
2023-08-04 17:45:16 +05:30
Deepesh Garg
17585f08ba Merge pull request #36333 from GursheenK/AP-GL-not-matching
fix: AP report does not show expense claim payables
2023-08-04 17:42:54 +05:30
Ritvik Sardana
510543680b fix: batched items in POS 2023-08-04 16:55:30 +05:30
Ritvik Sardana
c9d5a62350 fix: POS Runtime Effect completed 2023-08-04 16:47:49 +05:30
Deepesh Garg
7276d593c3 Merge pull request #36458 from GursheenK/consolidated-financial-statements-roottype
test: balance sheet report
2023-08-04 09:55:36 +05:30
Deepesh Garg
04820b14da Merge pull request #35644 from ruthra-kumar/book_gain_loss_in_je
refactor: booking exchange gain/loss amount through journal
2023-08-04 09:53:26 +05:30
Deepesh Garg
10529e1f5a Merge pull request #36412 from pancho-s/Custom_Abbr_On_Setup
feat: Reallow customizing company abbreviation on setup.
2023-08-03 21:34:57 +05:30
Anand Baburajan
38a612c62e chore: better cost center validation for assets (#36477) 2023-08-03 16:37:05 +05:30
Ritvik Sardana
5b1aa07ecb fix: fixed SABB error 2023-08-03 16:10:28 +05:30
Husam Hammad
27ebf14f9d fix: handle None value in payment_term_outstanding
* Fix payment entry bug: Handle None value in payment_term_outstanding

* fix: Handle None value in payment_term_outstanding V2

fix linting issue
2023-08-02 16:28:05 +05:30
Devin Slauenwhite
dedf24b86d fix: don't allow negative rates (#36027)
* fix: don't allow negative rate

* test: don't allow negative rate

* fix: only check for -rate on items child table
2023-08-02 16:26:55 +05:30
Deepesh Garg
b715453ae3 Merge pull request #36450 from cogk/fix-typo-in-query-for-financial-statement-report
fix: Fix query for financial statement report
2023-08-01 23:36:25 +05:30
Gursheen Anand
002bf77314 test: balance sheet report 2023-08-01 23:24:18 +05:30
Gursheen Anand
cd98be6088 fix: check root type only when not none 2023-08-01 23:22:49 +05:30
Anand Baburajan
a8df875820 chore: use datatable for asset depr sch table view (#36449)
* chore: use datatable for asset depr sch table view

* chore: remove unnecessary code
2023-08-01 21:14:27 +05:30
Ritvik Sardana
17771a55fb fix: added code for batched items in POS 2023-08-01 19:28:40 +05:30
Corentin Flr
bd3fc7c434 fix: Fix query for financial statement report 2023-08-01 14:35:11 +02:00
ruthra kumar
ab933df5bb fix: overallocation validation misfire on normal invoices (#36349)
* fix: overallocation validation misfire on normal invoices

* test: assert misfire doesn't happen
2023-08-01 13:12:16 +05:30
Anand Baburajan
2ab3d75274 feat: asset activity (#36391)
* feat: asset activity

* chore: add more actions to asset activity

* chore: fix failing test due to timestamp mismatch error

* chore: rewriting asset activity messages

* chore: add report and add it to workspace

* chore: show user in list view
2023-08-01 12:00:24 +05:30
mergify[bot]
3f09f811bf fix: allow fully depreciated existing assets (copy #36378) (#36379)
* fix: allow fully depreciated existing assets

(cherry picked from commit 9489cba275)

# Conflicts:
#	erpnext/assets/doctype/asset/asset.json
#	erpnext/assets/doctype/asset/depreciation.py

* chore: fix conflicts in asset.json

* chore: fix conflicts in depreciation.py

---------

Co-authored-by: anandbaburajan <anandbaburajan@gmail.com>
2023-08-01 11:20:04 +05:30
Deepesh Garg
333f2a565b fix: Add journal entry in demo 2023-08-01 10:10:50 +05:30
ruthra kumar
a93ae9c826 Merge pull request #36434 from ruthra-kumar/replace_get_cached_with_get_single_value
fix: incorrect usage `get_cached_value` on single doctypes
2023-08-01 10:02:33 +05:30
abdosaeed95
4f473eb090 fix: typo in loyalty program throw message (#36432) 2023-08-01 10:01:01 +05:30
ruthra kumar
ba15810639 fix: incorrect usage get_cached_value on single doctypes 2023-08-01 07:58:09 +05:30
Bernd Oliver Sünderhauf
f333d2724a Merge branch 'frappe:develop' into Custom_Abbr_On_Setup 2023-08-01 01:18:10 +02:00
Bernd Oliver Sünderhauf
bc8d05da0f feat: Reallow customizing company abbreviation on setup. 2023-07-31 23:46:47 +02:00
Gursheen Kaur Anand
11bd15e580 fix: root type in account map for balance sheet (#36303)
* fix: root type in account map

* fix: fetch gle by root type in consolidated financial statement

* refactor: consolidated financial statement gle query

* fix: filter accounts by root type
2023-07-31 23:27:16 +05:30
Ankush Menat
f31d07554d perf: avoid full table scan in sle count check (#36428) 2023-07-31 22:13:47 +05:30
rohitwaghchaure
f83a100a8d fix: not able to make material request (#36416) 2023-07-31 19:13:23 +05:30
Devin Slauenwhite
e8eeeb16e2 fix: group item reorder by (warehouse, material_request_type) (#35818)
* fix: group item reorder by (warehouse, material_request_type)

* fix: update reorder error message

* chore: linter

* fix: correct error message

Co-authored-by: s-aga-r <sagarsharma.s312@gmail.com>

* chore: linter

---------

Co-authored-by: s-aga-r <sagarsharma.s312@gmail.com>
2023-07-31 12:47:14 +00:00
xdlumertz
652398fad2 fix: Defined "Open" Status as default (#36421)
Defined "Open" Status as default of the child doctype (Quality Review Objective), because without it the main doctype (Quality Review) has "Passed" status.
This happens because in the "set_status" function, the status is updated according to the status of the child records.
2023-07-31 12:34:33 +00:00
Vimal
ce36d1f668 fix: job card suggest holiday as start date (#35958) 2023-07-31 17:51:31 +05:30
xdlumertz
05b07e098a fix: process_owner is not link User (#36420)
-Changed "fetch from" since field is not a binding field
-Change field "full_name" from Hidden to Read Only
2023-07-31 17:34:55 +05:30
Gursheen Kaur Anand
1ddfaa7605 fix: ignore cancelled gle in voucher-wise balance report (#36417)
fix: ignore cancelled gle
2023-07-31 14:29:20 +05:30
Deepesh Garg
70c5df056d Merge branch 'develop' of https://github.com/frappe/erpnext into demo_data_on_install 2023-07-31 13:02:34 +05:30
Deepesh Garg
7805abbb2d fix: reset default company 2023-07-30 20:29:20 +05:30
Deepesh Garg
c6d8f15b10 Merge pull request #36389 from AlexandreLumertz/patch-2
fix: Party type translation in error message
2023-07-30 18:42:01 +05:30
Deepesh Garg
c6b024c34b Merge pull request #36167 from barredterra/percentage-rounding
fix: rounding of percentage fields
2023-07-30 14:41:30 +05:30
Deepesh Garg
b38d300a92 Merge pull request #36320 from barredterra/german-translation-supplier
fix(Supplier): german translations
2023-07-30 14:40:15 +05:30
Deepesh Garg
eeddeeeeb3 Merge pull request #36369 from ashish-greycube/patch-11
fix: in payment_entry 'Unallocated Amount' cal is broken
2023-07-30 14:37:24 +05:30
Deepesh Garg
c850f46c0a chore: Update records 2023-07-30 11:53:09 +05:30
Deepesh Garg
26ee50269a test: Update demo setup test 2023-07-30 11:52:49 +05:30
Deepesh Garg
371413a078 fix: Button to clear demo data 2023-07-29 22:39:07 +05:30
Deepesh Garg
3698af834b Merge branch 'develop' of https://github.com/frappe/erpnext into demo_data_on_install 2023-07-29 17:12:06 +05:30
Ankush Menat
c0642cf528 fix: only publish repost progress to doc subscriber (#36400)
Huge size of string gets blasted to everyone on site. Due to some memory
leak (cause unknown) till sockets are open the strings are also in
process' memory.

related https://github.com/frappe/frappe/issues/21863
2023-07-29 09:32:11 +00:00
rohitwaghchaure
b71dafd1f1 Merge pull request #36375 from ramonus/job-card-fix
fix: Job Card validation fixed when displaying total completed quantity
2023-07-29 15:01:16 +05:30
Deepesh Garg
caad4537c5 Merge pull request #36149 from GursheenK/balancing-accounting-dimensions
fix: make offsetting entry for acc dimensions in general ledger
2023-07-29 12:29:03 +05:30
Deepesh Garg
f999b75ed6 Merge branch 'develop' of https://github.com/frappe/erpnext into balancing-accounting-dimensions 2023-07-29 11:53:03 +05:30
Deepesh Garg
ecca9cb023 fix: Add company filters for account 2023-07-29 11:52:54 +05:30
Deepesh Garg
3173546d5c Merge pull request #36198 from HarryPaulo/fix-pricing-rule-on-point-of-sale
fix: inserting of items with pricing rule with qty range
2023-07-29 09:58:05 +05:30
ruthra kumar
3b58055410 refactor(test): introduce and make use of mixins in unit tests (#36382)
* refactor(test): create and use test mixin

* chore(test): replace get_user_default with variable
2023-07-28 21:02:21 +05:30
xdlumertz
bc470591ac fix: translate
fix: translate
2023-07-28 12:31:29 -03:00
rohitwaghchaure
ee7da639e7 Merge pull request #36380 from rohitwaghchaure/fixed-fieldtype-from-currency-to-flt
fix: change fieldtype from Currency to Float for the valuation rate in reports
2023-07-28 20:35:46 +05:30
s-aga-r
bc6cbb9e25 Merge pull request #36365 from AlexandreLumertz/patch-1
fix: removed "fetch_from"
2023-07-28 18:12:21 +05:30
xdlumertz
1c687a4afd fix: removed "fetch_from"
* fix: removed ("fetch_from": "goal.objective")
The field ended up being disabled because of this.
2023-07-28 18:10:45 +05:30
s-aga-r
d9ac7f9b87 Merge pull request #36221 from s-aga-r/FIX-ISS-23-24-02079
perf: use `LEFT JOIN` instead of `NOT EXISTS`
2023-07-28 17:51:24 +05:30
rohitwaghchaure
4e58503075 Merge pull request #36377 from rohitwaghchaure/fixed-pp-sub-assembly-available-items
fix: multiple issues related to Production Plan
2023-07-28 17:26:06 +05:30
Rohit Waghchaure
c82cb379a5 fix: change fieldtype from Currency to Float for the valuation rate in the stock report 2023-07-28 17:21:05 +05:30
s-aga-r
148d466ae5 fix: long queue process_boms_cost_level_wise 2023-07-28 17:05:17 +05:30
s-aga-r
58d867503b perf: use LEFT JOIN instead of NOT EXISTS 2023-07-28 16:44:41 +05:30
Gursheen Anand
f5761e7965 refactor: future payments query 2023-07-28 16:01:30 +05:30
Rohit Waghchaure
1c2148b637 fix: multiple issues related to Production Plan 2023-07-28 15:38:00 +05:30
Gursheen Anand
e355dea4b5 fix: AP and AR summary 2023-07-28 14:51:28 +05:30
ramonalmato
49981fecc7 fix: Job Card validation fixed when displaying total completed quantity 2023-07-28 10:57:31 +02:00
Ankush Menat
e36c8ce5be perf: move project status reminder to hourly (#36372)
Only used for sending daily/weekly/bi-daily

[skip ci]
2023-07-28 12:53:22 +05:30
Gursheen Anand
fd5c4e0a64 fix: fetch ple for all party types 2023-07-28 11:41:03 +05:30
Ashish Shah
f9fa34ff40 fix: in payment_entry 'Unallocated Amount' cal is broken 2023-07-28 11:10:51 +05:30
ruthra kumar
50d294fd1e Merge pull request #36126 from ruthra-kumar/idx_issue_upon_journal_reconciliation
fix: incorrect `idx` on Journals after reconciliation
2023-07-28 09:33:29 +05:30
ruthra kumar
46ea814400 chore: cancel gain/loss je while posting reverse gl 2023-07-28 08:34:36 +05:30
ruthra kumar
567c0ce1e8 chore: don't make gain/loss journal for base currency transactions 2023-07-28 08:12:44 +05:30
rohitwaghchaure
dac9fd64a8 Merge pull request #36328 from rohitwaghchaure/fixed-purchase-receipt-timeout-on-cancel-develop
fix: timeout error while cancelling the Purchase Receipt
2023-07-27 23:26:59 +05:30
Gughan Ravikumar
89d109e8d2 fix: Naming Series preview when no previous transaction present 2023-07-27 23:12:11 +05:30
Deepesh Garg
829387c2bc Merge pull request #36360 from deepeshgarg007/fy_default_dates
fix: Default year start and end dates in reports
2023-07-27 22:35:35 +05:30
Deepesh Garg
fff83bc847 Merge pull request #36092 from HarryPaulo/fix-paid-amount-payment-method-group
fix: paid_amount when the group is mode of payment
2023-07-27 21:21:52 +05:30
Deepesh Garg
ebdf1959fd Merge pull request #36254 from deepeshgarg007/remove_auto_repeat
fix: Remove auto repeat (subscription) button from Sales and Purchase documents
2023-07-27 21:18:03 +05:30
Deepesh Garg
a25f34c3d5 Merge pull request #36313 from barredterra/delete-root-item-group
fix(Item Group): allow root deletion
2023-07-27 21:14:44 +05:30
Deepesh Garg
2341061852 fix: Default year start and end date in reports 2023-07-27 21:03:32 +05:30
Deepesh Garg
4496a6760e fix: Default year start and end dates in reports 2023-07-27 20:54:55 +05:30
Deepesh Garg
dacf013170 Merge pull request #36347 from deepeshgarg007/ac_ignore
fix: Ignore account closing balance for financial statement
2023-07-27 19:54:01 +05:30
Deepesh Garg
523d2c38eb Merge pull request #36356 from frappe/revert-36249-default_dates
Revert "fix: Default year start and end dates in reports"
2023-07-27 19:15:00 +05:30
Deepesh Garg
cf50bb45ad Revert "fix: Default year start and end dates in reports" 2023-07-27 19:13:11 +05:30
Deepesh Garg
3db6ac5ac9 Merge pull request #36069 from GursheenK/purchase-sales-register-with-PE/JE
feat: include payments in purchase / sales register report
2023-07-27 18:13:37 +05:30
Gursheen Anand
4f9242d699 fix: dimension name in remark 2023-07-27 15:45:48 +05:30
Deepesh Garg
ccf1920a78 fix: Ignore account closing balance for financial statement 2023-07-27 15:40:36 +05:30
Rucha Mahabal
5d87c06332 refactor: remove hrms app translations (#36343) 2023-07-27 12:30:23 +05:30
Deepesh Garg
5dc8195d91 Merge pull request #36249 from deepeshgarg007/default_dates
fix: Default year start and end dates in reports
2023-07-27 12:19:44 +05:30
Ankush Menat
1d7dbd3456 perf: don't use ifnull where it's not required (#36336)
ifnull isn't really required when doing `!= 'anything'` because if it's null then value will be falsy.
ifnull is only required when checking `= ''` if you treat `null = ''`

Actuall better fix would be make things explcitly non-nullable, then we won't ever have to add this on such fields.

ref: https://github.com/frappe/frappe/pull/21822
2023-07-27 06:06:07 +00:00
Nabin Hait
56e7cc7e05 Merge pull request #36327 from nabinhait/pcv-fix
fix: GL Entries should not be split based on cost center allocation in PCV
2023-07-27 11:33:06 +05:30
Gursheen Anand
b1818137e7 fix: PE in sales register 2023-07-27 10:08:26 +05:30
ruthra kumar
804afaa647 chore(test): use existing company for unit test 2023-07-27 09:30:38 +05:30
ruthra kumar
d9d6856153 chore: rename some internal variables 2023-07-27 08:02:46 +05:30
ruthra kumar
acc7322874 chore: add msgprint for exc JE 2023-07-27 07:52:01 +05:30
ruthra kumar
47bbb37291 chore: use frappetestcase 2023-07-27 05:54:13 +05:30
ruthra kumar
025091161e refactor(test): assert ledger outstanding 2023-07-27 05:53:12 +05:30
ruthra kumar
bfa54d5335 fix(test): test case breakage in Github Actions 2023-07-26 22:33:58 +05:30
ruthra kumar
ae424fdfed test: assert ledger after cr note cancellation 2023-07-26 22:33:58 +05:30
ruthra kumar
95543225cf fix: cr/dr note should be posted for exc gain/loss 2023-07-26 22:33:58 +05:30
ruthra kumar
e3d2a2c5bd test: cr notes against invoice 2023-07-26 22:33:58 +05:30
ruthra kumar
506a5775f9 fix: incorrect gain/loss on allocation change on reconciliation tool 2023-07-26 22:33:58 +05:30
ruthra kumar
ba1f065765 refactor: create gain/loss on Cr/Dr notes with different exc rates 2023-07-26 22:33:58 +05:30
ruthra kumar
1ea1bfebc4 refactor: convert class method to standalone function 2023-07-26 22:33:58 +05:30
ruthra kumar
c0b3b069b5 refactor: split make_exchage_gain_loss_journal into smaller function 2023-07-26 22:33:58 +05:30
ruthra kumar
c87332d5da refactor: cr/dr note will be on single exchange rate 2023-07-26 22:33:58 +05:30
ruthra kumar
6628632fbb chore: type info 2023-07-26 22:33:58 +05:30
ruthra kumar
37895a361c chore(test): fix broken test case 2023-07-26 22:33:58 +05:30
ruthra kumar
70dd9d0671 chore(test): fix broken unit test 2023-07-26 22:33:58 +05:30
ruthra kumar
f3363e813a test: journals against sales invoice 2023-07-26 22:33:58 +05:30
ruthra kumar
f4a65cccc4 refactor: handle diff amount in various names 2023-07-26 22:33:58 +05:30
ruthra kumar
5695d6a5a6 refactor: unit tests for journals 2023-07-26 22:33:58 +05:30
ruthra kumar
0567243772 refactor: dr/cr logic for journals as payments 2023-07-26 22:33:58 +05:30
ruthra kumar
73cc1ba654 refactor: assert payment ledger outstanding in both currencies 2023-07-26 22:33:58 +05:30
ruthra kumar
6e18bb6456 refactor: cancel gain/loss JE on Journal as payment cancellation 2023-07-26 22:33:58 +05:30
ruthra kumar
f119a1e115 refactor: linkage between journal as payment and gain/loss journal 2023-07-26 22:33:58 +05:30
ruthra kumar
cd42b26839 chore: code cleanup 2023-07-26 22:33:58 +05:30
ruthra kumar
1bcb728c85 refactor: remove call for setting deductions in payment entry 2023-07-26 22:33:58 +05:30
ruthra kumar
72bc5b3a11 refactor(test): difference amount no updated for exchange gain/loss 2023-07-26 22:33:58 +05:30
ruthra kumar
5b06bd1af4 refactor(test): exc gain/loss journal for advance in purchase invoice 2023-07-26 22:33:58 +05:30
ruthra kumar
78bc712756 refactor: only post on base currency for exchange gain/loss 2023-07-26 22:33:58 +05:30
ruthra kumar
ee2d1fa36e refactor(test): payment will have same exch rate - no gain/loss
while making payment entry using reference to sales/purchase invoice,
it herits the parent docs exchange rate. so, there will be no exchange
gain/loss
2023-07-26 22:33:58 +05:30
ruthra kumar
389cadf157 refactor(test): assert Exc journal when reconciling Journa to invoic 2023-07-26 22:33:58 +05:30
ruthra kumar
ee3ce82ea8 chore: remove debugging statements and fixing failing unit tests 2023-07-26 22:33:58 +05:30
ruthra kumar
7b516f8463 refactor: exc booking logic for Journal Entry 2023-07-26 22:33:58 +05:30
ruthra kumar
00a2e42a47 refactor(test): exc gain/loss booked through journal 2023-07-26 22:33:58 +05:30
ruthra kumar
4ff53e1062 refactor: assert exchange gain/loss amount in reference table 2023-07-26 22:33:58 +05:30
ruthra kumar
92ae9c2201 refactor: remove unused variable, pe should pull in parent exc rate
1. 'reference_doc' variable is never set. Hence, removing.
2. set_exchange_rate() relies on ref_doc, which was never
set due to point [1]. Replacing it with 'doc'.
3. Sales/Purchase Invoice has 'conversion_rate' field for tracking
exchange rate. Added a get statement for them as well.
2023-07-26 22:33:58 +05:30
ruthra kumar
c1184585ed refactor: helper method 2023-07-26 22:33:58 +05:30
ruthra kumar
34b5e849a2 chore: fix logic for purchase invoice and some typos 2023-07-26 22:33:58 +05:30
ruthra kumar
13febcac81 refactor: add new reference type in journal entry account 2023-07-26 22:33:58 +05:30
ruthra kumar
0587338435 chore: patch to update property setter for Journal Entry Accounts 2023-07-26 22:33:58 +05:30
ruthra kumar
7e94a1c51b refactor: replace with new method in purchase invoice 2023-07-26 22:33:58 +05:30
ruthra kumar
5e1cd1f227 test: different scenarios for exchange booking 2023-07-26 22:33:58 +05:30
ruthra kumar
81cd7873d3 refactor: book exchange gain/loss through journal 2023-07-26 22:33:58 +05:30
Anand Baburajan
5e7b05e566 chore: adding totals in asset reports (#36334) 2023-07-26 21:57:18 +05:30
Gursheen Anand
c47a37c3ab fix: fetch ple with party type employee in AP 2023-07-26 16:42:06 +05:30
ruthra kumar
e79f80331d Merge pull request #36322 from frappe/mergify/bp/develop/pr-36298
fix: show invoices name instead of object address (backport #36298)
2023-07-26 16:11:56 +05:30
Anand Baburajan
f28f8dc596 fix: show depr schedule table in asset doc (#36332) 2023-07-26 15:59:37 +05:30
Deepesh Garg
f368894d22 Merge pull request #36238 from RitvikSardana/develop-ritvik-pos-dark
fix: POS closing with item name
2023-07-26 15:33:44 +05:30
gouravengineer
a5b626420d fix: show invoices name instead of object address
comma_and function in expecting a list but it gets a tuple so it is returning a object instead of a string

(cherry picked from commit cf93714a7c)
2023-07-26 15:30:03 +05:30
Nabin Hait
666d961875 fix: GL Entries should not be splitted based on cost center allocation in PCV 2023-07-26 13:03:29 +05:30
Rohit Waghchaure
1c2da92233 fix: timeout error while cancelling the Purchase Receipt 2023-07-26 13:03:23 +05:30
Deepesh Garg
89aa6f0269 Merge pull request #36318 from barredterra/remove-autoname
chore(Item Group): remove redundant autoname
2023-07-26 09:44:37 +05:30
Deepesh Garg
3fe75ce7d4 Merge pull request #36319 from cogk/fix-taxes-controller-after-refactor
fix: Fix initialize_taxes
2023-07-26 09:41:02 +05:30
barredterra
3558c3d24e fix: german translations 2023-07-25 21:42:01 +02:00
Corentin Flr
d69af741c8 fix(taxes_and_totals.js): Fix initialize_taxes incorrect refactor
Following changes from PR #36147, `cur_frm.cscript.validate_taxes_and_charges` is not a method anymore and should be replaced with the `erpnext.accounts.taxes.validate_taxes_and_charges` function.
2023-07-25 21:12:14 +02:00
rohitwaghchaure
17d4ab36c0 Merge pull request #36304 from frappe/mergify/bp/develop/pr-36300
fix: added missing option Partially Received in the status field (backport #36300)
2023-07-25 22:49:51 +05:30
Anand Baburajan
11a9d4124f fix: apply discount on item after applying price list (#36317) 2023-07-25 21:55:17 +05:30
barredterra
1691eee26e chore(Item Group): remove redundant autoname 2023-07-25 18:05:41 +02:00
mergify[bot]
eead2bba9f fix: group by in fixed asset register (copy #36310) (#36311)
fix: group by in fixed asset register

(cherry picked from commit 1151e47f46)

Co-authored-by: anandbaburajan <anandbaburajan@gmail.com>
2023-07-25 20:58:41 +05:30
barredterra
fd2c272bed fix(Item Group): allow root deletion
It was not possible to delete an empty, unused Item Group without any
children, if it was one of possibly multiple roots of the Item Group tree.
This fix allows deleting a root Item Group.
2023-07-25 17:01:57 +02:00
Rohit Waghchaure
55a9537220 fix: added missing option Partially Received in the status dropdown field
(cherry picked from commit 4fa93b05c6)
2023-07-25 12:39:07 +00:00
ruthra kumar
cb2bfabb6f fix: validation blocks partial payment for SO and PO 2023-07-25 17:57:49 +05:30
Gursheen Anand
341709aa0a fix: additional query cols for sales register 2023-07-25 15:57:17 +05:30
Deepesh Garg
2c1943c7e6 Merge pull request #36246 from blaggacao/bump-tweepy
build(deps): update tweepy 3.10.0 -> 4.14.0
2023-07-25 15:06:48 +05:30
Deepesh Garg
6830a8737a Merge pull request #36196 from GursheenK/customer-details-in-tax-withholding-category-report
fix: show tax withholding category details for customers
2023-07-25 14:48:15 +05:30
Deepesh Garg
8c410c617c chore: Add default value 2023-07-25 14:47:46 +05:30
Deepesh Garg
e1d6bf364e Merge branch 'develop' of https://github.com/frappe/erpnext into customer-details-in-tax-withholding-category-report 2023-07-25 14:45:36 +05:30
Gursheen Anand
95c6f4d40d fix: additional query cols for gst itemised registers 2023-07-25 14:32:24 +05:30
Deepesh Garg
61be373800 Merge pull request #36107 from GursheenK/accounting_dimension_in_based_on_filter
feat: filtering based on accounting dimensions in profitability analysis
2023-07-25 14:28:46 +05:30
RitvikSardana
62ca89b10f fix: POS background color optimized in dark mode (#36287)
fix: POS dark theme compatability

Co-authored-by: Ritvik Sardana <ritviksardana@Ritviks-MacBook-Air.local>
2023-07-25 13:01:10 +05:30
Gursheen Anand
e6d66fe5b0 fix: gst itemised registers for india compliance api call 2023-07-25 12:14:37 +05:30
Deepesh Garg
30554301c9 Merge pull request #36235 from resilient-tech/fix-tax-breakup-for-diff-tax-rates
fix: Correct Tax Breakup for different tax rates for same hsn code
2023-07-24 20:57:26 +05:30
Deepesh Garg
3f81e15672 Merge pull request #36147 from deepeshgarg007/eslint
refactor(ci): add eslint and update linting confs
2023-07-24 20:55:07 +05:30
Smit Vora
1b8490dc98 Merge branch 'develop' into fix-tax-breakup-for-diff-tax-rates 2023-07-24 20:20:19 +05:30
mergify[bot]
1bc87a970a fix: set new purchase_receipt_amount on asset split (copy #36272) (#36280)
fix: set new purchase_receipt_amount on asset split

(cherry picked from commit 7fd9b489ee)

Co-authored-by: anandbaburajan <anandbaburajan@gmail.com>
2023-07-24 19:37:07 +05:30
Deepesh Garg
4867a767a2 Merge pull request #36278 from resilient-tech/set-company-flag
fix(regional): set `frappe.flags.company` temporarily, where required
2023-07-24 19:34:29 +05:30
Sagar Vora
4205f564a0 fix(regional): set frappe.flags.company temporarily, where required 2023-07-24 18:37:58 +05:30
DaizyModi
6f376cf103 fix: remove unused params 2023-07-24 18:02:42 +05:30
Gursheen Anand
db49d53aaf fix: running balance after sorting 2023-07-24 17:42:13 +05:30
Deepesh Garg
164df33419 Merge pull request #36274 from GursheenK/process-soa-customer-filter
fix: customer filter in process soa
2023-07-24 17:32:17 +05:30
Gursheen Anand
5224f13db2 fix: add patch for renaming tds payable report 2023-07-24 17:11:05 +05:30
Gursheen Anand
34d7fb388d fix: customer filter in process soa 2023-07-24 16:47:06 +05:30
mergify[bot]
1436040d4c fix: allow both custodian and location while creating asset (copy #36263) (#36264)
fix: allow both custodian and location while creating asset

(cherry picked from commit bff00bc8b2)

Co-authored-by: anandbaburajan <anandbaburajan@gmail.com>
2023-07-24 15:51:24 +05:30
ruthra kumar
4464b2a21b Merge pull request #36261 from ruthra-kumar/possible_missing_field_error_on_payment_entry
refactor: apply terms based validation only on sales/purchase doctypes
2023-07-24 15:22:15 +05:30
rohitwaghchaure
7f4dda1b06 Merge pull request #36259 from rohitwaghchaure/fixed-report-default-email-outgoing-error
fix: no default email account causing reposting issue
2023-07-24 15:03:09 +05:30
ruthra kumar
3dd119eeea refactor: apply terms based validation only on sales/purchase doctyp 2023-07-24 14:50:11 +05:30
ruthra kumar
a785a6054e Merge pull request #36251 from ruthra-kumar/performance_tune_timsheet_adding_logic
fix: unresponsive sales invoice page
2023-07-24 14:01:07 +05:30
Rohit Waghchaure
efb51526a9 fix: no default email account causing reposting issue 2023-07-24 14:00:20 +05:30
Ritvik Sardana
8b4228d616 fix: removed duplicate code 2023-07-24 13:59:24 +05:30
Ritvik Sardana
5389dabe19 Merge branch 'develop' of https://github.com/frappe/erpnext into develop-ritvik-pos-dark 2023-07-24 12:48:58 +05:30
Ritvik Sardana
82b36e2ec8 fix: added test for pos closing without item code 2023-07-24 12:47:29 +05:30
Deepesh Garg
203b8ec872 Merge pull request #36220 from marination/dunning-patch-acc-frozen
fix: Patch Dunnings after accounts were frozen
2023-07-24 12:46:32 +05:30
ruthra kumar
740f283ec1 Merge pull request #36241 from ruthra-kumar/fix_allocation_logic_in_get_outstanding_invoices
fix: multiple fixes on payment terms based issues in payment entry
2023-07-24 12:35:25 +05:30
Deepesh Garg
4bb6db86f8 fix: Remove auto repeat (subscription) button from Sales and Purchase documents 2023-07-24 12:29:57 +05:30
Gursheen Anand
2f6d0bdcee fix: col names for party types 2023-07-24 12:20:58 +05:30
Gursheen Anand
38b501e004 fix: make party type filter mandatory 2023-07-24 12:13:47 +05:30
Deepesh Garg
3c92686f0a fix: Default year start and end dates in reports 2023-07-24 11:58:16 +05:30
David Arnold
b740cdfc00 build(deps): update tweepy 3.10.0 -> 4.14.0 2023-07-23 23:14:58 -05:00
David Arnold
d066b5cd04 fix(startup): coa drill down 2023-07-23 22:44:19 -05:00
Deepesh Garg
cdc9b62688 chore: Remove cur_frm from sales_invoice.js 2023-07-23 22:44:18 +05:30
Deepesh Garg
8d3d9493f0 chore: linting issues 2023-07-23 20:06:41 +05:30
ruthra kumar
d048365da3 refactor: refresh table once after loop ends 2023-07-23 19:56:30 +05:30
Deepesh Garg
0d70ae2a21 chore: Ingnore issues 2023-07-23 19:34:08 +05:30
Deepesh Garg
8ccb8e3c5b chore: Move buying controller to utils 2023-07-23 18:50:44 +05:30
Deepesh Garg
7205fb9b97 chore: convert sales common to utils 2023-07-23 12:07:21 +05:30
ruthra kumar
ec7558b9e0 refactor: handle references without any template and payment_term 2023-07-23 11:55:16 +05:30
ruthra kumar
662ccd467c fix: allocation logic on 'Get Outstanding Invoices' btn in PE
1. fixed broken `payment_term` filter in Payment References section
2. Throw error if user fails to select 'Payment Term' for an invoice
with 'Payment Term based allocation' enabled.
2023-07-23 11:37:27 +05:30
Deepesh Garg
4077254b01 chore: resolve undefined variables issue 2023-07-22 23:07:18 +05:30
Deepesh Garg
0b1e78e127 chore: Add landed cost taxes and charges common in bundles 2023-07-22 21:19:48 +05:30
Deepesh Garg
6b2dbdd394 Merge branch 'develop' into skip_tcs 2023-07-22 18:38:45 +05:30
ruthra kumar
e6abe1b77f Merge pull request #36206 from ruthra-kumar/test_cases_for_payment_term_overallocation
test: overallocation validation in payment entry
2023-07-22 10:41:01 +05:30
ruthra kumar
93246043ec chore(test): enable multi-currency party for testing 2023-07-22 10:01:59 +05:30
ruthra kumar
8f9ef4ef5b chore: validation on multi-currency tran on company curtency account 2023-07-22 09:20:55 +05:30
ruthra kumar
5b37919574 chore: use flt for currency 2023-07-22 09:20:55 +05:30
ruthra kumar
6b4a81ee48 chore: test more scenarios 2023-07-22 09:20:44 +05:30
DaizyModi
653117c2a9 test: fix test case for itemised tax breakup 2023-07-21 17:56:33 +05:30
DaizyModi
b84deec601 fix: Correct Tax Breakup for different tax rates for same hsn code 2023-07-21 17:43:27 +05:30
Ritvik Sardana
7069e2a5a0 fix: removed validate_item_code function in sales_invoice 2023-07-21 17:18:35 +05:30
Deepesh Garg
cc36af57bd Merge pull request #36229 from deepeshgarg007/naming_in_order
fix: FY in naming series variable for orders
2023-07-21 16:05:31 +05:30
Deepesh Garg
7a7d32db81 fix: FY in naming series variable for orders 2023-07-21 16:03:17 +05:30
Gursheen Anand
ec80dc6f09 fix: make column names more general 2023-07-21 15:55:31 +05:30
Gursheen Anand
1c5c310f5a fix: fetch acc dimension fieldname 2023-07-21 13:37:48 +05:30
Gursheen Anand
59a2a04fcc fix: check gl entry status using is_cancelled 2023-07-21 13:22:01 +05:30
Gursheen Anand
1c033ce635 chore: change column format for report 2023-07-21 11:00:19 +05:30
Gursheen Anand
33f8f7d7b3 fix: exclude cancelled gl entries for opening balance 2023-07-21 10:57:55 +05:30
marination
17ff395f9a fix: Reverse GL entries only for submitted Dunnings 2023-07-20 20:54:43 +05:30
Deepesh Garg
de189c5f18 Merge pull request #35950 from FHenry/dev_feat_adress_contact_report
feat: add Lead to Address And Contact report
2023-07-20 20:26:38 +05:30
marination
aeae8d646a fix: Patch dunnings made after accounts were frozen
- Consider "Accounts Frozen Until" and Period Closing Voucher
2023-07-20 19:55:57 +05:30
Deepesh Garg
76db0b63ba Merge pull request #36214 from deepeshgarg007/tb_cancelled_entries
fix: Trial Balance report considering cancelled entries
2023-07-20 18:48:03 +05:30
Gursheen Anand
5d7dd9b0ec fix: project route permissions for user 2023-07-20 18:20:53 +05:30
rohitwaghchaure
1084f0d97f Merge pull request #36209 from mohsinalimat/patch-2
fix: Ambiguous column error while submitting stock entry
2023-07-20 18:03:27 +05:30
rohitwaghchaure
9a9939cfb3 Merge pull request #36208 from rohitwaghchaure/fixed-filter-mandatory-for-batch-wise-balance-report
fix: made item or warehouse filter mandatory
2023-07-20 18:02:37 +05:30
Deepesh Garg
fd58bbff6b fix: Trial Balance report considering cancelled entries 2023-07-20 17:51:54 +05:30
MohsinAli
c21fd45883 fix: Ambiguous column error while submitting stock entry
Stock Entry Type=Manufacture

request.js:457 Traceback (most recent call last):
  File "apps/frappe/frappe/app.py", line 94, in application
    response = frappe.api.handle()
  File "apps/frappe/frappe/api.py", line 54, in handle
    return frappe.handler.handle()
  File "apps/frappe/frappe/handler.py", line 47, in handle
    data = execute_cmd(cmd)
  File "apps/frappe/frappe/handler.py", line 85, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
  File "apps/frappe/frappe/__init__.py", line 1610, in call
    return fn(*args, **newargs)
  File "apps/frappe/frappe/desk/form/save.py", line 28, in savedocs
    doc.save()
  File "apps/frappe/frappe/model/document.py", line 305, in save
    return self._save(*args, **kwargs)
  File "apps/frappe/frappe/model/document.py", line 327, in _save
    return self.insert()
  File "apps/frappe/frappe/model/document.py", line 259, in insert
    self.run_before_save_methods()
  File "apps/frappe/frappe/model/document.py", line 1045, in run_before_save_methods
    self.run_method("validate")
  File "apps/frappe/frappe/model/document.py", line 914, in run_method
    out = Document.hook(fn)(self, *args, **kwargs)
  File "apps/frappe/frappe/model/document.py", line 1264, in composer
    return composed(self, method, *args, **kwargs)
  File "apps/frappe/frappe/model/document.py", line 1246, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
  File "apps/frappe/frappe/model/document.py", line 911, in fn
    return method_object(*args, **kwargs)
  File "apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py", line 122, in validate
    self.validate_qty()
  File "apps/erpnext/erpnext/stock/doctype/stock_entry/stock_entry.py", line 433, in validate_qty
    transferred_materials = frappe.db.sql(
  File "apps/frappe/frappe/database/database.py", line 220, in sql
    self._cursor.execute(query, values)
  File "env/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "env/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "env/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "env/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "env/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "env/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "env/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "env/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.OperationalError: (1052, "Column 'qty' in field list is ambiguous")
2023-07-20 13:51:17 +05:30
Gursheen Anand
610ead22e8 fix: show only projects with access in customer portal 2023-07-20 13:08:26 +05:30
Rohit Waghchaure
16498627ce fix: made item or warehouse filter mandatory 2023-07-20 13:00:05 +05:30
Deepesh Garg
3bc79eebe3 Merge pull request #35689 from marination/payments-based-dunning
feat: Payments based dunning
2023-07-20 12:06:36 +05:30
ruthra kumar
e7e3853f81 test: overallocation validation in payment entry 2023-07-20 09:08:55 +05:30
HarryPaulo
4b4d828260 fix: inserting of items with pricing rule with qty range 2023-07-19 13:02:55 -03:00
Gursheen Anand
3f5afb9cac fix: reset dimension defaults when company changedin test 2023-07-19 18:15:59 +05:30
Gursheen Anand
23e56d3ec1 fix: clear dimension defaults after test 2023-07-19 16:07:32 +05:30
Deepesh Garg
781e57f5bf Merge pull request #36189 from deepeshgarg007/default_dashboard_dates
fix: Default fiscal year in accounting, buying and selling charts
2023-07-19 13:28:04 +05:30
Deepesh Garg
3759a41b83 fix: Default fiscal year in accounting, buying and sellingcharts 2023-07-19 13:17:12 +05:30
Gursheen Anand
2f7b112736 fix: filter by party in opening row calculation 2023-07-19 12:36:44 +05:30
Gursheen Anand
e19a6f5dcb fix: fetch acc dimensions correctly when fieldname is different from name 2023-07-19 12:26:57 +05:30
Ankush Menat
0218f11f47 ci: dont run tests on branch
6dda420176
2023-07-19 12:17:32 +05:30
Gursheen Anand
b3f6d991b5 fix: duplicate acc dimension in test 2023-07-19 12:02:26 +05:30
Gursheen Anand
dd37f6cbd6 fix: show tax withholding category details for customers 2023-07-19 11:51:45 +05:30
ruthra kumar
bccfd22fc0 Merge pull request #36181 from ruthra-kumar/fix_broken_overallocation_validation_on_multi_term_payment_against_invoice
fix: broken overallocation validation in payment entry
2023-07-19 10:46:41 +05:30
ruthra kumar
ee83f94bb0 refactor: payment term outstanding in party account currency 2023-07-19 10:06:49 +05:30
ruthra kumar
f8d4b19cb9 fix: broken overallocation validation in payment entry
In a multi term payment schedule, overallocation logic broke. Fixing
it using individual term outstanding amount in references. this should
work for the simple, one term payment schedule as well
2023-07-18 21:04:13 +05:30
mergify[bot]
b4db5e9561 fix: validate docs in closed accounting period on save (#36157)
fix: validate docs in closed accounting period on save (#36157)

(cherry picked from commit 5985e02574)

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-07-18 17:40:49 +05:30
Gursheen Anand
77deac4fb9 test: PI offsetting entry for accounting dimension 2023-07-18 15:51:01 +05:30
Deepesh Garg
fbea61bbc6 fix: Trailing opening entries in Accounts closing balance (#36175) 2023-07-18 15:16:52 +05:30
Ankush Menat
07d2b896c1 fix: log error during exotel migration 2023-07-18 13:01:33 +05:30
Gursheen Anand
3a3ffa2307 fix: divide offsetting amount only when account exists 2023-07-18 12:51:09 +05:30
Deepesh Garg
cfae52a40a fix: Opening balance in TB report (#36171) 2023-07-18 12:26:19 +05:30
Gursheen Anand
1e1e4b93c1 fix: divide offsetting amount for multiple dimensions 2023-07-18 12:12:24 +05:30
s-aga-r
9fb1533b8f fix(test): test_stock_reservation_against_sales_order (#36166) 2023-07-18 08:31:02 +05:30
rohitwaghchaure
55d5469740 Merge pull request #36168 from frappe/mergify/bp/develop/pr-36162
fix: incorrect Reserved Qty for Production Plan in BIN for the multi-uom case (backport #36162)
2023-07-17 22:44:02 +05:30
Deepesh Garg
9e791efc82 refactor: client side accounts controller 2023-07-17 21:44:43 +05:30
Deepesh Garg
43e65d91ea chore: Remove unused files 2023-07-17 21:26:40 +05:30
Rohit Waghchaure
7af3c3d0b6 fix: incorrect Reserved Qty for Production Plan in BIN for multi-uom case
(cherry picked from commit 2f632d031a)
2023-07-17 15:11:13 +00:00
barredterra
ecaf0aba3c fix: rounding of percentage fields
Always round with precision of 2
2023-07-17 16:45:11 +02:00
Gursheen Anand
ed3bef1840 fix: dict value for dimension for gl entries defined without the dimension 2023-07-17 18:40:52 +05:30
Gursheen Anand
4004427892 test: TB report balanced whenfiltered using acc dimension 2023-07-17 17:57:03 +05:30
Sagar Vora
3b246fd7e6 Merge pull request #36163 from resilient-tech/consistent-quotes 2023-07-17 15:46:40 +05:30
Sagar Vora
bccb718cc2 chore: use consistent quotes 2023-07-17 15:45:36 +05:30
Gursheen Anand
22ba12172f fix: make offsetting entry for all doctypes 2023-07-17 15:17:53 +05:30
Marica
1c1e7380e3 Merge branch 'develop' into payments-based-dunning 2023-07-17 12:33:19 +05:30
Deepesh Garg
ef19634a13 chore: fix build 2023-07-17 12:25:56 +05:30
Gursheen Anand
4e09de4db2 fix: fetch accounting dimension details specific to company 2023-07-17 11:47:33 +05:30
Anand Baburajan
305c37917f chore: add validation for account type of party type and account (#36141)
chore: add validation to check if account type of party type and account match
2023-07-17 11:00:19 +05:30
Kitti U. @ Ecosoft
2607847061 refactor: Leave Application should not be in hook.py (#36008) 2023-07-17 10:14:37 +05:30
rohitwaghchaure
a0742c52bb Merge pull request #36151 from rohitwaghchaure/table-for-serial-and-batch
fix: Added report 'Serial and Batch Summary' to view serial / batch nos
2023-07-16 19:50:15 +05:30
Florian HENRY
e48dc0808d Merge branch 'develop' of https://github.com/frappe/erpnext into dev_feat_adress_contact_report 2023-07-16 11:28:59 +02:00
Rohit Waghchaure
708eefb383 fix: Added report 'Serial and Batch Summary' to view serial / batch nos 2023-07-16 13:28:08 +05:30
Deepesh Garg
6270607c6d fix: Remove current fiscal year from Global Defaults (#35960)
* fix: Remove current fiscal year from Global Defaults

* fix: Remove button to set default

* fix: Add utils to get fiscal year

* fix: Incorrect import

* feat: Add hook for naming series parser
2023-07-16 12:58:42 +05:30
Ankush Menat
c545399b96 Merge pull request #36150 from ankush/perf/desk_requests
perf: send SLA doctypes in boot
2023-07-16 12:30:40 +05:30
Ankush Menat
bd9ef74ef7 perf: send SLA doctypes in boot
This request is fired on every load, data rarely if ever changes though.
2023-07-16 11:38:54 +05:30
Deepesh Garg
f0d4c4c180 Merge branch 'develop' of https://github.com/frappe/erpnext into eslint 2023-07-15 20:29:14 +05:30
Deepesh Garg
a6ce20a0fc chore: Remove domain related files 2023-07-15 19:40:53 +05:30
Gursheen Anand
d3759b3971 fix: make offsetting entry for acc dimensions 2023-07-15 19:32:56 +05:30
Deepesh Garg
3fa2a8c2d8 chore: fix linting issues 2023-07-15 18:03:16 +05:30
s-aga-r
6daaf42b38 Merge pull request #36133 from s-aga-r/FIX-ISS-23-24-02011
perf: index in `Item` and `Item Variant Attribute`
2023-07-15 10:09:27 +05:30
Deepesh Garg
924cdef6d9 ci: add eslint and update linting confs 2023-07-14 18:53:02 +05:30
Deepesh Garg
297c7e833c fix: Opening entries showing up incorrectly in TB report (#36135)
* fix: Opening entries showing up incorrectly in TB report

* chore: Linting Issue
2023-07-14 18:39:37 +05:30
Ankush Menat
6b0b6404fc Merge pull request #36131 from surajshetty3416/move-exotel-to-separate-app
refactor!: Remove exotel
2023-07-14 18:23:00 +05:30
s-aga-r
8f5b94f5fd fix: TypeError while creating WO from PP (#36136) 2023-07-14 18:01:11 +05:30
Rucha Mahabal
692bfccb6e Merge pull request #36116 from barredterra/local-holidays 2023-07-14 17:46:18 +05:30
Ankush Menat
41b6b739c0 fix: touch modified to migrate 2023-07-14 17:39:25 +05:30
Ankush Menat
d95559a53c fix: patch for exotel 2023-07-14 17:39:22 +05:30
s-aga-r
04400eb2e4 perf: index disabled in Item 2023-07-14 17:18:55 +05:30
s-aga-r
e4128a5c91 perf: index variant_of and attribute in Item Variant Attribute 2023-07-14 17:17:24 +05:30
Gursheen Anand
a93d7633d4 test: purchase register and ledger view 2023-07-14 17:16:39 +05:30
barredterra
dab9688410 refactor(Holiday List): use autocomplete fieldtype 2023-07-14 13:33:55 +02:00
Gursheen Anand
b8a83f57b7 chore: fix typo 2023-07-14 16:25:58 +05:30
Suraj Shetty
23bc87f2aa Merge branch 'develop' of https://github.com/frappe/erpnext into move-exotel-to-separate-app 2023-07-14 16:21:48 +05:30
barredterra
8aff5a1dab fix(Holiday List): allow empty value 2023-07-14 12:33:27 +02:00
Deepesh Garg
ac9ad8ec36 fix: Handle multi-company in patch (#36127)
fix: Handle multi-compnay in patch
2023-07-14 15:56:59 +05:30
barredterra
8271a39cdb fix(Holiday List): use current user's language
For consistency with "weekly off" descriptions
2023-07-14 12:16:49 +02:00
barredterra
509061f05b fix: German translations of Holiday List 2023-07-14 12:14:01 +02:00
barredterra
4888d75e72 feat(Holiday List): display localized country name 2023-07-14 11:59:45 +02:00
Gursheen Anand
0d89bfacdb fix: show additional table cols from india compliance api call 2023-07-14 13:03:22 +05:30
Kitti U. @ Ecosoft
3b884efca9 fix: get_dimension with_cost_center_and_project=false is not working. (#35974)
* fix: get_dimension with_cost_center_and_project=false is not working.

with_cost_center_and_project is no python str, and it always evaluated as True, despite JS call it with false

* chore: Linting Issues

---------

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-07-14 13:03:00 +05:30
Raffael Meyer
d5fe1432f8 fix: improve "Update Items" modal (#36105)
* fix: make "Update Items" modal larger

* fix: remove conversion factor from overview

Conversion factor doesn't make much sense without two different UOMs
next to it, hence moving it to row detail view
2023-07-14 12:27:35 +05:30
Gursheen Anand
c084fe6b3f refactor: filter accounting dimensions using qb 2023-07-14 11:05:50 +05:30
Gursheen Anand
944244ceff fix: modify rows and columns for ledger view 2023-07-14 10:50:12 +05:30
Deepesh Garg
b4bd978791 fix: Account balance patch and query fixes (#36117) 2023-07-14 10:28:36 +05:30
Ankush Menat
b5f6a1cc20 ci: fix repo name in relase notes workflow
[skip ci]
2023-07-13 21:04:09 +05:30
barredterra
fd23bd0434 test(Holiday List): weekly off and local holidays 2023-07-13 14:13:33 +02:00
barredterra
aa18b25a71 feat: add local holidays 2023-07-13 13:29:07 +02:00
Deepesh Garg
d631c7dffa fix: Accounts closing balance patch (#36113) 2023-07-13 16:10:05 +05:30
ruthra kumar
72f577aad2 fix: incorrect idx on JE's after reconciliation 2023-07-13 15:12:58 +05:30
s-aga-r
5f307f92e0 refactor: Batch Item Expiry Status report (#36106) 2023-07-13 05:44:58 +05:30
Gursheen Anand
21c993a7b3 fix: clear accounting dimension value when based on field changes 2023-07-12 20:32:08 +05:30
Gursheen Anand
c973e3c746 chore: remove debugging print statements 2023-07-12 17:40:27 +05:30
Gursheen Anand
bf08aa7529 fix: filtering through accounting dimensions 2023-07-12 17:17:58 +05:30
Gursheen Anand
f5027fdcaf refactor: move fn to fetch advance taxes to utils & use qb 2023-07-12 16:42:58 +05:30
Gursheen Kaur Anand
596a14e34f feat: add project filter in reports importing financial statements js file (#36097)
feat: add project filter in financial statements js file
2023-07-12 15:49:17 +05:30
Gursheen Anand
6c11ca1b75 refactor: use qb to fetch PE JV and Inv 2023-07-12 14:43:18 +05:30
Ankush Menat
0340bfc90d ci: regen release notes with GH API (#36098)
[skip ci]
2023-07-12 12:17:20 +05:30
Gursheen Anand
1e8b8b5b29 fix: linting issues 2023-07-12 11:14:03 +05:30
Gursheen Kaur Anand
1094319e3e Merge branch 'develop' into purchase-sales-register-with-PE/JE 2023-07-12 11:00:35 +05:30
Deepesh Garg
0a6c565eb3 fix: Ambiguous column error while submitting stock entry
fix: Ambiguous column error while submitting stock entry
2023-07-12 10:18:38 +05:30
Gursheen Anand
dd8c3d5462 feat: filter based on accounting dimension in profitability analysis 2023-07-12 10:00:18 +05:30
mergify[bot]
8580287092 fix: allow manual asset receipt mov from nowhere (backport #36093) (#36094)
fix: allow manual asset receipt mov from nowhere (#36093)

(cherry picked from commit 4aaa1a15d7)

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-07-12 08:26:49 +05:30
HarryPaulo
2268f7db43 fix: paid_amount when the group is mode of payment 2023-07-11 11:35:37 -03:00
rohitwaghchaure
59e54eabef Merge pull request #36088 from rohitwaghchaure/fixed-reposting-circulr-dependecy
fix: circular dependency during reposting causing timeout error
2023-07-11 18:28:39 +05:30
Ankush Menat
7e4b6683e6 fix: Dont bold URL parts
closes https://github.com/frappe/frappe/issues/21445
2023-07-11 18:19:50 +05:30
Rohit Waghchaure
c16a5814d4 fix: circular dependency during reposting causing timeout error 2023-07-11 17:51:44 +05:30
s-aga-r
be5881280f fix: incorrect status in MR created from PP (#36085) 2023-07-11 17:09:23 +05:30
Gursheen Anand
7650b0073a fix: validate party filter for fetching payments 2023-07-11 15:18:28 +05:30
Gursheen Anand
d5aa0e325e feat: fetch JV with PE 2023-07-11 14:47:23 +05:30
Deepesh Garg
ce9164ec69 fix: Validate for missing expense account (#36078)
* fix: Validate for missing expense account

* fix: Validate for missing expense account
2023-07-11 12:03:38 +05:30
ruthra kumar
e44615f52b Merge pull request #36076 from ruthra-kumar/possible_type_error_on_err_creation
fix: possible type error on ERR creation
2023-07-11 10:37:37 +05:30
ruthra kumar
176966daab fix: possible type error on ERR creation 2023-07-11 10:04:17 +05:30
Raffael Meyer
bf84e0d441 refactor: remove frappe.dynamic_link (#35096) 2023-07-10 21:22:06 +05:30
mergify[bot]
872a23c77d fix: also check on_hold (#35910)
fix: also check on_hold (#35910)

(cherry picked from commit 5aa02b8571)

Co-authored-by: RJPvT <48353029+RJPvT@users.noreply.github.com>
2023-07-10 20:34:54 +05:30
Dany Robert
361a357088 fix: payment entry voucher_type error (#35779)
* fix: payment entry `voucher_type` error

* chore: linters
2023-07-10 19:32:59 +05:30
Gursheen Anand
9c87997dae fix: fetch cost center for PE 2023-07-10 19:12:19 +05:30
Gursheen Anand
cbef6c30c3 refactor: move repeating code to common controller 2023-07-10 18:39:35 +05:30
Gursheen Anand
d7ffad1dd3 feat: fetch PE along with SI 2023-07-10 18:07:55 +05:30
Wolfram Schmidt
49c61e7ebb fix: Add company filter in list view (#36047)
fix: Add company filter in list view
2023-07-10 18:03:50 +05:30
rohitwaghchaure
06dcc4ed96 Merge pull request #36063 from rohitwaghchaure/fixed-valuation-for-dn-return
fix: Delivery Note return valuation
2023-07-10 17:48:41 +05:30
Rohit Waghchaure
6a10ae662c fix: Delivery Note return valuation 2023-07-10 17:06:02 +05:30
Dany Robert
5c820ecc20 fix: precision causing outstanding issue on partly paid invoices (#36030)
* fix: precision causing outstanding issue on partly paid invoices

* chore: linters
2023-07-10 16:20:45 +05:30
Dany Robert
12b459df8c fix: skip twc if not account set 2023-07-10 10:35:45 +00:00
Gursheen Anand
44493707e2 refactor: use single qb query for PE and PI 2023-07-10 14:37:33 +05:30
mergify[bot]
b3a99e38cc chore: add asset depr posting error in error log (backport #36052) (#36055)
chore: add asset depr posting error in error log (#36052)

(cherry picked from commit 0f9a6ee70a)

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-07-10 14:31:19 +05:30
MohsinAli
2816076789 1052, "Column 'qty' in field list is ambiguous in work_order.py 2023-07-10 14:09:41 +05:30
rohitwaghchaure
22eee472dd Merge pull request #36001 from rohitwaghchaure/fixed-added-validation-for-rejected-warerhouse
fix: accepted warehouse and rejected warehouse can't be same
2023-07-10 13:55:20 +05:30
Gursheen Anand
4f0aa54c09 feat: add check for fetching PE along with Invoice details in Purchase Register 2023-07-10 13:38:30 +05:30
rohitwaghchaure
b16f364866 Merge pull request #36054 from rohitwaghchaure/fixed-incorrect-stock-levels
fix: incorrect stock levels in the Batch
2023-07-10 13:35:59 +05:30
Rohit Waghchaure
d618aaef32 fix: accepted warehouse and rejected warehouse can't be same 2023-07-10 13:19:17 +05:30
Rohit Waghchaure
aeaf8fd89c fix: incorrect stock levels in the Batch 2023-07-10 13:03:10 +05:30
ruthra kumar
3ef034dda8 Merge pull request #36051 from ruthra-kumar/auto_exchange_rate_revaluation_creation
feat: Provision to auto create Exchange Rate Revaluation
2023-07-10 12:59:23 +05:30
Ankush Menat
407642869a ci: auto release beta version
[skip ci]
2023-07-10 12:48:47 +05:30
aioaccount
46fe9ac5cd fix: labels and translations (#35963)
fix: labels and translations
* fix: Vietnamese translation of customer
* fix: Vietnamese translation of bill
2023-07-09 20:41:52 +05:30
Gursheen Kaur Anand
674af15696 fix: deferred accounting entries on accounts frozen (#35978)
* fix: accounts frozen entries in deferred accounting

* test: accounts frozen date in deferred accounting

* fix: reset account settings after running test

* fix: resolve conflicts

* fix: modify expected gle when deferred accounting is disabled through JE

* fix: change posting date when accounts not frozen
2023-07-09 20:41:12 +05:30
Raffael Meyer
af28f95c60 refactor(Payment Entry): translatable strings (#36017)
* refactor(Payment Entry): translatable strings

* fix: German translations
2023-07-09 20:19:53 +05:30
aioaccount
ef7fd7548c fix: Vietnamese translation of "Company" (#35887)
fix: Vietnamese translation of "Company"
2023-07-09 20:17:35 +05:30
Deepesh Garg
4d07e20b05 fix: Opening balance in presentation currency in Trial Balance report (#36036) 2023-07-09 20:16:12 +05:30
Raffael Meyer
353d765140 fix: German translations (#35990)
* fix: add missing German translation

* fix: wrong German translation
2023-07-09 14:14:34 +05:30
Navin Balaji
828e647019 fix: bank reconciliation tool variable issue (#36022)
fix: bank reconciliation tool variable issue (#36022)
2023-07-09 14:13:48 +05:30
Deepesh Garg
bb5387fa5d fix: Add demo setup check in setup wizard 2023-07-07 10:49:56 +05:30
ruthra kumar
4f51c5a433 refactor: submit and make JV through background job 2023-07-07 05:49:53 +05:30
Raffael Meyer
4badac8e9e fix(Payment Entry): compare rounded amount (#36011) 2023-07-05 21:35:41 +05:30
mergify[bot]
98281341b9 fix: handle loan_repayment's posting_date datetime in bank_clearance_summary report (backport #36004) (#36005)
* fix: handle loan_repayment's posting_date datetime in bank_clearance_summary report (#36004)

(cherry picked from commit 937e1fb024)

# Conflicts:
#	erpnext/accounts/report/bank_clearance_summary/bank_clearance_summary.py

* chore: resolving conflicts

---------

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-07-04 22:46:00 +05:30
Deepesh Garg
0a17c78a36 fix: Share ledger showing cancelled docs (#35993) 2023-07-04 17:49:07 +05:30
Sagar Vora
30e4052a76 feat(accounts): standardize additional columns implementation for sales/purchase reports (#36000) 2023-07-04 17:41:30 +05:30
Deepesh Garg
2f169575e9 fix: Netherlands - Grootboekschema COA structure (#35991)
fix: Netherlands - Grootboekschema coa structure
2023-07-04 15:30:27 +05:30
Ankush Menat
a449a4be29 chore: Add frappe school links (#35995)
Frappe School provides plenty of free tutorial for learning ERPNext.
2023-07-04 14:58:45 +05:30
barredterra
a939431d48 fix: german translations 2023-07-03 21:03:24 +02:00
barredterra
e686bb0739 Merge remote-tracking branch 'upstream/develop' into payments-based-dunning 2023-07-03 19:56:42 +02:00
rohitwaghchaure
8179d6a30d Merge pull request #35977 from rohitwaghchaure/reserve-pos-invoice-batches
fix: reserve the pos invoice batches
2023-07-03 22:33:45 +05:30
Rohit Waghchaure
1e8f6c0840 fix: reserve the pos invoice batches 2023-07-03 17:38:48 +05:30
ruthra kumar
6644311c8b refactor: checkbox for enabling auto ERR creation 2023-07-03 14:31:13 +05:30
Anand Baburajan
dedb5e23f7 fix: delete loan module workspace properly after separation (#35971)
* fix: delete loan module workspace properly after separation

* chore: run remove_loan_management_module patch again
2023-07-03 13:06:46 +05:30
Deepesh Garg
5448859254 fix: Update no copy for received_qty field (#35965) 2023-07-03 13:03:52 +05:30
Vishnu VS
e05b33a6c2 feat: add method for ordered quantity in supplier scorecard (#35930)
fix: add method for getting ordered quantity in the supplier scorecard variable.

Co-authored-by: vishnu <vishnuviswambara2002@gmail.com>
2023-07-03 09:23:27 +05:30
rohitwaghchaure
ab58c01a0f Merge pull request #35961 from frappe/mergify/bp/develop/pr-35955
fix: incorrect reposting causing stock adjustment entry (backport #35955)
2023-07-02 11:17:37 +05:30
rohitwaghchaure
232dfad13a fix: conflicts 2023-07-02 10:45:12 +05:30
Rohit Waghchaure
b77a808921 fix: reposting has not changed valuation rate
(cherry picked from commit c0c693d8b0)

# Conflicts:
#	erpnext/stock/doctype/purchase_receipt/test_purchase_receipt.py
2023-07-02 05:13:29 +00:00
Deepesh Garg
3df0c5e32f Merge pull request #35609 from GursheenK/#34282-Record-advance-payment-as-a-liability
feat: Record Advance Payment as a liability
2023-07-01 17:49:49 +05:30
Deepesh Garg
d54f52474a fix: Expense Account filter in Sales Invoice (#35944) 2023-06-30 20:02:46 +05:30
Deepesh Garg
be5cb1aa17 Merge pull request #35943 from GursheenK/company-specific-proj-filtering
fix: project filtering based on company in P&L Report
2023-06-30 20:01:24 +05:30
Deepesh Garg
fda2d2bd59 Merge branch 'develop' of https://github.com/frappe/erpnext into #34282-Record-advance-payment-as-a-liability 2023-06-30 19:35:34 +05:30
Deepesh Garg
80e6c90740 chore: precision in test 2023-06-30 19:35:22 +05:30
Florian HENRY
da72bd9819 feat: add Lead to Adresse And contact report 2023-06-30 15:11:45 +02:00
Deepesh Garg
7e7737d692 test: Update test account 2023-06-30 18:37:52 +05:30
Deepesh Garg
0a49213338 test: Update test records 2023-06-30 17:32:42 +05:30
s-aga-r
fa3ab678e1 Merge pull request #35945 from s-aga-r/BATCH-DISABLE-FILTER
fix: add filter for disabled batch
2023-06-30 13:39:11 +05:30
Marica
0a67a3a9c4 Merge branch 'develop' into payments-based-dunning 2023-06-30 13:32:50 +05:30
Deepesh Garg
bbb6ebb84e fix: Outstanding amount validation 2023-06-30 13:25:22 +05:30
Gursheen Anand
84d4888f5f fix: make company field mandatory in project doctype 2023-06-30 12:54:45 +05:30
Gursheen Anand
ce252a0d45 fix: show projects with no company value set 2023-06-30 12:42:19 +05:30
s-aga-r
90a77030a7 fix: add filter for disabled batch 2023-06-30 12:34:39 +05:30
Gursheen Anand
904ca746a6 fix: project filtering in P&L Report 2023-06-30 12:11:23 +05:30
Anand Baburajan
988d755906 refactor!: removing loan management module (#35522)
* chore: resolving conflicts

* refactor: bank_clearance and add hook for get_payment_entries_for_bank_clearance

* refactor: bank_reconciliation_tool and add hook for get_matching_vouchers_for_bank_reconciliation

* fix: remove sales invoice from bank_reconciliation_doctypes and use hook for voucher clearance

* refactor: remove loan tests from test_bank_transaction

* refactor: bank_clearance_summary and add hook for get_entries_for_bank_clearance_summary

* refactor: removed test_bank_reconciliation_statement

* refactor: bank_reconciliation_statement and add hook for get_amounts_not_reflected_in_system_for_bank_reconciliation_statement

* refactor: add missing hook and patches for module removal and deprecation warning

* refactor: remove loan management translations

* chore: add erpnext tests dependent on lending
2023-06-30 11:02:49 +05:30
rohitwaghchaure
9f1cf0bbb0 Merge pull request #35921 from rohitwaghchaure/fixed-seperate-table-for-schedule
refactor: separate table added to track scheduling in the job card.
2023-06-29 22:24:47 +05:30
s-aga-r
fe4161e4d7 Merge pull request #35935 from s-aga-r/FIX-35898
feat: allow the partial return of components against SCO
2023-06-29 21:20:59 +05:30
Rohit Waghchaure
497c83eb7e refactor: separate table added to track scheduling in the job card 2023-06-29 20:51:44 +05:30
s-aga-r
2a60884abc fix: reduce return qty while calculating transferred qty 2023-06-29 18:59:18 +05:30
s-aga-r
2f6d56dd62 fix: don't update SCO status to closed until full return 2023-06-29 18:44:40 +05:30
Deepesh Garg
0408b6d655 Merge branch 'develop' of https://github.com/frappe/erpnext into #34282-Record-advance-payment-as-a-liability 2023-06-29 12:19:42 +05:30
Deepesh Garg
1e078d03bb fix: Partial PLE cancellation 2023-06-29 12:18:25 +05:30
RJPvT
1d1103f39c chore: update translations
chore: update translations
2023-06-29 11:02:08 +05:30
Deepesh Garg
06821f9781 Merge pull request #35904 from GursheenK/voucher-wise-balance-report
feat: add voucher-wise balance report for unequal dr/cr GL entries
2023-06-29 09:07:45 +05:30
Anand Baburajan
50cbdc778f Merge pull request #35923 from frappe/mergify/bp/develop/pr-35918
fix: asset movement (backport #35918)
2023-06-28 20:59:50 +05:30
Anand Baburajan
a4d6f2eba6 fix: asset movement (#35918)
fix: asset movement fixes
(cherry picked from commit e16c14863b)
2023-06-28 14:46:27 +00:00
Ankush Menat
86f453593a perf: avoid perm checks from background jobs 2023-06-28 20:15:29 +05:30
Ankush Menat
9e1736e027 fix: index collect_progress and project date (#35920)
There's background job to send progress update, this ends up scanning
entire table.
2023-06-28 19:19:14 +05:30
marination
5a952987a3 fix: Use this.frm (Linter) 2023-06-28 17:13:34 +05:30
Marica
0498a31c42 Merge branch 'develop' into payments-based-dunning 2023-06-28 16:48:22 +05:30
Gursheen Kaur Anand
b9e9204e52 fix: create multiple variants button count and status (#35915)
fix: change class for fetching columns in multiple variants
2023-06-28 15:39:00 +05:30
Gursheen Kaur Anand
5113a417a1 fix!: UX of supplier linking with supplier users on portal pages (#35836)
* fix: create and add Portal Users child table in Supplier/Customer

Issue #35772

* fix: modify the original permission check hook

* fix: auto-add role for portal users

* fix: added patch for auto-populating portal users

* fix: modify patch to fetch users correctly

* fix: remove unnecessary code for updating naming_series

* fix(UX): show portal user in list view

Also split columns to reduce whitespace.

* refactor: simpler role checking

* fix: consider parenttype while fetching portal user

* refactor: simpler code, rename variable

* test: supplier portal user can access their docs

* refactor: only add role if not added

* refactor: rename and move patch to supplier

* refactor: dont add role if no perm or existing doc

* fix: add role before save

* refactor: run query directly

* refactor: split patch and apply roles

- if role isn't present dont add portal user
- ignore failure as it's not critical

* test: fix permission creation for webform test

---------

Co-authored-by: Ankush Menat <ankush@frappe.io>
2023-06-28 11:22:40 +05:30
mergify[bot]
e832455790 perf: improve item wise register reports (backport #35908) (#35911)
perf: improve item wise register reports (#35908)

(cherry picked from commit 33ee01174b)

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-06-28 10:25:03 +05:30
Gursheen Anand
6b9f9f9b0e fix: remove debug flag from sql 2023-06-27 21:59:35 +05:30
Deepesh Garg
7312827d4d fix: On cancel flow 2023-06-27 18:25:10 +05:30
Deepesh Garg
f2edc91dc6 fix: Multi invoice reconciliation 2023-06-27 18:11:47 +05:30
Gursheen Anand
5d726ef037 feat: add voucher-wise balance report logic 2023-06-27 16:49:28 +05:30
HLD
af418d2342 fix: filter parent warehouses not showing (#35897) 2023-06-27 13:17:52 +05:30
s-aga-r
77d08b6dbe Merge pull request #35894 from s-aga-r/FIX-35888
fix(ux): PO Get Items From Open Material Requests
2023-06-27 11:56:46 +05:30
s-aga-r
3a00bf83d6 fix(ux): PO Get Items From Open Material Requests 2023-06-27 11:55:45 +05:30
David Arnold
742df8a25e fix: delivery trip driver is only required on submit (#35876)
This allows drafting trips and stops without yet deciding on the
assignable driver which, in real life, may well be decided on after
preparing and planning the trip.
2023-06-27 11:36:44 +05:30
Deepesh Garg
2d2f0f02d6 Merge pull request #35886 from deepeshgarg007/ldc_breach_fix
fix: TDS amount calculation post LDC breach
2023-06-27 09:39:06 +05:30
Deepesh Garg
62c3ca8286 fix: Paid invoice in AR report 2023-06-26 23:53:55 +05:30
Deepesh Garg
1f9ef6c48f fix: TDS amount calculation post LDC breach 2023-06-26 22:01:12 +05:30
Deepesh Garg
d5bdd9387a chore: Do not update shopping cart settings on install 2023-06-26 18:35:01 +05:30
Deepesh Garg
490b64575b test: Add basic test for demo data 2023-06-26 18:33:51 +05:30
ruthra kumar
84ea0a828c Merge pull request #35882 from ruthra-kumar/refactor_cr_note_reconciliation_with_exchange_gain_loss
refactor: simplify exchange logic on cr/dr note reconciliation
2023-06-26 17:32:12 +05:30
rohitwaghchaure
0e14ea4e32 Merge pull request #35881 from rohitwaghchaure/fixed-serial-batch-bundle-print
fix: serial and batch bundle values in the standard print format
2023-06-26 16:21:34 +05:30
ruthra kumar
af75f6cea7 refactor: simplify exchange logic on cr/dr note reconciliation 2023-06-26 16:09:54 +05:30
Rohit Waghchaure
9cf645e07f fix: serial and batch bundle values in the standard print format 2023-06-26 16:00:53 +05:30
Suraj Shetty
f0a0f078fc Merge pull request #35880 from surajshetty3416/update-node-version 2023-06-26 13:10:30 +05:30
Suraj Shetty
881e95b440 chore: Update required node version to v18 2023-06-26 13:02:08 +05:30
Anand Baburajan
36d26d40a0 perf: improve asset depr schedule creation patch (#35867) 2023-06-26 10:58:36 +05:30
ruthra kumar
a90fe25cc4 Merge pull request #35868 from ruthra-kumar/get_base_grand_total_while_pulling_reference_details
fix: incorrect outstanding and total amount in reference table of payment entry
2023-06-25 18:29:54 +05:30
Deepesh Garg
ebeb5e0cb7 Merge pull request #35594 from nikkothari22/make-accounting-dimension-filter-values-optional
feat: added support for mandatory dimensions per account without applying restrictions on dimension values
2023-06-25 17:55:26 +05:30
Deepesh Garg
63b126967e chore: Linting Issues 2023-06-25 16:24:22 +05:30
Deepesh Garg
bcff4b0e5a chore: linting issues 2023-06-25 16:03:58 +05:30
Deepesh Garg
c7186ff95c Merge pull request #35789 from GursheenK/Provision-to-send-Accounts-Receivable-Reports
feat: Provision to send Accounts Receivable Reports using Process SOA
2023-06-24 17:10:50 +05:30
Patrick Eissler
feafa956f7 feat: add German translations for new email template feature (#35865) 2023-06-24 16:35:52 +05:30
HarryPaulo
1e20016059 fix: POS Closing Entry load all invoices with one request on save (#35819)
fix: load all invoices with one request
2023-06-24 16:34:24 +05:30
Deepesh Garg
4de7a4c571 chore: update typo in patch 2023-06-24 16:31:19 +05:30
Devin Slauenwhite
f9ed8c10ab fix: make reorder_level not required (#35831)
* fix: make reorder_level not required

* fix: allow material request to be made if projected_qty <= reorder_level
2023-06-24 16:03:15 +05:30
Devin Slauenwhite
802c89ffb3 feat: allow Sales Invoice as data source (#35855)
* feat: allow Sales Invoice as data source

* chore: linter
2023-06-24 12:31:16 +05:30
Deepesh Garg
1894dc8197 fix: Test case and code cleanup 2023-06-23 21:53:34 +05:30
Deepesh Garg
da6bc1a13e refactor: Redo workflows 2023-06-23 20:57:51 +05:30
ruthra kumar
2f638ae32a Merge pull request #35604 from pps190/fix-reconcile-invoice-return
fix: reconcile invoice against credit note.
2023-06-23 17:44:25 +05:30
ruthra kumar
9655d78642 test: test reference details response 2023-06-23 17:24:19 +05:30
Marica
2868baebab fix: Payment Term must be mandatory if Allocate Payment based on .. is checked (#35798)
- Front and Back end validation of condition
- Fix test to accomodate fix
2023-06-23 16:00:20 +05:30
Deepesh Garg
df035f6b19 Merge branch 'develop' into Provision-to-send-Accounts-Receivable-Reports 2023-06-23 15:58:38 +05:30
ruthra kumar
9e73af891d fix: get base grand total while pulling reference details in PE 2023-06-23 14:50:14 +05:30
Gursheen Anand
cde82bc0cc fix: modify patch 2023-06-23 12:12:32 +05:30
Gursheen Anand
555c126eb9 fix: add patch for setting default value of report field 2023-06-23 10:52:25 +05:30
mergify[bot]
9a993b0364 fix: show non-depreciable assets in fixed asset register (backport #35858) (#35860)
fix: show non-depreciable assets in fixed asset register (#35858)

fix: show non-depr assets in fixed asset register
(cherry picked from commit 42d09448ee)

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-06-23 08:25:00 +05:30
Anand Baburajan
f37484c6fe chore: better err msg on cancelling JE for asset scrap [dev] (#35850)
chore: better err msg on cancelling JE for asset scrap
2023-06-22 22:32:06 +05:30
rohitwaghchaure
f4f8df6cfe Merge pull request #35842 from rohitwaghchaure/fixed-multiple-work-orders-against-sigle-production-order
fix: multiple Work Orders against same production plan
2023-06-22 22:11:09 +05:30
Deepesh Garg
904f835d4a Merge pull request #35602 from deepeshgarg007/pl_account_balance
fix: Remove special treatment for P&L Accounts
2023-06-22 21:11:23 +05:30
Deepesh Garg
05c2198569 test: Update order 2023-06-22 21:08:58 +05:30
Deepesh Garg
13c0c129df Merge pull request #35828 from phot0n/pr-fieldname-item-wise-purchase-register
fix: use correct fieldname for purchase receipt column in item_wise_purchase_register report
2023-06-22 20:40:14 +05:30
Deepesh Garg
e8dff30973 Merge pull request #35846 from deepeshgarg007/patch_workflow_update
ci: use multiple python version in patch test
2023-06-22 20:38:05 +05:30
Deepesh Garg
11a9bd523d test: Add posting date parameter 2023-06-22 20:26:12 +05:30
Deepesh Garg
56e81ada56 ci: use multiple python version in patch test 2023-06-22 19:57:23 +05:30
Deepesh Garg
b101dceb2a test: GL Entry order 2023-06-22 19:38:33 +05:30
mergify[bot]
e745312a10 fix: asset capitalization (backport #35832) (#35843)
* fix: asset capitalization (#35832)

* fix: misc asset capitalisation fixes

* chore: add location in tests and remove unnecessary code

* chore: more fixes and removals

* chore: show company and fix tests

* chore: make target qty read only on capitalization

(cherry picked from commit fb823b53d1)

# Conflicts:
#	erpnext/assets/doctype/asset_capitalization/asset_capitalization.json
#	erpnext/assets/doctype/asset_capitalization/asset_capitalization.py

* chore: fixing conflicts

---------

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-06-22 19:21:52 +05:30
Deepesh Garg
754eb6bdb6 Merge pull request #35650 from deepeshgarg007/ledger_preview
feat: Ledger Preview
2023-06-22 18:30:03 +05:30
Deepesh Garg
d81d6069fb fix: JV query 2023-06-22 18:28:16 +05:30
Deepesh Garg
d9e7bc545e fix: Do full rollback 2023-06-22 16:07:32 +05:30
Deepesh Garg
5c6e3269fb fix: Use GET request 2023-06-22 15:58:41 +05:30
Rohit Waghchaure
80fffbd64b fix: multiple Work Orders agaist same production plan 2023-06-22 15:57:28 +05:30
Deepesh Garg
b523c779f5 Merge branch 'develop' of https://github.com/frappe/erpnext into ledger_preview 2023-06-22 15:43:43 +05:30
Deepesh Garg
0e68da5a2a feat: Show stock ledger preview 2023-06-22 15:43:32 +05:30
ruthra kumar
dde09cb959 Merge pull request #35837 from ruthra-kumar/increase_precision_on_exchange_rate_revaluation
refactor: increase precision for current exc rate in Exchange Rate Revaluation
2023-06-22 13:39:51 +05:30
Deepesh Garg
6d121ae6e4 chore: fix typo 2023-06-22 13:03:09 +05:30
ruthra kumar
b4db25dd18 refactor: increase precision for current exc rate in ERR 2023-06-22 12:40:02 +05:30
rohitwaghchaure
d1bccc8c65 Merge pull request #35829 from rohitwaghchaure/refactor-returned-from-rejected-warehouse
fix: return against rejected warehouse (UX Issue)
2023-06-22 12:03:38 +05:30
Deepesh Garg
3aead05f42 fix: Test related errors 2023-06-22 11:41:43 +05:30
ruthra kumar
4e7deba2ad Merge pull request #35825 from ruthra-kumar/convert_db_call_to_whitelisted_method
fix: multiple fixes in reconciliation tools
2023-06-22 11:27:04 +05:30
ruthra kumar
41b9e92868 fix: incorrect cost center error in bank reconciliation 2023-06-22 10:43:13 +05:30
Deepesh Garg
b64ebc6fcc test: fix payment reco tests 2023-06-21 17:49:45 +05:30
Rohit Waghchaure
756dbe7ce8 refactor: return against rejected warehouse 2023-06-21 17:40:48 +05:30
Deepesh Garg
e7d2bcf108 Merge branch 'develop' of https://github.com/frappe/erpnext into ledger_preview 2023-06-21 17:16:46 +05:30
Deepesh Garg
ed76ee3e16 fix: Move ledger display to dialog 2023-06-21 17:15:46 +05:30
phot0n
dcfc86e3af fix: use correct fieldname for purchase receipt column in item_wise_purcchase_register report 2023-06-21 16:49:54 +05:30
mergify[bot]
39a1f4a4c1 fix: issue of asset value_after_depreciation field getting updated twice if workflow is enabled in Journal Entry (backport #35821) (#35826)
* Fixes issue of asset value_after_depreciation field getting updated twice if workflow is enabled in Journal Entry (#35821)

* Fixes issue of asset value_after_depreciation field getting updated twice if workflow is enabled in Journal Entry

* chore: remove unnecessary line break

* chore: formatting

---------

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
(cherry picked from commit 000ebe4479)

# Conflicts:
#	erpnext/assets/doctype/asset/depreciation.py

* chore: resolve conflicts

---------

Co-authored-by: saeedkola <mohammedsaeedk@gmail.com>
Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-06-21 15:38:06 +05:30
ruthra kumar
ad758b8d85 fix: no permission for accounts settings on payment reconciliation 2023-06-21 14:19:02 +05:30
rohitwaghchaure
edc38edabf Merge pull request #35611 from rohitwaghchaure/fix-dont-allow-to-create-reposting-entry-for-closing-stock-balance
fix: don't allow to make reposting entry for closing stock balance period
2023-06-21 14:15:40 +05:30
Deepesh Garg
92f845c0e1 chore: Advance fetching order 2023-06-21 12:21:19 +05:30
Rohit Waghchaure
96c5c7b1df fix: don't allow to make reposting entry for closing stock balance period 2023-06-21 11:55:51 +05:30
Deepesh Garg
ddbd7d8bbc Merge pull request #35591 from resilient-tech/remove-whitelisting
chore: remove whitelisting for methods not accessed from UI
2023-06-20 20:29:49 +05:30
rohitwaghchaure
8816039bd9 Merge pull request #35810 from rohitwaghchaure/stock-error-for-service-item
fix: stock error for service item
2023-06-20 17:20:26 +05:30
rohitwaghchaure
79e41e329e Merge pull request #35809 from rohitwaghchaure/fixed-key-error-in-stock-balance-report
fix: key error while checking the stock balance report
2023-06-20 17:00:44 +05:30
Rohit Waghchaure
32965f1af9 fix: stock error for service item 2023-06-20 16:27:23 +05:30
Rohit Waghchaure
a627d2a38c fix: keyerror while checking the stock balance report 2023-06-20 15:55:18 +05:30
ruthra kumar
8aa47a13e3 Merge pull request #35794 from ruthra-kumar/exchange_revaluation_only_post_on_account_currency_based_on_scenario
fix: Exchange Rate Revaluation should only post on the currency that has balance in a 'zero' balance account
2023-06-20 13:58:54 +05:30
Deepesh Garg
98cfea6f63 Merge branch 'develop' of https://github.com/frappe/erpnext into #34282-Record-advance-payment-as-a-liability 2023-06-20 13:26:14 +05:30
Deepesh Garg
32c35b87f9 Merge pull request #34675 from frappe/bank-trans-party-automatch
feat: Auto set Party in Bank Transaction
2023-06-20 13:24:44 +05:30
Deepesh Garg
016ed951da test: Update tests 2023-06-20 13:22:32 +05:30
Anand Baburajan
df090cbe87 chore: minor typo in fixed asset register (#35801)
chore: renaming entries to assets
2023-06-20 13:03:15 +05:30
ruthra kumar
6694175a51 refactor: higher precision for rounding loss and allow '0' 2023-06-20 12:44:08 +05:30
ruthra kumar
4567474418 refactor: allow '0' rounding allowance 2023-06-20 12:44:08 +05:30
ruthra kumar
9d04af9ecc refactor: allow higher precision for new exchange rate 2023-06-20 12:44:08 +05:30
ruthra kumar
1b33afd699 fix: for zero bal accounts, dr/cr only on currency that has balance 2023-06-20 12:44:04 +05:30
Anand Baburajan
0d12588583 fix: date and finance book fixes in fixed asset register (#35751)
* fix: handle finance books properly and show all assets by default in fixed asset register

* chore: rename value to depr amount

* chore: get asset value for correct fb properly

* chore: rename include_default_book_entries to include_default_book_assets
2023-06-20 12:06:27 +05:30
marination
8f2e5288ff test: Dunning and PE against partially due invoice
- Check if the right payment portion is picked
- Check if the SI and Dunning are updated on submission and cancellation of PE
2023-06-20 11:47:04 +05:30
Deepesh Garg
175a7baa60 Merge branch 'develop' of https://github.com/frappe/erpnext into #34282-Record-advance-payment-as-a-liability 2023-06-19 21:39:01 +05:30
Smit Vora
4fbff20954 fix: make credit note and debit note exclusive (#35781) 2023-06-19 21:14:42 +05:30
Gursheen Anand
b3d565c91f feat: Provision to send Accounts Receivable Reports using Process Statement of Accounts
Issue #35707
2023-06-19 19:59:24 +05:30
Anand Baburajan
c1da3ddbbf fix: fix get outstanding invoices btn and add get outstanding orders btn (#35776)
* fix: fix get outstanding invoices btn and add get outstanding orders btn

* chore: remove unnecessary arg
2023-06-19 19:53:05 +05:30
Marica
8ab8230adf Merge branch 'develop' into bank-trans-party-automatch 2023-06-19 19:19:15 +05:30
Sagar Sharma
b26d70b527 Merge pull request #35782 from s-aga-r/SE-PURPOSE-INDEX
perf: index `purpose` in `Stock Entry`
2023-06-19 18:43:02 +05:30
s-aga-r
4f941ac5c0 perf: index purpose in Stock Entry 2023-06-19 18:42:25 +05:30
Raffael Meyer
11126521c9 Merge branch 'develop' into bank-trans-party-automatch 2023-06-19 15:04:37 +02:00
Deepesh Garg
85e1c85b52 chore: Add payment entry 2023-06-19 14:12:23 +05:30
Deepesh Garg
9d27a25e5f fix: Allocated amount validation for other party types (#35741)
* fix: Allocated amount validation for other party types

* chore: Validation for return allocations

* chore: minor typo

---------

Co-authored-by: anandbaburajan <anandbaburajan@gmail.com>
2023-06-19 11:04:50 +05:30
Deepesh Garg
7ec9d76545 Merge branch 'develop' of https://github.com/frappe/erpnext into #34282-Record-advance-payment-as-a-liability 2023-06-19 09:48:01 +05:30
Deepesh Garg
86744b6fbb chore: Add more invoices 2023-06-19 09:44:57 +05:30
Deepesh Garg
5e9014be8c Merge branch 'develop' into make-accounting-dimension-filter-values-optional 2023-06-19 09:21:04 +05:30
mergify[bot]
78fbd6452b fix: unsupported operand type(s) for //: 'float' and 'NoneType' for POS Barcode search (#35710)
* fix: unsupported operand type(s) for //: 'float' and 'NoneType' for POS Barcode search (#35710)

(cherry picked from commit 58a6bbcf6d)

# Conflicts:
#	erpnext/selling/page/point_of_sale/point_of_sale.py

* chore: resolve conflicts

---------

Co-authored-by: Vishal Dhayagude <vishdha@users.noreply.github.com>
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-06-19 09:14:43 +05:30
Abhinav Raut
2a24423ad2 fix: loan interest accrual date (#35695)
fix: loan interest accrual date

---------

Co-authored-by: Abhinav Raut <abhinav.raut@zerodha.com>
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-06-18 23:11:52 +05:30
HENRY Florian
d12c9b434e chore: fr translation lead vs prospect (#35697)
chore: fr translation lead vs prospect
2023-06-18 22:30:15 +05:30
Türker Tunalı
507c966aa7 chore: Make material request title translatable (#35764)
chore: Make material request title translatable
2023-06-18 22:29:42 +05:30
Lakshit Jain
93c0c26843 fix: modify filters for account in journal entry (#35626) 2023-06-18 22:25:28 +05:30
David Arnold
0444b98802 feat: add verified chart of accounts for colombia in two variants (#34508)
This information is scraped from the in Colombia widely trusted site
dedicated to the plan unico de cuentas (PUC): puc.com.co

feat(accounts): add account_type overlay to colombian CoA

Add account_type overlay with a most significant number matching
strategy and a hand-crafted dictionary based on the erpnext
documentation and the corresponding account description from puc.com.co

Script used for scraping:
https://gist.github.com/blaggacao/d45a454d27556f41fef88833937088f1
2023-06-18 22:17:31 +05:30
Sagar Sharma
b5c1c725be Merge pull request #35739 from s-aga-r/FIX-35493
fix(ux): set route options for new `SBB`
2023-06-18 15:13:15 +05:30
rohitwaghchaure
c51e6dba8d Merge pull request #35756 from rohitwaghchaure/fixed-stock-entry-not-able-to-save
fix: validation of job card in stock entry
2023-06-17 13:32:20 +05:30
Deepesh Garg
5b6a9fcca9 feat: Clear demo data 2023-06-17 13:08:18 +05:30
Rohit Waghchaure
df8c3f0888 fix: validation of job card in stock entry 2023-06-17 12:45:55 +05:30
Sagar Sharma
9fb6fc5b9a Merge pull request #35677 from s-aga-r/FIX-ISS-23-24-01397
fix: add validation for QI in PR
2023-06-17 12:19:07 +05:30
mergify[bot]
e3afcc6945 fix: cannot start / stop Job Card (backport #35753) (#35755)
fix: cannot start / stop jobs

(cherry picked from commit 53ec2a9268)

Co-authored-by: Anoop Kurungadam <anoop@earthianslive.com>
2023-06-17 12:15:47 +05:30
rohitwaghchaure
86612b6c05 Merge pull request #35747 from rohitwaghchaure/fixed-incorrect-stock-value-for-pr-return
fix: incorrect stock value for purchase returned with rejected qty
2023-06-16 23:08:17 +05:30
Marica
05e64b342a Merge branch 'develop' into payments-based-dunning 2023-06-16 19:20:18 +05:30
Ankush Menat
6086d1a99d perf: duplicate queries while checking prevdoc (#35746)
These values can't change durning DB transaction AFAIK
2023-06-16 18:25:58 +05:30
Rohit Waghchaure
28dd758aa3 fix: incorrect stock value for purchase returned with rejected qty 2023-06-16 16:44:56 +05:30
Ankush Menat
29da1db516 perf: Duplicate queries for UOM (#35744)
This query repeats for every item, UOMs rarely if ever change
2023-06-16 16:38:30 +05:30
Ankush Menat
433489a9e6 perf: Index pick list field in stock entry and DN (#35738)
We check if pick list is created against them but there's no index so we
end up reading entire table.

```
+------+-------------+------------------+-------+---------------+----------+---------+------+--------+-----------+----------+------------+-------------+
| id   | select_type | table            | type  | possible_keys | key      | key_len | ref  | rows   | r_rows    | filtered | r_filtered | Extra       |
+------+-------------+------------------+-------+---------------+----------+---------+------+--------+-----------+----------+------------+-------------+
|    1 | SIMPLE      | tabDelivery Note | index | NULL          | modified | 9       | NULL | 207015 | 348940.00 |   100.00 |       0.00 | Using where |
+------+-------------+------------------+-------+---------------+----------+---------+------+--------+-----------+----------+------------+-------------+
```

After

```
+------+-------------+------------------+------+-----------------+-----------------+---------+-------+------+--------+----------+------------+------------------------------->
| id   | select_type | table            | type | possible_keys   | key             | key_len | ref   | rows | r_rows | filtered | r_filtered | Extra                         >
+------+-------------+------------------+------+-----------------+-----------------+---------+-------+------+--------+----------+------------+------------------------------->
|    1 | SIMPLE      | tabDelivery Note | ref  | pick_list_index | pick_list_index | 563     | const | 1    | 0.00   |   100.00 |     100.00 | Using index condition; Using w>
+------+-------------+------------------+------+-----------------+-----------------+---------+-------+------+--------+----------+------------+------------------------------->
```
2023-06-16 15:26:40 +05:30
Ankush Menat
81f916b7d3 perf: Ignore cancelled pick lists while fetching picked items (#35737) 2023-06-16 15:26:01 +05:30
s-aga-r
4b5454c752 fix(ux): set route options for new SBB 2023-06-16 15:04:37 +05:30
marination
47852803f0 fix: Set Address via JS and Py files (for API usecases) 2023-06-16 14:10:07 +05:30
Ankush Menat
07d748c290 perf: Index sales_order_item in Pick list item (#35735)
- `get_picked_items_qty` does full table scan
- because it also locks, it does full table lock.
2023-06-16 14:06:24 +05:30
Deepesh Garg
77a29574a6 fix: Create transactions 2023-06-16 13:43:55 +05:30
Gursheen Anand
442e3f2aa2 fix: update outstanding amount and unpaid status on cancellation of payment entry 2023-06-16 13:38:47 +05:30
mergify[bot]
50f83859db fix: consider field precision while setting sle actual_qty (backport #35717) (#35720)
* fix: consider field precision while setting sle actual_qty (#35717)

(cherry picked from commit 3f62e854e5)

# Conflicts:
#	erpnext/controllers/buying_controller.py

* chore: `conflicts`

---------

Co-authored-by: Sagar Sharma <sagarsharma.s312@gmail.com>
2023-06-15 20:18:17 +05:30
Raffael Meyer
51848ee9d7 Merge branch 'develop' into bank-trans-party-automatch 2023-06-15 16:36:17 +02:00
marination
c32113918e fix: Updation of dunning on PE cancellation 2023-06-15 20:04:54 +05:30
Rucha Mahabal
6dd5117f61 Merge pull request #35709 from ruchamahabal/remove-hierarchy-chart 2023-06-15 19:15:39 +05:30
rohitwaghchaure
6cb31a9770 Merge pull request #35712 from s-aga-r/FIX-ISS-23-24-01470
fix: `Process Loss Report`
2023-06-15 19:13:08 +05:30
rohitwaghchaure
fc38d45c35 Merge pull request #35711 from rohitwaghchaure/fixed-incorrect-gl-for-debit-note
fix: incorrect gl entries for standalone debit note
2023-06-15 19:12:29 +05:30
marination
254bab33da fix: Consider installments/partial payments while back updating Dunning
- Also use data from Overdue Payment table and not just Dunning parent document
2023-06-15 19:00:24 +05:30
Rohit Waghchaure
f9f662679f test: added test case 2023-06-15 18:09:56 +05:30
Anand Baburajan
bb39a2cac7 fix: don't add GL Entry for Acc. Depr. while scrapping non-depreciable assets (#35714)
fix: on asset scrap, don't add gl entry for acc. depr. if no acc. depr.
2023-06-15 17:12:59 +05:30
s-aga-r
d176d86e2c fix: Process Loss Report 2023-06-15 16:01:08 +05:30
marination
4673aa412e fix: Broken pop-up and references to non-existent field
- `child_fieldname` misspelled causing broken pop up to fetch overdue payments
- `sales_invoice` referenced in dunning fields, which has been removed
- Fetch `customer_name` from `customer` link field
2023-06-15 15:48:50 +05:30
Rohit Waghchaure
6e198188ff fix: incorrect gl entries for standalone debit note with update stock 2023-06-15 14:45:27 +05:30
rohitwaghchaure
24d1bf275a Merge pull request #35699 from rohitwaghchaure/fixed-added-validation-for-incorrect-type
fix: added validation for incorrect type
2023-06-15 14:17:04 +05:30
Rucha Mahabal
8c374f57ed chore: remove html2canvas from dependencies
- was used for hierarchy charts (org charts)
2023-06-15 13:56:05 +05:30
Marica
b497436d4f Merge branch 'develop' into payments-based-dunning 2023-06-15 13:12:34 +05:30
Rucha Mahabal
520268002f refactor!: remove hierarchy charts 2023-06-15 13:10:19 +05:30
Rohit Waghchaure
1c2fe085b5 fix: test case and removed outward field 2023-06-15 12:56:41 +05:30
ruthra kumar
490ec63114 Merge pull request #35701 from ruthra-kumar/typeerror_on_exchange_rate_revaluation
fix: typeerror on exchange rate revaluation
2023-06-15 12:24:07 +05:30
Sagar Sharma
ccdf2e6340 Merge pull request #35700 from s-aga-r/FIX-SR-DIFF-QTY
fix: update `Stock Reconciliation` diff qty while reposting
2023-06-15 11:42:24 +05:30
s-aga-r
6a1b0a2fab fix: update Stock Reconciliation diff qty while reposting 2023-06-15 11:39:22 +05:30
ruthra kumar
f8273f7db6 fix: typeerror on exchange rate revaluation 2023-06-15 11:37:59 +05:30
Rohit Waghchaure
f968f0f257 fix: added validation for incorrect type 2023-06-14 23:26:35 +05:30
ruthra kumar
be78ae72ef Merge pull request #35694 from ruthra-kumar/reference_error_on_err
fix: reference error while using exchange rate revaluation
2023-06-14 20:44:16 +05:30
ruthra kumar
cd538e138a fix: reference error while using exchange rate revaluation 2023-06-14 20:28:28 +05:30
marination
772f6ffd21 fix: Linter and incorrect cost center in test records 2023-06-14 16:48:18 +05:30
rohitwaghchaure
4820221a41 Merge pull request #35636 from s-aga-r/FIX-SBB-AttributeError
fix: miscellaneous
2023-06-14 16:02:04 +05:30
Suraj Shetty
afaa85fbde fix(telephony): Check if setup_phone method exists
We are just overriding Data control. 

This fails if other field type like "Small Text" has option set as "Phone"
2023-06-14 15:54:27 +05:30
s-aga-r
2c1ab569a7 fix: add validation for QI in PR 2023-06-14 15:37:28 +05:30
s-aga-r
7549a5c371 fix(ux): add filters for SBB 2023-06-14 15:04:51 +05:30
s-aga-r
5c805db573 fix(ux): add is_cancelled=0 filter for SBB 2023-06-14 15:04:51 +05:30
s-aga-r
fe054508f1 fix: 'NoneType' object has no attribute 'precision' for Job Card 2023-06-14 15:04:36 +05:30
Gursheen Anand
033e4e84f5 fix: modify voucher details for liability entries 2023-06-14 14:20:42 +05:30
barredterra
18495ed624 fix: semgrep issues 2023-06-14 13:53:05 +05:30
barredterra
15816c8afd test: test records for dunning type 2023-06-14 13:52:47 +05:30
barredterra
315df7b2cf test: fix dunning test 2023-06-14 13:52:47 +05:30
barredterra
04aaadcb39 style: sider issues 2023-06-14 13:52:46 +05:30
barredterra
4911c3b5b7 fix: precision for interst 2023-06-14 13:47:16 +05:30
barredterra
ccefe96665 fix: map only overdue payments 2023-06-14 13:47:16 +05:30
barredterra
88f67e4786 fix: set income account and cost center 2023-06-14 13:41:04 +05:30
barredterra
fd6d86eefc fix: show "Create Dunning" when any scheduled payment is overdue 2023-06-14 13:41:04 +05:30
barredterra
028d19f32d test: link Dunning Type to COmpany 2023-06-14 13:41:03 +05:30
Raffael Meyer
d790710ae7 refactor: apply suggestions from code review
Co-authored-by: Himanshu <himanshuwarekar@yahoo.com>
2023-06-14 13:41:03 +05:30
barredterra
28dfbdda93 feat: fetch income account and cost center from dunning type 2023-06-14 13:41:03 +05:30
barredterra
60b6afb470 fix: fetch overdue payments 2023-06-14 13:40:51 +05:30
barredterra
8bfe865759 fix: ignore cancelled dunnings 2023-06-14 13:40:50 +05:30
barredterra
0a06241e7c test: refactor, fix missing income account 2023-06-14 13:40:50 +05:30
barredterra
d55c59f298 test: make failing tests work 2023-06-14 13:40:50 +05:30
barredterra
84459c7196 fix: create payment entry 2023-06-14 13:40:50 +05:30
barredterra
e37f98267b fix: resolve dunning 2023-06-14 13:38:53 +05:30
barredterra
8652331d1c Revert "feat: remove dunning as possible reference from payment entry"
This reverts commit b774d8d0e3.
2023-06-14 13:38:53 +05:30
barredterra
9eeaac0c3e feat: remove dunning as possible reference from payment entry 2023-06-14 13:29:21 +05:30
barredterra
c17ccb455d refactor: run pre-commit 2023-06-14 13:08:56 +05:30
barredterra
24f400b123 feat: remove Dunning dashboard as there are no incoming links 2023-06-14 13:08:55 +05:30
barredterra
1250e56dd6 feat: add Dunning to Dunning Type's dashboard 2023-06-14 13:07:48 +05:30
barredterra
0990011e74 feat: add patch for dunning 2023-06-14 13:07:47 +05:30
barredterra
fd7be5da99 feat: remove obsolete "debit_to" field 2023-06-14 13:01:28 +05:30
barredterra
c142d89952 tests: remove obsolete test 2023-06-14 13:01:14 +05:30
barredterra
ac8b6bba5c feat: resolve dunning on payment entry 2023-06-14 13:00:47 +05:30
barredterra
270040303c refactor: make sider happy 2023-06-14 12:59:27 +05:30
barredterra
6b6f4dd017 refactor: run pre-commit 2023-06-14 12:59:26 +05:30
barredterra
ff7ec977e6 feat: more info for payment deductions 2023-06-14 12:59:26 +05:30
barredterra
16a23d9f0f refactor: dunning 2023-06-14 12:59:26 +05:30
barredterra
603117eb6b feat: change print format to reflect doctype changes 2023-06-14 12:56:28 +05:30
barredterra
3895c03ba9 feat: change make_gl_entries to work with new data structure 2023-06-14 12:56:28 +05:30
barredterra
bc40f3f425 refactor: rename interest_amount to interest, dunning_level 2023-06-14 12:54:17 +05:30
barredterra
be5fb94837 feat: currency section , debit_to, base_dunning_amount 2023-06-14 12:54:14 +05:30
Deepesh Garg
8ef257abbc feat: Demo data creation 2023-06-14 12:54:10 +05:30
barredterra
df840cca75 refactor: validate totals 2023-06-14 12:54:01 +05:30
barredterra
24e7a21839 refactor: remove redndant argument 2023-06-14 12:54:00 +05:30
barredterra
f143fe7dcc refactor: tests 2023-06-14 12:53:56 +05:30
barredterra
676ed6b881 feat: hide fields in print 2023-06-14 12:50:57 +05:30
barredterra
043066a2c8 style: use double quotes 2023-06-14 12:50:41 +05:30
barredterra
938f7d2266 reafctor: validate instead of postprocess 2023-06-14 12:42:21 +05:30
barredterra
9016baddca feat: company address query + style 2023-06-14 12:42:21 +05:30
barredterra
b07620aacf feat: child table triggers calculation of totals 2023-06-14 12:42:20 +05:30
barredterra
b186f8e9d7 feat: address display 2023-06-14 12:42:17 +05:30
barredterra
db47e1b69c feat: address and contact queries 2023-06-14 12:42:02 +05:30
barredterra
4f51dfe4c5 refactor: remove unnecessary code 2023-06-14 12:42:02 +05:30
barredterra
2d0dadd9ac feat: rework dunning backend 2023-06-14 12:41:59 +05:30
Gursheen Anand
ba4ab06ae3 fix: changed account types in controller method 2023-06-14 12:39:16 +05:30
barredterra
2ee919220a feat: rework dunning frontend 2023-06-14 12:37:58 +05:30
barredterra
8976e94a1d feat: rework doctypes 2023-06-14 12:37:55 +05:30
barredterra
86a8b0b30f refactor: doctype naming
Overdue Payments -> Overdue Payment
2023-06-14 12:37:31 +05:30
barredterra
487c6018bf feat: restructure dunning doctype 2023-06-14 12:37:02 +05:30
barredterra
e7705327f0 feat: filter invoices 2023-06-14 12:35:30 +05:30
barredterra
e5b57ec965 feat: Overdue Payments table 2023-06-14 12:35:29 +05:30
Deepesh Garg
984f89d274 fix: Validation for delivery date in Sales Order (#35597)
* fix: Validation for delivery date in Sales Order

* chore: update utils

* chore: revert

* chore: Add default delivery date
2023-06-13 21:35:52 +05:30
Deepesh Garg
937c0feefe fix: Lower deduction certificate not getting applied (#35667) 2023-06-13 20:06:36 +05:30
Anand Baburajan
491a50a027 fix: make showing taxes as table in print configurable (#35672) 2023-06-13 19:42:56 +05:30
Hossein Yousefian
9f669d4c2f Stock aging report fix when called in dashboard chart (#35671)
fix: get_range_age conditions fixed

see https://github.com/frappe/erpnext/issues/35669
2023-06-13 19:20:07 +05:30
Devin Slauenwhite
20de27d480 fix(accounts): validate payment entry references with latest data. (#31166)
* test: payment entry over allocation.

* fix: validate allocated_amount against latest outstanding amount.

* fix: payment entry get outstanding documents for advance payments

* fix: only fetch latest outstanding_amount.

* fix: throw if reference is allocated

* test: throw error if a reference has been partially allocated after inital creation.

* chore: test name

* fix: remove unused part of test

* chore: linter

* chore: more user friendly error messages

* fix: only validate outstanding amount if partly paid and don't filter by cost center

* chore: minor refactor for doc.cost_center

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>

---------

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-06-13 19:06:53 +05:30
Ankush Menat
a3ea985348 refactor: Use db.set_single_value (#35668)
I just applied semgrep autofix. Untested completed, review before merging.

```yaml
- id: frappe-set-value-semantics
  patterns:
    - pattern-either:
      - pattern: frappe.db.set_value($DOCTYPE, None, $...AFTER)
      - pattern: frappe.db.set_value($DOCTYPE, $DOCTYPE, $...AFTER)
  fix: frappe.db.set_single_value($DOCTYPE, $...AFTER)
  message: |
    If $DOCTYPE is a single doctype then using `frappe.db.set_value` is discouraged for setting values in DB. Use db.set_single_value for single doctype instead.
  languages: [python]
  severity: ERROR
```
2023-06-13 17:30:38 +05:30
Gursheen Anand
17341adf1c fix: calculate outstanding amount on reconcile correctly 2023-06-13 15:00:46 +05:30
ruthra kumar
b43e068852 Merge pull request #35659 from ruthra-kumar/fix_attribute_error_in_payment_reconciliation
fix: attribute error on payment reconciliation tool
2023-06-13 10:16:26 +05:30
ruthra kumar
b672616617 Merge pull request #35620 from ruthra-kumar/err_higher_allowance_for_debit_credit_diff
fix: allow custom rounding loss allowance in Exchange Rate Revaluation
2023-06-13 09:46:08 +05:30
ruthra kumar
bada5796fa fix: attribute error on payment reconciliation tool 2023-06-13 09:32:24 +05:30
rohitwaghchaure
4ee08b92ae Merge pull request #35629 from rohitwaghchaure/fixed-process-loss-in-job-card
fix: added process loss in job card
2023-06-12 23:29:15 +05:30
ruthra kumar
96a0132501 fix: allow user to set rounding loss allowance for accounts balance 2023-06-12 22:05:08 +05:30
Ankush Menat
f957a84830 build!: update deps and drop setup.py (#35653) 2023-06-12 21:46:06 +05:30
rohitwaghchaure
64586187de Merge branch 'develop' into fixed-process-loss-in-job-card 2023-06-12 21:39:29 +05:30
rohitwaghchaure
62011410b2 fix: test case PyPDF2 (#35652)
fix: test case
2023-06-12 19:22:55 +05:30
Ankush Menat
1e8ee9354a fix(DX): Check Frappe and ERPNext major versions (#35651) 2023-06-12 19:20:52 +05:30
rohitwaghchaure
93fe923e2a Merge branch 'develop' into fixed-process-loss-in-job-card 2023-06-12 19:04:19 +05:30
mergify[bot]
4f3d531f35 fix: don't set default payment amount in case of invoice return (backport #35645) (#35647)
fix: don't set default payment amount in case of invoice return (#35645)

(cherry picked from commit 79483cc90e)

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-06-12 18:43:26 +05:30
Deepesh Garg
011ac131cf fix: Add column values 2023-06-12 18:42:49 +05:30
Sagar Sharma
f1e902be5c Merge pull request #35646 from s-aga-r/FIX-ISS-23-24-01138-1
fix: Stock Reconciliation document update while reposting
2023-06-12 18:42:34 +05:30
s-aga-r
db159dd11f fix: Stock Reconciliation document update while reposting 2023-06-12 18:28:16 +05:30
Rohit Waghchaure
0382eecff4 fix: test case 2023-06-12 18:20:38 +05:30
Gursheen Anand
5e9821dce2 test: modify test to check posting date 2023-06-12 18:00:15 +05:30
ruthra kumar
42f4f80e0c fix: Payment against credit notes will be considered as payment against parent invoice in Accounts Receivable/Payable report (#35642)
* fix: payment against credit note should be linked to parent invoice

* test: AR/AP report for payment against cr note scenario

* fix: cr_note shows up as outstanding invoice

Payment made against cr_note causes it be reported as outstanding invoice
2023-06-12 17:35:13 +05:30
Gursheen Anand
a06017c2c3 fix: Use advance account from Reconciliation document for fetching Payment Entries 2023-06-12 15:24:53 +05:30
Deepesh Garg
2f24546b21 fix: Make difference entry button not working (#35622) 2023-06-12 15:20:28 +05:30
s-aga-r
c9923e4996 fix: 'NoneType' object has no attribute 'precision' 2023-06-12 12:33:13 +05:30
s-aga-r
c6acb0d200 fix: DocType not found 2023-06-12 12:33:13 +05:30
s-aga-r
0b009da122 fix(ux): only list related DocTypes 2023-06-12 12:33:13 +05:30
s-aga-r
9a12545ac3 fix(ux): add filter disabled=0 for batch no 2023-06-12 12:33:07 +05:30
Deepesh Garg
e30c3eafef fix: Stock ledger preview 2023-06-12 11:46:51 +05:30
Gursheen Anand
7591f1010b fix: Make get party account method return a list instead of a single default account. 2023-06-12 11:06:03 +05:30
David Arnold
c1b42b858d fix: set Phone and Email option in doctypes (#35549) 2023-06-11 19:34:41 +05:30
ruthra kumar
dcbd7d5f1f fix: incorrect TCS amount while customer has advance payment (#35397)
* fix: incorrect TCS amount while customer has advance payment

* test: only unallocated advance should for threshold breach validation
2023-06-10 20:55:30 +05:30
Rohit Waghchaure
e9a6191af9 fix: added process loss in job card 2023-06-09 20:33:46 +05:30
Sagar Sharma
e3802d1c3f Merge pull request #35618 from s-aga-r/FIX-SBB-SERIAL-NO-QTY
fix: reset entries qty to `1` for serial item
2023-06-09 13:01:01 +05:30
Anand Baburajan
7bd369c49b fix: calculate wdv depr schedule properly for existing assets [dev] (#35614)
* fix: calculate wdv depr schedule properly for existing assets

* fix: calculate wdv depr schedule properly for existing assets properly

* chore: properly call _get_pro_rata_amt
2023-06-09 12:53:10 +05:30
s-aga-r
b5c5a90f71 fix(ux): set warehouse for new row 2023-06-09 12:22:24 +05:30
s-aga-r
1f28ca717e fix(ux): set entries qty to 1 before making the field read-only 2023-06-09 12:06:46 +05:30
s-aga-r
1d904c0a86 fix(ux): make qty field read-only for serial item 2023-06-09 12:05:02 +05:30
Sagar Sharma
9a819103a7 Merge pull request #35617 from s-aga-r/FIX-CBAL-TypeError
fix: `TypeError` in Closing Stock Balance
2023-06-09 11:36:20 +05:30
s-aga-r
93e3fe8445 fix: reset entries qty to 1 for serial item 2023-06-09 11:10:47 +05:30
s-aga-r
446253ff39 fix: TypeError in Closing Stock Balance 2023-06-09 09:30:24 +05:30
Christian Werner
65b2e1fc33 fix: set parent_project when creating a new timesheet (#35607)
fix "When Creating a new Timesheet from an Task - parent_project is empty" #35578
2023-06-08 20:00:40 +05:30
Raffael Meyer
b91bb17779 refactor: get default contact or address (#35248)
* refactor: get_party_shipping_address

* refactor: get_default_contact

* chore: adding docstrings

* fix: keep original order

* fix: use get_all instead of get_list

---------

Co-authored-by: ruthra kumar <ruthra@erpnext.com>
2023-06-08 19:49:09 +05:30
Gursheen Anand
b65e58c1ae test: add tests for advance liability entries
Add Sales and Purchase Invoice Tests to check if GL entries and Outstanding Amount are generated correctly when advance entries are recorded as liability.

Few changes to return value of added column in Payment Entry References.
2023-06-08 18:15:37 +05:30
ruthra kumar
9cd982aa54 Merge pull request #35610 from ruthra-kumar/fix_travis
chore: fix travis
2023-06-08 15:53:50 +05:30
ruthra kumar
992d61bd90 chore: fix travis 2023-06-08 15:11:46 +05:30
Gursheen Anand
4ee163742a fix: Using one field for both advance liability accounts 2023-06-08 13:15:23 +05:30
Devin Slauenwhite
54935438e1 fix: reconcile invoice against credit note 2023-06-07 15:55:37 -04:00
Devin Slauenwhite
7973951c37 fix: missing attribute error 2023-06-07 15:55:16 -04:00
Devin Slauenwhite
f68ab3dfff test: reconcile credit against invoice 2023-06-07 15:14:24 -04:00
Didiman1998
0c12d4d3c5 fix: remove code that causes upscrolling (#35140)
Co-authored-by: Dietmar Fischer <fischer@kk-software.de>
2023-06-07 22:35:44 +05:30
Deepesh Garg
0bd4de4504 fix: Remove special treatment for P&L Accounts 2023-06-07 22:33:35 +05:30
Trusted Computer
781548e46e Fix: CSS not applied to product title (#35582)
In an erpnext website, the /all-products route shows website items that have been published to the web site.

In the list view (erpnext/e_commerce/product_ui/list.js), the css class is null for the product title. Instead, inline style statements have been added in that can not be modified by overriding CSS.

This fix uses a similar approach to that which is taken in the grid view (erpnext/e_commerce/product_ui/grid.js). It removes the null CSS parameter in the product title link as well as the inline style statement. Then, as in the grid view, the product title is wrapped in a div tag with the product_title CSS class.

This makes it possible to style the product title as desired with a CSS override.

Closes #35580
2023-06-07 22:11:49 +05:30
Deepesh Garg
f732cac678 fix: Project in item-wise sales register (#35596) 2023-06-07 22:06:05 +05:30
Raffael Meyer
0dde4d4c69 refactor: use delete_contact_and_address (#34497)
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-06-07 22:02:38 +05:30
Dirk van der Laarse
3b409af9a0 fix: exclude disabled customers when fetching customers on process statement of accounts (#35539)
fix: exclude disabled when fetching customers
2023-06-07 22:01:44 +05:30
Raffael Meyer
e9d7b9f0f4 fix: column formatting in Bank Reconciliation Tool (#35540)
* fix(Bank Reconciliation): format Date column

* fix(Bank Reconciliation): format Party column

* fix(Bank Reconciliation): actions button

- wrong closing tag
- explicitly quote data-name

* fix(Bank Reco): format date and link in dialog
2023-06-07 21:51:49 +05:30
Raffael Meyer
e1f3b7cbc8 fix: pass translated label to change button type (#35564)
fix: change button type for translated labels

Co-authored-by: Marica <maricadsouza221197@gmail.com>
2023-06-07 21:49:02 +05:30
HarryPaulo
a9a47a51e4 fix: based on status_update.py update opportunity status to converted… (#35145)
fix: based on status_update.py update opportunity status to converted on sales submit
2023-06-07 21:35:52 +05:30
Deepesh Garg
0108b1abe2 fix: Improve validation message (#35489)
* fix: Improve validation message

* Update erpnext/selling/doctype/customer/customer.py

Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>

---------

Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
2023-06-07 21:33:36 +05:30
Ankush Menat
0166f69b31 chore: extend default role profiles 2023-06-07 15:09:49 +05:30
Nikhil Kothari
83a7584475 fix: tests now create filters with checkbox enabled 2023-06-07 15:00:05 +05:30
rohitwaghchaure
930a107af8 Merge pull request #35567 from s-aga-r/FIX-SBB-STATUS
fix(ux): serial and batch bundle status
2023-06-07 14:49:43 +05:30
Nikhil Kothari
e1116bbbbb fix: added server side check for allow/restrict 2023-06-07 14:20:42 +05:30
Nikhil Kothari
83c46085fb feat: added support for mandatory dimensions per account 2023-06-07 14:14:57 +05:30
DaizyModi
5155d5bfb2 chore: remove whitelisting for methods not accessed from UI 2023-06-07 12:05:17 +05:30
Ankush Menat
4507cb3cd7 fix: enqueue_after_commit wherever it makes sense (#35588) 2023-06-07 11:58:36 +05:30
marination
eb1db5eaa3 chore: Remove instances of bank_party_mapper and use new_doc 2023-06-07 11:54:51 +05:30
Deepesh Garg
76197cc437 chore: Default role profiles (#35584) 2023-06-07 10:11:32 +05:30
Deepesh Garg
2ffcca6f10 fix: Interest Accrual on Loan Topup (#35555)
* fix: Interest Accrual on Loan Topup

* chore: CI

* chore: Ignore test
2023-06-07 10:06:13 +05:30
Nabin Hait
1cf1c7943f Merge pull request #35572 from nabinhait/quotation-fix
feat: ability to create quotation against a prospect
2023-06-06 21:54:24 +05:30
Marica
75387bbaef Merge branch 'develop' into bank-trans-party-automatch 2023-06-06 19:03:26 +05:30
marination
752a92bd8b chore: Remove Bank Party Mapper implementation
- Matching by Acc No/IBAN can easily happen with Bank Accounts. It's not a tedious query
- Historical lookups for  Party Name/Desc match are very tricky. The user could have manually set a match and we would not know. Also this leaves the Bank Party Mapper only useful for Party Name/Desc lookups, which feels excessive.
- We want to reduce the number of places the same data is stored and reduce confusion
- The Party Name/Desc will optionally happen fuzzily, or not at all
- There will be no Mapper lookups
2023-06-06 18:59:07 +05:30
Sagar Sharma
a14a08dcb4 Merge pull request #35569 from s-aga-r/FIX-SO-SR-TEST
fix(test): `test_stock_reservation_against_sales_order`
2023-06-06 16:13:22 +05:30
Nabin Hait
5a0aacc0b6 fix: get party details 2023-06-06 15:39:22 +05:30
Nabin Hait
47ce6de57d feat: ability to create quotation against a prospect 2023-06-06 15:19:04 +05:30
s-aga-r
8fe1904f3f fix(test): test_stock_reservation_against_sales_order 2023-06-06 14:59:17 +05:30
s-aga-r
d6208d2e45 fix(ux): serial and batch bundle status 2023-06-06 12:07:46 +05:30
rohitwaghchaure
9e650a004a Merge pull request #35562 from rohitwaghchaure/fixed-validation-for-stock-entry
fix: added validation for insufficient stock during stock transfer
2023-06-05 19:42:03 +05:30
Rohit Waghchaure
dcb0462d51 fix: added validation for insufficient stock during stock transfer 2023-06-05 16:58:54 +05:30
Smit Vora
b1ef19a0cd fix(regional): allow regional override for updating gl_dict (#35550) 2023-06-05 01:43:26 +05:30
Deepesh Garg
2e52a63b0d feat: Accounting Ledger Preview 2023-06-04 19:20:28 +05:30
rohitwaghchaure
64f767b95d Merge pull request #35552 from rohitwaghchaure/fixed-serial-batch-get-query
fix: get_query for batch number and incorrect batch qty
2023-06-04 16:56:46 +05:30
Rohit Waghchaure
acd12c5830 fix: get_query for batch number and incorrect batch qty 2023-06-04 16:09:01 +05:30
Sagar Sharma
5ebf46a1b5 Merge pull request #35510 from s-aga-r/FIX-ISS-23-24-01141
fix: ignore `Non-Stock Item` while calculating `% Picked` in Sales Order
2023-06-03 11:18:05 +05:30
rohitwaghchaure
14292ffc6f Merge pull request #34564 from rohitwaghchaure/serial-no-normalization
Feat: Serial No Normalization and Serial Batch Bundle
2023-06-02 18:13:02 +05:30
Deepesh Garg
abc6fe0b06 refactor!: Remove custom cashflow report mapper (#35523)
* refactor: Remove custom cashflow mapper

* chore: patch to delete docs

* fix: Cleanup defaults during install

* fix: Remove custom cashflow mapper from consolidated financial statement
2023-06-02 17:48:59 +05:30
Rohit Waghchaure
bb95451db6 feat: added jinja method get_serial_or_batch_nos for print format and new print format 'Purchase Receipt Serial and Batch Bundle Print for reference 2023-06-02 17:14:18 +05:30
Rohit Waghchaure
40ab3bdd35 test: test cases for serial and batch bundle 2023-06-02 17:14:18 +05:30
Rohit Waghchaure
42b229435c fix: stock reco test case for serial and batch bundle 2023-06-02 17:14:18 +05:30
Rohit Waghchaure
f4cfc589c6 fix: serial and batch selector 2023-06-02 17:14:18 +05:30
Rohit Waghchaure
39da92929b fix: serial and batch selector 2023-06-02 17:14:18 +05:30
Rohit Waghchaure
26b39ac7f4 fix: travis for asset capitalization and asset repair 2023-06-02 17:14:18 +05:30
Rohit Waghchaure
e88c5d6d90 fix: travis for subcontracting module 2023-06-02 17:14:18 +05:30
Rohit Waghchaure
f79f2a3bab fix: dialog issue 2023-06-02 17:14:18 +05:30
Rohit Waghchaure
74ab20f97a fix: travis for POS merge invoice and putaway rule 2023-06-02 17:14:18 +05:30
Rohit Waghchaure
f8bf4aa7c8 fix: travis for work order, pos invoice and landed cost voucher 2023-06-02 17:14:17 +05:30
Rohit Waghchaure
48fbf99e6d fix: travis for sales and purchase invoice 2023-06-02 17:14:17 +05:30
Rohit Waghchaure
d3ceb07936 fix: travis 2023-06-02 17:14:17 +05:30
Rohit Waghchaure
f704eb7581 fix: average batch wise valuation 2023-06-02 17:14:17 +05:30
Rohit Waghchaure
854b89f252 fix: batch valuation for old entries 2023-06-02 17:14:17 +05:30
Rohit Waghchaure
c2d7461d3c fix: travis issue 2023-06-02 17:14:17 +05:30
Rohit Waghchaure
7290dd87be fix: linters and travis 2023-06-02 17:14:16 +05:30
Rohit Waghchaure
9b72845f0f feat: serial and batch bundle for pick list 2023-06-02 17:14:16 +05:30
Rohit Waghchaure
648efca940 feat: auto create serial and batch bundle 2023-06-02 17:14:16 +05:30
Rohit Waghchaure
c1132d1e6d fix: serial and batch selector and added deprecated decorator 2023-06-02 17:14:16 +05:30
Rohit Waghchaure
440510337c fix: travis 2023-06-02 17:14:16 +05:30
Rohit Waghchaure
0eaf6de5de feat: serial and batch bundle for POS 2023-06-02 17:14:16 +05:30
Rohit Waghchaure
467046436b refactor: serial no ledger and batchwise balance history report 2023-06-02 17:14:16 +05:30
Rohit Waghchaure
ba6e1447ef refactor: serial and batch bundle for Maintenance Schedule 2023-06-02 17:14:16 +05:30
Rohit Waghchaure
e50e5cc7b1 feat: serial and batch bundle for GIT stock entry 2023-06-02 17:14:15 +05:30
Rohit Waghchaure
5bb3173676 refactor: rename doctype serial and batch ledger to serial and batch entry 2023-06-02 17:14:15 +05:30
Rohit Waghchaure
16f26fb3d8 refactor: serial and batch package creation for finished item and cleanup code 2023-06-02 17:14:15 +05:30
Rohit Waghchaure
86da306cca feat: added negative inventory validation and restrict to make backdated entry for serial nos 2023-06-02 17:14:15 +05:30
Rohit Waghchaure
674bd3e2e5 feat: serial and batch bundle for Packing Items 2023-06-02 17:14:15 +05:30
Rohit Waghchaure
9c097e85f8 feat: serial and batch bundle for Stock Reconciliation 2023-06-02 17:14:14 +05:30
Rohit Waghchaure
5ddd55a8ae feat: serial and batch bundle for Subcontracting 2023-06-02 17:14:14 +05:30
Rohit Waghchaure
e6143abb8a refactor: added new file serial batch bundle 2023-06-02 17:14:14 +05:30
Rohit Waghchaure
f1b5966680 refactor: serial and batch reposting 2023-06-02 17:14:14 +05:30
Rohit Waghchaure
6c9b212dd1 fix: removed sales and purchase fields from serial nos 2023-06-02 17:14:14 +05:30
Rohit Waghchaure
ba1aac1613 chore: used frappe.db.bulk_insert to create serial nos and serial bunndle 2023-06-02 17:14:14 +05:30
Rohit Waghchaure
bc75a7ef44 refactor: serial no normalization 2023-06-02 17:14:14 +05:30
Gursheen Anand
74619269f0 feat: Record Advance Payments as Liability
Ability to let user record advance payments as liability instead of a negative asset.

Issue #34282
2023-06-02 17:13:51 +05:30
Nabin Hait
f11d9b019d fix: Ignore permissions while submitting account closing balance record (#35536) 2023-06-02 16:57:00 +05:30
Suraj Shetty
e75bd72fe4 Merge pull request #35530 from surajshetty3416/fix-task-gantt 2023-06-02 11:09:06 +05:30
Suraj Shetty
f7b2d103e7 fix: Task gantt popup style 2023-06-02 10:55:29 +05:30
Sagar Sharma
13f427a762 Merge pull request #35529 from frappe/mergify/bp/develop/pr-35481
fix: update `Stock Reconciliation` document while reposting (backport #35481)
2023-06-01 22:01:10 +05:30
Raffael Meyer
09872301bd Merge branch 'develop' into bank-trans-party-automatch 2023-06-01 18:03:10 +02:00
s-aga-r
0fa56bcdce test: add test case for update stock reconciliation doc
(cherry picked from commit 5c9506c8ca)
2023-06-01 15:55:28 +00:00
s-aga-r
88a3f65d3d fix: update Stock Reconciliation document while reposting
(cherry picked from commit cc95cedfee)
2023-06-01 15:55:28 +00:00
Sagar Sharma
ebf03a51f3 Merge pull request #35525 from s-aga-r/FIX-STOCK-RESERVATION-TEST-CASE
fix(test): `test_stock_reservation_against_sales_order`
2023-06-01 19:41:12 +05:30
rohitwaghchaure
fe6a0a6c30 Merge pull request #35498 from rohitwaghchaure/fixed-db-binlogs-getting-full
fix: old data reposting causing low server disk space
2023-06-01 19:28:03 +05:30
s-aga-r
4044c2ed40 fix(test): test_stock_reservation_against_sales_order 2023-06-01 17:00:57 +05:30
brunoherrick
4eb2717c3b feat(accounts): add Portuguese SNC CoA (#35486)
The ultimate goal of this commit is to add an updated Portuguese Chart of Accounts (CoA), based on Portugal's SNC norm. Account numbers are included. "Account types" shall ideally be confirmed and improved by an accountant. Howbeit, the account types are mostly inspired on former OpenERP, now designated Odoo.
2023-06-01 15:38:18 +05:30
ruthra kumar
c02fc955c5 Merge pull request #35518 from ruthra-kumar/add_precision_in_exchange_rate_revaluation
fix:higher precision causes ERR to misjudge zero bal acc as non-zero
2023-06-01 14:59:04 +05:30
ruthra kumar
0319650187 Merge pull request #35112 from ruthra-kumar/gp_report_simplify_groupby_invoice
refactor(Gross Profit): simplify group by invoice logic
2023-06-01 14:34:01 +05:30
ruthra kumar
0cd47f07a6 fix: higher precision makes ERR to misjudge zero bal acc as non-zero 2023-06-01 14:24:03 +05:30
s-aga-r
0305a925fe fix: ignore Non-Stock Item while calculating % Picked in Sales Order 2023-06-01 14:18:48 +05:30
s-aga-r
03d7742737 fix: ignore Non-Stock Item mapping in Pick List 2023-06-01 14:18:39 +05:30
Akshay
e08d6fb2cb chore: typo in pricing rule schema (#35457) 2023-06-01 14:16:52 +05:30
Rohit Waghchaure
fb1a40cada fix: old data reposting causing low server disk space 2023-05-31 18:20:56 +05:30
rohitwaghchaure
cb19ebcd85 Merge pull request #35482 from rohitwaghchaure/fixed-stock-entry-missing-bom-details
fix: missing bom details in the stock entry
2023-05-31 17:29:19 +05:30
Ankush Menat
4bdd276f74 Merge pull request #35409 from nabinhait/workspace-cleanup
refactor: Workspace cleanup
2023-05-31 16:40:26 +05:30
Sagar Sharma
a250562f0b Merge pull request #35503 from s-aga-r/FIX-ISS-23-24-01158
fix(ux): throw if no row selected to create repost entries
2023-05-31 16:35:41 +05:30
Sagar Sharma
fe7c626098 Merge branch 'develop' into FIX-ISS-23-24-01158 2023-05-31 16:34:00 +05:30
Ankush Menat
bb67cc03df chore: typo 2023-05-31 16:31:58 +05:30
s-aga-r
1905239ec2 fix(ux): throw if no row selected to create repost entries 2023-05-31 15:30:45 +05:30
Sagar Vora
1287ee65b5 Merge pull request #35500 from resilient-tech/remove-wl 2023-05-31 14:44:59 +05:30
Sagar Vora
517d8a03ec chore: remove whitelisting for method not accessed from UI 2023-05-31 14:39:03 +05:30
Ankush Menat
686685bba0 fix: use kwargs in new_doc (#35497)
To handle https://github.com/frappe/frappe/pull/21190#event-9386089620
2023-05-31 12:50:14 +05:30
Deepesh Garg
bb21c044f6 fix: Billing Address display in buying transactions (#35451) 2023-05-31 11:02:30 +05:30
Deepesh Garg
27d5e6a99b fix: Error while validating budget (#35487)
* fix: Error while validating budget

* chore: remove print statement
2023-05-31 10:51:33 +05:30
Rohit Waghchaure
2fc7d82324 fix: missing bom details in the stock entry 2023-05-30 18:22:48 +05:30
rohitwaghchaure
ffd5308ed9 Merge pull request #35478 from rohitwaghchaure/fixed-lead-time-calculation-in-work-order
fix: incorrect transferred qty in the job card
2023-05-30 18:11:57 +05:30
Rohit Waghchaure
d3a5e49db9 fix: incorrect transfer quantity in the job card 2023-05-30 17:27:16 +05:30
Anand Baburajan
dbdc420066 fix: allow assets with depr entries to be cancelled (#35477)
fix: allow asset with depr entries to be cancelled
2023-05-30 16:28:57 +05:30
Nabin Hait
e78a7de1e5 fix: Rearranged accounting module links 2023-05-30 13:25:00 +05:30
Nabin Hait
5cf4c8c8b7 fix: removed duplicate links of manufacturing workspace 2023-05-30 13:18:58 +05:30
Nabin Hait
86f88817a9 fix: Added pos links in Selling workspace 2023-05-30 13:18:58 +05:30
Nabin Hait
0b28f641ad fix: Delete Retail and Utilities worspaces amd hide default Settings and Integration workspaces 2023-05-30 13:18:52 +05:30
Nabin Hait
243c49c550 refactor: Workspace cleanup 2023-05-30 13:17:59 +05:30
Sagar Sharma
7a3d16fc61 Merge pull request #35459 from marc-dll/FIX_retention_stock_entry_conversion_factor
fix: retention stock entry: grab conversion factor from source
2023-05-30 11:05:58 +05:30
Sagar Sharma
91ca266db6 Merge branch 'develop' into FIX_retention_stock_entry_conversion_factor 2023-05-30 11:05:37 +05:30
rohitwaghchaure
df921b79a4 Merge pull request #35465 from rohitwaghchaure/fixed-inter-transfer-company
fix: rate not fetching properly for inter transfer purchase order
2023-05-30 09:14:16 +05:30
Rohit Waghchaure
2931c657f4 fix: rate not fetching properly for inter transfer purchase order 2023-05-30 08:34:12 +05:30
rohitwaghchaure
7dce06021e Merge pull request #35462 from ankush/item_quick_entry
refactor!: Drop custom item quick entry
2023-05-30 08:32:09 +05:30
Sagar Sharma
ed0c8ae452 Merge branch 'develop' into FIX_retention_stock_entry_conversion_factor 2023-05-30 08:05:54 +05:30
Anand Baburajan
ae26d72f7f fix: monthly wdv depr schedule for existing assets [dev] (#35460)
fix: monthly wdv depr schedule for existing assets
2023-05-29 23:18:07 +05:30
Ankush Menat
b10e19141c refactor!: Drop item quick entry
- Item variants creator - we have better one on document
- Everything else - hardcoded behaviour that's not needed anymore IMO.
2023-05-29 22:33:56 +05:30
Marc de Lima Lucio
6954f538c9 fix: retention stock entry: grab conversion factor from source 2023-05-29 17:41:14 +02:00
Ankush Menat
d84c8de46c Merge pull request #35453 from ankush/stock_onboarding_workspace
fix: stock onboarding
2023-05-29 15:13:14 +05:30
Ankush Menat
964bb1d948 chore: docs for stock settings
[skip ci]
2023-05-29 15:11:28 +05:30
Ankush Menat
8fe8f80033 fix: replace stock projected with ledger
Ledger is much more widely used report, better to show that first?
2023-05-29 14:44:54 +05:30
Ankush Menat
dd245ccc7f fix: reorder stock reco tour 2023-05-29 14:44:54 +05:30
Ankush Menat
3341cd6b80 fix: filter parent warehouses by company 2023-05-29 14:44:54 +05:30
Ankush Menat
aa9f926298 fix: warehouse tour
- remove warehouse type, it doesn't do what it says. Misleading.
2023-05-29 14:44:54 +05:30
Ankush Menat
81e901ba62 fix: disable/enable with button 2023-05-29 14:44:54 +05:30
Ankush Menat
40ce33dff1 fix: warehouse form cleanup
- organize fields
- group transit fields and move them lower
- enable/disable should be button
- hide pointless fields from listview
2023-05-29 14:44:54 +05:30
Ankush Menat
7a18db561f fix: hide ledger button on new warehouse 2023-05-29 14:44:54 +05:30
Ankush Menat
2e13fbab5e fix: stock settings tour
- remove dead fields
- Keep only essential fields in tour
2023-05-29 14:44:50 +05:30
HarryPaulo
b7407a1d81 feat: add todo calendar to bootinfo.calendars (#35124)
* feat: add todo calendar to bootinfo.calendars

* chore: Linting Issues

---------

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-05-29 10:37:35 +05:30
Raffael Meyer
1f08330ae1 fix: labels and translations (#34896)
* fix: german translation of expense claim

* fix: consistent labels and translations in project Costing and Billing

* fix: german translation of Stock Entry

---------

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-05-29 09:56:16 +05:30
Akshay
1ab04344db fix (ui): debit note issued status indicator color (#35401)
* fix: debit note issued status indicator color

* fix: change DebitNoteIssued color from grey to gray
2023-05-29 09:42:01 +05:30
Vishnu VS
01567b5ec4 fix(UX): task and project name in error message (#35435) 2023-05-29 09:39:13 +05:30
Nabin Hait
3504bf7f62 fix: Show future payments in accounts receivable summary (#35416) 2023-05-29 09:23:40 +05:30
Sagar Sharma
afd9098612 Merge pull request #35437 from s-aga-r/FIX-ISS-23-24-01015
fix: incorrect `POS Reserved Qty` in `Stock Projected Qty` Report
2023-05-28 15:04:47 +05:30
Sagar Sharma
336ff5b327 Merge branch 'develop' into FIX-ISS-23-24-01015 2023-05-27 12:13:39 +05:30
Sagar Sharma
027de41600 fix: incorrect POS Reserved Qty in Stock Projected Qty Report 2023-05-27 12:05:37 +05:30
rohitwaghchaure
4099330bf4 Merge pull request #35426 from rohitwaghchaure/fixed-incorrect-actual-qty-bin
fix: incorrect available quantity in BIN
2023-05-26 22:47:42 +05:30
Sagar Sharma
c3fa1f7450 Merge pull request #34805 from s-aga-r/stock-reservation
feat: Stock Reservation against Sales Order
2023-05-26 17:13:44 +05:30
Sagar Sharma
8cc8af8204 Merge branch 'develop' into stock-reservation 2023-05-26 15:28:54 +05:30
Rohit Waghchaure
718ad3f240 fix: travis 2023-05-26 11:29:22 +05:30
Sagar Sharma
761f8a9f05 fix: use float_precision while checking for negative stock in BIN 2023-05-26 04:23:36 +05:30
Rohit Waghchaure
9e5e2de5d5 fix: incorrect available quantity in BIN 2023-05-25 23:56:23 +05:30
Sagar Sharma
781c93c0e6 Merge pull request #35108 from s-aga-r/PACKING-SLIP-FOR-DN-PACKED-ITEMS
refactor: Packing Slip
2023-05-25 23:54:04 +05:30
Sagar Sharma
b4362e5517 Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-25 23:15:46 +05:30
mergify[bot]
55806c51f2 fix: Gross and Net Profit Report - incorrect calculation of totals
* fix: account group totals calculation to consider include_in_gross

(cherry picked from commit 8dcb9302b4)

* refactor: remove unused parameters

(cherry picked from commit 50822f207e)

* refactor: merge separate loops for calculating group / leaf node totals
rename function
remove return statement as the list is  mutated

(cherry picked from commit 1a3b9c5bdf)

* fix: add total col for gross and net profit

(cherry picked from commit cb9b4fbb91)

---------

Co-authored-by: Anoop Kurungadam <anoop@earthianslive.com>
2023-05-25 18:12:50 +05:30
Sagar Sharma
6f0867b006 Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-25 18:04:06 +05:30
Sagar Sharma
196e18187f fix(patch): add patch to set packed_qty in draft DN 2023-05-25 18:03:39 +05:30
Sagar Sharma
ba59f53939 Merge pull request #35422 from s-aga-r/stock-balance-typo
chore: typo in stock balance
2023-05-25 17:22:13 +05:30
Sagar Sharma
5c7f3adf5a Merge branch 'develop' into stock-balance-typo 2023-05-25 16:04:11 +05:30
Sagar Sharma
c4e1f927ee chore: typo in stock balance 2023-05-25 16:03:15 +05:30
Sagar Sharma
82f0bd9ee9 feat: add Reserved Stock column in Stock Balance Report 2023-05-25 15:57:06 +05:30
Sagar Sharma
988db2eaf6 Merge branch 'develop' into stock-reservation 2023-05-25 15:10:54 +05:30
ruthra kumar
ec5d34117b Merge pull request #35417 from ruthra-kumar/fix_ambiguous_company_in_gross_profit_report
fix(Gross Profit): 'company' column is ambiguous in filter
2023-05-25 15:06:35 +05:30
Sagar Sharma
ccb2dc4df5 Merge branch 'develop' into stock-reservation 2023-05-25 14:35:59 +05:30
ruthra kumar
448712f719 fix(Gross Profit): 'company' column is ambiguous in filter 2023-05-25 14:18:41 +05:30
Sagar Sharma
fefd788eb5 fix(ux): add non-group warehouse filter 2023-05-25 11:49:47 +05:30
rohitwaghchaure
0bc9c3260e Merge pull request #35348 from rohitwaghchaure/refactor-stock-balance-report
refactor: stock balance report
2023-05-24 19:46:04 +05:30
rohitwaghchaure
693133d8f7 Merge pull request #35410 from rohitwaghchaure/fixed-negative-reserved-qty-for-production-plan
fix: Negative value in Reserved Qty for Production Plan
2023-05-24 19:08:14 +05:30
Rohit Waghchaure
a37608a36c fix: Negative value in Reserved Qty for Production Plan 2023-05-24 17:14:00 +05:30
Sagar Sharma
2813042936 Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-24 14:35:51 +05:30
rohitwaghchaure
565322daba Merge branch 'develop' into stock-reservation 2023-05-24 14:32:04 +05:30
rohitwaghchaure
0d8f48891d Merge pull request #35405 from rohitwaghchaure/fixed-available-qty-issue
fix: available qty not fetching for raw material in PP
2023-05-24 14:24:53 +05:30
Rohit Waghchaure
8e3463c4ef fix: available qty not fetching for raw material in PP 2023-05-24 14:12:58 +05:30
Gursheen Kaur Anand
c1f1a033c9 fix: tab-uniformity (#35400)
Made Doctype tabs uniform

Co-authored-by: Sagar Sharma <sagarsharma.s312@gmail.com>
2023-05-24 12:45:00 +05:30
Anand Baburajan
edb7b0db8f fix: incorrect depr schedule and posting dates on selling of existing assets [dev] (#35398)
* fix: calc depr amount properly on selling of existing assets and fix incorrect posting dates

* chore: get number_of_depreciations_booked properly

* chore: fix test_gle_made_by_asset_sale_for_existing_asset
2023-05-24 12:29:46 +05:30
Rohit Waghchaure
3f548ac910 fix: Stock Analytics and Warehouse wise Item Balance Age and Value issue 2023-05-23 17:06:11 +05:30
Rohit Waghchaure
545b2d32cd fix: balance quantity 2023-05-23 17:06:11 +05:30
Rohit Waghchaure
d9979b2ffb refactor: stock balance report 2023-05-23 17:06:11 +05:30
Ankush Menat
b0eb72ffac fix: replace quotation with invoice in first onboarding (#35389)
[skip ci]
2023-05-23 15:35:55 +05:30
Sagar Sharma
3940deb31c Merge pull request #35303 from s-aga-r/FIX-34761
fix: Pick List TypeError
2023-05-23 14:20:49 +05:30
Sagar Sharma
a111917114 fix: Pick List TypeError 2023-05-23 12:57:48 +05:30
Sagar Sharma
00bb8add40 Merge pull request #35380 from CodeVenturers/OpenContrib
fix: TypeError while saving Job card
2023-05-23 10:49:42 +05:30
vishnu
8c34cc0e00 fix: use flt instead of mandatory field 2023-05-23 04:27:50 +00:00
rohitwaghchaure
4cb9cbee06 Merge pull request #35381 from rohitwaghchaure/fixed-skip-available-qty-for-sub-assembly
feat: provision to skip available sub assembly items in the production plan
2023-05-23 09:39:09 +05:30
Sagar Sharma
4fee4fb3b7 Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-23 07:10:09 +05:30
Rohit Waghchaure
9dd566c1e8 test: test case to skip available qty for sub-assembly items 2023-05-23 01:02:16 +05:30
Rohit Waghchaure
64751ec4d9 feat: provision to skip available sub assembly items in the production plan 2023-05-23 00:16:48 +05:30
vishnu
a209fb4b64 fix: error while saving job card 2023-05-22 18:00:50 +00:00
Sagar Sharma
9308cd9b57 Merge pull request #35376 from s-aga-r/FIX-ISS-23-24-00368-2
fix: don't recalculate rate for SCR rejected warehouse SLE
2023-05-22 15:45:30 +05:30
Sagar Sharma
57ee473fa4 fix: don't recalculate rate for SCR rejected warehouse SLE 2023-05-22 15:07:39 +05:30
Sagar Sharma
7e4dc11c4c Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-21 08:34:41 +05:30
Ankush Menat
ba61865ee6 chore: drop outdated navigation video
new stuff is in work, this one is actually counter-productive rn.
2023-05-20 19:45:59 +05:30
rohitwaghchaure
44cd76bb48 Merge pull request #35365 from rohitwaghchaure/create-reposting-entries-from-report
feat: provision to make reposting entries from Stock and Account Value Comparison Report
2023-05-20 17:06:13 +05:30
Rohit Waghchaure
7b818e9d34 feat: provision to make reposting entries from Stock and Account Value Comparison Report 2023-05-19 18:53:40 +05:30
Deepesh Garg
68eee35c5d Merge pull request #35346 from nabinhait/account-closing-balance-patch-fix
fix: account closing balance patch
2023-05-19 11:09:39 +05:30
rohitwaghchaure
216983a729 Merge pull request #34909 from ihosseinu/get_incoming_rate_v14_fix
Get incoming rate v14 fix
2023-05-19 09:56:32 +05:30
Sagar Sharma
44b0bc2d76 Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-19 09:20:21 +05:30
ruthra kumar
f143bd1bec Merge pull request #35355 from ruthra-kumar/fix_possible_type_erro_on_so_creation_from_quotation
fix: possible type error on quotation -> sales order creation
2023-05-18 13:31:29 +05:30
Marica
6fe5264ae2 Merge branch 'develop' into bank-trans-party-automatch 2023-05-18 12:57:58 +05:30
ruthra kumar
b2290c6f57 fix: possible type error on quotation -> sales order creation 2023-05-18 12:48:15 +05:30
ruthra kumar
1587ce3bfb Merge pull request #35335 from ruthra-kumar/incorrect_tds_calcuation_if_supplier_has_different_category
fix: tds incorrectly calculated for invoice that are below threshold
2023-05-18 12:38:31 +05:30
ruthra kumar
73bcd4451a Merge pull request #35352 from niyazrazak/patch-12
fix: create sales order
2023-05-18 12:07:35 +05:30
ruthra kumar
132846bbd1 fix(test): cumulative threshold checks 2023-05-18 12:00:59 +05:30
MOHAMMED NIYAS
90ddf1c0f0 fix: create sales order
Getting error while clicking create sales order button from quotation

Taceback (most recent call last):
  File "apps/frappe/frappe/app.py", line 66, in application
    response = frappe.api.handle()
  File "apps/frappe/frappe/api.py", line 54, in handle
    return frappe.handler.handle()
  File "apps/frappe/frappe/handler.py", line 45, in handle
    data = execute_cmd(cmd)
  File "apps/frappe/frappe/handler.py", line 83, in execute_cmd
    return frappe.call(method, **frappe.form_dict)
  File "apps/frappe/frappe/__init__.py", line 1607, in call
    return fn(*args, **newargs)
  File "apps/frappe/frappe/model/mapper.py", line 36, in make_mapped_doc
    return method(source_name)
  File "apps/erpnext/erpnext/selling/doctype/quotation/quotation.py", line 263, in make_sales_order
    return _make_sales_order(source_name, target_doc)
  File "apps/erpnext/erpnext/selling/doctype/quotation/quotation.py", line 333, in _make_sales_order
    doclist = get_mapped_doc(
  File "apps/frappe/frappe/model/mapper.py", line 144, in get_mapped_doc
    postprocess(source_doc, target_doc)
  File "apps/erpnext/erpnext/selling/doctype/quotation/quotation.py", line 291, in set_missing_values
    for d in customer.get("sales_team"):
TypeError: 'NoneType' object is not iterable
2023-05-18 10:23:58 +05:30
rohitwaghchaure
ffb353032d Merge branch 'develop' into get_incoming_rate_v14_fix 2023-05-18 06:13:52 +05:30
rohitwaghchaure
6fbcc3d196 Merge pull request #35298 from CodeVenturers/OpenContirb
fix: Creating landed cost voucher from connections
2023-05-18 06:00:07 +05:30
Anand Baburajan
8c53e0f004 fix: depreciation schedule for existing assets [dev] (#35256)
* fix: depreciation schedule for existing assets

* chore: correct logic for existing assets and fix test

* chore: properly check if depr amount is non zero
2023-05-17 22:29:09 +05:30
Nabin Hait
2b8c39eee9 fix: account closing balance patch 2023-05-17 22:05:46 +05:30
marination
4364fb9628 feat: Optional Fuzzy Matching & Skip Matches for multiple similar matches
- Fuzzy matching can be enabled optionally in the settings
- If a query gets multiple matches with the same score, do not set a party as it is an extremely close call
- misc: Add 'cancelled' status to Bank transaction
- Test for skipping matching with extremely close matches
2023-05-17 19:45:03 +05:30
Sagar Sharma
cf0d37cd82 Merge pull request #35306 from s-aga-r/FIX-35014
fix: Pick List Status
2023-05-17 18:12:30 +05:30
Sagar Sharma
fcea907cf9 Merge branch 'develop' into FIX-35014 2023-05-17 16:09:21 +05:30
Sagar Sharma
9fb8b1827d fix: Pick List Status 2023-05-17 16:07:58 +05:30
Ankush Menat
e5c86bc2e8 fix: consider 0 if rate/qty are null (#35338)
[skip ci]
2023-05-17 16:04:49 +05:30
Sagar Sharma
0f3230f581 Merge pull request #35337 from s-aga-r/FIX-SCR-CONSUMED-QTY-UX
fix(ux): SCR consumed-qty read-only property
2023-05-17 15:57:30 +05:30
Sagar Sharma
adf2474d9d fix(ux): SCR consumed-qty read-only property 2023-05-17 15:12:47 +05:30
marination
4a14e9ea4e fix: Tests 2023-05-17 14:23:44 +05:30
ruthra kumar
84b7c1bba0 fix: tds incorrectly calculated for invoice that are below threshold
Two purchase invoices for the same supplier, using different tax
withholding categories have this issue.

| Category | single | cumulative |
|----------+--------+------------|
| cat1     |    100 |        500 |
| cat2     |   1000 |       5000 |

1. PINV1 of net total: 105/- uses cat1. TDS is calculated as it
breached single threshold
2. PINV2 of net total: 200/- uses cat2. TDS incorrectly calculated as
PINV1 already has TDS calculated and 'consider_party_ledger_amount' is enabled.
2023-05-17 13:55:41 +05:30
Sagar Sharma
42804306fd Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-17 13:17:59 +05:30
ruthra kumar
e927f6cab1 Merge pull request #35239 from ashish-greycube/patch-8
fix: in payment_entry  difference amount cal is broken
2023-05-17 10:25:55 +05:30
ruthra kumar
0da6c1688b fix: unable to create partial invoice with auto fetch terms enabled (#35285)
fix: fetch so/po terms if auto fetch is enabled
2023-05-16 18:57:42 +05:30
rohitwaghchaure
96e6014d12 Merge pull request #35328 from rohitwaghchaure/fixed-create-reposting-entry-for-cancelled-documents
fix: force to do reposting for cancelled document
2023-05-16 17:31:45 +05:30
Ashish Shah
ae4e56747c refactor: use 'flt' for base_total_taxes_and_charges
difference_amount calculation is broken, as calculation gives NaN. Fix is make frm.doc.base_total_taxes_and_charges as flt(frm.doc.base_total_taxes_and_charges)
2023-05-16 16:55:11 +05:30
Rohit Waghchaure
6e661e7c0e fix: force to do reposting for cancelled document 2023-05-16 16:23:52 +05:30
ruthra kumar
776a83066d fix: cancelled vouchers in tax withheld vouchers list (#35309) 2023-05-16 15:54:46 +05:30
Ankush Menat
5574d9a72d fix(UX): misc "home" onboarding improvements (#35319)
* fix(UX): cleanup "Home" onboarding

- Remove company, letterhead, data import etc from home onboarding step

* fix(UX): Show quick entry for item

* chore: fix copy here and there
2023-05-16 13:38:55 +05:30
Rucha Mahabal
9feda1b829 perf: cache and simplify queries for holiday list (#35315) 2023-05-16 13:11:47 +05:30
rohitwaghchaure
5c2d7701ea Merge pull request #35312 from rohitwaghchaure/fixed-item-list-view-not-working
fix: item list view not working
2023-05-16 01:09:44 +05:30
Rohit Waghchaure
0489e30244 fix: item list view not working 2023-05-16 00:48:52 +05:30
rohitwaghchaure
3f5ce43185 Merge pull request #35138 from s-aga-r/FIX-ISS-23-24-00368
fix: recalculate costs in SCR while reposting
2023-05-15 16:26:04 +05:30
rohitwaghchaure
8afbb06a33 Merge branch 'develop' into FIX-ISS-23-24-00368 2023-05-15 13:42:20 +05:30
Wolfram Schmidt
c236979508 fix: Update de.csv (#35278)
added many fixes on the base of 'No' which is often wrongly translated to 'Kein'.

Also removed translation of Naming Seris like ACC-INV-.YYYY.- to ACC-INV-.YYYY.-
2023-05-15 13:25:23 +05:30
Smit Vora
2a609616d9 fix: port option for additional_conditions in item wise sales register (#35187)
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-05-15 13:24:39 +05:30
vishnu
f2ceb00379 fix: Creating landed cost voucher from connections 2023-05-14 09:35:38 +00:00
Indrajith.vs
0c8276ec82 fix: sales person allocated amount calculation error nonetype and float (#35293)
fix: sales person allocated amount calculation error nontype and float
2023-05-14 11:47:46 +05:30
Raffael Meyer
870b02b03c fix: allow over-payment against SO (#35079) 2023-05-14 08:59:58 +05:30
Daizy Modi
19cd687784 fix: function batch_no should only be declared once (#35115)
fix: remove twice event call of `batch_no` to update batch qty
2023-05-14 08:56:25 +05:30
Kevin Shenk
26c5cfabdc feat: copy project from timesheet to invoice (#35146)
copy project from timesheet to invoice
2023-05-14 08:49:28 +05:30
HarryPaulo
e12e3bb012 fix: allow search leads by doctype search fields
* fix: allow search leads by doctype search fields

* fix: allow search leads by doctype search fields, linters fix
2023-05-14 08:08:47 +05:30
Phanupong Janthapoon
2b59a95162 fix: share_transfer display wrong currency symbo
In multi-companies setting, on amount and rate field of  Share Transfer
doctype are displaying wrong currency symbol, when create a
Share Transfer of others company that has different currency than
the main company. This due to the lack of `options` on those fields.

To fix this, add `options` to `amount` and `rate` fields.
2023-05-14 08:06:58 +05:30
rohitwaghchaure
e6f092d257 Merge pull request #35289 from rohitwaghchaure/fixed-inventory-dimesion-for-inter-compnay-trasfer-return
fix: inventory dimension for returned inter company transfer
2023-05-13 14:26:17 +05:30
Rohit Waghchaure
38aaba5720 fix: inventory dimension for inter company transfer return use case 2023-05-13 13:00:05 +05:30
Sagar Sharma
81a57e4e41 Merge branch 'develop' into stock-reservation 2023-05-13 09:44:06 +05:30
Sagar Sharma
9b617cc062 Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-13 09:43:54 +05:30
Sagar Sharma
e17eeec619 Merge branch 'develop' into FIX-ISS-23-24-00368 2023-05-13 09:43:44 +05:30
Sagar Sharma
59f9d41756 Merge pull request #35275 from s-aga-r/FIX-35272
fix: add missing options for `Content Align`
2023-05-13 09:34:45 +05:30
Sagar Sharma
88ab075b11 Merge branch 'develop' into FIX-35272 2023-05-13 09:33:25 +05:30
rohitwaghchaure
e7bb6ad31c Merge pull request #35224 from rohitwaghchaure/fixed-inventory-dimension-for-material-transfer-not-working
fix: inventory dimension for material transfer not working
2023-05-13 02:15:18 +05:30
Rohit Waghchaure
6798b900ef fix: inventory dimension for material transfer not working 2023-05-13 01:44:06 +05:30
Sagar Sharma
4aff3c9a50 Merge branch 'develop' into FIX-35272 2023-05-12 15:06:47 +05:30
Sagar Sharma
d16caa2d2c fix: add missing options for Content Align 2023-05-12 15:06:03 +05:30
rohitwaghchaure
0723fbc108 Merge pull request #35273 from rohitwaghchaure/fixed-incorrect-packing-list
fix: incorrect packing items
2023-05-12 14:42:57 +05:30
Rohit Waghchaure
a686b8c337 fix: incorrect packing items 2023-05-12 14:12:29 +05:30
rohitwaghchaure
46a2bd8986 Merge pull request #35268 from rohitwaghchaure/fixed-incorrect-bom-filter-issue
fix: BOM item filter issue
2023-05-12 13:09:57 +05:30
Rohit Waghchaure
2879cb7c28 fix: bom item filter issue 2023-05-12 13:08:37 +05:30
rohitwaghchaure
4aa1508f04 Merge pull request #35261 from rohitwaghchaure/fixed-timeout-error-for-stock-entry-more-than-6-mmoths
fix: enqueue submit/cancel action for stock entry to avoid time out error
2023-05-12 12:32:33 +05:30
Nabin Hait
ca8b587730 Merge pull request #35178 from nabinhait/account-closing-balance-patch
fix: account closing balance patch
2023-05-12 12:07:45 +05:30
Sagar Sharma
b22f9a234b Merge branch 'develop' into FIX-ISS-23-24-00368 2023-05-12 11:55:12 +05:30
Sagar Sharma
9c72c2a6cb refactor: use calculate_items_qty_and_amount() to update scr items rate 2023-05-12 11:50:27 +05:30
Sagar Sharma
d6433f803b refactor(minor): rename function to be more descriptive 2023-05-12 11:45:33 +05:30
Sagar Sharma
46c1bef446 Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-12 11:06:00 +05:30
Rohit Waghchaure
2d6f112727 fix: test case 2023-05-12 10:51:14 +05:30
Rohit Waghchaure
7a3801578c fix: enqueue submit/cancel action for stock entry to avoid time out error 2023-05-11 23:20:12 +05:30
Nabin Hait
f5cc41e182 fix: account closing balance patch 2023-05-10 16:41:47 +05:30
Ankush Menat
2ea38333f0 refactor: use job_id instead of job_name (#35242)
depends on https://github.com/frappe/frappe/pull/20951
2023-05-10 13:26:10 +05:30
marination
dbf7a479b6 fix: Use existing bank fields to match by bank account no/IBAN
- Remove newly added fields in Party doctypes to store bank details
- Use Bank Account's fields to match against account no/iban
- For employee, if Bank Account does not exist, find in Employee doctype against account no/iban
2023-05-09 20:47:14 +05:30
rohitwaghchaure
5d43b35d20 Merge pull request #35230 from rohitwaghchaure/fixed-serial-no-issue-stock-reco
fix: Changed type of column 'serial_no' in Stock Reconciliation to fix Data too Long error
2023-05-09 19:54:24 +05:30
rohitwaghchaure
bf29ec4341 Merge pull request #35227 from rohitwaghchaure/fixed-do-not-include-manufacturing-item
fix: non manufacturing items/fixed asset items in BOM
2023-05-09 18:47:36 +05:30
Rohit Waghchaure
1a673fd424 fix: Changed type of column 'serial_no' in Stock Reconciliation to fix Data too long error 2023-05-09 18:45:19 +05:30
ruthra kumar
b8971c7add Merge pull request #35216 from rtdany10/broken-empty-row-save
fix: broken save on empty row existance
2023-05-09 18:31:17 +05:30
Rohit Waghchaure
aba8431d70 fix: non manufacturing items/fixed asset items in BOM 2023-05-09 16:48:30 +05:30
rohitwaghchaure
d5f123f2e1 Merge pull request #35220 from rohitwaghchaure/fixed-performance-issue-for-ste-mr
fix: added search index to improve performance
2023-05-09 14:33:56 +05:30
Rohit Waghchaure
80ea22b56c fix: added search index to improve performance 2023-05-09 12:42:17 +05:30
ruthra kumar
afe9d7614b Merge pull request #35212 from ruthra-kumar/chore_change_throw_to_msgprint
chore: convert throw to msgprint in payment reconciliation job hook
2023-05-08 17:57:13 +05:30
Dany Robert
d9b231aa16 fix: broken save on empty row existance 2023-05-08 12:26:47 +00:00
Anand Baburajan
67f3304ab4 fix: handle empty FBs properly in TB and GL [develop] (#35190)
fix: handle empty FBs properly in TB and GL
2023-05-08 16:55:05 +05:30
Anand Baburajan
5a3acab110 fix: handle empty FBs properly in TB and GL [develop] (#35190)
fix: handle empty FBs properly in TB and GL
2023-05-08 16:54:00 +05:30
Sagar Sharma
12785101d9 Merge branch 'develop' into stock-reservation 2023-05-08 16:47:40 +05:30
Sagar Sharma
2e9278ef90 Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-08 16:47:30 +05:30
ruthra kumar
73134d57bf chore: convert throw to msgprint 2023-05-08 16:42:12 +05:30
ruthra kumar
446f3d12eb Merge pull request #35153 from ruthra-kumar/fetch_sales_team_from_customer_master
fix: fetch default sales team on Quotation -> Sales Order creation
2023-05-08 14:19:28 +05:30
ruthra kumar
6315d9f836 Merge pull request #35142 from ruthra-kumar/fix_bypass_check_in_customer_group
fix: ineffective bypass flag for Credit Limit in Customer Group
2023-05-08 14:10:31 +05:30
ruthra kumar
34a5f24026 Merge pull request #35186 from ruthra-kumar/child_account_should_inherit_parent_account_currency
fix: child acc will inherit acc currency if explicitly specified
2023-05-08 14:09:46 +05:30
ruthra kumar
f6ea8fd8d7 test: currency inheritance on child accounts 2023-05-08 13:30:39 +05:30
rohitwaghchaure
ecc80a8504 Merge pull request #34998 from Vishnu7025/develop
fix: update workstation hour rate when workstation change in job card
2023-05-08 09:25:38 +05:30
rohitwaghchaure
328c3369a2 Merge pull request #35200 from rohitwaghchaure/fixed-accepted-warehouse-and-supplier-warehouse-issue
fix: error regarding accepted and supplier warehouse
2023-05-08 09:23:54 +05:30
rohitwaghchaure
457f7f941c Merge pull request #35196 from rohitwaghchaure/fixed-order-of-reposting-entry
fix: pick the in progress reposting entries first
2023-05-08 09:23:34 +05:30
Rohit Waghchaure
15f5f98858 fix: error regarding accepted and supplier warehouse 2023-05-07 20:27:17 +05:30
rohitwaghchaure
530edaf3d1 Merge branch 'develop' into develop 2023-05-07 19:58:42 +05:30
rohitwaghchaure
40e3747b93 Merge branch 'develop' into fixed-order-of-reposting-entry 2023-05-07 01:39:23 +05:30
rohitwaghchaure
c3ca5d0894 Merge pull request #35197 from rohitwaghchaure/fix-incorrect-fg-item-qty-in-job-po
fix: incorrect fg item quantity in subcontracted PO
2023-05-07 01:38:43 +05:30
Ritwik Puri
140cec8eb2 Merge branch 'develop' into fix-incorrect-fg-item-qty-in-job-po 2023-05-06 22:49:09 +05:30
Rohit Waghchaure
af16fbb0a3 fix: incorrect fg item quantity in subcontracted PO 2023-05-06 20:30:53 +05:30
Rohit Waghchaure
c8a4791d9b fix: pick the in progress reposting entries first 2023-05-06 20:09:15 +05:30
Deepesh Garg
23e7c1480f Merge pull request #34897 from barredterra/fix-translation-files
fix: translation files
2023-05-06 18:24:50 +05:30
ruthra kumar
abe691c03d fix: child acc will inherit acc currency if explicitly specified 2023-05-06 10:40:41 +05:30
Hossein Yousefian
27d71e9ec1 Merge branch 'develop' into get_incoming_rate_v14_fix 2023-05-06 08:12:36 +03:30
Nabin Hait
713fa67b96 fix: account closing balance patch 2023-05-05 17:54:34 +05:30
rohitwaghchaure
7fb1e5bdcd Merge pull request #35167 from rohitwaghchaure/fixed-job-card-excess-material-trafer
fix: not allow to transfer excess materials against the job card
2023-05-04 19:10:46 +05:30
Rohit Waghchaure
8167b24219 fix: not allow to transfer excess materials against the job card 2023-05-04 18:24:16 +05:30
rohitwaghchaure
3993bfd510 Merge pull request #35161 from rohitwaghchaure/configure-notify-reposting-role
feat: configuration to notify reposting errors to specific role
2023-05-04 17:35:14 +05:30
rohitwaghchaure
2bf771683c Merge pull request #35158 from rohitwaghchaure/fixed-internal-trasfer-condition
fix: internal transfer condition
2023-05-04 17:01:58 +05:30
Rohit Waghchaure
c7b62011db feat: configuration to notify reposting errors to specific role 2023-05-04 16:49:14 +05:30
Rohit Waghchaure
b5a2ccf21d fix: internal transfer condition 2023-05-04 15:38:35 +05:30
Sagar Sharma
e0b22edb2e test: add test case 2023-05-04 15:07:52 +05:30
ruthra kumar
4d31436917 fix: fetch default sales team on Quotation -> Sales Order creation 2023-05-04 10:45:22 +05:30
Raffael Meyer
9fd0091b60 Merge branch 'develop' into fix-translation-files 2023-05-04 00:26:01 +02:00
rohitwaghchaure
bea8f481b4 Merge pull request #35148 from rohitwaghchaure/fixed-extra-job-card-quantity-issue
fix: over production percentage not considered in validation
2023-05-04 00:13:53 +05:30
Rohit Waghchaure
a84d0af81e fix: over production percentage not considered in validation 2023-05-03 23:22:59 +05:30
rohitwaghchaure
dfee45f7ae Merge pull request #35144 from rohitwaghchaure/feat-reserved-qty-for-production-plan-in-bin
feat: reserve qty against production plan raw materials in BIN
2023-05-03 22:24:05 +05:30
Rohit Waghchaure
06e91e758f feat: reserve qty against production plan raw materials in BIN 2023-05-03 18:21:23 +05:30
ruthra kumar
f9a4972cb6 fix: bypass flag in Customer Group wasn't effective 2023-05-03 16:40:38 +05:30
s-aga-r
7548bb3fbe Merge branch 'develop' into stock-reservation 2023-05-03 12:06:11 +05:30
Sagar Sharma
6bcda38415 Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-03 12:01:46 +05:30
s-aga-r
a6cb6c6f47 fix: recalculate costs in SCR while reposting 2023-05-03 11:33:52 +05:30
Anand Baburajan
6864b11f83 fix: handle finance book properly in trial balance and general ledger (#35085)
* fix: get default fb properly and handle different fb and default fb case

* chore: minor UX improvement

* fix: handle FBs properly in general ledger
2023-05-02 20:58:22 +05:30
Sagar Sharma
862041dc0e Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-02 19:11:33 +05:30
Vishnu VS
536473a484 Merge branch 'develop' into develop 2023-05-02 17:42:41 +05:30
ruthra kumar
7e24215b3a Merge pull request #35107 from ruthra-kumar/fix_incorrect_paid_amount_if_bank_cash_account_missing
fix: incorrect paid_amount and exchange rate in Payment Entry
2023-05-02 15:07:36 +05:30
ruthra kumar
1d70183d8c Merge pull request #35091 from ruthra-kumar/cost_center_allocation_splits_roundoff
refactor: button to toggle parent doc cost center preference for rounding adjustment amount
2023-05-02 14:07:22 +05:30
ruthra kumar
8f2302a7bf Merge pull request #35061 from ruthra-kumar/refactor_pe_dont_book_gain_loss_for_sales_purchase_orders
refactor: don't book exchange gain/loss for sales/purchase orders
2023-05-02 14:03:17 +05:30
rohitwaghchaure
9aa646512a Merge pull request #35123 from rohitwaghchaure/fixed-performance-issue-delivery-note
fix: timeout error while submitting delivery note
2023-05-01 23:30:14 +05:30
Rohit Waghchaure
2d5ccc07b1 fix: timeout error while submitting delivery note 2023-05-01 21:17:18 +05:30
rohitwaghchaure
a10aab35ff Merge pull request #35118 from rohitwaghchaure/fixed-don-not-allow-to-repost-valuation
fix: don't allow to make reposting for the closed period
2023-05-01 20:41:14 +05:30
mergify[bot]
49674585a5 fix: handle expected_value_after_useful_life properly in asset value adjustment (backport #35117) (#35119)
fix: handle expected_value_after_useful_life properly in asset value adjustment (#35117)

(cherry picked from commit 80230fec3e)

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-05-01 19:59:58 +05:30
Rohit Waghchaure
f751727149 fix: don't allow to make reposting for the closed period 2023-05-01 18:48:29 +05:30
ruthra kumar
ce4e18c8d2 test: Sales/Purchase Orders will not book Exchange gain/loss 2023-05-01 14:09:19 +05:30
ruthra kumar
effb34bbfa refactor: don't book exch gain/loss for sales/purchase orders 2023-05-01 14:08:30 +05:30
Deepesh Garg
ea0b03ae9e fix: Updates in process statement of Accounts (#35064) 2023-05-01 13:09:47 +05:30
ruthra kumar
092c4b4c58 refactor: simplify group by invoice logic 2023-05-01 11:53:43 +05:30
Deepesh Garg
64be694087 fix: Patch for posting closing balances (#35037) 2023-05-01 10:56:46 +05:30
Deepesh Garg
f3b3dabb9a fix: Naming series error in Journal Entry template (#35084) 2023-05-01 10:50:51 +05:30
Sagar Sharma
424bd701f3 Merge branch 'develop' into PACKING-SLIP-FOR-DN-PACKED-ITEMS 2023-05-01 08:05:18 +05:30
s-aga-r
bbcb65894b refactor: use get_product_bundle_list() to get all product bundle at once 2023-05-01 08:04:03 +05:30
s-aga-r
ba61292dfc test: add test case for packed qty validation on DN submit 2023-05-01 07:25:36 +05:30
Suraj Shetty
a0131a96cb Merge remote-tracking branch 'upstream/develop' into move-exotel-to-separate-app 2023-04-30 12:43:18 +05:30
ruthra kumar
123355392b fix: incorrect paid_amount and exchange rate in PE
If Company master has no default cash or bank account set but Party has
default company bank account set. In this case, paid_amount and
conversion rate are not calculated correctly
2023-04-30 08:36:56 +05:30
Vishnu VS
9fd7a05b40 Merge branch 'develop' into develop 2023-04-29 21:02:54 +05:30
s-aga-r
699532647d refactor: validate_packed_qty() 2023-04-28 23:03:33 +05:30
s-aga-r
b0eb9ea7bd refactor(minor): use set_onload to get unpacked items details 2023-04-28 22:47:27 +05:30
s-aga-r
7742c592c5 test: add test cases for Packing Slip 2023-04-28 21:51:15 +05:30
s-aga-r
da00fc0f16 fix(ux): don't show Create > Packing Slip button if items are already packed 2023-04-28 18:28:28 +05:30
s-aga-r
8d1bccada4 fix(ux): remove Get Items button from Packing Slip 2023-04-28 18:02:24 +05:30
s-aga-r
e75aa4e291 fix(ux): get items on selecting DN in Packing Slip 2023-04-28 17:59:34 +05:30
s-aga-r
269cc96c41 refactor: move js validations to py 2023-04-28 17:47:36 +05:30
s-aga-r
90701c7ae9 fix: validate Packing Slip Item Qty with DN Items 2023-04-28 17:05:51 +05:30
rohitwaghchaure
35ee8d19b0 Merge pull request #35092 from rohitwaghchaure/fixed-reserved-qty-issue-for-dn
fix: not able to create delivery note from sales order
2023-04-28 16:02:35 +05:30
s-aga-r
9e5b102768 fix: make DN item reference mandatory for Packing Slip Item 2023-04-28 15:41:59 +05:30
s-aga-r
372bce4567 fix: Packing Slip Item Qty 2023-04-28 15:26:02 +05:30
Rohit Waghchaure
bdf2f7416a fix: not able to create delivery note from sales order 2023-04-28 15:16:02 +05:30
s-aga-r
0add90e7ec chore: enable no_copy for dn_detail and pi_detail in Packing Slip Item 2023-04-28 15:05:28 +05:30
s-aga-r
77f1e8ce78 fix: update Packed Qty in DN on submit and cancel of Packing Slip 2023-04-28 15:04:41 +05:30
ruthra kumar
4ccce93394 refactor: checkbox to toggle parent doc cost center preference 2023-04-28 14:20:50 +05:30
ruthra kumar
0f3b06cc8a refactor: checkbox in Sales Invoice 2023-04-28 14:20:50 +05:30
ruthra kumar
ebe6787510 refactor: checkbox to toggle parent doc cost center preference 2023-04-28 14:20:48 +05:30
Vishnu VS
bb13c236b9 Merge branch 'develop' into develop 2023-04-28 14:06:12 +05:30
ruthra kumar
b44331c981 refactor: checkbox in purchase invoice 2023-04-28 14:06:04 +05:30
s-aga-r
e6fc281acf feat: add field Packed Qty in Delivery Note Item and Packed Item 2023-04-28 13:20:47 +05:30
Sagar Sharma
d6c5b3e419 Merge pull request #35081 from SolufyPrivateLimited/fix-qc-hyperlink-v14
fix: Hyperlink in Quality Inspection Summary
2023-04-28 12:48:53 +05:30
s-aga-r
75fe9dd3ea fix: don't map items twice
* don't explicitly map Delivery Note Item custom fields to Packing Slip Item, get auto-mapped while mapping the doc.
* call Packing List `set_missing_values` after mapping the doc.
* refactor `get_recommended_case_no`, use `frappe.db.get_value` instead of `frappe.db.sql`.
2023-04-28 10:53:17 +05:30
s-aga-r
ee9f97ca7c fix: remove duplicate items validation 2023-04-28 09:07:03 +05:30
Vishnu VS
489f853ee2 Merge branch 'develop' into develop 2023-04-27 21:17:47 +05:30
s-aga-r
b62bf78814 refactor: packing_slip.js 2023-04-27 19:43:37 +05:30
s-aga-r
380dd73065 fix: map Packed Items while creating Packing Slip 2023-04-27 18:37:32 +05:30
Nihantra Patel
72dd7884a8 fix: Hyperlink in Quality Inspection Summary 2023-04-27 17:04:39 +05:30
ruthra kumar
787313b875 Merge pull request #35077 from SolufyPrivateLimited/fix-gp-link-14
fix: Report link, option, and added a link for Sales Person in GP
2023-04-27 16:40:45 +05:30
s-aga-r
eca77134ae feat: add field pi_detail in Packing Slip 2023-04-27 15:48:02 +05:30
Nihantra Patel
6dfca79af3 fix: Report link, option, and added a link for Sales Person in GP 2023-04-27 15:04:50 +05:30
Vishnu VS
06e458c745 Merge branch 'develop' into develop 2023-04-27 12:24:29 +05:30
rohitwaghchaure
01bfd2ab67 Merge pull request #35066 from rohitwaghchaure/fixed-delivered-qty-issue-while-making-mr
fix: don't create material request from sales order against delivered items
2023-04-27 09:05:36 +05:30
Rohit Waghchaure
1e2deee579 fix: don't create material request from sales order against the delivered items 2023-04-26 20:30:53 +05:30
Vishnu VS
f68eef833c Update erpnext/manufacturing/doctype/job_card/job_card.py
Co-authored-by: Marica <maricadsouza221197@gmail.com>
2023-04-26 20:25:43 +05:30
Vishnu VS
5c94f2cc52 Update erpnext/manufacturing/doctype/job_card/job_card.py
Co-authored-by: Marica <maricadsouza221197@gmail.com>
2023-04-26 20:25:15 +05:30
Vishnu VS
25d0119b7e Merge branch 'develop' into develop 2023-04-26 18:56:09 +05:30
HarryPaulo
3be1ab9b8d fix: allow submit delivery note when the sales order was billed... (#34910) 2023-04-25 21:54:41 +05:30
Kitti U. @ Ecosoft
c36dc3dc57 fix: v14, Bank Reconcile Tools not cover case JV debit bank (#35000) 2023-04-25 21:34:28 +05:30
rohitwaghchaure
5e37308b5e Merge pull request #35050 from Nandhinidevi123/workstation_filter
add if condition for workstation filter
2023-04-25 21:28:41 +05:30
rohitwaghchaure
b24704740b Merge pull request #34918 from s-aga-r/FIX-ISS-22-23-06298
perf: Journal Entries
2023-04-25 21:27:52 +05:30
mergify[bot]
ab0f7794b7 fix: wrong qty of remaining work orders to be created when using "Create" > "Work Order" (#34726)
fix: wrong qty of remaining work orders to be created when using "Create" > "Work Order" (#34726)

* fix: convert asynchronous field update to synchronous

* fix: wrong qty of remaining work orders to be created when using "Create" > "Work Order"

(cherry picked from commit 189b020d22)

Co-authored-by: danjeremynavarro <46537526+danjeremynavarro@users.noreply.github.com>
2023-04-25 21:08:50 +05:30
tundebabzy
3d90b970d1 fix: click handler should not attempt indexed access of empty array (#35013)
fix: click handler should not attempt indexed access
of empty array
2023-04-25 20:57:59 +05:30
Ernesto Ruiz
c4512d552e chore: Add translate function to Depreciation Journal Entry Remark (#35022)
chore: Add translate function to Depreciation Journal Entry Remark
2023-04-25 20:56:53 +05:30
Deepesh Garg
f88431a79a fix: Common party JV cost center (#35008) 2023-04-25 20:54:22 +05:30
Raffael Meyer
d6bc8bba8b fix: per_billed condition for Payment Entry (#34969) 2023-04-25 20:51:11 +05:30
Nandhinidevi123
74fb2bec3a add if condition for workstation filter 2023-04-25 20:08:35 +05:30
Deepesh Garg
f7b50f2ade fix: Unable to allocate advance against invoice (#35007) 2023-04-25 19:18:45 +05:30
Nabin Hait
72b5c1f70a fix: Use set instead of db_set as it is called from validate (#34967) 2023-04-25 19:18:08 +05:30
Deepesh Garg
ecea9b44a3 fix: Payment entry with TDS in bank reco statement (#34961) 2023-04-25 19:17:13 +05:30
Solufy Solution
f1acc5fabb fix: Bulk Payment Entry from PO/SO (#34942)
Co-authored-by: Nihantra Patel <n.patel.serpentcs@gmail.com>
2023-04-25 19:16:30 +05:30
HarryPaulo
22290c2694 fix: respect title_field from doctype to bulk transactions (#34928) 2023-04-25 19:13:53 +05:30
Deepesh Garg
b545e3def0 fix: Add company field to lower deduction certificate (#34914) 2023-04-25 19:07:45 +05:30
Ankush Menat
6de71eb158 fix: pass reference_doctype in link queries (#35038) 2023-04-25 18:33:31 +05:30
Anand Baburajan
e08d636bf7 fix: use filter_by_finance_book instead of only_depreciable_assets in fixed asset register (#35031)
fix: use filter_by_finance_book instead of only_depreciable_assets
2023-04-25 15:16:50 +05:30
Sagar Sharma
31cdfa395a Merge branch 'develop' into FIX-ISS-22-23-06298 2023-04-25 13:57:34 +05:30
s-aga-r
e782a054c8 refactor: get_stock_value_on() to get stock value of multiple warehouses at once 2023-04-25 13:54:36 +05:30
Anand Baburajan
ca388ed9cd fix: value of depreciable assets not updating after manual depr entry [develop] (#35020)
* fix: value of depreciable assets not updating after manual depr entry

* chore: add asset depr schedule to jv's ignore_doctypes_on_cancel_all
2023-04-25 12:45:05 +05:30
rohitwaghchaure
04902e1b60 Merge pull request #35026 from frappe/revert-34929-fixed-stock-and-account-value-report
Revert "fix: Incorrect difference value in Stock and Account Value Comparison…"
2023-04-25 12:08:48 +05:30
rohitwaghchaure
7a63fbef4f Revert "fix: Incorrect difference value in Stock and Account Value Comparison…" 2023-04-25 12:01:26 +05:30
ruthra kumar
d70f5eef10 Merge pull request #34974 from frappe/revert-33699-tds_report_percentage
Revert "fix: Rate from LDC in TDS reports"
2023-04-25 11:17:04 +05:30
ruthra kumar
20226d0a47 Merge branch 'develop' into revert-33699-tds_report_percentage 2023-04-25 10:43:18 +05:30
ruthra kumar
cb7a99cbaa Revert "fix: Rate from LDC in TDS reports (#33699)"
This reverts commit db9beb3cdd.
2023-04-25 10:13:07 +05:30
Vishnu VS
cdb05cd310 Merge branch 'develop' into develop 2023-04-25 09:29:47 +05:30
Sagar Sharma
58dbf7fc24 Merge branch 'develop' into stock-reservation 2023-04-24 22:58:16 +05:30
s-aga-r
bf4a57a37c fix: miscellaneous
fix: don't reserve stock in group warehouse
fix: partial reservation in multiple warehouses
feat: add prompt to select warehouse and qty for reservation in SO
2023-04-24 22:19:09 +05:30
rohitwaghchaure
291845e461 Merge pull request #35015 from rohitwaghchaure/incorrect-or-cond-delivery-note-issue
fix: incorrect OR condition causing timeout error (For more than 50 line items)
2023-04-24 18:06:59 +05:30
rohitwaghchaure
5d8bf56cb9 Merge pull request #35012 from rohitwaghchaure/fixed-incorrect-bom-end-of-life
fix: item not showing in the BOM
2023-04-24 18:06:37 +05:30
Rohit Waghchaure
379b215aea fix: incorrect OR condition causing timeout error 2023-04-24 17:32:32 +05:30
Rohit Waghchaure
02c3b41dc2 fix: item not showing in the BOM 2023-04-24 14:50:27 +05:30
Marica
88647c63ba Merge branch 'develop' into bank-trans-party-automatch 2023-04-24 12:13:12 +05:30
s-aga-r
388f85b109 refactor: Stock Reservation code in sales_order.js 2023-04-24 12:04:22 +05:30
s-aga-r
e517c06847 chore: add warehouse info in SRE msg 2023-04-23 15:45:58 +05:30
s-aga-r
0b5f03e88c Revert "fix: Reserve and Unreserve buttons visibility in SO"
This reverts commit cdb3181691.
2023-04-23 15:41:48 +05:30
Vishnu VS
dc0e64a72d Merge branch 'frappe:develop' into develop 2023-04-22 23:15:42 +05:30
ruthra kumar
ed14d1ce44 feat: Reconcile Payments in background (#34596)
* feat: auto reconcile in background

* chore: Option to enable auto reconciliation in settings

* refactor: validate if feature is enabled in settings

* refactor: check for running job while using reconciliation tool

* chore: using doc to get filter values

* chore: use frappe.db.get_value in validations

* chore: cleanup commented out code

* chore: replace get_list with get_all

* chore: use block scope variable

* chore: type information for functions

* refactor: flag to ignore job validation check

* refactor: update parent doc status if all reconciled

* chore: create test_records file

* test: create a bunch of vouchers for testing auto reconcile

* chore: renamed auto_reconcile to process_payment_reconciliation

* chore: another child doctype to hold payments

* chore: remove duplicate field

* chore: add fetched payments to log

* chore: Popup comment message update

* chore: replace get_all with get_value

* chore: replace label in settings page

* chore: remove unit test and records

* refactor: status in reconciliation log

* refactor: set status in log as well

* chore: fix field name

* chore: change triggered job name

* chore: use status field in list view of log

* chore: status while there are no allocations

* refactor: split trigger function into two

* chore: adding cancelled status

* refactor: function trigger queued docs

* chore: cron job scheduled

* chore: fixing accouts settings json file

* chore: typos and variable scope

* chore: use 'pluck' in db call

* chore: remove redundant whitelist decorator

* chore: use single DB call to fetch values

* chore: replace get_all with get_value

* refactor: use raw db calls to fetch reconciliation log records

Using get_doc on `Process Payment Reconciliation Log` is costly when
handling large volumes of invoices.

Use raw frappe.db.get_all to selectively pull status and reconciled count

* chore: update status on successful batch operation

* chore: make payment table readonly

* chore: ability to pause the background job

* chore: remove isolate_each_allocation

* chore: more description in progress bar

* refactor: partially working state

* refactor: update reconcile flag and setting hard limits for fetching

* chore: make allocation editable -- NEED TO REVERT

* chore: pause button

* refactor: skip setter function in Payment Entry for better performan

* refactor: split reconcile function and skip a setter function

1. Split reconcile function into 2
2. While reconciling against payment entry, skip a
set_missing_ref_details setter method

* chore: increase payment limit

* refactor: replace frappe.db.get_all with frappe.db.get_value

* chore: remove unwanted doctypes

* refactor: make allocation table readonly

* perf: update ref_details only for newly linked invoices

* chore: rename skip flag

* refactor(UI): receivable_payable field should auto populate

* refactor: no control statements in finally block

* chore: cleanup section and rename checkbox

* chore: update new fieldname in code

* chore: update error msg

* refactor: start and pause integrated into status

pause checkbox has been removed

* refactor: added cancelled status to the log doctype

1. Moved the status section to the bottom in parent doc
2. Using alerts to indicate Job trigger status
2023-04-22 17:24:35 +05:30
rohitwaghchaure
58a5f816db Merge pull request #34994 from rohitwaghchaure/fixed-duplicate-repost-entries-of-same-voucher
fix: duplicate reposting entries of same voucher
2023-04-22 14:08:06 +05:30
Rohit Waghchaure
f2253dd645 fix: duplicate reposting entries of same voucher 2023-04-22 11:16:12 +05:30
s-aga-r
0cd10a50d2 Merge branch 'develop' into stock-reservation 2023-04-22 10:04:46 +05:30
s-aga-r
28d0629df1 chore: add depends_on condition for Reserve Stock field in SO 2023-04-22 10:01:00 +05:30
s-aga-r
cdb3181691 fix: Reserve and Unreserve buttons visibility in SO 2023-04-22 09:49:47 +05:30
s-aga-r
b70273b988 chore: remove Enable Stock Reservation field description 2023-04-22 08:49:31 +05:30
rohitwaghchaure
9fa72cb9d8 Merge pull request #34982 from rohitwaghchaure/fixed-added-validation-for-extra-job-card
fix: added validation for extra job cards
2023-04-21 18:50:39 +05:30
Ankush Menat
ac871797b2 fix: SLA permissions (#34981) 2023-04-21 18:05:29 +05:30
rohitwaghchaure
56d62cae7a Merge pull request #34980 from rohitwaghchaure/fix-inter-transfer-validation
fix: validation for internal transfer entry
2023-04-21 17:45:54 +05:30
s-aga-r
7e8fd8f324 chore: update reserved stock SLE validation 2023-04-21 17:44:44 +05:30
Rohit Waghchaure
6a0b7c9e8c fix: added validation for extra job card 2023-04-21 17:34:22 +05:30
Rohit Waghchaure
19911b48fd fix: validation for internal transfer entry 2023-04-21 16:56:09 +05:30
s-aga-r
9a37ac6c25 refactor: sum up SLE value in query 2023-04-21 13:28:14 +05:30
HENRY Florian
af8da53cf4 fix: FEC report for France accountancy (#34781)
* fix: FEC report for France Accountancy legal requirement

* fix: FEC report for France Accountancy legal requirement

* fix: change to query standard

* fix: change to query standard

* fix: columns to standard dict

* fix: columns to standard dict

* fix: columns to data

* refactor: french report FEC

* refactor: french report FEC (2)

---------

Co-authored-by: barredterra <14891507+barredterra@users.noreply.github.com>
2023-04-21 13:26:32 +05:30
Deepesh Garg
a02705ded7 chore: Move source and campaign to more info section (#34946) 2023-04-21 13:25:32 +05:30
ruthra kumar
3ec1597860 Merge pull request #34940 from ruthra-kumar/broken_set_exchange_gain_loss_btn_in_payment_entry
fix: broken 'set exchange gain/loss' btn in payment entry
2023-04-21 09:47:53 +05:30
Hossein Yousefian
984eb2a0dd Merge branch 'develop' into get_incoming_rate_v14_fix 2023-04-20 16:50:34 +03:30
rohitwaghchaure
f218df460f Merge pull request #34958 from rohitwaghchaure/removed-depends-on-for-employee-detail
fix: removed depends on for the Employee Detail section
2023-04-20 18:03:46 +05:30
rohitwaghchaure
6259c81adc Merge pull request #34960 from rohitwaghchaure/fixed-stock-entry-type
fix: stock entry type issue
2023-04-20 18:03:23 +05:30
Sagar Vora
83a4c6dda8 Merge pull request #34738 from resilient-tech/regional++ 2023-04-20 05:17:57 -07:00
Sagar Vora
776b56ccd1 fix: use functools.wraps to preserve doc signature 2023-04-20 05:17:30 -07:00
Sagar Vora
2fa641f86d fix: simplify erpnext.get_region 2023-04-20 05:17:30 -07:00
Sagar Vora
17ef3c964f fix: set frappe.flags.company to call regional code accurately 2023-04-20 05:17:30 -07:00
Rohit Waghchaure
c3b5dcb767 fix: stock entry type issue 2023-04-20 16:39:26 +05:30
Rohit Waghchaure
a90a5b4aa4 fix: removed depends on for the Employee Detail section 2023-04-20 16:01:05 +05:30
Sagar Sharma
76c4d9011f Merge pull request #34953 from s-aga-r/FIX-ISS-23-24-00209
fix: `PermissionError` in Work Order
2023-04-20 15:57:25 +05:30
Sagar Sharma
81653e4762 Merge branch 'develop' into FIX-ISS-23-24-00209 2023-04-20 15:46:01 +05:30
s-aga-r
8108b2de0a fix: PermissionError in Work Order 2023-04-20 15:41:37 +05:30
rohitwaghchaure
47b653db6d Merge pull request #34954 from SolufyPrivateLimited/fix-process_loss-in-bom
fix: process_loss_percentage in BOM
2023-04-20 15:00:15 +05:30
Nihantra Patel
b572bef71d fix: process_loss_percentage in BOM 2023-04-20 14:32:32 +05:30
Deepesh Garg
ea6eeace80 fix: filtering via batch no(#34950)
* fix: filtering via batch no
2023-04-20 12:48:44 +05:30
Sagar Sharma
6f26044163 Merge pull request #34912 from s-aga-r/FIX-INTERNAL-PR-GL-ENTRIES
fix: internal Purchase Receipt GL Entries
2023-04-20 11:35:17 +05:30
Sagar Sharma
e1f5a5adea Merge branch 'develop' into FIX-INTERNAL-PR-GL-ENTRIES 2023-04-20 11:00:22 +05:30
ruthra kumar
fc6486d87d Merge pull request #34922 from ruthra-kumar/refactor_payment_entry_ref_details
refactor: refactor set_missing_values and set_missing_ref_details in Payment Entry
2023-04-20 10:59:50 +05:30
ruthra kumar
df0682fa8c fix: broken set exchagne gain/loss btn broken in payment entry 2023-04-20 10:39:15 +05:30
Sagar Sharma
66723dc5db Merge branch 'develop' into FIX-INTERNAL-PR-GL-ENTRIES 2023-04-20 10:31:29 +05:30
rohitwaghchaure
ad662d38c7 Merge pull request #34937 from rohitwaghchaure/fixed-limit-issue-for-next-stock-reco
fix: add limit for get_next_stock_reco
2023-04-20 10:18:23 +05:30
s-aga-r
11c8503180 fix(test): test_backdated_stock_reco_cancellation_future_negative_stock 2023-04-20 09:59:11 +05:30
Rohit Waghchaure
fcfa8842a7 fix: limit stock reco issue 2023-04-20 09:48:15 +05:30
rohitwaghchaure
3df4edc5c5 Merge branch 'develop' into get_incoming_rate_v14_fix 2023-04-19 21:07:54 +05:30
rohitwaghchaure
dd238aa5b4 Merge pull request #34929 from rohitwaghchaure/fixed-stock-and-account-value-report
fix: Incorrect difference value in Stock and Account Value Comparison…
2023-04-19 21:07:25 +05:30
Rohit Waghchaure
a77182645f fix: Incorrect difference value in Stock and Account Value Comparison report 2023-04-19 20:35:14 +05:30
Sagar Sharma
c88beb76d6 Merge pull request #34901 from s-aga-r/FIX-ISS-23-24-00145
fix: add item-code filter for SCR supplied-items batch-no
2023-04-19 19:23:12 +05:30
Sagar Sharma
45c27e4e3d Merge branch 'develop' into FIX-ISS-23-24-00145 2023-04-19 19:22:42 +05:30
Sagar Sharma
daac4dc182 Merge pull request #34895 from s-aga-r/use-UnixTimestamp
fix: use `CombineDatetime` instead of `Timestamp` in QB queries
2023-04-19 19:19:40 +05:30
Sagar Sharma
6519514db4 Merge branch 'develop' into use-UnixTimestamp 2023-04-19 18:23:29 +05:30
Vishal Dhayagude
59f3fedbf7 fix: batch qty conversion factor issue fixed in pos transaction (#34917) 2023-04-19 15:57:28 +05:30
ruthra kumar
b7d6e30f63 refactor: update ref details for selected references
set_missing_ref_details can update only for selected references
2023-04-19 15:13:10 +05:30
s-aga-r
c86c543fbf test: add test case for internal PR GL Entries 2023-04-19 13:30:37 +05:30
Sagar Sharma
2c0e22c01d Merge branch 'develop' into use-UnixTimestamp 2023-04-19 12:57:20 +05:30
s-aga-r
e43bc38e05 refactor: rewrite get_stock_value_on() queries in QB 2023-04-19 12:05:17 +05:30
ruthra kumar
11cb2db3fe refactor: move set_missing_ref_detials out of set_missing_values 2023-04-19 11:54:08 +05:30
ruthra kumar
eaa5f1fd9d Merge pull request #34838 from ruthra-kumar/making_similar_ledger_entries_merging_optional
refactor: toggle merging similar ledger entries in JE
2023-04-19 09:48:44 +05:30
barredterra
98d51b6c7b fix: remove empty translations 2023-04-18 18:27:21 +02:00
barredterra
f0a3e61ee9 fix: remove excessive fourth column 2023-04-18 17:27:46 +02:00
s-aga-r
6fca9adcd4 fix: internal Purchase Receipt GL Entries 2023-04-18 18:38:28 +05:30
Hossein Yousefian
13d4f85923 get_incoming_rate_voucher_no_fix 2023-04-18 14:50:09 +03:30
Hossein Yousefian
bbd44e6e7e Merge branch 'frappe:develop' into get_incoming_rate_zero_in_rate_fix 2023-04-18 14:47:19 +03:30
barredterra
debc013728 fix: remove excessive fourth column 2023-04-18 12:23:54 +02:00
Sagar Sharma
a7c5b33c9f Merge pull request #34860 from s-aga-r/FIX-ISS-23-24-00171
fix: add items field label
2023-04-18 13:04:13 +05:30
s-aga-r
e91abbfbe3 fix: add item-code filter for SCR supplied-items batch-no 2023-04-18 13:03:47 +05:30
Sagar Sharma
d07d67a968 Merge branch 'develop' into use-UnixTimestamp 2023-04-18 12:56:25 +05:30
s-aga-r
91a398a191 fix: use CombineDatetime instead of Timestamp in QB queries 2023-04-18 12:55:16 +05:30
Sagar Sharma
a78b4bef0e Merge branch 'develop' into FIX-ISS-23-24-00171 2023-04-18 11:44:03 +05:30
ruthra kumar
3f537d30bd chore(patch): by default ledger entries of JE's will not be merged 2023-04-18 10:55:49 +05:30
ruthra kumar
a3e3fe149d refactor: checkbox to toggle merging of JE account heads 2023-04-18 08:59:33 +05:30
Ankush Menat
cc185bd2fe chore: update codeowners
[skip ci]
2023-04-18 08:40:24 +05:30
Ankush Menat
e4f152a416 fix: whitelist doc method
This should've been whitelisted, looks like it was missed out

closes https://github.com/frappe/erpnext/issues/34898
2023-04-18 08:24:22 +05:30
barredterra
aba87db6be fix: translation files
- remove leading "DocType: XXX"
- remove leading path and line number
- add trailing comma (three columns total)
2023-04-17 22:28:53 +02:00
MohsinAli
dd93ea067e fix: change discuss forum url (#34891)
[skip ci]
2023-04-17 17:00:52 +05:30
Deepesh Garg
534ea5ad21 fix: Add offers info to website item (#34873)
* fix: Add offers info to website item

* Revert "fix: Add offers info to website item"

This reverts commit 88b598edb6.

* fix: Add offer properties to website item
2023-04-17 16:35:22 +05:30
Marica
fd38e8e0af Merge branch 'develop' into bank-trans-party-automatch 2023-04-17 16:34:46 +05:30
s-aga-r
a527221709 test: add test case for consumption of reserved stock 2023-04-17 15:33:55 +05:30
s-aga-r
2ed7d8a1fb fix: don't allow Stock Reconciliation for items having reserved stock 2023-04-17 15:33:55 +05:30
s-aga-r
dc9bb772cb refactor(test): use change_settings instead of update_stock_settings 2023-04-17 15:33:55 +05:30
s-aga-r
a87bb78d72 fix: don't allow to enable Stock Reservation and Negative Stock simultaneously 2023-04-17 15:33:55 +05:30
s-aga-r
73f16752a6 chore: conflicts 2023-04-17 15:33:55 +05:30
s-aga-r
866f98ac15 test: Stock Reservation for Serial and Batch Items 2023-04-17 15:33:46 +05:30
rohitwaghchaure
4f978a3cbd Merge pull request #34886 from rohitwaghchaure/fixed-stock-reco-test-case
fix: stock reconciliation test case
2023-04-17 15:21:49 +05:30
Rohit Waghchaure
6bccd8644e fix: stock reco test case 2023-04-17 14:22:35 +05:30
rohitwaghchaure
9fd8b8e53a Merge pull request #34851 from rohitwaghchaure/fixed-too-many-writes-error-in-stock-reco
fix: too many writes error while making backdated stock reconciliation
2023-04-17 12:01:36 +05:30
rohitwaghchaure
9f399f8741 Merge pull request #34882 from rohitwaghchaure/filter-to-hide-disabled-warehouses
fix: don't show disabled warehouses in the Warehouse Wise Stock Balance report
2023-04-17 12:00:57 +05:30
Rohit Waghchaure
9ceb1f6bda fix: don't show disabled warehouses in the Warehouse Wise Stock Balance report 2023-04-17 11:05:32 +05:30
Rohit Waghchaure
d9dd64b4d2 fix: linters issues 2023-04-16 23:25:51 +05:30
Sagar Sharma
db7b78328b Merge branch 'develop' into FIX-ISS-23-24-00171 2023-04-16 20:13:42 +05:30
Deepesh Garg
5c75894065 fix: Advance payment against payment terms (#34872) 2023-04-16 17:11:24 +05:30
Shariq Ansari
f27c921783 Merge pull request #34876 from shariquerik/selling-workspace-fix 2023-04-16 14:26:24 +05:30
rohitwaghchaure
634d526d15 Merge pull request #34852 from wojosc/patch-36
fix allowing rename of Lead
2023-04-16 14:18:49 +05:30
Shariq Ansari
5a4dd354c1 fix: selling workspace is not migrating properly 2023-04-16 13:10:42 +05:30
Hossein Yousefian
1d162ffb87 get_incoming_rate_zero_in_rate_fix 2023-04-16 11:03:16 +03:30
Sagar Sharma
68af588fcc Merge pull request #34858 from s-aga-r/FIX-ISS-23-24-00199
fix: unable to change `company` for manual `Serial No` entry
2023-04-15 12:10:13 +05:30
s-aga-r
c9418aab45 chore: add items field label 2023-04-14 16:57:14 +05:30
s-aga-r
fb3271c624 fix: unable to change company for manual Serial No entry 2023-04-14 15:59:35 +05:30
Devin Slauenwhite
51c4338661 fix(ux): don't throw error when company defaults aren't set (#34825)
* fix(ux): don't throw error when company defaults aren't set; instead prompt account input.

* fix: translate label and title
2023-04-14 15:20:51 +05:30
Rohit Waghchaure
7bfc8f1236 fix: too many writes error while making backdated stock reconciliation 2023-04-14 15:12:58 +05:30
Raffael Meyer
59f6b773cd feat: add german sales tax template (#34823)
Nullsteuersatz nach § 12 Abs. 3 UStG
2023-04-14 13:14:00 +05:30
Wolfram Schmidt
9d1cae01bd fix allowing rename of Lead
This is needed to consolidate data like merging leads together when duplicated appear.
2023-04-14 09:05:09 +02:00
Deepesh Garg
a7051cb9b5 fix: Don't use stale item details (#34847) 2023-04-14 09:59:42 +05:30
Deepesh Garg
66130493eb fix: Remove unnecessary checkbox from Accounts doctype (#34821) 2023-04-14 09:47:15 +05:30
Vishnu VS
194ed1842f fix: update workstation hour rate 2023-04-13 19:02:03 +05:30
s-aga-r
6c9e419fec fix: validation for Non-Stock item in Sales Order Reservation 2023-04-12 16:18:13 +05:30
s-aga-r
e65b6d47e4 fix: disable Stock Reservation by default 2023-04-12 15:12:56 +05:30
s-aga-r
f0acb2049b fix: don't allow to deliver/transfer reserved stock 2023-04-12 14:13:54 +05:30
s-aga-r
56097807b4 fix: Stock Reservation validation in Stock Settings 2023-04-12 13:58:11 +05:30
s-aga-r
e7491d117d test: add test case for Stock Reservation against SO 2023-04-11 17:25:13 +05:30
Saqib Ansari
7fabe62847 Merge pull request #34817 from frappe/nextchamp-saqib-patch-1
chore: update CODEOWNERS
2023-04-11 15:47:59 +05:30
Saqib Ansari
aa8b241d5a chore: update CODEOWNERS
[skip ci]
2023-04-11 15:46:47 +05:30
rohitwaghchaure
2f9856436e Merge pull request #34808 from rohitwaghchaure/fixed-reposting-issue-for-stock-reco
fix: reposting record not created for backdated stock reconciliation
2023-04-11 15:02:18 +05:30
Rohit Waghchaure
6851b5ba97 fix: reposting record not created for backdated stock reco 2023-04-11 14:35:33 +05:30
s-aga-r
51946c5528 chore: linter 2023-04-11 12:46:59 +05:30
Anand Baburajan
c957a5cd2e fix: provide filter by depreciable assets in fixed asset register (#34803) 2023-04-11 12:16:07 +05:30
s-aga-r
a14a6002e7 Merge branch 'develop' into stock-reservation 2023-04-11 10:00:39 +05:30
s-aga-r
efcb84cedf test: add test cases for SO 2023-04-11 09:11:51 +05:30
s-aga-r
bc3cb6bff6 fix: cancel SRE on SO cancel 2023-04-11 08:32:37 +05:30
s-aga-r
a918adaa33 test: add test cases for SRE 2023-04-11 08:29:59 +05:30
marination
430b247dfc fix: Remove bank details fields from Shareholder 2023-04-11 01:33:08 +05:30
marination
7ed8f59dc8 test: Match by Account No, IBAN, Party Name, Desc and match correction 2023-04-10 22:11:00 +05:30
Marica
36de35c6d9 Merge branch 'develop' into bank-trans-party-automatch 2023-04-10 20:04:16 +05:30
Raffael Meyer
934e1b4e6a fix: add german translation of "Partly Paid" (#34776) 2023-04-09 19:04:57 +05:30
Deepesh Garg
6f6928fa7b fix: Item tax validity comparison fixes (#34784)
fix: Item tax validity comparsion fixes
2023-04-09 09:38:13 +05:30
Sagar Sharma
02d5d43eb1 Merge pull request #34632 from s-aga-r/refactor-batch
refactor: rewrite `batch.py` queries in `QB`
2023-04-08 13:11:01 +05:30
Sagar Sharma
299fb2619f Merge branch 'develop' into refactor-batch 2023-04-08 11:15:08 +05:30
s-aga-r
4a9a5f03fc Merge branch 'develop' into refactor-batch 2023-04-08 11:06:27 +05:30
Sagar Sharma
ba553dba62 Merge pull request #34739 from resilient-tech/item-tax-override-remove
chore!: remove override to set item tax based on HSN code
2023-04-07 21:39:08 +05:30
Anand Baburajan
29e025c012 Merge pull request #34778 from AnandBaburajan/asset_value_adjust_get_depr_amt
fix: improper usage of get_depreciation_amount in asset_value_adjustment
2023-04-07 16:48:06 +05:30
Anand Baburajan
90dee8b663 Merge pull request #34735 from ihosseinu/asset_movement_translation_fix
'Make Asset Movement' button translation fix in asset_list.js
2023-04-07 15:30:26 +05:30
Anand Baburajan
edaa0bc3f7 Merge branch 'develop' into asset_value_adjust_get_depr_amt 2023-04-07 15:24:37 +05:30
anandbaburajan
984905109d fix: improper usage of get_depreciation_amount in asset_value_adjustment 2023-04-07 15:23:02 +05:30
Sagar Sharma
45291aaa43 Merge pull request #34760 from s-aga-r/FIX-ISS-22-23-06306
fix: validate `Received Qty` for Internal Purchase Receipt
2023-04-06 16:25:29 +05:30
Sagar Sharma
f7fb001126 Merge branch 'develop' into FIX-ISS-22-23-06306 2023-04-06 15:59:32 +05:30
s-aga-r
a575bd50ef test: add test cases for internal PR received qty 2023-04-06 15:26:19 +05:30
rohitwaghchaure
7d2d2dd0af Merge pull request #34768 from rohitwaghchaure/fixed-ux-issue
fix: UX for stock entry, bom and work order
2023-04-06 14:16:20 +05:30
Sagar Sharma
7934441f3c Merge pull request #34769 from s-aga-r/FIX-ISS-22-23-06397
fix: Subcontracting Receipt incorrect `status`
2023-04-06 13:56:23 +05:30
Sagar Sharma
cfd4da3e8a Merge branch 'develop' into FIX-ISS-22-23-06397 2023-04-06 13:23:39 +05:30
s-aga-r
a55b818119 fix: Subcontracting Receipt incorrect status 2023-04-06 13:20:33 +05:30
Rohit Waghchaure
82a136f991 fix: UX for stock entry, bom and work order 2023-04-06 12:51:32 +05:30
Deepesh Garg
91a26608ee fix: Unable to create payment request against purchase invoice (#34762) 2023-04-06 12:40:58 +05:30
s-aga-r
0d1df26b88 chore: add Delivery Note Item in Purchase Receipt Status Updater 2023-04-06 09:31:46 +05:30
s-aga-r
bc39dfab5d feat: add Received Qty field in Delivery Note Item 2023-04-06 09:29:44 +05:30
rohitwaghchaure
8503d581a5 Merge pull request #34743 from rohitwaghchaure/fix-incorrect-balance-qty
fix: incorrect stock balance quantity for batch item
2023-04-05 23:21:44 +05:30
s-aga-r
ac24d778e8 refactor: add Docstrings for functions 2023-04-05 19:48:15 +05:30
Marica
fcc8f9f164 Merge branch 'develop' into bank-trans-party-automatch 2023-04-05 17:04:07 +05:30
marination
d7bc192804 fix: Match by both Account No and IBAN & other cleanups
- A BT could have both account and iban, and a Supplier could have only IBAN set
- In this case, matching by either (only account) gives no match
- Match by Account OR IBAN, use `or_filters`
- If matched, set both account no. and IBAN in Bank Party Mapper

- Explain AutoMatchParty
- Add type hints to return values
- Use `set_value` to set values in BT after matching since its an after submit event
2023-04-05 15:28:47 +05:30
Lucky-Tsuma
9bf87d708e fix: payment entry is already created on posawesome. (#34712) 2023-04-05 13:52:00 +05:30
Deepesh Garg
56f5078357 fix: Shop by category fixes (#34688)
* fix: Shop by category fixes

* chore: Update tests
2023-04-05 12:43:32 +05:30
Ritwik Puri
f193393f57 fix!: require sender and message for contact us page (#34707)
* fix: require sender and message for contact us page

* refactor: dont override frappe.send_message from client side

used override_whitelisted_method hook for the same
2023-04-05 12:04:36 +05:30
Deepesh Garg
fd3fb64aa3 feat: Auto allocate advance payments only against orders (#34727)
feat: Auto allocate advance payments only againt orders
2023-04-05 12:02:44 +05:30
Anand Baburajan
869289a6e4 Merge pull request #34745 from frappe/mergify/bp/develop/pr-34737
fix: don't include cancelled JVs in assdeprledger report (backport #34737)
2023-04-05 11:59:52 +05:30
Raffael Meyer
e6a9b6ee95 feat: remove deprecated get_customer_list (#34624)
feat: remove deprecated method

get_customer_list
2023-04-05 11:56:15 +05:30
Anand Baburajan
5cc3c08059 fix: asset monthly WDV and DD schedule and refactor [develop] (#34646)
* fix: monthly wdv and dd schedule

* chore: minor rename

* chore: fix tests
2023-04-05 11:46:31 +05:30
anandbaburajan
1101b7bfdf fix: don't include cancelled JVs in assdeprledger report
(cherry picked from commit 3896d41e95)
2023-04-05 06:04:43 +00:00
Rohit Waghchaure
ef4bd77196 fix: incorrect stock balance quantity for batch item 2023-04-05 00:02:45 +05:30
marination
aea4315435 chore: Make auto matching party configurable
- Checkbox in Accounts settings "Enable Automatic Party Matching"
- Check before invoking automatching methods
- misc: Remove TODO comments
2023-04-04 20:16:14 +05:30
marination
33604550ce chore: Perform automatch on submit
- misc: Clearer naming
2023-04-04 19:42:25 +05:30
marination
27ce789023 feat: Manually Update/Correct Party in Bank Transaction
- On updating bank trans.n party after submit, the corresponding mapper doc will be updated too
- The mapper doc in turn will update all linked bank transactions that do not have this updated value
- Added Bank Party Mapper hidden link in Bank Transaction
- Rename field in BPM to `Party Name` as it does not hold description data
- If a BT matches with a BPM record, link that record in the BT
2023-04-04 19:27:01 +05:30
Sagar Vora
9c66ebb108 chore!: remove override to set item tax based on HSN code 2023-04-04 18:02:55 +05:30
Hossein Yousefian
b70615ef18 'Make Asset Movement' button translation fix 2023-04-04 14:49:43 +03:30
marination
37c1331aba fix: Don't set description as key in Mapper doc if matched by description
- Description is volatile and will keep changing
- It will lead to multiple Bank Party Mapper docs for the same party that will never be referenced again
- Parts of the descripton keep changing which is why it will never match a mapper record
- If matched by desc, dont create mapper record.
2023-04-04 14:03:35 +05:30
rohitwaghchaure
12325cb685 Merge pull request #31271 from dj12djdjs/fix-reserve-qty
fix(stock): don't reserve qty on sales return.
2023-04-04 06:21:30 +05:30
marination
3a898289b0 chore: Single query with or filter to search Party Mapper by name/desc 2023-04-03 16:11:00 +05:30
rohitwaghchaure
682730a498 Merge pull request #34715 from rohitwaghchaure/fixed-bom-update-log
fix: bom update log not working for large batch size
2023-04-03 15:49:25 +05:30
Sagar Sharma
5f2874743b Merge pull request #34713 from s-aga-r/FIX-ISS-22-23-06369
fix: consider qty field precision
2023-04-03 15:36:19 +05:30
Rohit Waghchaure
d56070301c fix: bom update log not working for large batch size 2023-04-03 14:47:58 +05:30
Sagar Sharma
4571bd58d2 Merge branch 'develop' into FIX-ISS-22-23-06369 2023-04-03 14:26:09 +05:30
s-aga-r
6ec7590c21 fix: consider qty field precision 2023-04-03 14:08:11 +05:30
ruthra kumar
1eefd517d1 Merge pull request #34694 from ruthra-kumar/recalculate_difference_on_allocation_change
fix(ui): recalculate difference amount on allocation change
2023-04-03 10:03:01 +05:30
s-aga-r
38e9367184 fix: re-reserve stock on SO Update Items 2023-04-02 21:24:59 +05:30
s-aga-r
d5f0a7fcbb refactor(minor): stock reservation entry 2023-04-02 19:23:22 +05:30
Deepesh Garg
4c61ee30bb fix: Multiple issues in purchase invoice submission (#34600)
* fix: Multiple issues in purchase invoice submission

* fix: Base grand total calculation

* chore: Calculate base grand total separately only in multi currency docs

* fix: Add gl entry for round off
2023-04-02 09:35:27 +05:30
Kitti U. @ Ecosoft
74b29eb5e2 fix: Bank clearance for case loan (disburstment/repayment) (#34586) 2023-04-01 18:50:30 +05:30
Deepesh Garg
1e3eb4deed Merge pull request #34287 from frappe/early-payment-loss
fix: Allocate tax loss to tax account head on early payment discount
2023-04-01 18:49:02 +05:30
Sagar Sharma
7c7cfc4373 Merge pull request #34656 from s-aga-r/FIX-33830
fix: BOM Update Cost, when no actual qty
2023-04-01 16:24:01 +05:30
s-aga-r
8f3d5d24e1 chore: notify user on Reservation and Unreservation of Stock 2023-04-01 16:21:50 +05:30
s-aga-r
ee322c4904 fix(ux): Allow Partial Reservation depends on Enable Stock Reservation 2023-04-01 15:55:10 +05:30
ruthra kumar
32a4ca6b6c fix: recalculate difference amount on allocation change 2023-04-01 09:17:33 +05:30
s-aga-r
ef34f703d4 fix(ux): don't show Stock Reservation btn if Stock Reservation is disabled 2023-03-31 22:08:12 +05:30
s-aga-r
632f27b10d fix(ux): Reserve Stock and Reserved Stock Qty in SO Item 2023-03-31 21:58:21 +05:30
s-aga-r
de1492759d feat: add option to reserve stock in SO 2023-03-31 21:42:13 +05:30
marination
e7745033df feat: Party auto-matcher from Bank Transaction data
- Created Bank Party Mapper
- Created class to auto match by account/iban or party name/description(fuzzy)
- Automatch and set in transaction or create mapper
- `rapidfuzz` introduced
2023-03-31 16:11:00 +05:30
marination
ad31e02616 feat: Store Party bank details in party records (Customer/Supplier/Employee/Shareholder) 2023-04-04 11:45:37 +05:30
s-aga-r
0ae400c986 feat: add option to unreserve stock in SO 2023-03-31 15:38:16 +05:30
Sagar Sharma
2c2b5a5b6e Merge branch 'develop' into FIX-33830 2023-03-31 14:14:17 +05:30
ruthra kumar
770640f4e1 Merge pull request #34679 from ruthra-kumar/fix_credit_note_with_positive_total
fix: enclose ternary operator in parentheses
2023-03-31 13:31:16 +05:30
s-aga-r
26569b2162 fix: Stock Reservation validation for SO 2023-03-31 13:12:19 +05:30
s-aga-r
81fe5cfd72 chore: update Reserve Stock label to Reserve Stock on Submit in SO 2023-03-31 13:06:30 +05:30
s-aga-r
4d8ae41553 chore: make Reserve Stock on Sales Order Submission disabled by default 2023-03-31 12:50:13 +05:30
Sagar Sharma
b4ace345f9 Merge branch 'develop' into FIX-33830 2023-03-31 12:35:45 +05:30
Sagar Sharma
e56d40f48a Merge pull request #34677 from s-aga-r/FIX-34240
chore: make `Production Plan Item Reference` table hidden in Production Plan
2023-03-31 12:34:59 +05:30
Sagar Sharma
d0d3961a1e Merge branch 'develop' into FIX-34240 2023-03-31 12:34:27 +05:30
s-aga-r
06d1bc4d12 Revert "chore: add SRE ref in DN dashboard"
This reverts commit 15cb99290c.
2023-03-31 12:20:52 +05:30
s-aga-r
2d3997b2d7 refactor: remove Against Stock Reservation Entry field from DN Item 2023-03-31 12:16:59 +05:30
ruthra kumar
986daa6578 fix: enclose ternary operator in parentheses 2023-03-31 12:09:57 +05:30
Deepesh Garg
576575c227 fix: Column value mismatch in COA blank template (#34658) 2023-03-31 11:10:50 +05:30
s-aga-r
706be2a415 chore: make Production Plan Item Reference table hidden in Production Plan 2023-03-31 10:32:49 +05:30
Deepesh Garg
7c42b72ee7 fix: Total debit and credit while importing via Data Import (#34659) 2023-03-30 17:28:19 +05:30
rohitwaghchaure
edb0666b2c Merge branch 'develop' into fix-reserve-qty 2023-03-30 17:26:32 +05:30
rohitwaghchaure
c4a0842a4f Merge pull request #34636 from rohitwaghchaure/posting-time-issue
fix: posting time issue
2023-03-30 17:25:47 +05:30
rohitwaghchaure
06eac67796 Merge pull request #34664 from rohitwaghchaure/fixed-incorrect-balance-qty-stock-ledger
fix: incorrect balance qty in the stock ledger report
2023-03-30 17:25:35 +05:30
Richard Case
ddb17a8880 fix: plaid log_error syntax issue (#34642) 2023-03-30 16:45:56 +05:30
s-aga-r
1a84a0c411 fix: DN Item group warehouse validation against SRE 2023-03-30 16:42:27 +05:30
Anand Baburajan
d999dea3e4 chore: improve asset depr posting failure msg (#34661)
* chore: improve asset depr posting error msg

* chore: add period

* chore: improve msg
2023-03-30 16:38:37 +05:30
Rohit Waghchaure
345e6facbe fix: posting time issue 2023-03-30 16:34:34 +05:30
s-aga-r
e286d05904 fix: SRE Available Qty to Reserve for Group Warehouse 2023-03-30 16:26:42 +05:30
Rohit Waghchaure
cbdaab940d fix: incorrect balance qty in the stock ledger report 2023-03-30 16:20:42 +05:30
Anand Baburajan
a7a45fbe59 Merge pull request #34660 from AnandBaburajan/asset_improvements_30_mar_develop
chore: auto fill asset name and available for use date
2023-03-30 16:07:59 +05:30
anandbaburajan
af3e807607 chore: auto fill asset name and available for use date 2023-03-30 15:28:59 +05:30
Sagar Sharma
b6c0a675f9 Merge branch 'develop' into FIX-33830 2023-03-30 13:49:41 +05:30
s-aga-r
a4112c75c5 fix: BOM Update Cost, when no actual qty 2023-03-30 13:46:50 +05:30
rohitwaghchaure
448afa2b7c Merge pull request #34648 from rohitwaghchaure/fixed-serial-no-qty-issue-in-stock-reco
fix: serial no with zero quantity issue in stock reco
2023-03-30 13:04:48 +05:30
Anand Baburajan
0ac81e3793 Merge pull request #34649 from AnandBaburajan/asset_value_adjustment_asset_name
fix: incorrect arg name in asset value adjustment
2023-03-30 13:03:18 +05:30
Anand Baburajan
33ff1b5a72 Merge branch 'develop' into asset_value_adjustment_asset_name 2023-03-30 12:53:06 +05:30
anandbaburajan
2b0470d1f5 fix: incorrect arg name in asset value adjustment 2023-03-30 12:50:33 +05:30
Rohit Waghchaure
17131e5a02 fix: serial no with zero quantity issue in stock reco 2023-03-30 11:47:32 +05:30
Komal-Saraf0609
ad11934d39 fix: enabling lead even after "Opportunity" created against it (#34627)
* fix: enabling lead even after "Opportunity" created against it

* chore: Linting Issues

---------

Co-authored-by: Komal Saraf <komal@frappe.io>
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-03-30 08:03:55 +05:30
s-aga-r
72e32f1ae4 refactor: remove Posting Date and Posting Time columns from SRE 2023-03-29 18:42:44 +05:30
s-aga-r
2522198129 Revert "chore: add fields Serial No and Batch No in SRE"
This reverts commit 48108b5b41.
2023-03-29 18:33:03 +05:30
s-aga-r
6b24551672 Revert "chore: add Stock Reservation Qty column in Stock Projected Qty Report"
This reverts commit 3d75e3f434.
2023-03-29 18:33:03 +05:30
s-aga-r
3fcaa21110 refactor(minor): stock_reservation_entry.py 2023-03-29 18:33:01 +05:30
Anand Baburajan
7c5720ddb3 Merge pull request #34641 from frappe/mergify/bp/develop/pr-34607
Asset maintenance task add dropdown "3 Yearly" (backport #34607)
2023-03-29 18:15:17 +05:30
Bevan Tony Medrano
ddc3050e99 Asset maintenance task add dropdown "3 Yearly" (#34607)
* feat(asset_maintenance.json):Add 3 yearly in periodicity dropdown

* add server side implications for 3 yearly

(cherry picked from commit 625b8e8005)
2023-03-29 12:16:03 +00:00
Raffael Meyer
f5453adf4d fix: switch to supported update_linked_doctypes (#34625) 2023-03-29 16:59:10 +05:30
Komal-Saraf0609
d0660ad222 fix: lost opportunity report issue (#34626)
* fix: lost opportunity report issue

* chore: Linting Issues

---------

Co-authored-by: Komal Saraf <komal@frappe.io>
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-03-29 16:51:18 +05:30
s-aga-r
517b5f8567 refactor: rewrite batch.py queries in QB 2023-03-29 14:02:09 +05:30
Sagar Sharma
867d898304 fix: zero rm-cost for batch rm item in SCR (#34616)
fix: `0` rm-cost for batch rm item in SCR
2023-03-28 18:45:16 +05:30
rohitwaghchaure
738dd57904 Merge pull request #34461 from s-aga-r/FIX-ISS-22-23-05936
fix: incorrect `Opening Value` in `Stock Balance` report
2023-03-28 17:40:25 +05:30
akiratfli
07c9b99072 fix: bad strings format for update-translations (#34592)
Co-authored-by: justin.li <justin.li@lungteh.com>
2023-03-28 17:20:54 +05:30
ruthra kumar
7c13533f30 Merge pull request #34608 from ruthra-kumar/reconciliation_debit_credit_mismatch
chore: removing redundant validation
2023-03-28 16:54:37 +05:30
Vishal Dhayagude
7aafc90d58 fix: Tax Category not able to set hence it calculating zero tax for item whoes tax template set (#34525)
* fix: Tax Category not able to set hence it calculating zero tax for item whoes tax template set

* fix: minor change added
2023-03-28 16:48:03 +05:30
Devin Slauenwhite
393bc25e2d fix: don't get zero value entries for exchange rate calculation (#34475)
* fix: multiply None by float

* chore: remove debug
2023-03-28 16:34:24 +05:30
Deepesh Garg
50c1172f29 fix: Party Name in SOA print when viewed from Customer/Supplier master (#34597)
fix: Party Name in SOA print when viewd from Customer/Supplier master
2023-03-28 15:36:16 +05:30
Deepesh Garg
12ad2aa2e5 fix: Percentage billing in Sales Order (#34606) 2023-03-28 15:33:59 +05:30
Marica
dae40dfbb4 Merge branch 'develop' into early-payment-loss 2023-03-28 15:01:28 +05:30
ruthra kumar
d52f7e2820 fix: removing redundant validation 2023-03-28 13:44:23 +05:30
s-aga-r
7d0bc0914d Merge branch 'develop' into stock-reservation 2023-03-28 12:25:17 +05:30
s-aga-r
beb425e1ff chore: add Stock Reservation Qty column in Stock Balance Report 2023-03-27 21:03:35 +05:30
Devin Slauenwhite
3c553b0938 feat: don't reserve qty on sales return 2023-03-27 10:37:54 -04:00
Devin Slauenwhite
17f8080168 chore: revert get_reserve_qty method 2023-03-27 10:37:04 -04:00
s-aga-r
3d75e3f434 chore: add Stock Reservation Qty column in Stock Projected Qty Report 2023-03-27 19:12:08 +05:30
marination
216a46bd66 feat: Make Tax loss booking optional
- Checkbox in Accounts Settings
- Apply checkbox in PE deductions setting logic
- Adjust tests
2023-03-27 16:11:00 +05:30
s-aga-r
00ac49f81b refactor(minor): SRE functions 2023-03-27 12:18:40 +05:30
s-aga-r
22a9c8ad55 fix(ux): SRE filters in DN Items 2023-03-27 11:07:24 +05:30
s-aga-r
b95a49e4c2 fix: validate DN against SRE 2023-03-27 10:46:07 +05:30
s-aga-r
3602d1909e fix: map DN items based on SRE 2023-03-26 17:33:01 +05:30
s-aga-r
15cb99290c chore: add SRE ref in DN dashboard 2023-03-26 16:53:31 +05:30
s-aga-r
cdc625806d chore: add field Against Stock Reservation Entry in DN Item 2023-03-26 16:53:28 +05:30
s-aga-r
744166da73 fix(ux): unable to uncheck Reserve Stock button in SO 2023-03-26 12:14:00 +05:30
s-aga-r
9652cb8de5 chore: create SRE on SO submission 2023-03-25 15:50:00 +05:30
=
1142e69d1a Merge branch 'develop' into fix-reserve-qty
# Conflicts:
#	erpnext/selling/doctype/selling_settings/selling_settings.json
2023-03-24 23:50:50 -04:00
s-aga-r
be9fa8c047 fix: don't allow to disable Stock Reservation if SRE exists 2023-03-24 21:39:36 +05:30
s-aga-r
48108b5b41 chore: add fields Serial No and Batch No in SRE 2023-03-24 16:23:38 +05:30
s-aga-r
7b6e4d44b7 chore: remove Valuation Rate field from SRE 2023-03-24 16:09:38 +05:30
ruthra kumar
f7780cdb58 refactor: additional filters and columns in Payment Ledger report (#34577)
1. 'Party type' and 'Party' filters have been added
2. checkbox to include Amount in Acccount Currency
3. Grouping vouchers on Party
4. Replaced Company with Posting Date
2023-03-24 12:25:03 +05:30
Raffael Meyer
8c7fa5712b feat: deprecate get_customer_list (#34563) 2023-03-24 12:13:53 +05:30
Shram Kadia
0cd870fc29 fix: get batch_no. for item automatically (#34473)
* fix: default pos conversion factor set to 1

* fix:get-batch-no-of-item-automatically
2023-03-24 12:05:26 +05:30
Nabin Hait
282a0ee2ce Merge pull request #34257 from deepeshgarg007/opening_entry
feat: Closing balance for period closing and reporting
2023-03-24 11:59:00 +05:30
rohitwaghchaure
980cca1772 Merge pull request #34573 from rohitwaghchaure/timer-buttons-not-working
fix: Time buttons not working in the job card
2023-03-23 22:35:43 +05:30
Rohit Waghchaure
34c190b7d6 fix: Time button not working in the job card 2023-03-23 22:32:11 +05:30
Anand Baburajan
e6b0196493 fix: recalculate wdv rate after asset repair [develop] (#34570)
fix: recalculate wdv rate after asset repair
2023-03-23 21:10:22 +05:30
s-aga-r
c80ce99972 feat: configuration to allow partial reservation 2023-03-23 19:53:17 +05:30
s-aga-r
ee074883bb chore: add Partially Reserved status in SRE 2023-03-23 19:50:34 +05:30
s-aga-r
4ad55382cf chore: add field Voucher Qty in SRE 2023-03-23 19:37:57 +05:30
Deepesh Garg
87108be11a fix: Sales person variance report without item group (#34552)
fix: Sales person variance report witout item group
2023-03-23 19:19:46 +05:30
Deepesh Garg
8ce1da111e chore: Improve validation message 2023-03-23 19:14:12 +05:30
Deepesh Garg
f8cff09129 fix: CS financial statement param 2023-03-23 19:12:42 +05:30
Deepesh Garg
b7dcf27b01 fix: Partial trial balance view 2023-03-23 19:06:07 +05:30
Deepesh Garg
30eb6c8512 fix: Validation for cancelation 2023-03-23 19:05:25 +05:30
Deepesh Garg
3fd95200da chore: Fix Typo 2023-03-23 19:04:48 +05:30
Deepesh Garg
528ab503f2 fix: Don't validate if no GL Entry exists 2023-03-23 15:32:24 +05:30
s-aga-r
1ccdf588e2 fix(ux): Reserve Stock button behaviour in SO 2023-03-23 13:34:40 +05:30
s-aga-r
f8c477ca5c chore: rename status from Submitted to Reserved 2023-03-23 13:05:43 +05:30
s-aga-r
fd746288f8 chore: add field Available Qty to Reserve in SRE 2023-03-23 13:05:41 +05:30
Raffael Meyer
f7bf1b8a0c fix: unset address and contact on trash (#34495)
* fix(Customer): unset address and contact on trash

* fix(Supplier): unset address and contact on trash

---------

Co-authored-by: Sagar Sharma <sagarsharma.s312@gmail.com>
2023-03-23 11:52:32 +05:30
Shariq Ansari
829bc6a51f Merge pull request #34547 from shariquerik/crm-comments-overlap-fix 2023-03-22 12:02:10 +05:30
Shariq Ansari
24a0833980 Merge branch 'develop' into crm-comments-overlap-fix 2023-03-22 11:40:58 +05:30
Shariq Ansari
76cea7dd6a fix: Note username overlapping with note content(CRM) 2023-03-22 11:28:58 +05:30
s-aga-r
30d566a787 fix: update Reserved Qty in SO Item on SRE cancel 2023-03-21 23:49:01 +05:30
s-aga-r
c2ba8b1b54 chore: make SRE a submittable DocType 2023-03-21 20:16:07 +05:30
Anand Baburajan
6d6a7bcb50 fix: incorrect depr schedules after asset repair [develop] (#34544)
* fix: backport missing changes from #30838

* fix: incorrect schedule after repair
2023-03-21 20:07:27 +05:30
Deepesh Garg
fa991b2dcf Merge branch 'develop' of https://github.com/frappe/erpnext into opening_entry 2023-03-21 17:00:08 +05:30
Deepesh Garg
f9397a87ac fix: Ignore opening entries if PCV posted 2023-03-21 16:59:22 +05:30
Richard Case
d8e73b63f3 fix: remove non-maintained Tax Detail report and missing workspace links (#34192)
* fix: remove non-maintained Tax Detail report and missing workspace links

* patch: delete report "Tax Detail"

---------

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
2023-03-21 16:23:27 +05:30
Raffael Meyer
79911734e9 fix: translations and UX in alternative item mapping (#34433)
* fix: disable deletion in alternative item mapping

* feat: german translations

* fix: make string translatable

---------

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-03-21 16:20:11 +05:30
Raffael Meyer
0df3a1a3af fix: remove unused translation (#34519) 2023-03-21 16:18:45 +05:30
Shram Kadia
08fc686513 fix: default pos conversion factor set to 1 (#34437) 2023-03-21 15:51:18 +05:30
Raffael Meyer
59c2e7ec3e fix: german translations (#34312)
fix: some german translations
2023-03-21 15:48:27 +05:30
Vishal Dhayagude
6966fa4d88 fix: POS not picking up pos profile company address instead fetch any random company address (#34521) 2023-03-21 15:43:57 +05:30
Deepesh Garg
ee6c107d58 fix(client): Amount calculation for 0 qty debit notes (#34455)
fix(client): Amount calculaton for 0 qty debit notes

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-03-21 15:38:39 +05:30
ruthra kumar
2d19cee713 Merge pull request #34501 from ruthra-kumar/incorrect_currency_symbol_for_bank_accounts_in_reconciliation_tool
refactor(bank reconciliation tool): currency symbol fix and concurrent usage
2023-03-21 15:30:50 +05:30
rohitwaghchaure
af5f59e856 Merge pull request #34528 from rohitwaghchaure/no-stock-still-option-to-add-in-cart
fix: E-commerce issue with Item Variants
2023-03-21 14:46:20 +05:30
Rohit Waghchaure
aaa4d1eb55 fix: E-commerce issue with Item Variants 2023-03-21 14:44:12 +05:30
s-aga-r
f858f657a0 feat: add Stock Reservation Entry ref in SO connections 2023-03-21 13:28:31 +05:30
s-aga-r
50de868285 chore: add Stock Reserved Qty field in SO Item 2023-03-21 13:17:58 +05:30
Marica
c5da7f5fb1 Merge branch 'develop' into early-payment-loss 2023-03-21 11:40:30 +05:30
s-aga-r
0700063379 chore: add Reserve Stock check field in Sales Order 2023-03-20 23:55:33 +05:30
s-aga-r
1b7fb6d7e7 chore: make Stock UOM required in SRE 2023-03-20 22:41:22 +05:30
s-aga-r
4848a054a8 chore: make Submitted default status for Stock Reservation Entry 2023-03-20 22:40:06 +05:30
s-aga-r
2946de40d8 fix: make Project and Is Cancelled field read-only in SRE 2023-03-20 21:18:37 +05:30
s-aga-r
0d1332942c feat: add Status and Delivered Qty fields in Stock Reservation Entry 2023-03-20 19:01:37 +05:30
Ankush Menat
109a9f1390 perf: index against_sales_invoice field on DN items (#34509)
This is used on Sales invoice dashboard and takes a lot of time to load
as db size increases.

Results:

Before: ~10-20 seconds to load dashboard
After: few milliseconds because of index

[skip ci]
2023-03-20 14:46:26 +05:30
s-aga-r
da1455198e chore: field validation for Stock Reservation Entry 2023-03-20 13:42:11 +05:30
s-aga-r
7eb2075265 feat: add settings for Stock Reservation in Stock Settings 2023-03-20 11:45:35 +05:30
s-aga-r
085d9ce004 feat: add DocType Stock Reservation Entry 2023-03-20 11:20:30 +05:30
Sagar Sharma
4c35a37eaa Merge branch 'develop' into FIX-ISS-22-23-05936 2023-03-20 10:28:10 +05:30
Deepesh Garg
44053db010 chore: Remove unnecessary list comprehension 2023-03-19 19:46:01 +05:30
Deepesh Garg
fc86a8568f fix: Supplier RFQ email link (#34338) 2023-03-19 18:09:18 +05:30
Raffael Meyer
d791dc11a3 fix: patch depends on Currency Exchange Settings (#34494) 2023-03-19 18:05:12 +05:30
ruthra kumar
1eea585d29 refactor: allow for concurrent use of reconciliation tool
1. set default filter dates a period of one month from current date
2023-03-19 14:20:03 +05:30
ruthra kumar
2d14d92b32 fix: incorrect currency symbol in Bank Reconciliation tool 2023-03-19 12:47:29 +05:30
Deepesh Garg
0aadb680eb chore: Add missing validations 2023-03-19 12:46:42 +05:30
Deepesh Garg
00fe3042b2 chore: Simplify query 2023-03-18 20:05:43 +05:30
Deepesh Garg
7f11373b58 fix: Account sub query 2023-03-17 16:59:23 +05:30
Deepesh Garg
d11a64ddcb Merge branch 'develop' of https://github.com/frappe/erpnext into opening_entry 2023-03-17 16:50:49 +05:30
Sagar Sharma
a07a5572ea Merge branch 'develop' into FIX-ISS-22-23-05936 2023-03-17 16:18:54 +05:30
Danny
ca10e2bb9f fix: bad strings format for command get-untraslated (#34361)
* fix: bad string foramt

* fix: bad string format

* fix: pre-commit format

---------

Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-03-17 16:13:32 +05:30
Sagar Sharma
2ac079210d Merge pull request #34440 from s-aga-r/FIX-34354
chore: `Allow Zero Valuation Rate` msg in SE
2023-03-17 16:02:52 +05:30
Sagar Sharma
f2c78163bf Merge branch 'develop' into FIX-34354 2023-03-17 15:58:46 +05:30
Deepesh Garg
d8ece86463 fix: Update account number from parent company (#34474) 2023-03-17 15:55:11 +05:30
Deepesh Garg
7b630217bd fix: Multiple accounting dimension filtering in AR/AP reports (#34464)
Co-authored-by: Anand Baburajan <anandbaburajan@gmail.com>
2023-03-17 15:51:33 +05:30
Deepesh Garg
be723bb9d4 chore: Update user manual link (#34478) 2023-03-17 15:39:33 +05:30
ruthra kumar
6b0dc62681 Merge pull request #34456 from ruthra-kumar/gp_return_invoice_issue
fix: Gross Profit reports Invoices with -ve qty for Invoices with Cr Notes
2023-03-17 15:26:41 +05:30
Sagar Sharma
0753aa5ab7 Merge branch 'develop' into FIX-34354 2023-03-17 15:16:41 +05:30
Sagar Sharma
3fb64cacfc Merge branch 'develop' into FIX-ISS-22-23-05936 2023-03-17 15:03:44 +05:30
ruthra kumar
6e0f1c6ad6 Merge pull request #34466 from ruthra-kumar/difference_amount_issue_while_reconciling
fix: unwanted difference amt while reconciling vouchers from base currency account
2023-03-17 14:51:41 +05:30
ruthra kumar
cc61daeec4 test: Gross Profit report output for Cr notes
2 New test cases added.
1. Standalone Cr notes will be reported as normal Invoices
2. Cr notes against an Invoice will not overallocate qty if there are
multiple instances of same item
2023-03-17 14:48:57 +05:30
ruthra kumar
d0715a82eb refactor: Ignore linked Cr Notes in Report output 2023-03-17 14:48:57 +05:30
ruthra kumar
e2f19c6a14 fix: Overallocation of 'qty' from Cr Notes to Parent Invoice
Cr Notes 'qty' are overallocated to parent invoice, when there are
mulitple instances of same item in Invoice.
2023-03-17 14:48:57 +05:30
ruthra kumar
ec075122b6 refactor: difference amt validation for same currency accounts 2023-03-17 14:14:17 +05:30
ruthra kumar
861387f164 test: difference amount should not be calculated for base currency 2023-03-17 14:14:17 +05:30
ruthra kumar
48fae0c1ce fix: difference amount calculation for company currency accounts 2023-03-17 14:14:17 +05:30
Sagar Sharma
db1f2d6279 Merge branch 'develop' into FIX-ISS-22-23-05936 2023-03-17 13:54:13 +05:30
s-aga-r
b04a101c11 fix: incorrect Opening Value in Stock Balance report 2023-03-17 13:53:49 +05:30
rohitwaghchaure
1d767d58f2 Merge pull request #34279 from s-aga-r/fix-22-23-05686
fix: `Blanket Order`
2023-03-17 10:14:37 +05:30
rohitwaghchaure
558db13040 Merge branch 'develop' into fix-22-23-05686 2023-03-17 08:57:37 +05:30
Anand Baburajan
563ee92043 Merge branch 'develop' into FIX-34354 2023-03-16 18:22:13 +05:30
Anand Baburajan
b6b8392413 fix: refactor asset depr schedule and remove unnecessary depr method (#34434)
* fix: remove depr method from depr schedule and refactor assetdeprsch

* chore: use assetdeprsch's depr method, not deprschedule's

* fix: use default 0 value for NDB and OAD

* chore: fix rounded numbers

* chore: correct rounding in test_website_item_price_for_logged_in_user
2023-03-16 18:18:47 +05:30
mergify[bot]
bd2dd7dfac ci: use version specific payments repo (backport #34468) (#34470)
ci: use version specific payments repo (#34468)

ci: use version-14 branch of payments repo for v14 erpnext
(cherry picked from commit befd1a0f91)

Co-authored-by: Ritwik Puri <ritwikpuri5678@gmail.com>
2023-03-16 16:20:21 +05:30
Sagar Sharma
357d4994e4 Merge branch 'develop' into fix-22-23-05686 2023-03-14 20:59:38 +05:30
Sagar Sharma
ea269c6a1c Merge branch 'develop' into FIX-34354 2023-03-14 20:59:27 +05:30
Ankush Menat
f1752fcd7a Merge pull request #34116 from prateekkaramchandani/develop
fix: use max function to get default company address
2023-03-14 19:38:26 +05:30
Ankush Menat
e0042972c8 test: add test for primary address sorting 2023-03-14 18:50:19 +05:30
Sagar Sharma
e9f5ea6ede Merge pull request #34415 from s-aga-r/FIX-ISS-22-23-05720
fix: operation time for multi-level BOM in WO
2023-03-14 18:47:40 +05:30
Ankush Menat
55489d0056 Merge branch 'develop' into prateekkaramchandani/develop 2023-03-14 18:39:06 +05:30
Sagar Sharma
e0b288fbf0 Merge branch 'develop' into FIX-34354 2023-03-14 18:19:38 +05:30
Sagar Sharma
258242f8d7 Merge branch 'develop' into FIX-ISS-22-23-05720 2023-03-14 18:17:48 +05:30
Ankush Menat
f95ad039e4 test: add timeout to all BOM related tests (#34446)
* Revert "chore: remove failing test (#34444)"

This reverts commit b89ecd482d.

* test: add timeout to bom tests
2023-03-14 18:10:17 +05:30
Deepesh Garg
b89ecd482d chore: remove failing test (#34444) 2023-03-14 15:53:03 +05:30
Johannes Obermeier
70c78d0d67 fix: incorrect EAN validation, EAN can be an EAN8, EAN12 or EAN13 code (#34250)
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-03-14 15:27:05 +05:30
s-aga-r
22ad9a1903 chore: Allow Zero Valuation Rate msg in SE 2023-03-14 14:33:03 +05:30
marination
d6d0163514 fix: Provision to apply early payment discount if payment is recorded late
- Party could have paid on time but payment is recorded late
- Prompt for reference date so that discount is applied while mapping
- Prompt only if discount in payment schedule of valid doctypes
- test: Reference date and impact on PE
- `make_payment_entry` (JS) must be able to access `this`
2023-03-14 14:22:39 +05:30
Sagar Sharma
0dbf4557db Merge branch 'develop' into FIX-ISS-22-23-05720 2023-03-14 13:19:58 +05:30
Sagar Sharma
185a8910d2 Merge branch 'develop' into fix-22-23-05686 2023-03-14 13:19:46 +05:30
Anand Baburajan
fe672aa9b1 Merge pull request #34392 from AnandBaburajan/patch_assdeprsch_gpa_ndb
fix: add missing patch for new fields added in #34214
2023-03-14 12:18:29 +05:30
Sagar Sharma
6c88fb7a8d Merge branch 'develop' into fix-22-23-05686 2023-03-14 11:44:39 +05:30
Sagar Sharma
48a88b7064 Merge branch 'develop' into FIX-ISS-22-23-05720 2023-03-14 11:44:33 +05:30
Anand Baburajan
72e9c05f46 Merge branch 'develop' into patch_assdeprsch_gpa_ndb 2023-03-13 21:31:57 +05:30
Deepesh Garg
c6999fc687 fix: Total row in trail balance report (#34395)
* fix: Total row in trail balance report

* fix: Calculate total after preparing opening and closing
2023-03-13 21:18:30 +05:30
Deepesh Garg
91f7b0bbd6 Merge branch 'develop' of https://github.com/frappe/erpnext into opening_entry 2023-03-13 20:52:48 +05:30
Deepesh Garg
76775a3e49 fix: Update patch 2023-03-13 20:51:35 +05:30
Deepesh Garg
492e994c22 Merge branch 'develop' into patch_assdeprsch_gpa_ndb 2023-03-13 19:37:55 +05:30
Deepesh Garg
fa776d2987 fix: Use customer name instead of name(id) in PSOA (#34412) 2023-03-13 19:37:09 +05:30
Deepesh Garg
d8e54a21fb test: Update values in Sales Invoice tests (#34419) 2023-03-13 19:34:15 +05:30
Sagar Vora
5c06620f97 fix: set tax category from address before executing get_regional_address_details (#34372) 2023-03-13 19:32:50 +05:30
HENRY Florian
d267111e13 chore: fix french translation (#34381)
chore: update french translation
2023-03-13 19:03:16 +05:30
Ernesto Ruiz
796ad01b87 fix: Add translate function to Delayed Tasks Summary Report (#34411)
fix: Add translate function to Delayed Tasks Summary Report
2023-03-13 19:02:34 +05:30
Deepesh Garg
c8cc3fc65f chore: Move source and campaign to additional info section (#34414) 2023-03-13 18:37:19 +05:30
Deepesh Garg
4416ddc4af fix: Linked invoice cancellation issue via timesheet (#34337) 2023-03-13 18:36:43 +05:30
Sagar Sharma
4a05f3736f Merge branch 'develop' into FIX-ISS-22-23-05720 2023-03-13 17:50:09 +05:30
s-aga-r
66f650061d test: add test cases for Over Order Allowance against Blanket Order 2023-03-13 17:21:07 +05:30
Sagar Sharma
9d49afebde Merge branch 'develop' into fix-22-23-05686 2023-03-13 17:05:27 +05:30
Marica
e1d28063b0 Merge branch 'develop' into early-payment-loss 2023-03-13 16:23:24 +05:30
Anand Baburajan
b8703b0b9b Merge branch 'develop' into patch_assdeprsch_gpa_ndb 2023-03-13 15:35:08 +05:30
Ankush Menat
b8a61be080 test: fix hypothesis tests (#34416) 2023-03-13 15:16:30 +05:30
Anand Baburajan
097be8bdea Merge branch 'develop' into patch_assdeprsch_gpa_ndb 2023-03-13 15:08:08 +05:30
Sagar Sharma
f2e9a67f37 Merge branch 'develop' into FIX-ISS-22-23-05720 2023-03-13 14:32:26 +05:30
s-aga-r
442ee3adba fix: operation time for multi-level BOM in WO 2023-03-13 14:31:38 +05:30
Ankush Menat
5bf6fb43a9 chore: fix broken TR translations 2023-03-13 14:12:12 +05:30
Deepesh Garg
7101e7acc4 fix: Filtering issue in payment entry (#34332) 2023-03-13 14:05:13 +05:30
marination
caa1a3dccf fix: Handle rounding more gracefully
- Round off pending discount loss to avoid miniscule losses rounded to 0.0 that are added in deductions
- Use base amounts to calculate base losses instead of using conversion factor which increases rounding error
- Round of total base loss instead of individual income and tax losses to reduce rounding error
- Use default round off account for pending rounding loss in deductions
2023-03-13 14:01:31 +05:30
ruthra kumar
9f26e3c27a Merge pull request #34408 from ruthra-kumar/delete_remarks_migration_patch
chore: delete remarks migration patch
2023-03-13 09:14:21 +05:30
ruthra kumar
da37573b73 chore: delete remarks migration patch
Versions higher than V14.18.2, 'remarks' will be moved in 'migrate_gl_to_payment_ledger'
2023-03-12 13:41:50 +05:30
ruthra kumar
e371bb6672 Merge pull request #34387 from ruthra-kumar/refactor_gl_migration_patch
refactor(patch): remove inner join to improve SQL performance
2023-03-11 21:00:19 +05:30
Mehmet Demirel
fa6d37542b chore: Improve Turkish language translation
chore: Improve Turkish language translation
2023-03-11 19:18:44 +05:30
Deepesh Garg
aae53bb910 fix: Error in consolidated financial statement (#34330) 2023-03-11 19:06:56 +05:30
ruthra kumar
a9989b12d5 Merge pull request #34370 from ruthra-kumar/fix_flaky_test_in_payment_terms_report
fix(test): flaky test case in Payment terms report
2023-03-11 14:17:45 +05:30
ruthra kumar
9d0a1149d8 chore: remove remarks migrations patch from patches.txt
'Remarks' field is moved in migrate_gl_to_payment_ledger patch itself
from versions highers than v14.18.2. Removing it from patches.txt
2023-03-11 13:17:52 +05:30
ruthra kumar
a43304b01b Merge branch 'develop' into fix_flaky_test_in_payment_terms_report 2023-03-11 13:05:38 +05:30
ruthra kumar
7fcd74ed03 fix(test): flaky test case in Payment terms report 2023-03-10 21:23:12 +05:30
ruthra kumar
1744f1d4e4 refactor: add remarks to column as well 2023-03-10 15:57:11 +05:30
Anand Baburajan
6308b509fc Merge branch 'develop' into patch_assdeprsch_gpa_ndb 2023-03-10 15:25:39 +05:30
Deepesh Garg
0157fa15eb chore: Use account closing balance in set gl entries 2023-03-10 13:02:01 +05:30
Sagar Sharma
430378bb6e Merge pull request #34383 from s-aga-r/FIX-ISS-22-23-05836
fix: filters not getting applied on `Web Form`
2023-03-10 00:24:08 +05:30
s-aga-r
9c1e566394 fix: filters not getting applied on Web Form 2023-03-09 22:12:35 +05:30
ruthra kumar
f9cfabf78e refactor(patch): remove inner join to improve SQL performance 2023-03-09 19:42:28 +05:30
Marica
ae0a8a6529 Merge branch 'develop' into early-payment-loss 2023-03-09 18:36:36 +05:30
anandbaburajan
ebb6953274 fix: add missing patch for new fields added in #34214 2023-03-09 17:55:27 +05:30
marination
9abf0ef615 test: Multi currency SI with multi-currency accounting and single currency accounting + Early payment discount 2023-03-09 16:32:36 +05:30
marination
b09c2381ca fix: Multi-currency SI with base currency PE
- Return total discount loss in base currency
- Allocate payment based on terms: Set allocated amount in references table in base currency if accounting is in that currency
- Allocate payment based on terms: While back updating set paid amount (payment schedule) in transaction currency always
- minor: discount msgprint in correct currency
2023-03-09 16:25:45 +05:30
Deepesh Garg
9a8f8e8b7d Revert "fix: Default sales team not getting set" (#34376)
Revert "fix: Default sales team not getting set (#34284)"

This reverts commit 7d0199d743.
2023-03-09 15:36:52 +05:30
Sagar Sharma
428274df56 Merge pull request #34360 from s-aga-r/FIX-ITEM-ALTERNATIVE-ERR-MSG
chore: `Alternative Item Code` error msg
2023-03-09 10:07:35 +05:30
Sagar Sharma
87b5734f5b Merge branch 'develop' into FIX-ITEM-ALTERNATIVE-ERR-MSG 2023-03-09 10:07:24 +05:30
Sagar Sharma
c312692af5 Merge pull request #34362 from s-aga-r/FIX-ISS-22-23-05697
fix: `required_qty` get reset to `1` for Alternative Item in WO
2023-03-09 10:05:08 +05:30
s-aga-r
046834a97a fix: required_qty get reset to 1 for Alternative Item in WO 2023-03-08 20:40:03 +05:30
s-aga-r
baef5ae1ef chore: Alternative Item Code error msg 2023-03-08 20:07:30 +05:30
Deepesh Garg
719ac5c8f3 Merge branch 'develop' of https://github.com/frappe/erpnext into opening_entry 2023-03-08 18:35:26 +05:30
Deepesh Garg
f0267feca8 test: Add test case for closing balance 2023-03-08 18:34:07 +05:30
marination
761f68d7bf fix: Paid amount must be discounted considering accounting currency
- Accounting is in the same currency if party currency and company currency is the same
- If accounting is in the same currency, paid and recvd amount is in the base currency
- Then, discount amount must also be in the base currency as it is deducted from paid amount
- Received amount must be in base currency if not multi currency
- cleanup: Deductions setting broken into smaller functions
2023-03-08 17:20:48 +05:30
Sagar Sharma
a1ad9587fa Merge pull request #34352 from s-aga-r/FIX-ISS-22-23-05722
fix: `BOM Stock Report`
2023-03-08 16:26:19 +05:30
Sagar Sharma
2d66384cbc Merge branch 'develop' into FIX-ISS-22-23-05722 2023-03-08 16:25:42 +05:30
Ankush Menat
52ab11389b chore: drop hypothesis dependency
pinned in framework now
2023-03-08 15:31:25 +05:30
Deepesh Garg
3249a79f07 chore: rename Closing Balance to Account Closing Balance 2023-03-08 15:15:33 +05:30
s-aga-r
b53dcb04ed test: add test cases for BOM Stock Report 2023-03-08 14:00:06 +05:30
s-aga-r
a65b80911b fix: BOM Stock Report 2023-03-08 12:59:50 +05:30
Sagar Sharma
ba1162ff3f Merge pull request #34313 from s-aga-r/fix-22-23-05690
perf: Stock Entry (Material Transfer)
2023-03-07 18:03:08 +05:30
Sagar Sharma
336e0b9666 Merge branch 'develop' into fix-22-23-05690 2023-03-07 18:02:52 +05:30
Solufyin
71de72bdd0 fix: Set contact filter link in Opportunity (#34325)
Co-authored-by: Nihantra C. Patel <n.patel.serpentcs@gmail.com>
2023-03-07 17:44:31 +05:30
Devin Slauenwhite
6de826b8c4 fix: exchange rate revaluation errors (#33947)
* fix: set new balance for non-positive balances

* fix: don't add debit: 0, credit: 0 entries to journal entry.

* fix: add journal entry difference to unbooked gain/loss of exchange.

* chore: linter

* chore: remove invlaid TODO. [skip-ci]
2023-03-07 17:16:15 +05:30
Sagar Sharma
4d1f620d75 Merge branch 'develop' into fix-22-23-05690 2023-03-07 16:35:17 +05:30
Marica
2feb27e399 fix(minor): Dirty the form after clicking on Get advances button in Invoices (#34323)
fix(minor): Dirty form after clicking on Get advances button
2023-03-07 15:45:18 +05:30
Sagar Sharma
4cd16a839b Merge branch 'develop' into fix-22-23-05690 2023-03-07 14:55:46 +05:30
marination
f02fc8acf0 fix: Don't add to deductions if amount is 0
- misc: better docstring
2023-03-07 12:12:45 +05:30
Deepesh Garg
10632d75b0 fix: Do not calculate commission post submit (#34267)
* fix: Do not calculate commision post submit

* chore: Update condition to match server side logic

Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>

---------

Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
2023-03-07 11:44:09 +05:30
Deepesh Garg
7d0199d743 fix: Default sales team not getting set (#34284) 2023-03-07 11:41:26 +05:30
Deepesh Garg
ea8e23384d fix: Payment Request against sales order with disabled rounded total (#34281)
* fix: Payment Request against sales order with disabled rounded total

* chore: Do not consider advance amount
2023-03-07 11:40:29 +05:30
Sagar Sharma
3952b3373d Merge branch 'develop' into fix-22-23-05690 2023-03-07 10:50:39 +05:30
s-aga-r
8ad9e99cea perf: update_completed_qty() in material_request.py 2023-03-07 10:50:11 +05:30
Raffael Meyer
ee12313dbb Merge branch 'develop' into early-payment-loss 2023-03-06 21:41:54 +01:00
s-aga-r
de18f98c5c perf: Stock Entry (Material Transfer) 2023-03-06 23:41:04 +05:30
rohitwaghchaure
53efc8ff77 Merge pull request #34305 from rohitwaghchaure/fixed-not-able-to-complete-bom-update-log
fix: BOM Update log not completed
2023-03-06 23:23:58 +05:30
Sagar Sharma
04b346865f Merge pull request #34301 from barredterra/rename-timezone-utils
refactor: use renamed timezone utils
2023-03-06 22:22:23 +05:30
marination
7f2e7badff fix: Set deduction amount in company currency on Doctype
- Even via JS, deductions amount is always in company currency
- Since there is nothing dynamic about this field, set it in the doctype spec itself
- fixed: Inconsistency between label currency and field currency formatted value
2023-03-06 17:45:26 +05:30
Deepesh Garg
5dabc98ba5 chore: Add index to period closing voucher column 2023-03-06 16:56:33 +05:30
Marica
b5f80815a1 Merge branch 'develop' into early-payment-loss 2023-03-06 15:50:50 +05:30
marination
c217bb2018 test: PE from SI with early payment discount amount & PE assertions in discount % test 2023-03-06 15:02:32 +05:30
marination
2ae5834290 fix: Back update discounted amount in Invoice based on discount type
- Discount value was always trated as a percentage on back updation
2023-03-06 14:54:46 +05:30
Rohit Waghchaure
2f157fa5d3 fix: BOM Update log not completed 2023-03-06 12:09:50 +05:30
Deepesh Garg
310f71c313 test: Add static posting dates to tests 2023-03-05 18:43:26 +05:30
Deepesh Garg
4a2046dfb6 fix: Aggregation with previous closing balance 2023-03-05 18:18:33 +05:30
barredterra
502a37a864 refactor: use renamed timezone utils
https://github.com/frappe/frappe/pull/20253
2023-03-04 19:31:40 +01:00
Sagar Sharma
ac87fca0d7 Merge pull request #34299 from s-aga-r/fix-22-23-05638-2
fix: Stock Reconciliation `actual_qty`
2023-03-04 17:35:05 +05:30
s-aga-r
70de444b7b fix: Stock Reconciliation actual_qty 2023-03-04 17:06:07 +05:30
Sagar Sharma
0185096e09 Merge pull request #34298 from s-aga-r/fix-22-23-05638-1
fix: update inventory dimensions before returning sle
2023-03-04 16:50:55 +05:30
s-aga-r
e6a02719f7 fix: update inventory dimensions before returning sle 2023-03-04 16:02:50 +05:30
Sagar Sharma
31ed4ef6d6 Merge pull request #34293 from s-aga-r/fix-22-23-05638
fix: `Inventory Dimension` for `Stock Reconciliation`
2023-03-04 02:13:13 +05:30
s-aga-r
0e1b7760a8 fix: Inventory Dimension for Stock Reconciliation 2023-03-04 01:05:55 +05:30
s-aga-r
53701c37b1 feat: consider over_order_allowance while validating sales order qty 2023-03-03 22:03:54 +05:30
Devin Slauenwhite
6190b4cf63 chore: revert unrelated changes. 2023-03-03 09:42:29 -05:00
marination
dc2998f544 fix: Set deductions in base currency
- Use field precision to get more accurate values
2023-03-03 17:24:43 +05:30
marination
75ec0a0a85 fix: Recalculate difference amount after setting deductions 2023-03-03 14:13:27 +05:30
Marica
619824855a Merge branch 'develop' into early-payment-loss 2023-03-03 13:53:57 +05:30
marination
768c3a4927 fix: Taxes aren't discounted on early payment discount
- Deductions in payment entry must be split into income loss and tax loss
- Compute total discount in percentage, makes discounting different amounts proportionately easier
2023-03-03 13:21:38 +05:30
s-aga-r
d7da8928ac feat: add field Over Order Allowance (%) in Selling Settings 2023-03-03 11:19:28 +05:30
s-aga-r
8bcbc45add feat: consider over_order_allowance while validating order qty 2023-03-03 11:11:33 +05:30
s-aga-r
fc1088d9c4 fix: don't map item row having 0 qty 2023-03-03 10:50:17 +05:30
s-aga-r
f3993783a3 refactor: rewrite blanket_order.py queries in QB 2023-03-02 17:18:46 +05:30
s-aga-r
f5937f46cb feat: add field Over Order Allowance (%) in Buying Settings 2023-03-02 17:04:09 +05:30
Deepesh Garg
c3d455653e Merge pull request #34258 from deepeshgarg007/finance_book_read_only
chore: Make finance book read only
2023-03-02 16:47:47 +05:30
Deepesh Garg
c089c4156c chore: Minor fixes 2023-03-02 16:46:56 +05:30
s-aga-r
abf9a28d6a fix: hide + button based on Blanket Order Type 2023-03-02 16:40:37 +05:30
Sagar Sharma
6e43d6882a Merge pull request #34117 from s-aga-r/github-issue-33344
refactor: rewrite `get_item_details.py` queries in `QB`
2023-03-02 14:54:58 +05:30
Sagar Sharma
90e1a6bc16 Merge branch 'develop' into github-issue-33344 2023-03-02 14:24:14 +05:30
Sagar Sharma
310643d215 Merge pull request #34273 from s-aga-r/fix-return-pr-serial-no
fix: `rejected_serial_no` not getting copied from PR to PR(Return)
2023-03-02 12:37:39 +05:30
Sagar Sharma
6e9d001819 Merge branch 'develop' into github-issue-33344 2023-03-02 12:09:21 +05:30
Sagar Sharma
50dc0c18eb Merge branch 'develop' into fix-return-pr-serial-no 2023-03-02 12:06:59 +05:30
Ankush Menat
330ae419be fix!: Parse float as per number format in quality inspection (#34259)
fix: Parse float as per number format in quality inspection
2023-03-02 11:59:18 +05:30
s-aga-r
cb0b6de4b9 fix: Serial No is mandatory even if the qty is 0 2023-03-02 11:27:46 +05:30
s-aga-r
a9f0a11ce6 fix: rejected_serial_no not getting copied from PR to PR(Return) 2023-03-02 11:15:46 +05:30
Deepesh Garg
790f0aac12 Merge branch 'develop' into finance_book_read_only 2023-03-02 10:01:12 +05:30
Deepesh Garg
6a89cb98ce Merge pull request #33874 from frappe/alternative-items-quotation
feat: Support for Alternative Items in Quotation
2023-03-01 17:41:24 +05:30
Suraj Shetty
e0a3869874 Merge pull request #34266 from frappe/mergify/bp/develop/pr-34265 2023-03-01 17:06:20 +05:30
Suraj Shetty
6cd2ba5c66 fix: Resolve conflicts
(cherry picked from commit f6469d8398)
2023-03-01 10:59:21 +00:00
Suraj Shetty
46a722d51c fix: Wrap unexpectedly long text in remark
(cherry picked from commit ba66a6714c)

# Conflicts:
#	erpnext/accounts/report/general_ledger/general_ledger.html
(cherry picked from commit b13bf1ebc5)
2023-03-01 10:59:20 +00:00
rohitwaghchaure
32b64db4d6 Merge pull request #34254 from rohitwaghchaure/fixed-subcontracting-stock-availability-issue
fix: consumed qty validation for subcontracting receipt
2023-03-01 15:15:25 +05:30
Deepesh Garg
28dd1a25cb chore: Make finance book read only 2023-03-01 15:00:24 +05:30
Deepesh Garg
e5f603c9d9 perf: Apply closing balance in Trial Balance report 2023-03-01 14:48:06 +05:30
Deepesh Garg
95c9aafda9 fix: Update patch to generate closing balance entries 2023-03-01 14:45:22 +05:30
Deepesh Garg
436fc03eda fix: Closing balance entries for period closing voucher 2023-03-01 14:43:49 +05:30
Rohit Waghchaure
b38fe24090 fix: consumed qty validation for subcontracting receipt 2023-03-01 11:42:59 +05:30
rohitwaghchaure
d88fe27be6 Merge pull request #34195 from HarryPaulo/fix-performance-on-insert-item
fix: Performance improvement when adding a new item
2023-03-01 10:10:14 +05:30
ruthra kumar
f9c75055bb Merge pull request #34241 from ruthra-kumar/bug_on_credit_note_creation
fix: pos return throwing amount greater than grand total
2023-02-28 18:22:30 +05:30
rohitwaghchaure
9bb8e351a2 Merge pull request #34243 from rohitwaghchaure/fixed-date-filters-in-subcontracting-reports
fix: default date in Subcontracting reports
2023-02-28 18:01:14 +05:30
Rohit Waghchaure
dfddc4efc3 fix: default date in Subcontracting reports 2023-02-28 17:53:51 +05:30
rohitwaghchaure
2942cee31e Merge pull request #34235 from rohitwaghchaure/feat-adjust-valuation-rate
feat: adjust purchase receipt valuation rate as per purchase invoice rate
2023-02-28 17:34:53 +05:30
ruthra kumar
35c70f39fa fix: pos return throwing amount greater than grand total 2023-02-28 16:21:32 +05:30
Rohit Waghchaure
a8445da02a fix: labels name 2023-02-28 15:47:45 +05:30
s-aga-r
58c027d4cc chore: Linters 2023-02-28 15:14:34 +05:30
Sagar Sharma
26ced47ddc Merge branch 'develop' into github-issue-33344 2023-02-28 15:01:40 +05:30
Rohit Waghchaure
8e86553717 test: added test cases 2023-02-28 14:57:04 +05:30
Sagar Sharma
90abb28cb4 Merge pull request #34060 from vishdha/pos_fix
fix: multiple Point of Sale conversion issue resolved
2023-02-28 14:55:14 +05:30
Rohit Waghchaure
eab775ef32 feat: adjust purchase receipt valuation rate as per purchase invoice rate 2023-02-28 14:11:55 +05:30
Vishal
f18ae5856f chore: minor changes in pos_controller 2023-02-28 11:03:26 +05:30
Vishal
a51bec0269 chore: minor change 2023-02-28 11:03:26 +05:30
Vishal
3ebe7d861d chore: minor changes added to code 2023-02-28 11:03:26 +05:30
Vishal
1de531e56e fix: multiple pos conversion issue resolved 2023-02-28 11:03:25 +05:30
Sagar Sharma
ecd15d2a65 Merge branch 'develop' into github-issue-33344 2023-02-27 16:57:29 +05:30
Sagar Sharma
9cd42dd60f Merge pull request #34225 from s-aga-r/fix-mr-warehouse
fix: set `from_warehouse` and `to_warehouse` while mapping SE
2023-02-27 12:52:53 +05:30
s-aga-r
c09a61f360 fix: set from_warehouse and to_warehouse while mapping SE 2023-02-27 12:26:21 +05:30
Sagar Sharma
c22641092a Merge pull request #34212 from brian-pond/patch-2
fix: Remove missing DocField in fetch_from
2023-02-27 11:52:53 +05:30
Sagar Sharma
bda1340760 Merge branch 'develop' into patch-2 2023-02-27 11:52:31 +05:30
Patrick Eissler
bbb6a62a7d chore: add german translations (#34167)
* chore: add german translations

* Apply suggestions from code review

Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>

---------

Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
2023-02-27 11:49:22 +05:30
Deepesh Garg
81651beaef Merge pull request #34174 from Vishnu7025/coa-import-currency
fix: currency in coa import
2023-02-27 11:48:44 +05:30
Sagar Sharma
5dcb723fc7 Merge branch 'develop' into patch-2 2023-02-27 11:14:14 +05:30
Brian Pond
83f3e317e1 fix: Remove missing DocField in fetch_from 2023-02-27 11:10:51 +05:30
ruthra kumar
d8b9b83b11 Merge pull request #34207 from ruthra-kumar/fix_permisssion_error_on_work_order_creation
fix: permission error while calling get_work_order_items
2023-02-27 09:55:18 +05:30
Anand Baburajan
9e38b61bd9 Merge pull request #34214 from AnandBaburajan/manual_asset_schedule_develop
fix: asset manual depr schedule [develop]
2023-02-26 20:22:34 +05:30
Anand Baburajan
feeebb1262 Merge branch 'develop' into manual_asset_schedule_develop 2023-02-26 17:40:26 +05:30
anandbaburajan
dd74839eba fix: manual depr schedule 2023-02-26 17:36:36 +05:30
Deepesh Garg
a663df376c fix: Add patch to update closing balances 2023-02-26 16:06:04 +05:30
Deepesh Garg
6607c8bd82 fix: Order by issue in aggregation query 2023-02-26 16:05:26 +05:30
Deepesh Garg
f92c63fb10 feat: Add validations against period closing voucher 2023-02-26 15:53:33 +05:30
Deepesh Garg
7fa7d6b5e4 chore: Rewrite query using query builder 2023-02-26 15:52:30 +05:30
Deepesh Garg
e18336ebe7 feat: Add views in standard filter 2023-02-26 15:47:29 +05:30
Suraj Shetty
64f439600b Merge branch 'develop' of https://github.com/frappe/erpnext into move-exotel-to-separate-app 2023-02-25 13:34:23 +05:30
rohitwaghchaure
6d6e3cb015 Merge pull request #34206 from rohitwaghchaure/fixed-trivial-error-for-stock-reposting
fix: not able to repost gl entries
2023-02-24 21:10:27 +05:30
ruthra kumar
a11d3327df fix(test): use standalone method to fetch work orders from SO 2023-02-24 21:07:49 +05:30
ruthra kumar
b6bad728cd fix: permission error while calling get_work_order_items 2023-02-24 21:07:46 +05:30
Rohit Waghchaure
7d10dd9ea8 fix: not able to repost gl entries 2023-02-24 17:50:00 +05:30
Deepesh Garg
e26c6dc76b Revert "fix: Concurrency issues in Sales and Purchase returns" (#34202)
Revert "fix: Concurrency issues in Sales and Purchase returns (#34019)"

This reverts commit a67284e96d.
2023-02-24 15:28:14 +05:30
rohitwaghchaure
04f00fd141 Merge pull request #34199 from rohitwaghchaure/fixed-converison-factor-issue
fix: conversion factor not set
2023-02-24 14:56:36 +05:30
Rohit Waghchaure
8e46aebc50 fix: conversion factor not set 2023-02-24 14:49:05 +05:30
HarryPaulo
49af5ba434 fix: Performance improvement when adding a new item 2023-02-23 18:11:09 -03:00
rohitwaghchaure
670304fe8e Merge pull request #34189 from rohitwaghchaure/prevent-to-make-item-price-for-template
fix: user shouldn't able to make item price for item template
2023-02-23 20:47:48 +05:30
Rohit Waghchaure
6417ae0ee8 fix: user shouldn't able to make item price for item template 2023-02-23 20:21:50 +05:30
Deepesh Garg
c3f39c3f32 feat: Cascade closing balances on PCV submit 2023-02-23 16:48:54 +05:30
Deepesh Garg
36c08d0835 fix: Add patches to create accounting dimension in Closing Balance 2023-02-23 16:46:37 +05:30
Marica
47ab26dedf Merge branch 'develop' into alternative-items-quotation 2023-02-23 13:20:28 +05:30
ruthra kumar
a9920715ab Merge pull request #34022 from ruthra-kumar/gross_profit_memory_and_performance_issue
perf: Gross Profit report will fetch SLE's on demand and memoize
2023-02-23 11:55:08 +05:30
ruthra kumar
88d888d9d0 refactor: use docstatus from Delivery Note Item 2023-02-23 11:15:56 +05:30
rohitwaghchaure
3692f960d0 Merge pull request #34172 from rohitwaghchaure/zero-rate-adjust-issue-using-lcv
fix: zero division error while making LCV
2023-02-23 10:54:01 +05:30
ruthra kumar
60d3b86cdb Merge pull request #34176 from ruthra-kumar/fix_ui_freeze_on_sales_invoice
fix: ui freeze on item selection in sales invoice
2023-02-23 10:35:50 +05:30
rohitwaghchaure
e3de216e06 Merge pull request #34173 from rohitwaghchaure/incorrect-color-showing-in-report
fix: incorrect color in the BOM Stock Report
2023-02-23 09:54:45 +05:30
ruthra kumar
6412583e98 fix: ui freeze on item selection in sales invoice 2023-02-23 09:36:21 +05:30
vishnu
e3c000d0be chore: change column label 2023-02-22 10:53:11 +00:00
vishnu
19c0b7a523 fix: currency in coa import 2023-02-22 10:24:45 +00:00
Rohit Waghchaure
a8f03ebf7f fix: incorrect color in the BOM Stock Report 2023-02-22 14:24:18 +05:30
Rohit Waghchaure
80e94a08cf fix: zero division error while making LCV 2023-02-22 13:29:06 +05:30
Deepesh Garg
b44a19bd1a feat: Introduce opening entry for reporting 2023-02-21 23:20:28 +05:30
Sankara Subramanian V
a06d24037b refactor(region): Splitting of KSA(Saudi Arabia) Regional logic from ERPNext (#33895)
* feat: remove KSA regional code
2023-02-21 22:52:20 +05:30
ruthra kumar
dde5bbc9a7 Merge pull request #34102 from ruthra-kumar/pos_validate_for_duplicate_pos_invoices
fix: check for duplicate pos invoices in closing entry
2023-02-21 18:45:39 +05:30
ruthra kumar
47add0b751 fix: check for duplicate in pos closing and pos merge log entry 2023-02-21 17:50:57 +05:30
Deepesh Garg
9739d8b52a feat: Introduce opening entry for reporting 2023-02-21 15:23:29 +05:30
ruthra kumar
4a7b1de2d8 refactor: clear records in batches in 'Transaction Deletion Record' (#34109)
refactor: clear records in batches
2023-02-21 14:27:00 +05:30
Deepesh Garg
c88444a6c4 fix: Filters in item-wise sales history report (#34145) 2023-02-21 14:26:33 +05:30
Anand Baburajan
5e3a034395 Merge pull request #34153 from AnandBaburajan/fixed_asset_report_fiscal_year
fix: fiscal year error for existing assets in fixed asset register
2023-02-21 13:54:54 +05:30
Anand Baburajan
b781c57dcb Merge branch 'develop' into fixed_asset_report_fiscal_year 2023-02-21 13:10:07 +05:30
Himanshu Shivhare
3547252217 Telegram Group link updated (#34149) 2023-02-21 13:05:03 +05:30
anandbaburajan
76861eb332 fix: fiscal year error for existing assets in fixed asset register 2023-02-21 13:04:01 +05:30
Deepesh Garg
35cdd996a9 fix: Use normal rounding for Tax Withholding Category (#34114) 2023-02-21 12:57:49 +05:30
Sagar Sharma
18541ef54f Merge pull request #34138 from s-aga-r/dn-create-button
fix(ux): `ReferenceError: me is not defined` Delivery Note
2023-02-21 10:26:52 +05:30
Sagar Sharma
77b88961f6 Merge branch 'develop' into dn-create-button 2023-02-21 10:19:09 +05:30
marination
6b789e2f04 fix: Map only non alternative items from Quotation in Sales Invoice
- Since there's no item selection, only Quotation selection :/
2023-02-20 21:17:43 +05:30
marination
19456127cf fix: Handle Get Items From in Sales Order
- Map all non alternatives from Quotation to SO if no selected items
- Show disclaimer mentioning that Qtns with alternatives must be mapped to SO from the Qtn form
2023-02-20 20:52:14 +05:30
Ankush Menat
3f2a2c96f6 fix: Add company perm check unconditionally (#34142)
fix: Add employee perm check unconditionally
2023-02-20 16:07:27 +05:30
rohitwaghchaure
5e9620b98b Merge pull request #34139 from rohitwaghchaure/fixed-stock-ledger-report-filter-issue
fix: inventory dimension filter not overriding with existing filter for stock ledger report
2023-02-20 13:04:23 +05:30
rohitwaghchaure
3871cf7110 Merge pull request #33722 from rohitwaghchaure/purchase-invoice-performance-issue
fix: purchase invoice performance issue
2023-02-20 12:47:07 +05:30
Rohit Waghchaure
0e388ba872 fix: inventory dimension filter not overriding with existing filter for stock ledger report 2023-02-20 12:28:43 +05:30
Marica
3c96791d52 fix: Use block variable
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-02-20 12:04:14 +05:30
s-aga-r
44ee9f0f19 chore: Linters 2023-02-20 11:43:32 +05:30
s-aga-r
1b010add26 fix(ux): ReferenceError: me is not defined Delivery Note 2023-02-20 11:17:49 +05:30
Sagar Sharma
5bbe8728ad Merge branch 'develop' into github-issue-33344 2023-02-20 10:47:29 +05:30
Ankush Menat
e84e778151 chore(deps): remove stdnum dependency (#34137) 2023-02-20 10:40:07 +05:30
Sagar Sharma
c8fda8a8b5 Merge branch 'develop' into github-issue-33344 2023-02-19 22:17:20 +05:30
Alirio Castro
183e42af1a fix: differency entry journal debit/credit missing (#34104)
* fix: difference entry journal is wrong

* fix: difference entry journal is wrong
2023-02-19 19:40:13 +05:30
Johannes Obermeier
2a90fad710 feat(stock): Support more barcodes in an item by validate the barcode with the barcodenumber module (#33863)
feat(stock): Support more barcodes in an article by validate the barcode with the barcodenumber module
2023-02-19 19:36:05 +05:30
Sagar Sharma
2959285c82 Merge branch 'develop' into fix-reserve-qty 2023-02-19 12:45:39 +05:30
Sagar Sharma
f342e6e765 Merge branch 'develop' into github-issue-33344 2023-02-19 12:17:33 +05:30
ruthra kumar
c722f2819c fix: ignore repost payment ledger on basic documents cancellation (#34054)
fix: ignore repost payment ledger on cancel/delete of Inv/Pay/JE's

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-02-19 12:09:10 +05:30
Sagar Sharma
2c3973156f Merge branch 'develop' into github-issue-33344 2023-02-19 12:07:27 +05:30
Richard Case
5b7d23de15 feat: bank reconciliation and plaid changes (#33986)
fix: plaid link refresh: update account ids
fix: plaid transactions for credit cards & add accounts on link refresh if they don't exist
fix: bank reconciliation amount matching
fix: bank reconciliation dialog usability
feat: rewrite bank transaction reconciliation to allow multiple transactions to reconcile against vouchers before clearance
fix: matching transaction amounts and race condition bug
fix: ensure there is a reference number in plaid transactions and other tweaks
feat: add references to Payroll Entry Bank Journal Entry
feat: only clear Voucher once all Bank GLEs are allocated to Bank Transactions
fix: strange type error
feat: add payment method field to bank and plaid transactions and prepopulate relevant bank reconciliation new voucher fields
feat: bank reconciliation - allow bank transactions to reconcile against themselves for when there are banking amendments
fix: bank transaction self-reconcile bug and tidy
fix: bank reconciliation datatable index update
2023-02-19 11:50:17 +05:30
Shadrak Gurupnor
5e48e61c66 fix: forced delete linked desktop_icons (#34107)
* fix: forced delete linked desktop_icons

* fix: black
2023-02-19 11:42:35 +05:30
ruthra kumar
9c6466f15b fix: consider rounded total amount while making payment request (#34110) 2023-02-19 11:41:41 +05:30
Devin Slauenwhite
c76352340d fix(ux): customer/supplier docfield layout (#34125) 2023-02-19 11:37:32 +05:30
Sagar Sharma
07c6ad6fa7 Merge branch 'develop' into github-issue-33344 2023-02-18 22:24:06 +05:30
s-aga-r
35489fbbf9 refactor: remove method get_serial_no_batchwise from get_item_details.py 2023-02-18 22:23:53 +05:30
s-aga-r
6b144baa69 refactor: rewrite get_item_details.py queries in QB 2023-02-18 22:23:51 +05:30
rohitwaghchaure
dff9655d46 Merge pull request #34115 from rohitwaghchaure/fixed-convert-to-item-warehouse-reposting
feat: provision to convert transaction based reposting to item wareho…
2023-02-18 21:31:20 +05:30
Rohit Waghchaure
f1383b5ef9 feat: provision to convert transaction based reposting to item warehouse based reposting 2023-02-18 19:31:48 +05:30
Sagar Sharma
c292859b59 Merge pull request #34077 from s-aga-r/purchase-order-portal
fix: show Purchase Order Portal `Pay` button based on configuration
2023-02-18 12:20:14 +05:30
Sagar Sharma
91983fb4c6 Merge branch 'develop' into purchase-order-portal 2023-02-17 23:17:00 +05:30
Prateek
b93c18bd4a fix: use max function to get default company address 2023-02-17 20:25:13 +05:30
rohitwaghchaure
47264481ad Merge branch 'develop' into purchase-invoice-performance-issue 2023-02-17 16:41:30 +05:30
Anand Baburajan
6b3028d77b Merge pull request #34111 from AnandBaburajan/asset_fixes_17_feb
fix: repair status after deletion, asset status after manual depr entry and other misc bugs [develop]
2023-02-17 16:12:45 +05:30
anandbaburajan
e50bd52162 fix: asset repair status after deletion and asset status after manual depr entry 2023-02-17 15:32:24 +05:30
Sagar Sharma
ee21850ab8 Merge branch 'develop' into purchase-order-portal 2023-02-17 11:08:30 +05:30
ruthra kumar
067f8c1d70 Merge pull request #34071 from ruthra-kumar/rearrange_patch_order
patch: reorder migration patches
2023-02-17 11:04:36 +05:30
ruthra kumar
68202639f5 chore: reorder migration patches.
'migrate_gl_to_payment_ledger',
'migrate_remarks_from_gl_to_payment_ledger' should always run last.
2023-02-17 10:03:55 +05:30
rohitwaghchaure
4399a93843 Merge pull request #34091 from rohitwaghchaure/fixed-incorrect-consumed-qty-in-scr
fix: incorrect consumed qty in subcontracting receipt
2023-02-16 15:10:14 +05:30
Sagar Sharma
758f47bba6 Merge branch 'develop' into purchase-order-portal 2023-02-16 14:28:05 +05:30
Sagar Sharma
70660191a6 Merge pull request #34090 from frappe/update-codeowners
chore: update `CODEOWNERS`
2023-02-16 14:26:11 +05:30
Sagar Sharma
320f3c1ac0 Merge branch 'develop' into update-codeowners 2023-02-16 14:25:19 +05:30
Rohit Waghchaure
156e45970a fix: incorrect consumed qty in subcontracting receipt 2023-02-16 14:17:27 +05:30
HENRY Florian
4d79ffe3c6 fix: rename duplicate field name with same type into a DocType to avoid import Error (#34053)
* fix: Delivery Note field label set

* fix: Item field label de-duplicate name

* fix: Payment Entry field label de-duplicate name

* fix: Pruicing Rule field label de-duplicate name

* fix: Project field label de-duplicate name

* fix: Timesheet field label de-duplicate name

* Update erpnext/accounts/doctype/pricing_rule/pricing_rule.json

Co-authored-by: Sagar Sharma <sagarsharma.s312@gmail.com>

* Update erpnext/stock/doctype/item/item.json

Co-authored-by: Sagar Sharma <sagarsharma.s312@gmail.com>

---------

Co-authored-by: Sagar Sharma <sagarsharma.s312@gmail.com>
2023-02-16 13:46:19 +05:30
Sagar Sharma
e8b8c51d82 chore: update CODEOWNERS 2023-02-16 12:55:37 +05:30
Sagar Sharma
fb5796f18f Merge branch 'develop' into purchase-order-portal 2023-02-16 11:22:19 +05:30
Tej Pochiraju
3f44ef8790 Allow bulk import of party specific item (#34083)
Co-authored-by: Tej Pochiraju <tej@iotready.co>
2023-02-16 10:11:25 +05:30
Sagar Sharma
471e77b931 Merge branch 'develop' into purchase-order-portal 2023-02-15 22:46:07 +05:30
Sagar Sharma
c793fb0bb4 Merge pull request #34086 from s-aga-r/github-issue-33930
fix: create `Delivery Trip` from `Delivery Note` list
2023-02-15 22:40:10 +05:30
Sagar Sharma
c7a540b7e2 Merge branch 'develop' into github-issue-33930 2023-02-15 22:37:52 +05:30
s-aga-r
6c6195bae6 fix: create Delivery Trip from Delivery Note list 2023-02-15 22:37:26 +05:30
Sagar Sharma
421e34a181 Merge branch 'develop' into purchase-order-portal 2023-02-15 21:49:09 +05:30
Sagar Sharma
0cd69c8700 Merge pull request #34080 from s-aga-r/batch-no-item
chore: copy `item_code` to `Batch` while creating new batch from SCR
2023-02-15 21:39:07 +05:30
Sagar Sharma
46afbb594a Merge branch 'develop' into fix-reserve-qty 2023-02-15 21:37:30 +05:30
s-aga-r
ffa9c6e4d9 chore: copy item_code to Batch while creating new batch from SCR 2023-02-15 20:16:42 +05:30
s-aga-r
20bdc63b03 fix: show Purchase Order Portal Pay button based on configuration 2023-02-15 20:14:39 +05:30
marination
74fab53e28 test: Alternative items in Quotation
- Taxes and totals, mapping, back updation
2023-02-15 15:04:00 +05:30
s-aga-r
d7ef5ad955 chore: add field show_pay_button in Buying Settings 2023-02-15 14:43:10 +05:30
Marica
22010b745c Merge branch 'develop' into alternative-items-quotation 2023-02-15 13:05:33 +05:30
Anand Baburajan
d3ff289779 Merge pull request #34057 from AnandBaburajan/more_asset_bug_fixes
fix: manual depr entries in asset_depreciations_and_balances report and some misc bugs [develop]
2023-02-15 12:32:35 +05:30
Anand Baburajan
ef56060166 Merge branch 'develop' into more_asset_bug_fixes 2023-02-15 11:55:55 +05:30
rohitwaghchaure
2e43123048 Merge pull request #34065 from barredterra/print-rfq-letterhead
fix: change parameter name for letter head
2023-02-15 09:31:06 +05:30
rohitwaghchaure
9235918d65 Merge pull request #34061 from rohitwaghchaure/feat-allow-to-make-in-transit-entry
feat: allow to make in transit transfer entry from material request
2023-02-15 09:08:22 +05:30
barredterra
d5b7f2e49e test: download RFQ PDF 2023-02-14 19:53:39 +01:00
barredterra
8e40c04494 refactor: download RFQ PDF 2023-02-14 19:53:03 +01:00
barredterra
f7fd30fecf fix: change parameter name for letter head
To match changes from https://github.com/frappe/frappe/pull/19627
2023-02-14 19:34:36 +01:00
Devin Slauenwhite
4c5147f270 Merge: upstream/develop into pps190/fix-reserve-qty 2023-02-14 10:22:54 -05:00
Deepesh Garg
e69ea17f59 Merge pull request #34059 from AnandBaburajan/anand_codeowners
chore: add anand to asset's codeowner
2023-02-14 19:38:46 +05:30
Rohit Waghchaure
5b6128848f feat: allow to make in transit transfer entry from material request 2023-02-14 19:03:07 +05:30
Anand Baburajan
662ebc5c1a Merge branch 'develop' into anand_codeowners 2023-02-14 18:35:05 +05:30
anandbaburajan
d003370f61 chore: add anand to asset's codeowner 2023-02-14 18:33:01 +05:30
Anand Baburajan
b0cfb0b9ef Merge branch 'develop' into more_asset_bug_fixes 2023-02-14 18:09:55 +05:30
anandbaburajan
a58f2e6c03 fix: asset_depreciation_and_balances report doesn't reflect manual depr entries 2023-02-14 17:59:16 +05:30
Sagar Sharma
75d9dbca43 Merge pull request #34018 from s-aga-r/fix-so-on-hold
fix: update `reserved_qty` when `Sales Order` marked as `Hold`
2023-02-14 16:51:56 +05:30
Sagar Sharma
447310702e Merge branch 'develop' into fix-so-on-hold 2023-02-14 16:01:43 +05:30
ruthra kumar
960085853a Merge pull request #34048 from ruthra-kumar/typeerror_on_sales_order_analysis
fix: typeerror on Sales Order analysis report
2023-02-14 15:27:36 +05:30
Sagar Sharma
5faa62c49a Merge branch 'develop' into fix-so-on-hold 2023-02-14 11:06:10 +05:30
rohitwaghchaure
3014bac293 Merge pull request #34046 from FHenry/dev_fix_BOM_import
fix: BOM import failed as use same label field for Raw Materials Item table and Scrap Item table
2023-02-14 10:29:26 +05:30
ruthra kumar
00a4191966 fix: typeerror on Sales Order analysis report 2023-02-14 09:56:35 +05:30
Raffael Meyer
770369e5c1 feat: translate fixtures during runtime, not installation (#33996)
feat: install untranslated fixtures from files

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-02-14 09:29:27 +05:30
Florian HENRY
86be259341 fix: BOM import failed as importer use same label field for Raw MaterialsItem table and Scrap Item table 2023-02-13 23:34:20 +01:00
Deepesh Garg
ce748cec3a fix: Amount validation in Payment Request against Purchase Order (#34042) 2023-02-13 20:56:24 +05:30
HENRY Florian
231fe4156f fix: should never get cutomer price on purchase document (#34002)
* fix: never get cutomer price on purchase document

chores: syntax

chore: typo in stock_entry get_uom_details (#33998)

fix: typo in stock_entry get_uom_details

chores: syntax

* feat: add test for get_item_detail price list oriented

* feat: add test for get_item_detail price price oriented

* feat: add test for get_item_detail price price oriented

* chore: clean test code
2023-02-13 20:56:05 +05:30
anandbaburajan
c533213225 fix: opening_accumulated_depreciation and precision in charts 2023-02-13 17:22:31 +05:30
Deepesh Garg
ff4ae69408 Merge branch 'develop' into gross_profit_memory_and_performance_issue 2023-02-13 15:38:26 +05:30
Deepesh Garg
a67284e96d fix: Concurrency issues in Sales and Purchase returns (#34019) 2023-02-13 15:31:19 +05:30
ruthra kumar
4f2553e7b6 Merge pull request #34021 from ruthra-kumar/handle_rare_cases_of_null_in_outstanding_calculation
fix: rare instances of IntegrityError while cancelling journals against cr note
2023-02-13 14:14:27 +05:30
ruthra kumar
192a3395a5 refactor: filter only immediate upcoming payment term for each SO (#33923)
* fix: ignore closed or 'on hold' orders

* refactor: filter immediate upcoming term

---------

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-02-13 12:36:40 +05:30
ruthra kumar
e5a2b15fba fix: unwanted difference amount calculation on cr note and invoice with same currency (#34020)
* fix: incorrect difference amount while reconiling cr/dr notes

* fix(test): catch incorrect difference amount calculation

Fixed issues where difference amount was calculated for Cr Notes and Invoices of
the same currency.

---------

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-02-13 12:08:42 +05:30
Deepesh Garg
148703bfc2 feat: Setting to allow Sales Order creation against expired quotation (#33952)
* feat: Setting to allow Sales Order creation against expired quotation

* chore: linting issues
2023-02-13 10:27:55 +05:30
Deepesh Garg
ce3f9622cb Merge branch 'develop' into handle_rare_cases_of_null_in_outstanding_calculation 2023-02-13 09:42:41 +05:30
Deepesh Garg
48bb2c942b fix: Ignore Payment Ledger Entry on dunning cancel (#34025)
* fix: Ignore Payment Ledger Entry on dunning cancel

* chore: fix translation issue
2023-02-13 09:42:01 +05:30
Deepesh Garg
77f6789706 Revert "Update tr.csv" (#34026)
Revert "chore: Update Turkish translations (#33985)"

This reverts commit 6ea0a69d3a.
2023-02-13 08:27:00 +05:30
ruthra kumar
3e5691072a perf: fetch SLE's on demand and memoize 2023-02-12 14:49:17 +05:30
ruthra kumar
b9a7ff7c3d fix: IntegrityError while cancelling journals against cr note 2023-02-12 14:06:40 +05:30
Sagar Sharma
b0e8dfc1d0 Merge branch 'develop' into fix-so-on-hold 2023-02-12 13:37:21 +05:30
s-aga-r
d76759e066 fix: update reserved_qty when Sales Order marked as Hold 2023-02-12 13:36:26 +05:30
Richard Case
a0eb5e5535 fix: add payment hook to point of sale JS (#33988) 2023-02-11 20:40:15 +05:30
Raffael Meyer
e4953df4a3 fix: set per_billed based on hours when amounts are zero (#33984)
* fix: set per_billed based on hours when amounts are zero

* test: calculate_percentage_billed
2023-02-11 12:36:37 +05:30
Sabu Siyad
0df28c7174 fix(ecommerce): throw invalid doctype error in shop by category (#33901)
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-02-11 12:28:42 +05:30
Raffael Meyer
201573ab9a refactor: install fixtures (#33964)
* refactor: install fixtures

* style: disable semgrep for install_defaults signature
2023-02-11 12:15:42 +05:30
Deepesh Garg
0efdc6c13a fix: Ignore mandatory fields while creating tax templates for new companies (#34005) 2023-02-11 12:03:48 +05:30
Raffael Meyer
ab7293bcd3 fix: list view for Terms and Conditions (#33925)
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-02-11 11:09:26 +05:30
Mehmet Demirel
6ea0a69d3a chore: Update Turkish translations (#33985)
We are the ERPNext Turkey Team.
We request confirmation of the translation we sent.
2023-02-11 09:27:18 +05:30
Deepesh Garg
e478a5d0ce feat: Add filters in Loan Interest Report (#33907) 2023-02-11 09:17:24 +05:30
Deepesh Garg
47c91324b1 fix: Amount for debit and credit notes with 0 qty line items (#33902) 2023-02-11 09:04:00 +05:30
Akshay
185c543b73 chore: typo in stock_entry get_uom_details (#33998)
fix: typo in stock_entry get_uom_details
2023-02-10 20:42:35 +05:30
Devin Slauenwhite
5685492995 Merge remote-tracking branch 'frappe/develop' into fix-reserve-qty
# Conflicts:
#	erpnext/stock/doctype/delivery_note/test_delivery_note.py
2023-02-09 13:48:18 -05:00
Marica
bd7e6e264e Merge branch 'develop' into alternative-items-quotation 2023-02-06 16:30:10 +05:30
marination
db2076db69 refactor: Order based alternative items mapping
- Alternatives must be followed by a non-alternative item row
- On submit, store non-alternative rows in hidden checkbox to avoid recomputation
- Check for valid/mappable rows by row name
- UI: Select from table rows.Add single row for original/alternative item in dialog
- UI: Indicator for alternative items in dialog grid
- UI: Indicator legend and description of table
- DB: Added check field 'Has Alternative Item' not to be confused with 'Has Alternative' in Mfg
2023-02-06 16:25:38 +05:30
Anand Baburajan
9d8502f406 Merge pull request #33946 from AnandBaburajan/cancel_pi_cancelled_asset
fix: allow cancelling purchase invoice if linked asset is already cancelled
2023-02-05 16:06:47 +05:30
Anand Baburajan
4686217d3c Merge branch 'develop' into cancel_pi_cancelled_asset 2023-02-05 14:14:39 +05:30
Anand Baburajan
52435a3a7f Merge pull request #33945 from AnandBaburajan/manual_depr_entries_develop
fix: manual depr entry not updating asset value [develop]
2023-02-05 14:14:19 +05:30
Anand Baburajan
396f455258 Merge branch 'develop' into cancel_pi_cancelled_asset 2023-02-05 12:19:21 +05:30
Anand Baburajan
f8270f093d Merge branch 'develop' into manual_depr_entries_develop 2023-02-05 12:19:17 +05:30
Sagar Sharma
05f4b659a7 Merge pull request #33942 from s-aga-r/github-issue-33533
fix: stock entry from item dashboard (stock levels)
2023-02-05 09:46:27 +05:30
Sagar Sharma
2fedd595a9 Merge branch 'develop' into github-issue-33533 2023-02-05 09:36:17 +05:30
rohitwaghchaure
0352e1dace Merge pull request #33936 from rohitwaghchaure/fixed-negative-stock-error
fix: negative stock error
2023-02-04 23:34:56 +05:30
rohitwaghchaure
7d794bc70a Merge branch 'develop' into fixed-negative-stock-error 2023-02-04 22:35:58 +05:30
rohitwaghchaure
67b5471d09 Merge pull request #33941 from developsessions/fix_wrong_due_date_calculation
fix: default due_date was wrong calculated on template "_Test Payment Term Template 1" (last day of next month)
2023-02-04 22:34:47 +05:30
Anand Baburajan
82490d9f55 Merge branch 'develop' into cancel_pi_cancelled_asset 2023-02-04 18:37:34 +05:30
Anand Baburajan
07a0e2b7a8 Merge branch 'develop' into manual_depr_entries_develop 2023-02-04 18:37:34 +05:30
developsessions
c8cd351b39 style: apply results of lint run 2023-02-04 09:12:29 +01:00
Sagar Sharma
4a6a7593c3 Merge pull request #33940 from s-aga-r/github-issue-33917
chore: report `Warehouse wise Item Balance Age and Value`
2023-02-04 13:27:57 +05:30
anandbaburajan
3380dc5dea chore: use continue, not break 2023-02-04 11:20:26 +05:30
developsessions
9d0096ad9e fix: failed test, convert date time to string 2023-02-03 21:21:43 +01:00
Anand Baburajan
bb424965ee Merge branch 'develop' into cancel_pi_cancelled_asset 2023-02-03 23:00:40 +05:30
anandbaburajan
b961321de5 fix: allow PI cancel if linked asset is cancelled 2023-02-03 22:58:22 +05:30
Anand Baburajan
2d54bf7199 Merge branch 'develop' into manual_depr_entries_develop 2023-02-03 22:25:27 +05:30
anandbaburajan
e5da0d7a63 chore: refactor AssetDepreciationSchedule 2023-02-03 22:23:17 +05:30
anandbaburajan
8ea9e4576f fix: asset value for manual depr entries 2023-02-03 21:43:18 +05:30
developsessions
be1f941996 fix: Add missing 1 required positional argument: 'bill_date' 2023-02-03 14:50:44 +01:00
developsessions
c80aaad437 style: lint wrong from position 2023-02-03 13:55:36 +01:00
s-aga-r
dc0ddf8d7e fix: stock entry from item dashboard (stock levels) 2023-02-03 18:08:34 +05:30
developsessions
ce8a1086a7 fix: default due_date was wrong calculated on template "_Test Payment Term Template 1" (last day of next month) 2023-02-03 11:30:29 +01:00
s-aga-r
56356ffbb9 chore: add Item Name column in Warehouse wise Item Balance Age and Value report 2023-02-03 12:28:23 +05:30
s-aga-r
d7a665cb84 chore: column width in Warehouse wise Item Balance Age and Value report 2023-02-03 12:27:41 +05:30
Rohit Waghchaure
9ae7578b07 test: test case 2023-02-02 18:54:42 +05:30
Rohit Waghchaure
6d513e2519 fix: negative stock error 2023-02-02 18:40:15 +05:30
marination
03321f5f13 chore: Code simplification
- Map is not required, avoid filter multiple times, use single loop instead
- Better variable name
- Reduce LOC
2023-02-02 17:28:03 +05:30
ruthra kumar
2afed7de03 Merge pull request #33777 from ruthra-kumar/performance_tuning_remarks_migration
fix(patch): reduce memory usage while migrating remarks
2023-02-02 16:47:15 +05:30
ruthra kumar
ae2de3cf65 Merge pull request #33776 from ruthra-kumar/performance_tuning_ple_migration
patch: reduce memory usage by paging through records
2023-02-02 16:46:51 +05:30
ruthra kumar
cb1d33880c Merge pull request #33502 from ruthra-kumar/toggle_account_balances_in_coa
feat: Toggle display of Account Balance in Chart of Accounts
2023-02-02 09:20:53 +05:30
marination
b3fe7c6dad fix: Consider only ordered alternative/original item for Quotation status
- The original and its alternatives make a set of items where one is chosen
- While setting order status of Quotation, check if the chosen item from the set is fully ordered or not
- Filter out unselected items from the set
- Create a map containing the set of items and if they were ordered or not for ease of grouping
- The simple items will work as it used to
2023-02-01 19:10:32 +05:30
Gokulnath
2884738864 feat: adding warehouse filter for gross profit report (#33397)
Co-authored-by: ruthra kumar <ruthra@erpnext.com>
2023-02-01 18:44:15 +05:30
rohitwaghchaure
fbf2d7e9de Merge pull request #33918 from rohitwaghchaure/fixed-incorrect-bin-qty
fix: incorrect actual qty in Bin
2023-02-01 18:22:56 +05:30
Rohit Waghchaure
f8c852c54c fix: incorrect actual qty in Bin 2023-02-01 17:49:11 +05:30
Suraj Shetty
ffeda0cee9 Merge pull request #33916 from gavindsouza/permlevel-apis 2023-02-01 16:24:18 +05:30
Dany Robert
2cc7239dd5 fix: currency formatting in item-wise sales history (#33903)
* fix(item-sales-history): currency formatting

* chore: linting issues

* fix: convert raw sql to qb
2023-02-01 14:27:38 +05:30
Gavin D'souza
940ad6e3f2 fix: Fetch all fields via get_returned_qty_map_for_row 2023-02-01 13:53:37 +05:30
Gavin D'souza
3518d4be1d fix(update_billing_percentage): Remove permlevel checks on aggregated
value
2023-02-01 12:58:08 +05:30
Raffael Meyer
3c7b460fd8 fix: german chart of accounts "SKR03" (#33909)
* fix: german chart of accounts "SKR03"

- Added some missing account types and tax rates
- Added some missing accounts

* style: convert indentation to tabs

* fix: space before percentage sign

* feat: add some expense accounts

* refactor: replace unicode characters with utf-8

for better readability

* revert: add back groups for Bank and Cash accounts

Removed in 7d0d9c6900
2023-02-01 12:16:58 +05:30
Deepesh Garg
103a91ed40 Merge pull request #33808 from dj12djdjs/fix-lead-rename
fix: make title field readonly
2023-02-01 12:02:33 +05:30
ruthra kumar
9bb64107c5 perf: reduce memory usage while migrating remarks
Page through records using primary key
2023-02-01 10:44:44 +05:30
Sagar Sharma
4ac983cf09 Merge pull request #33910 from barredterra/named-place-rfq
feat: add incoterm named place to RFQ
2023-02-01 10:40:09 +05:30
barredterra
7156184933 feat: add incoterm named place to RFQ 2023-01-31 23:23:54 +01:00
marination
ece6358e60 fix: Iterate over list instead of map's output and formatting 2023-01-31 17:13:05 +05:30
rohitwaghchaure
c5834c1db4 Merge pull request #33896 from rohitwaghchaure/inventory-dimension-mandatory
feat: mandatory and mandatory depends on in inventory dimension
2023-01-31 15:18:14 +05:30
rohitwaghchaure
ddb4396117 Merge pull request #33715 from s-aga-r/fix-pick-list
fix: consider existing pick-list
2023-01-31 15:10:19 +05:30
Sagar Sharma
510b265830 Merge pull request #33869 from s-aga-r/fix-mr-rate-and-amount
fix: `amount` in `Material Request`
2023-01-31 14:44:11 +05:30
s-aga-r
6ffdeb1af8 fix: consider stock_qty if picked_qty is zero 2023-01-31 14:39:57 +05:30
Rohit Waghchaure
22d0e1373b test: added test case 2023-01-31 14:36:26 +05:30
Rohit Waghchaure
423f2b5627 feat: mandatory and mandatory depends on in inventory dimension 2023-01-31 14:19:14 +05:30
Sagar Sharma
6e015fd6be Merge branch 'develop' into fix-mr-rate-and-amount 2023-01-31 12:39:38 +05:30
Sagar Sharma
57c8871de0 Merge branch 'develop' into fix-pick-list 2023-01-31 12:38:58 +05:30
s-aga-r
0b76a26c8a refactor: test_consider_existing_pick_list() 2023-01-31 12:38:30 +05:30
s-aga-r
bb7fe795fe test: add test cases 2023-01-31 12:38:30 +05:30
s-aga-r
207eeefc85 fix(test): test_pick_list_for_items_with_multiple_UOM() 2023-01-31 12:38:30 +05:30
s-aga-r
5138ef0160 fix: pymysql.err.ProgrammingError 2023-01-31 12:38:30 +05:30
s-aga-r
7b3d496ce0 fix: get_picked_items_details 2023-01-31 12:38:30 +05:30
s-aga-r
be41052dc8 chore: add status field in Pick List 2023-01-31 12:38:30 +05:30
s-aga-r
b642718f08 fix: consider existing pick list 2023-01-31 12:38:27 +05:30
Deepesh Garg
b3dc22de29 fix: Fetch commission rate from sales partner (#33851) 2023-01-31 09:33:33 +05:30
Anand Baburajan
e007776ada Merge pull request #33888 from barredterra/get-asset-value
fix(Fixed Asset Register): error when selecting more than one fiscal …
2023-01-31 01:59:53 +05:30
barredterra
11d165c274 fix(Fixed Asset Register): error when selecting more than one fiscal year 2023-01-30 19:33:58 +01:00
Anand Baburajan
3e5f8323b0 Merge pull request #33883 from AnandBaburajan/fix_disposal_was_made_on_original_schedule_date_develop
fix: disposal_was_made_on_original_schedule_date [develop]
2023-01-30 22:02:34 +05:30
Anand Baburajan
5d8a2d3d3b Merge branch 'develop' into fix_disposal_was_made_on_original_schedule_date_develop 2023-01-30 21:36:51 +05:30
anandbaburajan
f487660a7c fix: disposal_was_made_on_original_schedule_date 2023-01-30 21:33:43 +05:30
Deepesh Garg
2bad86d8d8 ci: bump isort to 5.12.0 (#33875)
[skip ci]
2023-01-30 19:58:23 +05:30
ruthra kumar
5f38859a04 Merge pull request #33736 from rtdany10/gp-report-fix
fix(gp): fetch buying amount from dn related to so
2023-01-30 19:04:36 +05:30
marination
fa9b327501 chore: Validate 'alternative_to' field values, must be a valid non-alterntaive item from table 2023-01-30 16:27:01 +05:30
Dany Robert
d69c839369 chore: linting issues 2023-01-30 10:45:08 +00:00
Dany Robert
1f6ab86a65 feat(gp): test for inv and dn related via so 2023-01-30 10:35:43 +00:00
marination
94cacb60de feat: Filter rows to be mapped on server side mapping function
- Pass dialog selections to `make_sales_order`
- Map either original item or its alternative depending on mapping
- Only qty check for simple rows (without alternatives and not an alternative itself)
2023-01-30 13:54:30 +05:30
s-aga-r
6b781d78e0 fix: amount in Material Request 2023-01-30 12:51:59 +05:30
Deepesh Garg
a34a1f8fd2 fix: Amount validation in Payment Request against Purchase Order (#33855)
fix: Amount validation in Payment Request againt Purchase Order
2023-01-29 21:34:28 +05:30
Deepesh Garg
faecf3ee40 fix: Lead to customer creation (#33859) 2023-01-29 21:25:49 +05:30
Deepesh Garg
6674edface chore: Resize numeric and date columns (#33858) 2023-01-29 21:25:26 +05:30
Deepesh Garg
428b099f63 fix: Ignore linked JE on JE cancellation (#33852) 2023-01-29 17:27:17 +05:30
Deepesh Garg
8abe0ce0ec fix: Currency symbol for tax withholding net total field (#33850)
* fix: Currency symbol for tax withholding net total field

* chore: Update display depends on property
2023-01-29 17:08:11 +05:30
ruthra kumar
fee0ca8cd9 perf: reduce memory usage by paging through records
While migrating GL entries to Payment Ledger, page through records using
primary key to reduce memory usage.
2023-01-29 15:27:01 +05:30
ruthra kumar
f270880735 fix: double salutation on quotation print (#33834)
'lead_name' always has salutation.
2023-01-28 18:17:25 +05:30
rohitwaghchaure
1b967f37af Merge pull request #33845 from rohitwaghchaure/fixed-item-not-fetching-issue
fix: item rate not fetching
2023-01-28 15:10:02 +05:30
Rohit Waghchaure
0d7f98b496 fix: item rate not fetching 2023-01-28 13:51:33 +05:30
Sabu Siyad
9e50aa4833 feat(pos): multiple item prices (#33005)
* fix(pos): multiple item prices

feat: show uom with product price
feat: multiple item (variant) depending on uom

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* feat(pos): consider uom for new item

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* feat(pos): uom based stock display

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* use `//` instead of `math.floor()`

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* feat(pos): uom by barcode

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* fix: replace `is not` with `!=`

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* fix(pos): barcode_info `next()`: fallback

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* chore: format

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* Update erpnext/selling/page/point_of_sale/point_of_sale.py

Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>

* chore: un-ignore unused local variable

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

---------

Signed-off-by: Sabu Siyad <hello@ssiyad.com>
Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com>
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-01-28 10:28:31 +05:30
Deepesh Garg
3598bcc9a8 chore: ERPNext setup wizard cleanup (#33675)
* chore: ERPNext setup wizard cleanup

* chore: Remove default website

* chore: Remove flaky tests

* chore: remove unwanted tests
2023-01-27 14:40:39 +05:30
ruthra kumar
9dd6b3c950 Merge pull request #33835 from ruthra-kumar/skip_validation_on_migration
fix(patch): validation error on cost center allocation migration
2023-01-27 13:40:57 +05:30
ruthra kumar
de10f2dc00 fix(patch): validation error on cost center allocation migration
If Distributed cost centers have GL postings on patch run date,
patch failes with valiation error.
2023-01-27 12:08:18 +05:30
Sagar Vora
7e592fdf91 Merge pull request #33831 from dj12djdjs/perf-update-items
perf: show update items dialog
2023-01-27 04:17:39 +00:00
Devin Slauenwhite
a835c1a418 perf: show update items dialog 2023-01-26 16:53:05 -05:00
ruthra kumar
b31b850db8 fix: disfuctional cost center filter on Journal Entries (#33815)
* fix: missing cost_center filter for journal entries

* test: cost center filter on invoices, journals and payments
2023-01-26 20:26:21 +05:30
Vishal Dhayagude
c5ca8d74c4 fix: GST Category validation broken for pos unregistered customer who dont have address. (#33800)
* fix: GST Category validation is given for pos customer
2023-01-26 15:45:51 +05:30
marination
cef7dfd0b4 feat: Dialog to select alternative item before creating Sales order
- Users can leave the row blank in the dialog if original item is to be used
- Else users can select an alternative item against an original item
- In the document, users must check `Is Alternative Item` if needed and also specify which item it is an altenrative to since there are no documented mappings
2023-01-26 14:36:25 +05:30
Anand Baburajan
e3d7426b47 Merge pull request #33823 from AnandBaburajan/fix_translations
chore: remove broken translation
2023-01-26 13:46:16 +05:30
anandbaburajan
21f425660d chore: remove broken translation 2023-01-26 13:15:01 +05:30
Ankush Menat
33b68552f1 chore: remove broken translation
[skip ci]
2023-01-25 17:35:23 +05:30
Daizy Modi
da323cbb40 fix: use correct filter name in item_query (#33814) 2023-01-25 17:32:21 +05:30
Sagar Vora
41222659a6 Merge pull request #33813 from frappe/revert-33810-fix-quality-inspection-item-query
Revert "fix: use correct filter name in reports"
2023-01-25 10:50:03 +00:00
Sagar Vora
1f4fa90072 Revert "fix: use correct filter name in reports" 2023-01-25 16:19:44 +05:30
Sagar Sharma
58dab9ca8b Merge pull request #33810 from resilient-tech/fix-quality-inspection-item-query
fix: use correct filter name in reports
2023-01-25 16:15:04 +05:30
Daizy Modi
def759d2e8 fix: use correct filter name in reports 2023-01-25 15:57:39 +05:30
marination
f19eadab9a feat: Consider filtered items table in JS for totals computation
- Set `_items` as filtered rows if quotation else the entire table. Set at entry point of JS API
- Use `_items` instead of `items` to compute taxes and charges. Exclude alternative item rows
2023-01-25 13:10:03 +05:30
Devin Slauenwhite
a504b6eac0 fix: make title field readonly 2023-01-24 18:21:08 -05:00
Rohit Waghchaure
92d857d49c fix: purchase invoice performance issue 2023-01-24 22:32:07 +05:30
marination
91982d1e4f feat: Filter out alternative item rows in taxes and totals for Quotation
- Added a Quotation Item field `is_alternative_item`
- Use filtered rows for taxes and totals computation
2023-01-24 18:03:53 +05:30
Sagar Sharma
a067a904a1 Merge pull request #33797 from s-aga-r/fix-sco-status
chore: add `Cancelled` status in SCO `get_indicator`
2023-01-24 17:33:57 +05:30
Sagar Sharma
302f5e27be Merge branch 'develop' into fix-sco-status 2023-01-24 17:33:29 +05:30
s-aga-r
840f9d8987 chore: add Cancelled status in SCO get_indicator 2023-01-24 17:30:37 +05:30
rohitwaghchaure
a5478c61af Merge pull request #33790 from rohitwaghchaure/fix-web-supplier-quotation-from-rfq
fix: web supplier quotation
2023-01-24 15:59:04 +05:30
Raffael Meyer
d155042edd ci: documentation helper (#33757)
refactor: documentation helper
2023-01-24 11:42:44 +05:30
Anand Baburajan
84383087a6 Merge pull request #33789 from AnandBaburajan/update_translations_for_naming_series_error
chore: update translations for naming series error
2023-01-23 18:48:10 +05:30
anandbaburajan
4e6066f929 chore: fix translations 2023-01-23 18:07:32 +05:30
Rohit Waghchaure
7800db7c0d fix: web supplier quotation 2023-01-23 14:21:10 +05:30
Anand Baburajan
7d5df407c4 Merge branch 'develop' into update_translations_for_naming_series_error 2023-01-23 14:19:39 +05:30
anandbaburajan
bbde1f611f chore: update translations for naming series error 2023-01-23 14:16:31 +05:30
s-aga-r
9ae3a54ce9 chore: add method get_picked_items_details() 2023-01-23 13:48:26 +05:30
rohitwaghchaure
b3a216c8f8 Merge pull request #33785 from rohitwaghchaure/get-items-from-transit-entry
feat: get items from Transit Stock Entry
2023-01-23 13:03:53 +05:30
Rohit Waghchaure
62141b0b63 feat: get items from Transit Stock Entry 2023-01-23 12:01:57 +05:30
Deepesh Garg
a3c89dbc10 fix: TDS deduction in payment entry (#33747)
* fix: TDS deduction in payment entry
2023-01-22 23:31:19 +05:30
Xeanth
ad437fd5ba fix: use stock qty to calculate POS reserved stock (#33735) 2023-01-22 18:06:01 +05:30
Sagar Sharma
7a8e89e2fe fix: incorrect rate and amount in MR Item (#33547)
* fix: incorrect `rate` and `amount` in MR Item
2023-01-22 18:04:13 +05:30
Sagar Sharma
72be489b1b Merge pull request #33778 from barredterra/fix-missing-const
fix: missing constant definition
2023-01-21 22:28:49 +05:30
barredterra
547d37b1db fix: missing constant definition 2023-01-21 17:29:43 +01:00
Deepesh Garg
2f03dcb5b6 fix: Better budget exceeding validation messages (#33713)
* fix: Better budget exceeding validation messages

* chore: remove unwanted changes
2023-01-21 19:33:14 +05:30
s-aga-r
57c3216683 refactor: rewrite get_available_item_locations_for_serial_and_batched_item query in QB 2023-01-21 14:05:51 +05:30
s-aga-r
5b76e8b193 refactor: rewrite get_available_item_locations_for_serialized_item query in QB 2023-01-21 12:45:39 +05:30
s-aga-r
58dd40a2d7 refactor: rewrite get_available_item_locations_for_other_item query in QB 2023-01-21 12:15:45 +05:30
rohitwaghchaure
f6f64083d2 Merge pull request #33760 from rohitwaghchaure/allow-to-change-bom-in-sco
fix: not able to change default BOM in the Subcontracting Order
2023-01-21 12:04:50 +05:30
s-aga-r
29bf787313 refactor: rewrite get_picked_items_qty query in QB 2023-01-21 11:28:23 +05:30
ruthra kumar
4cbd63edbf Merge pull request #33710 from openrefactory/patch-2
Removed an unnecessary check in code which always evaluates to true
2023-01-21 09:41:04 +05:30
OpenRefactory, Inc
49aed7ff69 fix: removed an unnecessary check which always evaluates to true 2023-01-21 06:15:51 +05:30
Kevin Shenk
e4bceaaf66 feat: Copy project_name, from_time, to_time from timesheet details to sales invoice (#33726)
feat: Copy project_name, from_time, to_time from timesheet details to sales invoice
2023-01-20 23:39:37 +05:30
rohitwaghchaure
b5d2eedfa6 Merge pull request #33759 from rohitwaghchaure/fix-incorrect-actual-qty-for-packed-item
fix: incorrect actual qty for the packed item
2023-01-20 23:38:55 +05:30
Rohit Waghchaure
11b2994fe8 fix: not able to change default BOM in the Subcontracting Order 2023-01-20 23:27:49 +05:30
Rohit Waghchaure
02566a02a8 fix: incorrect actual qty for the packed item 2023-01-20 22:38:56 +05:30
rohitwaghchaure
d462d6de06 Merge pull request #33595 from vishdha/fg_based_operating_cost
feat: Add operating cost based on bom quanity without creating job card
2023-01-20 22:36:42 +05:30
Dany Robert
1e607cd4c7 fix(pricing rule): free item duplication (#33746)
* fix(pricing rule): free item duplication

* chore: linting issues
2023-01-20 20:07:37 +05:30
Deepesh Garg
597ef0a498 fix: Short closed order, receipt and delivery note status on cancellation (#33743)
* fix: Short closed order, receipt and delivery note status on cancellation

* test: Cancelled status check
2023-01-20 19:44:06 +05:30
Raffael Meyer
327b6fdb32 fix: calculate correct amount for qty == 0 (#33739) 2023-01-20 19:35:27 +05:30
Sabu Siyad
a94aa7a79f fix(ecommerce): breadcrumb: fallback to /all-products (#33718)
* fix(ecommerce): breadcrumb: fallback to `/all-products`

* fix(item_group): use `==` instead of `is`

* test(ecommerce): breadcrumb
2023-01-20 18:54:54 +05:30
Ritwik Puri
17045f88a1 fix: use hash based naming for tax withheld vouchers child table (#33643) 2023-01-20 18:53:39 +05:30
Dany Robert
ef90e24931 chore: linting issue 2023-01-19 10:25:05 +00:00
Dany Robert
e8e20da78e fix(gp): fetch buying amount from dn related to so 2023-01-19 09:39:43 +00:00
Sagar Sharma
cceb7922a5 Merge pull request #33619 from SvbZ3r0/item-attr-abbr-lowercase
fix: rewrite logic for duplicate check in Item Attribute
2023-01-19 13:27:43 +05:30
Sagar Sharma
333b2ae721 Merge branch 'develop' into item-attr-abbr-lowercase 2023-01-19 12:55:49 +05:30
rohitwaghchaure
ecfebfec57 Merge pull request #33723 from rohitwaghchaure/fixed-issue-of-item-variant
fix: don't add template item in sales/purchase transaction
2023-01-19 12:42:04 +05:30
Rohit Waghchaure
2c83fff1a1 fix: don't add template item in sales/purchase transaction 2023-01-18 23:29:06 +05:30
mergify[bot]
cc569c955f fix: the frappe throw message is corrected in the group task validation (#33698)
fix: the frappe throw message is corrected in the group task validation (#33698)
2023-01-18 21:47:22 +05:30
Sagar Sharma
60ec7b6cde Merge pull request #33679 from s-aga-r/refactor/qb/pick-list
refactor: rewrite `pick_list.py` queries in `QB`
2023-01-18 18:26:08 +05:30
Sagar Sharma
f89600aee8 Merge branch 'develop' into refactor/qb/pick-list 2023-01-18 17:52:23 +05:30
rohitwaghchaure
e8e21ea4b4 Merge pull request #33712 from rohitwaghchaure/fixed-stock_rbnb-error
fix: local variable 'stock_rbnb' referenced before assignment
2023-01-18 16:36:20 +05:30
Rohit Waghchaure
1de4742ffb fix: local variable 'stock_rbnb' referenced before assignment 2023-01-18 15:29:39 +05:30
Sagar Sharma
eee3bd2554 Merge branch 'develop' into refactor/qb/pick-list 2023-01-18 13:01:59 +05:30
Deepesh Garg
6b31c27ed6 fix: Missing constructor args in Bank Reco Tool (#33705) 2023-01-17 21:03:39 +05:30
Vishal Dhayagude
c4e1f81ccb Merge branch 'develop' into fg_based_operating_cost 2023-01-17 19:20:37 +05:30
Anand Baburajan
d7522d40c0 Merge pull request #33682 from AnandBaburajan/misc_asset_fixes
fix: handle asset depr entries posting failure, improve asset depr schedules cancel notes and fix asset repair link [develop]
2023-01-17 16:23:13 +05:30
Anand Baburajan
c6cfacc108 Merge branch 'develop' into misc_asset_fixes 2023-01-17 15:09:37 +05:30
Deepesh Garg
db9beb3cdd fix: Rate from LDC in TDS reports (#33699) 2023-01-17 14:53:24 +05:30
Vishal Dhayagude
f19212b5c8 Merge branch 'develop' into fg_based_operating_cost 2023-01-17 13:02:25 +05:30
Anand Baburajan
d97127bff2 Merge branch 'develop' into misc_asset_fixes 2023-01-17 12:57:22 +05:30
Sagar Sharma
eeed3356ac Merge branch 'develop' into refactor/qb/pick-list 2023-01-17 12:25:16 +05:30
rohitwaghchaure
e68c4e2aa8 Merge pull request #33695 from rohitwaghchaure/fixed-patch-item_reposting_for_incorrect_sl_and_gl
fix: patch item_reposting_for_incorrect_sl_and_gl
2023-01-17 12:18:34 +05:30
Rohit Waghchaure
dbde3a3421 fix: patch item_reposting_for_incorrect_sl_and_gl 2023-01-17 11:47:53 +05:30
Anand Baburajan
c4d3a8a600 Merge branch 'develop' into misc_asset_fixes 2023-01-17 11:21:37 +05:30
Ankush Menat
64f7f3a12a chore: ignore b028
Very high false positive count. 

[skip ci]
2023-01-17 10:56:55 +05:30
Sagar Sharma
1cadef97bf Merge branch 'develop' into refactor/qb/pick-list 2023-01-17 10:08:36 +05:30
Sagar Sharma
e4cf0dced8 Merge pull request #33690 from FHenry/dev_fix_bug_from_78b438f6
fix: Sales Order Connections Tabs do not show linked Material Request or "+" button  (intoduce by #33304)
2023-01-17 10:05:49 +05:30
Sagar Sharma
fb950417bf Merge branch 'develop' into dev_fix_bug_from_78b438f6 2023-01-17 10:04:36 +05:30
Deepesh Garg
0639d9e32a chore: Typo in payment reconciliation (#33686) 2023-01-17 08:06:30 +05:30
Florian HENRY
e19161a8ee fix: Sales ORder Connections on Material Request 2023-01-16 21:03:18 +01:00
anandbaburajan
86cf5c89ab chore: add depr_entry_posting_status in create_asset 2023-01-17 00:31:21 +05:30
anandbaburajan
cebb5a42f4 chore: add missing /n in options 2023-01-17 00:26:50 +05:30
Anand Baburajan
011a4c3faa Merge branch 'develop' into misc_asset_fixes 2023-01-17 00:00:09 +05:30
rohitwaghchaure
66ae807a26 Merge pull request #33684 from rohitwaghchaure/fixed-work-order-summary
feat: [minor] date type based on filter in Work Order Summary report
2023-01-16 23:57:43 +05:30
rohitwaghchaure
d6915df81d Merge pull request #33680 from rohitwaghchaure/refactor-picked-qty
refactor: picked qty in sales order item
2023-01-16 23:31:56 +05:30
Rohit Waghchaure
20c8873208 feat: provision to select date type based on filter 2023-01-16 23:29:13 +05:30
anandbaburajan
a144bb01fe chore: stying 2023-01-16 23:26:39 +05:30
Anand Baburajan
070bc8badd Merge branch 'develop' into misc_asset_fixes 2023-01-16 23:23:12 +05:30
anandbaburajan
cf7b43f7f0 fix: handle_post_depr_entries_fail, show error alert and send email 2023-01-16 23:10:02 +05:30
Rohit Waghchaure
1bcff80074 refactor: picked qty in sales order item 2023-01-16 22:50:16 +05:30
Devin Slauenwhite
179a31ed5e feat: disable currency exchange api. (#33593) 2023-01-16 21:00:10 +05:30
anandbaburajan
61cd0f98fd fix: asset repair link and improve notes 2023-01-16 18:35:40 +05:30
Vishal Dhayagude
352dcddd6d Merge branch 'develop' into fg_based_operating_cost 2023-01-16 17:02:31 +05:30
Sagar Sharma
1769b45d4b Merge branch 'develop' into refactor/qb/pick-list 2023-01-16 16:04:20 +05:30
s-aga-r
0ed6552655 refactor: rewrite pick_list.py queries in QB 2023-01-16 16:01:40 +05:30
Deepesh Garg
adaeba1554 fix(minor): Label updates in Statement of Accounts (#33639)
fix(minor): Label updates in Satement of Accounts
2023-01-16 14:03:54 +05:30
Deepesh Garg
312625fdc5 fix: Patch to update reference_due_date in Journal Entry (#33616) 2023-01-16 13:43:54 +05:30
ruthra kumar
9627b46ee7 Merge pull request #33661 from ruthra-kumar/performance_tuning_payment_reconciliation
perf: improve reconciliation performance for JE with 100s of accounts
2023-01-16 09:41:17 +05:30
ruthra kumar
56aa1866da Merge pull request #33663 from ruthra-kumar/attribute_error_on_repost_ple_tool
fix: attribute error while submitting Repost PLE
2023-01-16 09:36:22 +05:30
Raffael Meyer
dceef0397a fix: allow to create sales order from expired quotation (#33582) 2023-01-16 08:53:37 +05:30
ruthra kumar
be382054e5 revert: Reverting changes done on 33495 (#33662)
'ordered_qty' will not be fetched from `tabBin`
2023-01-16 08:50:39 +05:30
ruthra kumar
333907b7a5 Revert "fix: Updating SO throws ordered_qty not allowed to change after submission" (#33646) 2023-01-16 08:49:35 +05:30
Poruri Sai Rahul
8119442c94 FIX: Remove usage of "six.string_types" (#33603)
FIX: Remove usage of six.string_types

six is no longer a dependency
2023-01-16 08:47:28 +05:30
Sagar Sharma
9069643504 Merge pull request #33664 from s-aga-r/so-ref-in-pick-list
chore: `Sales Order` link in `Pick List`
2023-01-15 23:04:53 +05:30
s-aga-r
b3759890d7 chore: Sales Order link in Pick List 2023-01-15 21:09:16 +05:30
ruthra kumar
2c50f43cdd fix: attribute error while submitting Repost PLE 2023-01-15 20:51:54 +05:30
ruthra kumar
828eaf0930 fix: minor filter issue while reconciliation tool from bench console 2023-01-15 18:09:51 +05:30
ruthra kumar
11cf694d9a perf: improve reconciliation speed on JE's with 1000's of rows
1. No need to keep old PLE's on reconciliation.
2. Added Validation to catch debit-credit mismatch on JE's
3. Only update outstanding amount for newly reconciled invoices
2023-01-15 17:51:46 +05:30
Raffael Meyer
67cf7e1728 refactor: use DocStatus (#33594) 2023-01-15 17:34:16 +05:30
Deepesh Garg
906ad10d16 fix: Return against internal purchase invoice (#33635) 2023-01-15 17:32:57 +05:30
Sagar Sharma
bfbc9ea8f7 Merge branch 'develop' into item-attr-abbr-lowercase 2023-01-15 12:55:01 +05:30
Sagar Sharma
242af681e9 Merge pull request #33651 from s-aga-r/fix/scr-rm-cost
fix: zero rm-cost in SCR
2023-01-14 23:11:12 +05:30
s-aga-r
f70d757b82 fix: zero rm-cost in SCR 2023-01-14 22:24:18 +05:30
Vishal Dhayagude
736afdf85a Merge branch 'develop' into fg_based_operating_cost 2023-01-13 10:03:50 +05:30
Sagar Sharma
c2b3843d80 Merge branch 'develop' into item-attr-abbr-lowercase 2023-01-13 00:49:21 +05:30
Ritwik Puri
e22d56484d chore: reuse doc object in test_pick_list_grouping_before_print (#33636) 2023-01-13 00:47:26 +05:30
Deepesh Garg
75e52d7108 Merge pull request #33608 from AnandBaburajan/fixed_asset_report_asset_value
fix: asset value in fixed asset register
2023-01-12 22:59:19 +05:30
Vishal Dhayagude
d63258ee9b Merge branch 'develop' into fg_based_operating_cost 2023-01-12 21:50:09 +05:30
unknown
2ca4d3fb71 fix: linting 2023-01-12 20:53:12 +05:30
Anand Baburajan
29088e1777 Merge branch 'develop' into fixed_asset_report_asset_value 2023-01-12 20:30:39 +05:30
Deepesh Garg
afb33f2049 Merge pull request #33271 from sonali8848/filters-on-bank-reconciliation
feat: Date filters on bank reconciliation tool
2023-01-12 18:25:05 +05:30
Deepesh Garg
232726288a chore: fix fieldnames and order 2023-01-12 17:44:07 +05:30
Ritwik Puri
cfb0bb1eaa fix: only group similar items in print format if group_same_items is checked in pick list (#33627)
* fix: only group similar items if group same items is checked in pick list

* test: non grouping of locations if group_same_items is false

Co-authored-by: Sagar Sharma <sagarsharma.s312@gmail.com>
2023-01-12 17:25:50 +05:30
ruthra kumar
e0db2670f9 Merge pull request #33622 from ruthra-kumar/fix_change_after_submission_on_error
fix: Updating SO throws ordered_qty not allowed to change after submission
2023-01-12 16:59:08 +05:30
Sagar Sharma
9ed7594f6e Merge pull request #33621 from s-aga-r/fix/validation/scr
chore: subcontracting validations
2023-01-12 15:49:30 +05:30
s-aga-r
b26e96cdf4 chore: linter 2023-01-12 13:41:53 +05:30
ruthra kumar
391f42db04 fix: Updating SO throws ordered_qty not allowed to change after submission 2023-01-12 13:18:03 +05:30
s-aga-r
f028bd6e69 fix: validate accepted and rejected qty in SCR Item 2023-01-12 12:23:40 +05:30
s-aga-r
a0e2a93f3f chore: update error msgs for Subcontracted PO 2023-01-12 12:09:28 +05:30
s-aga-r
6878f40d1d chore: add row-index in error msgs 2023-01-12 12:02:00 +05:30
s-aga-r
434aa594d5 fix: ZeroDivisionError: float division by zero in SCR 2023-01-12 11:49:41 +05:30
unknown
974e12c837 fix: rewrite logic for duplicate check in Item Attribute
Previously, Item Attribute values were not checked for case-insensitive duplicates, and Item tttribute abbreviations were forced to be uppercase. This commit fixes both problems.
2023-01-12 07:44:57 +05:30
Vishal Dhayagude
467a2b5cb4 Merge branch 'develop' into fg_based_operating_cost 2023-01-11 22:30:36 +05:30
Vishal
694fc3e20c fix: hide with_operation on selection on fg_based and vice versa 2023-01-11 18:52:30 +05:30
Sagar Sharma
9ab8aa49d6 Merge pull request #33611 from vorasmit/fix-diff-value
fix: better comparision of `difference_value` of Stock and Account
2023-01-11 14:52:49 +05:30
Sagar Sharma
887ae1c434 Merge branch 'develop' into fix-diff-value 2023-01-11 14:01:51 +05:30
Smit Vora
be05aea101 fix: better comparision of difference value between stock and account 2023-01-11 05:21:13 +00:00
anandbaburajan
aa1f2a7297 fix: asset value in fixed asset register 2023-01-10 23:05:09 +05:30
Smit Vora
e0f5ecdad6 fix: RFQ emails not sent with pdf attachment (#33604) 2023-01-10 20:40:12 +05:30
vr-greycube
0f0bc9a462 fix: customer selection not mandatory in purchase invoice to fetch item details (#33572) 2023-01-10 20:26:33 +05:30
Deepesh Garg
0ed938a490 fix: Incorrect exchange rate in payment entries (#33481)
* fix: Incorrect exchange rate in payment entries

* test: Update failing tests
2023-01-10 20:12:43 +05:30
rohitwaghchaure
58ad79d3e8 Merge pull request #33597 from rohitwaghchaure/do-not-check-other-warehouse
fix: don't check other warehouse ledgers to calculate valuation rate
2023-01-10 13:56:10 +05:30
Vishal
a5cbdea8e4 fix: minor change in bom.js added 2023-01-10 13:40:12 +05:30
Rohit Waghchaure
ef2bf3c223 fix: don't check other warehouse ledgers to calculate valuation rate 2023-01-10 10:59:50 +05:30
Ankush Menat
8a56df695d perf: Drop name part from posting sort index (#33551) 2023-01-10 09:54:15 +05:30
Vishal
c51f9e0a97 fix: bom.json updated 2023-01-10 07:48:26 +05:30
Vishal
f0c0a64984 fix: test case added for FG_BASED OPERTING COST 2023-01-10 07:43:28 +05:30
Vishal
ddc0127e05 fix: minor changes added 2023-01-10 07:43:20 +05:30
Vishal
b559245f2a feat: Add operating cost based on bom quanity without creating job card 2023-01-10 07:43:05 +05:30
rohitwaghchaure
59628f1934 Merge pull request #33579 from rtdany10/repack-fg-valuation
fix(stock entry): wrong valuation rate in repack
2023-01-10 00:05:56 +05:30
rohitwaghchaure
a424acbfcb Merge pull request #33577 from rohitwaghchaure/timeout-error-in-purchase-invoice
fix: Timeout error while saving the purchase invoice
2023-01-10 00:01:15 +05:30
rohitwaghchaure
461f8e7724 Merge pull request #33590 from frappe/revert-33347-fb_based_operating_cost
Revert "feat: Add operating cost based on bom quanity without creating job card"
2023-01-09 23:37:13 +05:30
rohitwaghchaure
d749c4aac2 Revert "feat: Add operating cost based on bom quanity without creating job card" 2023-01-09 23:35:11 +05:30
rohitwaghchaure
20fe1875e7 Merge pull request #33347 from vishdha/fb_based_operating_cost
feat: Add operating cost based on bom quanity without creating job card
2023-01-09 23:31:41 +05:30
Gughan Ravikumar
4d5067d6d4 fix(accounts): currency fields no longer read as strings by validation function in Payment Entry (#33535)
explicitly cast paid_amount and received_amount to float in the Payment Entry set_unallocated_amount validation function
2023-01-09 23:26:51 +05:30
ruthra kumar
bbe5e5d9d6 fix: incorrect warehouse and selling amount on bundled products (#33549) 2023-01-09 22:45:43 +05:30
Sagar Sharma
dd3b79b511 Merge pull request #33562 from ruthra-kumar/better_handling_of_duplicate_bundle_items
fix: better handling of duplicate bundle items
2023-01-09 22:22:57 +05:30
Devin Slauenwhite
6bc8bb26b6 fix: customer/supplier quick entry dialog (#33496)
* fix: readonly primary contact fields.

* refactor: supplier and customer quick entry form into common class.
2023-01-09 22:22:19 +05:30
Rohit Waghchaure
ec171fc7c1 test: test case to check disable last purchase rate 2023-01-09 22:02:35 +05:30
Sagar Sharma
b56c1ed050 Merge branch 'develop' into better_handling_of_duplicate_bundle_items 2023-01-09 21:48:48 +05:30
Deepesh Garg
f056e9e7c5 Merge pull request #33569 from ruthra-kumar/patch_to_update_new_je_type_in_property_setters
chore: patch property setters for JE with new entry type
2023-01-09 21:01:52 +05:30
Deepesh Garg
57a6c37833 Merge pull request #32933 from AnandBaburajan/asset_depreciation_schedule
feat: separating depreciation schedule from assets into a new doc
2023-01-09 20:47:21 +05:30
sonali
917b2190aa fix: remove comments 2023-01-09 20:07:24 +05:30
Ankush Menat
fa4af2acce refactor: convert heatmap queries to QB (#33581)
Uses new `UnixTimestamp` function, don't backport.
2023-01-09 20:00:22 +05:30
safvanhuzain
99f5e869e0 fix(stock entry): wrong valuation rate in repack 2023-01-09 13:11:37 +00:00
Rohit Waghchaure
05df8579cd fix: linters issue 2023-01-09 18:23:22 +05:30
Ankush Menat
7ee151880a chore: instructions for running forks
[skip ci]
2023-01-09 18:16:04 +05:30
Rohit Waghchaure
d1d4671320 feat: provision to disable get last purchase rate
fix: set_incoming_rate condition
2023-01-09 18:10:52 +05:30
Rohit Waghchaure
7249657d15 fix: timeout error in the Purchase Invoice 2023-01-09 14:53:54 +05:30
Raffael Meyer
a4cb0313dd chore: test with wkhtmltopdf 12.6 (#33554)
* chore: test with latest wkhtmltopdf

* chore: check ubuntu version

* ci: check exit code of wk install

Co-authored-by: Ankush Menat <ankush@frappe.io>
2023-01-09 14:27:34 +05:30
Ankush Menat
1ad1fc4c7d ci: bump node in release workflow (#33574)
[skip ci]
2023-01-09 13:25:05 +05:30
rohitwaghchaure
44f32f7521 Merge pull request #33568 from dj12djdjs/fix-manufacture-field-tab
fix: move `include_item_in_manufacturing` into Manufacturing Tab
2023-01-09 12:25:40 +05:30
ruthra kumar
789e448f0e chore: patch property setters for JE with new entry type 2023-01-08 11:45:28 +05:30
Devin Slauenwhite
e35ac4f8c2 fix: move include in manufacturing to manufacturing tab. 2023-01-07 22:47:16 -05:00
ruthra kumar
c717e87c9e fix: better handling of duplicate bundle items 2023-01-06 16:21:20 +05:30
rohitwaghchaure
525f054c45 Merge pull request #33548 from rohitwaghchaure/fixed-incorrect-wo-status
fix: incorrect status in the work order
2023-01-06 16:01:24 +05:30
Rohit Waghchaure
b0baba84a0 fix: incorrect status in the work order 2023-01-06 14:16:18 +05:30
ruthra kumar
51b082b43c Merge pull request #33537 from ruthra-kumar/sales_partner_in_ar_report
refactor: Sales Partner column in AR and AR Summary Report
2023-01-06 12:07:50 +05:30
Vishal
9fd1c3efb4 fix: test case added for FG_BASED OPERTING COST 2023-01-06 11:18:09 +05:30
Vishal
6b0b49ee3f fix: minor changes added 2023-01-06 11:18:09 +05:30
Vishal
bc1bdd58a7 feat: Add operating cost based on bom quanity without creating job card 2023-01-06 11:18:09 +05:30
Sagar Sharma
f4a1218467 Merge pull request #33543 from s-aga-r/fix/github-issue/25162
chore: enable `No Copy` attribute for `route` in Item Group
2023-01-05 13:01:53 +05:30
s-aga-r
348dc32514 chore: enable No Copy attribute for route in Item Group 2023-01-05 12:25:50 +05:30
rohitwaghchaure
f6da6ece0a Merge pull request #33524 from rohitwaghchaure/revamp-process-loss-feature
refactor: revamp process loss feature & added tab breaks
2023-01-04 18:37:32 +05:30
ruthra kumar
ee94127974 refactor: Sales Partner column in AR and AR Summary Report 2023-01-04 12:41:02 +05:30
Anand Baburajan
3ae47ab32c Merge branch 'develop' into asset_depreciation_schedule 2023-01-04 01:34:08 +05:30
Rohit Waghchaure
524c0994e0 test: test cases for process loss 2023-01-03 22:47:52 +05:30
Deepesh Garg
c78399c618 fix: Missing opening entry in general ledger (#33519) 2023-01-03 21:35:03 +05:30
Deepesh Garg
1a83a67d41 fix: Get payment entry button not visible in Bank Clearance doc (#33518) 2023-01-03 21:34:49 +05:30
Rohit Waghchaure
ae039777f9 refactor: revamp process loss feature & added tab breaks 2023-01-03 19:05:41 +05:30
Sagar Sharma
d3b74a868e Merge pull request #33514 from s-aga-r/fix/github-issue/33417
fix: set `supplier` details while mapping SE(Send to Subcontractor)
2023-01-03 18:57:07 +05:30
Sagar Sharma
9f59330fa9 Merge branch 'develop' into fix/github-issue/33417 2023-01-03 18:51:27 +05:30
Deepesh Garg
a3ab8f973a fix: Deferred revenue date comparison (#33515) 2023-01-03 17:51:41 +05:30
s-aga-r
751bdc98ed fix: set supplier details while mapping SE(Send to Subcontractor) 2023-01-03 17:17:23 +05:30
Deepesh Garg
9a3d947e89 fix: Exchange gain and loss booking on multi-currency invoice reconciliation (#32900)
* fix: Exchange gain and loss booking on multi-curreny invoice reconciliation

* test: Update test cases

* chore: Ignore SQL linting rule

* chore: Joural Entry for exchange gainand loss booking

* chore: Journal entry for exchange gain loss booking

* test: Update test case

* chore: Default exchange gain and loss account
2023-01-03 16:55:15 +05:30
Anand Baburajan
d9c91fa072 Merge branch 'develop' into asset_depreciation_schedule 2023-01-03 15:10:07 +05:30
anandbaburajan
312e51e8b2 chore: more refactoring and adding test for duplicate asset_depr_schedule 2023-01-03 15:09:04 +05:30
anandbaburajan
adb5249257 chore: fix patch 2023-01-03 13:03:12 +05:30
anandbaburajan
7b6b5ae581 chore: refactoring patch 2023-01-03 09:21:08 +05:30
anandbaburajan
e501c2db51 chore: just testing patch 2023-01-02 21:11:53 +05:30
anandbaburajan
357c17214d chore: fix patch 2023-01-02 20:32:29 +05:30
rohitwaghchaure
6a4e25c1f9 Merge pull request #33504 from rohitwaghchaure/fixed-incorrect-picked-qty-in-so
fix: [concurrency issue] incorrect picked qty in sales order
2023-01-02 20:12:05 +05:30
Rohit Waghchaure
aba83849a6 fix: [concurrency issue] incorrect picked qty in sales order 2023-01-02 18:46:22 +05:30
Anand Baburajan
72c2e77a5d Merge branch 'develop' into asset_depreciation_schedule 2023-01-02 17:07:58 +05:30
anandbaburajan
7c5168eeac chore: allow manually submitting and cancelling asset depr schedule 2023-01-02 17:07:28 +05:30
ruthra kumar
914b23038c refactor: Exchange rate revaluation to handle accounts with zero account balance (#33165)
* refactor: new type for JE - Exchange Gain or Loss

* refactor: skip few validations for Exchanage Gain Or Loss type Jour

* refactor: ERR create 2 journals for handling zero and non-zero compa

1. Additional check box accounts table to identify accounts with zero balance
2. Accounts with zero balance only in either of the 2 currencies will be handled on separate Journal

* refactor: skips few validation for allowing 0 debit/credit

* fix: General Ledger presentaion currency

* test: fix test case in general ledger

* test: fix failing test case in AR report
2023-01-02 14:33:14 +05:30
ruthra kumar
23fbe86d51 refactor: Show Balance in COA based on Accounts Settings 2023-01-02 13:32:01 +05:30
ruthra kumar
1b78fae6fc refactor: show balance checkbox in Accounts Settings 2023-01-02 13:31:56 +05:30
Sagar Sharma
a7b011aed4 Merge pull request #33444 from s-aga-r/fix/github-issue/28766
fix: consider child nodes while getting bin details
2023-01-02 11:54:11 +05:30
s-aga-r
b425c2d7ec Merge branch 'develop' into fix/github-issue/28766 2023-01-02 11:25:13 +05:30
Sagar Sharma
332f4dc028 Merge pull request #33495 from dj12djdjs/fix-get-bin-details
fix(stock): missing ordered_qty in get_bin_details
2023-01-02 11:14:25 +05:30
Sagar Sharma
e18b0ebe92 Merge branch 'develop' into fix-get-bin-details 2023-01-02 10:49:29 +05:30
Sagar Sharma
49025db33c Merge branch 'develop' into fix/github-issue/28766 2023-01-02 10:27:42 +05:30
Marc de Lima Lucio
3c393bfdc5 fix: javascript: execution blocked by undefined route options (#33405)
Some implementations of DocField.get_route_options_for_new_doc() returned no value instead of an empty object in some cases, which caused a JavaScript error.
2023-01-02 09:18:25 +05:30
MOHAMMED NIYAS
d054f37602 feat: calculate hours (#33464)
* feat: calculate hours

* chore: Linting Issues

Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
2023-01-02 09:17:14 +05:30
Sabu Siyad
010718ffed fix(ecommerce/cart): explicitly set frappe.boot (#33431)
related: https://github.com/frappe/frappe/pull/18323

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

Signed-off-by: Sabu Siyad <hello@ssiyad.com>
2023-01-02 08:58:01 +05:30
Devin Slauenwhite
98c39c4f5f fix: update payment entry references (#33274)
* fix: set_amounts after deductions and losses are set

* test: difference_amount changes after update_references_in_payment_entry

* chore: linter

* fix: use kwargs instad of destructing a dict

[skip ci]

* fix(test): test payment entry difference_amount after payment reconciliation.
2023-01-02 08:55:12 +05:30
Sagar Sharma
7126d71627 Merge branch 'develop' into fix/github-issue/28766 2023-01-01 22:24:47 +05:30
Devin Slauenwhite
239a5f8bf4 test: get_item_details contains bin details 2022-12-31 15:41:07 -05:00
Devin Slauenwhite
8d62cdfd5f fix: add missing 'ordered_qty' to get_bin_details 2022-12-31 14:14:25 -05:00
Deepesh Garg
bb4725e9b5 Merge pull request #33488 from deepeshgarg007/multi_currency_bank_reco
fix: Multi-currency issues in Bank Reconciliation Tool
2022-12-31 13:05:25 +05:30
sonali
12822f7c36 fix: data format 2022-12-30 14:06:19 +05:30
Deepesh Garg
ad53ecf2b4 fix: Multi-currency issues in Bank Recociliation Tool 2022-12-30 13:37:41 +05:30
Gughan Ravikumar
48a9cd5ef3 fix: allow arbitary items in Quotation ans Sales Order (#33430)
fix: allow arbitary items in Quotation ans Sales Order
2022-12-30 13:16:40 +05:30
rohitwaghchaure
6e1ef4f3d0 Merge pull request #33487 from frappe/revert-33387-audit-to-fix-incorrect-valuation-entry
Revert "fix: daily scheduler to identify and fix stock transfer entries having incorrect valuation"
2022-12-30 12:58:36 +05:30
rohitwaghchaure
728dc1acf4 Revert "fix: daily scheduler to identify and fix stock transfer entries having incorrect valuation" 2022-12-30 11:08:31 +05:30
Sagar Sharma
d072169340 Merge branch 'develop' into fix/github-issue/28766 2022-12-29 16:38:53 +05:30
s-aga-r
c3911a592a chore: use frappe.qb instead of frappe.db.get_value 2022-12-29 16:38:08 +05:30
sonali
d65243eb65 feat: consolidated auto bank reconciliation
Added a button of Auto Reconcile, to reconcile the bank entries as per the matching reference number with the bank transaction and count of transactions reconciled message will be pop up on clicking the auto reconcile button.
2022-12-29 16:12:25 +05:30
s-aga-r
c716dcc01e fix: consider child nodes while getting bin details 2022-12-29 14:01:42 +05:30
sonali
c764f14f53 fix: pre-commit 2022-12-29 13:58:06 +05:30
sonali
35c29e0226 fix: pre-commit 2022-12-29 13:45:15 +05:30
sonali
f1810803e1 fix: passing from_date and to_date filters in test cases
passing from_date and to_date filters in  test_linked_payments and test_debit_credit_output  for unit testing
2022-12-29 13:07:06 +05:30
sonali
e2614b8a21 fix: pre-commit 2022-12-29 12:21:45 +05:30
sonali
3aaa2f5326 fix: filtered as per reference date
On bank reconciliation, transactions will be filtered as per date selected in 'from_date' and 'to_date' fields , In dialog, all the bank entries will  be fetched as per the posting date selected and if filtered by reference date checkbox is tick then then there will be two fields 'from_reference_date' and 'to_reference_date' then all bank entries in dialog box came as per reference date, selected. And by default journal entry checkbox is tick.
Also sorted the bank transactions and bank entries as per ascending order date wise.
2022-12-29 12:05:22 +05:30
Deepesh Garg
617518389a fix: Conversion factor error for invoices without item code (petty expenses) (#32714)
* fix: Set default uom conversion factor to 1 for invoices

* chore: set default conversion_factor as 1

* chore: remove print statements
2022-12-29 10:41:36 +05:30
Devin Slauenwhite
123920d0bc feat: add after_refresh hook to item dashboard (#33372)
* fix: return promise

* fix: use after_refresh hook instead of promise

# Because there is already a before_refresh hook. I think it makes sense to do the same for after.
2022-12-29 10:31:26 +05:30
ruthra kumar
e3a0ce5d63 fix: use base_net_amount in case of missing stock qty (#33457) 2022-12-29 09:34:51 +05:30
Dany Robert
cabaed9ed2 fix(pricing rule): consider child tables in condition (#33469) 2022-12-28 18:05:55 +05:30
Sagar Sharma
882f92e732 Merge pull request #33465 from s-aga-r/fix/po-fg_item_qty
fix: `fg_item_qty` in non-subcontracted PO
2022-12-28 15:27:18 +05:30
s-aga-r
6f5824cb21 fix: fg_item_qty in non-subcontracted PO 2022-12-28 14:54:24 +05:30
Sabu Siyad
8e271fd719 feat(exotel): make use of CustomField in API (#33338)
* feat(exotel): pass kwargs for `make_a_call`

https://developer.exotel.com/api/make-a-call-api#call-agent

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

* feat(exotel): map custom field to doctype

Signed-off-by: Sabu Siyad <hello@ssiyad.com>

Signed-off-by: Sabu Siyad <hello@ssiyad.com>
2022-12-28 08:11:28 +05:30
Deepesh Garg
0b75aa5390 fix: Default dimensions on fetching items from BOM (#33439) 2022-12-27 17:53:43 +05:30
Deepesh Garg
d2686ce75b fix: Multiple rows for same warehouse and batches in pick list (#33456) 2022-12-27 17:42:03 +05:30
anandbaburajan
21a09e7431 chore: fix patch 2022-12-27 15:01:42 +05:30
anandbaburajan
97f8588202 chore: fix patch name 2022-12-27 15:01:42 +05:30
anandbaburajan
c916fb0513 chore: fix module name in patch 2022-12-27 15:01:42 +05:30
anandbaburajan
57adcc0b03 chore: move patch to pre_model_sync 2022-12-27 15:01:42 +05:30
Anand Baburajan
4ff70db668 Merge branch 'develop' into asset_depreciation_schedule 2022-12-27 14:59:53 +05:30
Deepesh Garg
8263bf9a9a fix: Random behaviour while picking items using picklist (#33449) 2022-12-27 14:59:35 +05:30
anandbaburajan
482116db9f chore: improve tests 2022-12-27 10:03:32 +05:30
Anand Baburajan
6f4e6fafa9 Merge branch 'develop' into asset_depreciation_schedule 2022-12-27 07:36:32 +05:30
anandbaburajan
6d791cabd1 chore: more refactoring 2022-12-26 22:13:11 +05:30
Sagar Sharma
4e2291f52d Merge pull request #33437 from s-aga-r/fix/purchase-order/shipping_address
fix: `shipping_address` in PO for non-drop ship item
2022-12-26 21:20:40 +05:30
Sagar Sharma
88edc412e3 Merge branch 'develop' into fix/purchase-order/shipping_address 2022-12-26 12:00:39 +05:30
s-aga-r
67a7ccf3ce fix: shipping_address for non-drop shipping item 2022-12-26 11:57:50 +05:30
Deepesh Garg
8a79efab4b feat: Accounting Dimension updation in Payment Request and Entry (#33411) 2022-12-26 10:17:55 +05:30
Solufyin
7d9f3f23dd fix: Customer Primary Contact (#33424)
Co-authored-by: Nihantra C. Patel <n.patel.serpentcs@gmail.com>
2022-12-26 10:15:10 +05:30
Sagar Sharma
9858d9d968 Merge pull request #33434 from s-aga-r/fix/github-issue/32258
fix(ux): `shipping_address` in PO
2022-12-25 19:40:09 +05:30
Sagar Sharma
32f3b64a89 Merge branch 'develop' into fix/github-issue/32258 2022-12-25 18:12:08 +05:30
s-aga-r
7e1b6b3c2a fix: shipping_address in PO 2022-12-25 18:11:05 +05:30
anandbaburajan
03662be150 chore: have different functions for draft. active and cancelled depr schedules 2022-12-25 18:05:19 +05:30
ruthra kumar
a31e9d3afe Merge pull request #33402 from ruthra-kumar/hidden_party_detail_fields_for_better_handling_of_permission
refactor: Customer and Supplier Ledger summary will have hidden fields for better handling of user permission
2022-12-25 16:25:13 +05:30
ruthra kumar
a0484793c3 refactor: remove unrelated filters from Supplier Ledger Summary
Territory, Sales Partner and Sales Person doesn't belong in Supplier Ledger
2022-12-24 11:20:39 +05:30
ruthra kumar
89229d9b58 refactor: additional doctype access for 'Accounts User' role 2022-12-24 11:20:16 +05:30
ruthra kumar
bfa511cb65 refactor: hidden columns to help framework handle user permissions
'territory', 'supplier_group', 'customer_group' have been added as
hidden columns to handle 'user permission' based access control.
2022-12-24 10:30:30 +05:30
rohitwaghchaure
40769998c6 Merge pull request #33422 from rohitwaghchaure/fix-stock-entry-submit-performance
fix: timeout error while submitting stock entry
2022-12-23 13:57:25 +05:30
Rohit Waghchaure
a05c47e499 fix: timeout error while submitting stock entry
Co-authored-by: Ankush Menat <ankush@frappe.io>
2022-12-23 13:27:32 +05:30
Anand Baburajan
b17ef34042 Merge branch 'develop' into asset_depreciation_schedule 2022-12-23 11:02:17 +05:30
anandbaburajan
3e91a56c19 chore: only consider draft and active assets in patch, and allow asset depr schedule to be manually createed 2022-12-23 11:01:18 +05:30
ruthra kumar
8f5d8e0474 Merge pull request #33418 from ruthra-kumar/filter_issue_in_ar_ap_report
fix: payment terms and sales partner filter issue in Accounts Receivable report
2022-12-22 11:38:38 +05:30
ruthra kumar
13c4420f42 fix: payment terms and sales partner filter issue in AR/AP report 2022-12-22 10:55:22 +05:30
ruthra kumar
a26698b88e Merge pull request #33410 from ruthra-kumar/typeerror_on_gp_due_to_incorrect_warehouse_on_bundle_item
fix: TypeError on GP Report due to multiple warehouse on bundled items
2022-12-21 18:26:40 +05:30
ruthra kumar
5918bb03f7 test: type error on bundled products with different warehouses 2022-12-21 17:47:57 +05:30
ruthra kumar
e684eb32d0 fix: typerror on multi warehouse in Packed Items
DN(with bundled item with varying warehouses)-> Sales Invoice.
2022-12-21 15:09:55 +05:30
sonali
81e5f71172 fix: json issue 2022-12-21 14:02:54 +05:30
sonali
6b5276398e fix: linters 2022-12-21 13:32:16 +05:30
sonali
645869e6ff feat: added arguments of posting date and reference date 2022-12-21 12:58:30 +05:30
Deepesh Garg
76be35aaea Merge pull request #33406 from deepeshgarg007/cs_cf_report_fix
fix: Consolidated financial report
2022-12-20 18:22:58 +05:30
Deepesh Garg
ade83cbab3 fix: Consolidated financial report 2022-12-20 16:45:46 +05:30
Deepesh Garg
1da14b7ec3 Merge pull request #33393 from deepeshgarg007/cc_filter_cashflow_report
fix: Cost center filter not working in cash flow report
2022-12-20 13:46:18 +05:30
Deepesh Garg
925387550e Merge pull request #33350 from deepeshgarg007/payment_request_flow
fix: Payment Request flow fixes from Order to Payment Entry
2022-12-20 13:45:15 +05:30
Deepesh Garg
9dc1509cf5 Merge pull request #33358 from resilient-tech/fix-appointment-booking
fix: remove unnecessary permissions from Appointment and Appointment Booking Settings
2022-12-20 11:53:01 +05:30
Deepesh Garg
31c95deb88 chore: More fixes 2022-12-20 11:45:51 +05:30
Deepesh Garg
ff48634cbb Merge branch 'develop' of https://github.com/frappe/erpnext into payment_request_flow 2022-12-20 11:42:15 +05:30
Deepesh Garg
e25b98b620 chore: Update test case 2022-12-20 11:42:05 +05:30
Deepesh Garg
068df9f815 chore: remove print statement 2022-12-20 10:00:53 +05:30
Deepesh Garg
d0dbfec052 fix: Cost center filter not working in cash flow report 2022-12-20 09:59:27 +05:30
rohitwaghchaure
1ed2230e4c Merge pull request #33382 from rohitwaghchaure/fixed-pick-list-issue
fix: unsupported operand type(s) for +=: 'int' and 'NoneType'
2022-12-20 09:47:29 +05:30
rohitwaghchaure
eaa04abe29 Merge pull request #33387 from rohitwaghchaure/audit-to-fix-incorrect-valuation-entry
fix: daily scheduler to identify and fix stock transfer entries having incorrect valuation
2022-12-20 09:46:57 +05:30
Rohit Waghchaure
f31612376a test: added test case to validate audit for incorrect entries 2022-12-20 00:14:41 +05:30
Rohit Waghchaure
b1721b79ce fix: daily scheduler to identify and fix stock transfer entries having incorrect valuation 2022-12-19 23:33:44 +05:30
rohitwaghchaure
7851adb49a Merge branch 'develop' into fixed-pick-list-issue 2022-12-19 23:32:06 +05:30
Ankush Menat
88ce11f03d fix: incorrect type hints (#33381)
[skip ci]
2022-12-19 16:44:19 +05:30
Rohit Waghchaure
2b4eae5f84 fix: unsupported operand type(s) for +=: 'int' and 'NoneType' 2022-12-19 16:24:55 +05:30
ruthra kumar
65db9cea25 Merge pull request #33380 from ruthra-kumar/err_for_invoices_should_reflect_in_ar_ap_report
fix: ERR journals should reported in AR/AP
2022-12-18 16:56:19 +05:30
ruthra kumar
2ed86760d7 test: err for party should be in AR/AP report 2022-12-18 12:40:07 +05:30
ruthra kumar
b09eade3e4 fix: ERR journals reported in AR/AP
Exchange Rate Revaluation on Receivable/Payable will included in AR/AP report
2022-12-18 06:38:23 +05:30
Gokulnath
4ecce242a8 feat: adding warehouse filter for sales order ananlysis report
feat: adding warehouse filter for sales order ananlysis report
2022-12-17 20:06:01 +05:30
Deepesh Garg
67c5cec505 Merge pull request #33339 from barredterra/print-rfq
feat: more control when printing RFQ
2022-12-17 19:24:57 +05:30
Deepesh Garg
6238fd9d9e Merge pull request #33341 from deepeshgarg007/tds_tcs_cost_center
fix: Cost Center for tax withholding invoices
2022-12-17 19:24:34 +05:30
sonali
05b6fce03d feat:filters on bank reconciliation
Added date filters on bank transactions, payment entries and journal entries and sorted list as per date in ascending order.
2022-12-17 17:15:28 +05:30
Deepesh Garg
2a4eec245a Merge pull request #33371 from deepeshgarg007/coa_import_srbnb
fix: Unable to import COA through importer
2022-12-17 16:42:37 +05:30
Deepesh Garg
3b66920342 fix: Unable to import COA through importer 2022-12-16 19:22:29 +05:30
Deepesh Garg
0e86cde64b Merge branch 'develop' into print-rfq 2022-12-16 16:24:02 +05:30
Sagar Vora
9989ccbb02 Merge branch 'develop' into fix-appointment-booking 2022-12-16 10:36:48 +00:00
Daizy Modi
4802d719ed fix: removed unused data and minor changes 2022-12-16 15:55:58 +05:30
Deepesh Garg
6bb22c703a Merge pull request #33275 from pps190/fix-pe-exchange-rate-precision
fix: use highest precision for exchange rate.
2022-12-16 15:43:36 +05:30
Deepesh Garg
50421b3d7d Merge pull request #33315 from kunhimohamed/develop
fix: at create_customer_or_supplier on session creation
2022-12-16 15:04:10 +05:30
Deepesh Garg
b76129c1dd Merge pull request #33286 from artykbasar/develop
Subscription Cost center value is fixed to Default value(Bug fix)
2022-12-16 14:44:51 +05:30
Deepesh Garg
5c50a46822 Merge pull request #33362 from deepeshgarg007/exclude_gst_credential_doctype
feat: Ignore company related doctype for other apps via hooks
2022-12-16 11:07:47 +05:30
Daizy Modi
5d0b5c8d2a fix: pass necessary params instead of args 2022-12-16 10:10:29 +05:30
Deepesh Garg
1a40c04b72 feat: Ignore company related doctype for other apps via hooks 2022-12-15 18:51:58 +05:30
sonali
408c89df03 Feat:Filter on Payment Entries and Journal Entries
Applying filters on Payement entries and Journal Entries as per reference  date and posting date
2022-12-15 18:09:57 +05:30
rohitwaghchaure
da1d8da355 Merge pull request #33355 from rohitwaghchaure/fixed-do-not-show-disabled-items
fix: disabled items showing in the report Itemwise Recommended Reorder Level
2022-12-15 18:08:05 +05:30
Daizy Modi
56f3ac15d8 fix: removed unncessary changes 2022-12-15 18:02:14 +05:30
Daizy Modi
4bfe2ea572 fix: agent assignment and permissions for appointment 2022-12-15 17:19:28 +05:30
rohitwaghchaure
5cbbb5d59e Merge pull request #33354 from rohitwaghchaure/fixed-trivial-discount-amount
fix: unsupported operand type(s) for +: 'int' and 'NoneType'
2022-12-15 17:13:46 +05:30
Rohit Waghchaure
ae31ff1c48 fix: disabled items showing in the report 'Itemwise Recommended Reorder Level
'
2022-12-15 17:05:53 +05:30
Daizy Modi
ac51c27500 fix: fetch required details from appointment booking settings 2022-12-15 16:53:51 +05:30
Daizy Modi
9a00b3bdbd fix: format html of verify email for book appointment 2022-12-15 16:51:00 +05:30
Daizy Modi
25f0b26a17 fix: remove unused page book-appointment 2022-12-15 16:49:23 +05:30
Daizy Modi
ae8dd2b2bc fix: remove guest role from doctype 2022-12-15 16:47:27 +05:30
Rohit Waghchaure
0f28074e5a fix: unsupported operand type(s) for +: 'int' and 'NoneType' 2022-12-15 16:36:47 +05:30
ruthra kumar
d126c8030f Merge pull request #33335 from ruthra-kumar/cost_center_issue_on_reconciliation_tool
fix: paid invoices shows up as outstanding when 'cost_center' filter is applied
2022-12-15 15:02:18 +05:30
Anand Baburajan
246d3b4075 Merge branch 'develop' into asset_depreciation_schedule 2022-12-15 14:51:16 +05:30
anandbaburajan
a358f77774 chore: move patch to post_model_sync and cancel asset depr schedule properly 2022-12-15 14:50:53 +05:30
ruthra kumar
a998a8a2da test: cost center should not affect outstanding calculation 2022-12-15 14:28:33 +05:30
Deepesh Garg
dc178984ae fix: Payment Request flow fixes from Order to Payment Entry 2022-12-15 14:15:20 +05:30
anandbaburajan
7f5e761c04 chore: add patch 2022-12-15 13:13:04 +05:30
Deepesh Garg
3a8a467edb Merge pull request #33329 from Gokulnath17/Gokulnath_dev
fix: in gross profit report
2022-12-15 12:01:39 +05:30
Deepesh Garg
076527bb88 Merge pull request #33305 from barredterra/incoterm-named-place
feat: incoterm named place
2022-12-15 11:59:54 +05:30
Gokulnath
f73976946e Merge branch 'develop' into Gokulnath_dev 2022-12-15 10:22:49 +05:30
Deepesh Garg
b7e9942681 Merge pull request #33309 from barredterra/refactor-validate_payment_against_negative_invoice
refactor: translatable strings and guard clause
2022-12-15 09:21:16 +05:30
rohitwaghchaure
9bf2682218 Merge pull request #33323 from barredterra/translate-overbilling-overdelivery
fix: translatability of warning on overbilling/-receipt/-delivery
2022-12-14 23:24:11 +05:30
Deepesh Garg
26277cfcf3 chore: resolve errors in test 2022-12-14 21:22:48 +05:30
Deepesh Garg
973ef33eb5 fix: Cost Center for tax withholding invoices 2022-12-14 20:41:00 +05:30
barredterra
8717148d9b feat: improve visibility of default values 2022-12-14 14:14:29 +01:00
barredterra
ce9626fead feat: more control when printing RFQ 2022-12-14 14:03:36 +01:00
Gokulnath
d404a03947 Merge branch 'develop' into Gokulnath_dev 2022-12-14 17:38:16 +05:30
ruthra kumar
8eb93004f7 fix: cost_center filter fix for 'Get Outstanding Invoice' in PE 2022-12-14 16:16:22 +05:30
rohitwaghchaure
21c86bd649 Merge pull request #33332 from rohitwaghchaure/fixed--missing-required-argument
fix: get_serial_nos_for_fg() missing 1 required positional argument: …
2022-12-14 16:06:58 +05:30
ruthra kumar
6d9d730759 fix: cost_center filter gives incorrect output
filtering on cost center gives invoices that are reconciled as having outstanding
2022-12-14 16:05:15 +05:30
Rohit Waghchaure
410a58b3de fix: get_serial_nos_for_fg() missing 1 required positional argument: 'args' 2022-12-14 15:33:36 +05:30
anandbaburajan
c99cd74a15 chore: handle some error cases and add empty patch file 2022-12-14 13:20:37 +05:30
Gokulnath17
41fc3be339 fixes in gross profit report 2022-12-14 10:46:11 +05:30
barredterra
36997d9788 fix: translation for warning on Overbilling/-receipt/-delivery 2022-12-13 18:59:20 +01:00
Anand Baburajan
8534390627 Merge branch 'develop' into asset_depreciation_schedule 2022-12-13 20:49:06 +05:30
anandbaburajan
22ef342ac7 chore: fixing all tests 2022-12-13 20:48:34 +05:30
anandbaburajan
df134c7c5b chore: fixing some tests 2022-12-13 16:26:33 +05:30
Nabin Hait
5ea6080a6e Merge pull request #33300 from ssiyad/fix/pos/var_typo
fix(pos): variable typo: `s_pos` -> `is_pos`
2022-12-13 15:21:10 +05:30
Nabin Hait
c5d21b2461 Merge pull request #33314 from s-aga-r/fix/github-issue/33145
fix: `Enough Parts to Build` in `BOM Stock Report`
2022-12-13 15:19:40 +05:30
ruthra kumar
3db446e35a Merge pull request #33313 from nabinhait/tax_detail_report_perm_issue
fix: Permission issue in Tax Detail report
2022-12-13 14:27:08 +05:30
kunhi
15e3b7f218 fix: at create_customer_or_supplier on session creation 2022-12-13 12:41:56 +04:00
Sagar Sharma
f9be137cf5 Merge branch 'develop' into fix/github-issue/33145 2022-12-13 14:00:51 +05:30
s-aga-r
723c64ba73 fix: Enough Parts to Build in BOM Stock Report 2022-12-13 14:00:30 +05:30
Nabin Hait
aa787e4030 fix: Permission issue in Tax Detail report 2022-12-13 13:16:24 +05:30
ruthra kumar
2175784142 Merge pull request #33303 from ruthra-kumar/incorrect_balance_on_consolidate_balance_sheet
fix: incorrect balance on parent company on consolidate Balance sheet due to key mismatch
2022-12-13 09:04:13 +05:30
barredterra
f20370c5ef refactor: translatable strings and guard clause 2022-12-13 02:36:12 +01:00
Sagar Sharma
cb49055aac Merge pull request #33304 from s-aga-r/fix/so-mr-ref
fix: `Material Request` reference in internal `Sales Order`
2022-12-12 23:48:14 +05:30
barredterra
e057e1dfe7 feat: incoterm named place 2022-12-12 18:49:47 +01:00
s-aga-r
78b438f6cf fix: Material Request reference in internal Sales Order 2022-12-12 22:41:44 +05:30
ruthra kumar
7b3316dc31 fix: incorrect balance on parent company due to key mismatch 2022-12-12 20:15:59 +05:30
rohitwaghchaure
5c0f8ee44f Merge pull request #33281 from tundebabzy/29976
fix: maintain same rate throughout sales cycle doesn't work with quotation
2022-12-12 19:30:50 +05:30
Sabu Siyad
7d64bf78cf fix(pos): variable typo: s_pos -> is_pos
Signed-off-by: Sabu Siyad <hello@ssiyad.com>
2022-12-12 19:09:00 +05:30
anandbaburajan
28d4942d6c chore: fix validation and add make_schedules_editable 2022-12-12 18:19:34 +05:30
anandbaburajan
1ea2ba0dea chore: handle some cases where asset_depr_schedule doesn't exist 2022-12-12 17:31:57 +05:30
anandbaburajan
b997d1eb87 chore: add some validation, shorten some function names 2022-12-12 17:25:38 +05:30
Anand Baburajan
f8cd424559 Merge branch 'develop' into asset_depreciation_schedule 2022-12-12 16:36:59 +05:30
anandbaburajan
ec6505d747 chore: fix some bugs, refactor some functions, add proper notes 2022-12-12 16:35:30 +05:30
Ankush Menat
915e0347b0 chore!: remove activity log feeds (#33294)
- This contains little to no information and practically no one uses this.
- Also causes a lot of problem by adding way too many feeds in activity
  log to the point where activity page doesn't even load.
2022-12-12 15:14:30 +05:30
Ankush Menat
593626f502 perf: add indexes on payment entry reference (#33288)
Adds index on:
1. reference doctype
2. reference name

*Why not composite index?*

There are three type of queries on this doctype

- filtering ref_doctype - doctype index helps here
- filtering ref_name - name index helps here
- filtering both - name index helps here too. Since it has sufficiently
  high cardinality. Composite index wont help in case where ref_doctype
  isn't specfied.


[skip ci]
2022-12-12 12:58:11 +05:30
artykbasar
d512919f5c Subscription Cost center value is fixed to Default value(Bug fix)
self.cost_center 
    field value keeps changing to 
erpnext.get_default_cost_center(self.get("company"))
    after validation of this doctype. This overrides the user input.
simple fix, it will first check if the field is empty, if empty then puts the company's default cost center value if not then user input will be saved.
2022-12-11 08:51:34 +00:00
Tunde Akinyanmi
71aa8c5e1c test: refactor test case 2022-12-09 14:33:54 +01:00
Tunde Akinyanmi
d193a14b8f test: ensure test case sets Selling Settings 2022-12-09 14:09:54 +01:00
anandbaburajan
90e1b9cb3d chore: fix asset depr schedule notes 2022-12-09 16:18:40 +05:30
Tunde Akinyanmi
97ddfcfc7c fix: Maintain Same Rate Throughout Sales Cycle doesn't work
Issue #29976 was partly fixed by #32923 but the problem still persists.
The reason is because an incorrect fieldname was passed to the
`validate_rate_with_reference_doc` method.
This commit fixes it
2022-12-09 10:29:28 +01:00
anandbaburajan
16365bfca3 chore: more refactoring 2022-12-09 14:04:00 +05:30
Devin Slauenwhite
2010b1b6e8 fix: use highest precision for exchange rate. 2022-12-08 16:26:07 -05:00
anandbaburajan
77dc8e7966 fix: bug in posting depr entries 2022-12-09 00:58:19 +05:30
anandbaburajan
187e1a324a chore: refactor get_depreciable_assets 2022-12-09 00:46:56 +05:30
anandbaburajan
1fd73af744 chore: refactor some reports 2022-12-09 00:28:34 +05:30
Deepesh Garg
7d41f63c5d Merge pull request #33200 from deepeshgarg007/buying_selling_pricing_rule
fix: Buying and selling check in pricing rule
2022-12-08 18:41:42 +05:30
Deepesh Garg
6db52930d8 Merge branch 'develop' of https://github.com/frappe/erpnext into buying_selling_pricing_rule 2022-12-08 18:05:05 +05:30
Deepesh Garg
6192af5cf0 chore: Update tests 2022-12-08 18:04:40 +05:30
sonali
8e7c8a6482 Update bank_reconciliation_tool.json
Adding fields in bank reconciliation tool
2022-12-08 17:23:08 +05:30
Deepesh Garg
b179514273 Merge pull request #33269 from ssiyad/fix/ecommerce/breadcrumb_base
fix(ecommerce): remove query parameters from referrer
2022-12-08 17:11:34 +05:30
Sabu Siyad
b6bd408f19 fix(ecommerce): remove query parameters from referer
inclusion of query parameters results in logic failure

example:
- logic check if referrer is `all-products`
- `http://shop.example/all-products` -> `all-products`, valid outcome
- `http://shop.example/all-products?start=1` -> `all-products?start=1`,
  invalid outcome

Signed-off-by: Sabu Siyad <hello@ssiyad.com>
2022-12-08 16:47:50 +05:30
Ankush Menat
0b86b1baca refactor: make payments app a soft dependency (#33245)
refactor: make payment app a soft dependency
2022-12-08 16:40:13 +05:30
sonali
447272aa4d Filters on Bank Reconciliation
Applying date filter on transactions and all the bank entries and also gives the filter the bank entries as per reference date. Sorted all transactions and entries as per date in ascending order. Also added posting date columns in all bank entries and default checkbox tick of journal entry, hide the sales invoice and purchase invoice checkbox.
2022-12-08 16:11:53 +05:30
Deepesh Garg
07c815f35f Merge pull request #33253 from niyazrazak/patch-9
feat: get lead with WhatsApp number
2022-12-08 15:19:13 +05:30
Deepesh Garg
81397ba3ee Merge pull request #33227 from barredterra/add-translation-variable-order
fix: add translation variable index
2022-12-08 15:17:07 +05:30
Deepesh Garg
f0487451f7 Merge pull request #33248 from QwQuan/develop
fix: bugs in zh.csv
2022-12-08 15:16:16 +05:30
sonali
e5a1189bec Update bank_reconciliation_tool.py
Applying date filter on transactions and all the bank entries and also gives the filter the bank entries as per reference date. Sorted all transactions and entries as per date in ascending order.
Also added posting date columns in all bank entries and default checkbox tick of journal entry, hide the sales invoice and purchase invoice checkbox.
2022-12-08 13:29:28 +05:30
ruthra kumar
1d37c0143f Merge pull request #33254 from ruthra-kumar/index_error_on_customer_master
fix: index error on customer master
2022-12-08 12:52:20 +05:30
rohitwaghchaure
e451639ff6 Merge pull request #33258 from rohitwaghchaure/fixed-total-value-in-report
fix: total value in Warehouse Wise Stock Balance
2022-12-08 10:13:03 +05:30
Rohit Waghchaure
f598da7c81 fix: total value in Warehouse Wise Stock Balance 2022-12-08 00:55:45 +05:30
rohitwaghchaure
5e0f4eb580 Merge pull request #33255 from s-aga-r/fix/github-issue/33212
fix: order status in `Production Planning Report`
2022-12-07 23:36:12 +05:30
s-aga-r
632c08f7e0 fix: order status in Production Planning Report 2022-12-07 22:47:06 +05:30
ruthra kumar
cf1e3dc8ea fix: index error on customer master 2022-12-07 20:48:40 +05:30
MOHAMMED NIYAS
922375c3ba feat: get lead with WhatsApp number 2022-12-07 17:50:35 +05:30
wuzhouquan
a6fe79f29d fix: bugs in zh.csv 2022-12-07 15:04:56 +08:00
anandbaburajan
18fc2b5695 chore: fix bug in unlink_asset_reference 2022-12-06 23:34:56 +05:30
anandbaburajan
2cd42dbb10 chore: refactor get_finance_book_value_map 2022-12-06 23:16:02 +05:30
anandbaburajan
e7d404a30a chore: remove finance_book and finance_book_id from depreciation_schedule and refactor some functions 2022-12-06 21:33:20 +05:30
anandbaburajan
8365d6bdb7 fix: refactor reverse_depreciation_entry_made_after_disposal and fix fb bug 2022-12-06 17:58:38 +05:30
barredterra
748c74ba52 fix: add translation variable order 2022-12-05 18:24:22 +01:00
Deepesh Garg
0581000990 fix: Remove free items 2022-12-05 17:59:02 +05:30
Deepesh Garg
55c0770280 Merge branch 'develop' of https://github.com/frappe/erpnext into buying_selling_pricing_rule 2022-12-05 15:43:29 +05:30
Deepesh Garg
5f821b93a5 chore: Add POS Invoices 2022-12-05 15:43:03 +05:30
anandbaburajan
83ed93fbb6 chore: refactor chart and manual set_accumulated_depreciation logic 2022-12-04 22:45:48 +05:30
anandbaburajan
ca8c827492 chore: refactor schedules in split_asset functions 2022-12-04 19:22:58 +05:30
Deepesh Garg
b741ae143c fix: Reapply pricing rule on qty change 2022-12-02 17:14:06 +05:30
Deepesh Garg
f54838ab56 fix: Buying and selling check in pricing rule 2022-12-01 21:23:17 +05:30
anandbaburajan
f20238fa3e chore: use make_new_active_asset_depr_schedules_and_cancel_current_ones instead of prepare_depreciation_data 2022-12-01 15:15:32 +05:30
anandbaburajan
96ede2fcf9 fix: bug in new depr schedule 2022-11-29 21:30:23 +05:30
anandbaburajan
7d09440579 chore: more refactoring 2022-11-25 16:49:44 +05:30
anandbaburajan
4e63ba3ac6 chore: refactor schedules in journal_entry 2022-11-24 17:39:11 +05:30
anandbaburajan
de17367a36 chore: finish refactoring asset_value_adjustment 2022-11-24 16:16:36 +05:30
anandbaburajan
f35b19eac3 chore: renaming functions and variables again, and continuing refactoring AssetValueAdjustment 2022-11-24 15:33:21 +05:30
anandbaburajan
7db66b0916 chore: renaming some functions and variables, and partially refactoring AssetValueAdjustment 2022-11-24 13:02:48 +05:30
anandbaburajan
76f28de7eb chore: refactor more functions to use new depr schedule 2022-11-23 18:04:54 +05:30
Anand Baburajan
a66d9f8e8e Merge branch 'develop' into asset_depreciation_schedule 2022-11-17 20:17:21 +05:30
anandbaburajan
417180e6ba chore: refactor some functions to use new depr schedule 2022-11-14 17:51:11 +05:30
anandbaburajan
ffd41703de chore: add expected_value_after_useful_life in depr schedule 2022-11-14 14:36:10 +05:30
anandbaburajan
ca3581d055 chore: rename modify_draft_asset_depreciation_schedules 2022-11-14 12:47:48 +05:30
anandbaburajan
ed495dc846 chore: add convert_draft_asset_depreciation_schedules_into_active and fix some bugs 2022-11-14 12:45:49 +05:30
anandbaburajan
97ab7bd36b chore: remove some unwanted functions in asset 2022-11-11 16:27:29 +05:30
anandbaburajan
710d2452b7 feat: moving, refactoring and adding functions to asset_depreciation_schedule 2022-11-11 16:20:17 +05:30
anandbaburajan
5a274176d3 feat: add asset_depreciation_schedule 2022-11-01 11:45:17 +05:30
Suraj Shetty
6349f29aed fix: Remove option from Communication Medium 2022-07-30 14:26:37 +05:30
Suraj Shetty
45544c2b1e Merge branch 'develop' of https://github.com/frappe/erpnext into move-exotel-to-separate-app 2022-07-28 10:07:40 +05:30
Suraj Shetty
3593573ed2 Merge branch 'develop' of https://github.com/frappe/erpnext into move-exotel-to-separate-app 2022-07-22 12:24:20 +05:30
Suraj Shetty
cf9c065cf8 refactor: Add exotel deprecation warning 2022-07-22 12:22:57 +05:30
Devin Slauenwhite
ef6480803b chore: linter 2022-06-22 14:10:40 -04:00
Devin Slauenwhite
199b8dd0e3 Merge branch 'develop' into fix-reserve-qty 2022-06-22 14:06:35 -04:00
Devin Slauenwhite
6a6c560375 fix: move to transcation settings 2022-06-17 15:51:11 -04:00
Devin Slauenwhite
179e2d2c74 fix: reset selling setting 2022-06-17 15:29:32 -04:00
Devin Slauenwhite
591b5917a9 fix: re-assign after append query 2022-06-17 15:27:17 -04:00
Devin Slauenwhite
0328874018 fix: syntax missing ) 2022-06-17 14:45:33 -04:00
Devin Slauenwhite
7855a59843 Merge branch 'develop' into fix-reserve-qty 2022-06-17 14:39:31 -04:00
Devin Slauenwhite
494bbf0124 feat: add checkbox to reserve qty on sales return 2022-06-17 13:51:33 -04:00
Devin Slauenwhite
f3f26d2c78 refactor: get_reserved_qty query builder 2022-06-17 11:51:21 -04:00
Devin Slauenwhite
d259c2e36a fix: merge conflict 2022-06-17 11:50:54 -04:00
Devin Slauenwhite
f39422afd8 Merge branch 'develop' into fix-reserve-qty
# Conflicts:
#	erpnext/patches.txt
#	erpnext/public/js/utils/barcode_scanner.js
#	erpnext/regional/report/gstr_1/gstr_1.py
#	erpnext/stock/doctype/delivery_note/test_delivery_note.py
2022-06-17 08:04:52 -04:00
Devin Slauenwhite
5a402a5709 fix(test): use unique item in sales order. 2022-05-17 13:32:26 -04:00
Devin Slauenwhite
4d0fa85a75 fix(test): update_prevdoc_status 2022-05-16 19:45:59 -04:00
Devin Slauenwhite
47f867b77a test: don't reserve qty on sales return. 2022-05-16 14:27:45 -04:00
Devin Slauenwhite
1d1c975da1 Merge remote-tracking branch 'upstream/develop' into fix-reserve-qty 2022-05-16 11:10:28 -04:00
Devin Slauenwhite
695e2bcfbc fix: don't reserve qty on sales return. 2022-05-14 11:06:24 -04:00
Suraj Shetty
ec1607e825 Merge branch 'develop' of https://github.com/frappe/erpnext into move-exotel-to-separate-app 2022-05-08 16:10:55 +05:30
Suraj Shetty
e0bc437ddb refactor: Simplify call log code 2022-05-08 16:05:04 +05:30
Suraj Shetty
53e4fee4db refactor: Remove exotel
Move it to separate app
2022-05-08 16:04:14 +05:30
1593 changed files with 98711 additions and 157371 deletions

View File

@@ -2,65 +2,32 @@
"env": {
"browser": true,
"node": true,
"es6": true
"es2022": true
},
"parserOptions": {
"ecmaVersion": 11,
"sourceType": "module"
},
"extends": "eslint:recommended",
"rules": {
"indent": [
"error",
"tab",
{ "SwitchCase": 1 }
],
"brace-style": [
"error",
"1tbs"
],
"space-unary-ops": [
"error",
{ "words": true }
],
"linebreak-style": [
"error",
"unix"
],
"quotes": [
"off"
],
"semi": [
"warn",
"always"
],
"camelcase": [
"off"
],
"no-unused-vars": [
"warn"
],
"no-redeclare": [
"warn"
],
"no-console": [
"warn"
],
"no-extra-boolean-cast": [
"off"
],
"no-control-regex": [
"off"
],
"space-before-blocks": "warn",
"keyword-spacing": "warn",
"comma-spacing": "warn",
"key-spacing": "warn"
"indent": "off",
"brace-style": "off",
"no-mixed-spaces-and-tabs": "off",
"no-useless-escape": "off",
"space-unary-ops": ["error", { "words": true }],
"linebreak-style": "off",
"quotes": ["off"],
"semi": "off",
"camelcase": "off",
"no-unused-vars": "off",
"no-console": ["warn"],
"no-extra-boolean-cast": ["off"],
"no-control-regex": ["off"]
},
"root": true,
"globals": {
"frappe": true,
"Vue": true,
"SetVueGlobals": true,
"erpnext": true,
"hub": true,
"$": true,
@@ -97,8 +64,10 @@
"is_null": true,
"in_list": true,
"has_common": true,
"posthog": true,
"has_words": true,
"validate_email": true,
"open_web_template_values_editor": true,
"get_number_format": true,
"format_number": true,
"format_currency": true,
@@ -154,7 +123,6 @@
"before": true,
"beforeEach": true,
"onScan": true,
"html2canvas": true,
"extend_cscript": true,
"localforage": true
}

View File

@@ -66,7 +66,8 @@ ignore =
F841,
E713,
E712,
B023
B023,
B028
max-line-length = 200

View File

@@ -3,52 +3,71 @@ import requests
from urllib.parse import urlparse
docs_repos = [
"frappe_docs",
"erpnext_documentation",
WEBSITE_REPOS = [
"erpnext_com",
"frappe_io",
]
DOCUMENTATION_DOMAINS = [
"docs.erpnext.com",
"frappeframework.com",
]
def uri_validator(x):
result = urlparse(x)
return all([result.scheme, result.netloc, result.path])
def docs_link_exists(body):
for line in body.splitlines():
for word in line.split():
if word.startswith('http') and uri_validator(word):
parsed_url = urlparse(word)
if parsed_url.netloc == "github.com":
parts = parsed_url.path.split('/')
if len(parts) == 5 and parts[1] == "frappe" and parts[2] in docs_repos:
return True
elif parsed_url.netloc == "docs.erpnext.com":
return True
def is_valid_url(url: str) -> bool:
parts = urlparse(url)
return all((parts.scheme, parts.netloc, parts.path))
def is_documentation_link(word: str) -> bool:
if not word.startswith("http") or not is_valid_url(word):
return False
parsed_url = urlparse(word)
if parsed_url.netloc in DOCUMENTATION_DOMAINS:
return True
if parsed_url.netloc == "github.com":
parts = parsed_url.path.split("/")
if len(parts) == 5 and parts[1] == "frappe" and parts[2] in WEBSITE_REPOS:
return True
return False
def contains_documentation_link(body: str) -> bool:
return any(
is_documentation_link(word)
for line in body.splitlines()
for word in line.split()
)
def check_pull_request(number: str) -> "tuple[int, str]":
response = requests.get(f"https://api.github.com/repos/frappe/erpnext/pulls/{number}")
if not response.ok:
return 1, "Pull Request Not Found! ⚠️"
payload = response.json()
title = (payload.get("title") or "").lower().strip()
head_sha = (payload.get("head") or {}).get("sha")
body = (payload.get("body") or "").lower()
if (
not title.startswith("feat")
or not head_sha
or "no-docs" in body
or "backport" in body
):
return 0, "Skipping documentation checks... 🏃"
if contains_documentation_link(body):
return 0, "Documentation Link Found. You're Awesome! 🎉"
return 1, "Documentation Link Not Found! ⚠️"
if __name__ == "__main__":
pr = sys.argv[1]
response = requests.get("https://api.github.com/repos/frappe/erpnext/pulls/{}".format(pr))
if response.ok:
payload = response.json()
title = (payload.get("title") or "").lower().strip()
head_sha = (payload.get("head") or {}).get("sha")
body = (payload.get("body") or "").lower()
if (title.startswith("feat")
and head_sha
and "no-docs" not in body
and "backport" not in body
):
if docs_link_exists(body):
print("Documentation Link Found. You're Awesome! 🎉")
else:
print("Documentation Link Not Found! ⚠️")
sys.exit(1)
else:
print("Skipping documentation checks... 🏃")
exit_code, message = check_pull_request(sys.argv[1])
print(message)
sys.exit(exit_code)

View File

@@ -4,12 +4,15 @@ set -e
cd ~ || exit
sudo apt update && sudo apt install redis-server libcups2-dev
sudo apt update
sudo apt remove mysql-server mysql-client
sudo apt install libcups2-dev redis-server mariadb-client-10.6
pip install frappe-bench
githubbranch=${GITHUB_BASE_REF:-${GITHUB_REF##*/}}
frappeuser=${FRAPPE_USER:-"frappe"}
frappebranch=${FRAPPE_BRANCH:-${GITHUB_BASE_REF:-${GITHUB_REF##*/}}}
frappebranch=${FRAPPE_BRANCH:-$githubbranch}
git clone "https://github.com/${frappeuser}/frappe" --branch "${frappebranch}" --depth 1
bench init --skip-assets --frappe-path ~/frappe --python "$(which python)" frappe-bench
@@ -24,14 +27,14 @@ fi
if [ "$DB" == "mariadb" ];then
mysql --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL character_set_server = 'utf8mb4'"
mysql --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL collation_server = 'utf8mb4_unicode_ci'"
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL character_set_server = 'utf8mb4'"
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "SET GLOBAL collation_server = 'utf8mb4_unicode_ci'"
mysql --host 127.0.0.1 --port 3306 -u root -proot -e "CREATE USER 'test_frappe'@'localhost' IDENTIFIED BY 'test_frappe'"
mysql --host 127.0.0.1 --port 3306 -u root -proot -e "CREATE DATABASE test_frappe"
mysql --host 127.0.0.1 --port 3306 -u root -proot -e "GRANT ALL PRIVILEGES ON \`test_frappe\`.* TO 'test_frappe'@'localhost'"
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "CREATE USER 'test_frappe'@'localhost' IDENTIFIED BY 'test_frappe'"
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "CREATE DATABASE test_frappe"
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "GRANT ALL PRIVILEGES ON \`test_frappe\`.* TO 'test_frappe'@'localhost'"
mysql --host 127.0.0.1 --port 3306 -u root -proot -e "FLUSH PRIVILEGES"
mariadb --host 127.0.0.1 --port 3306 -u root -proot -e "FLUSH PRIVILEGES"
fi
if [ "$DB" == "postgres" ];then
@@ -41,12 +44,17 @@ fi
install_whktml() {
wget -O /tmp/wkhtmltox.tar.xz https://github.com/frappe/wkhtmltopdf/raw/master/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
tar -xf /tmp/wkhtmltox.tar.xz -C /tmp
sudo mv /tmp/wkhtmltox/bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
sudo chmod o+x /usr/local/bin/wkhtmltopdf
if [ "$(lsb_release -rs)" = "22.04" ]; then
wget -O /tmp/wkhtmltox.deb https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
sudo apt install /tmp/wkhtmltox.deb
else
echo "Please update this script to support wkhtmltopdf for $(lsb_release -ds)"
exit 1
fi
}
install_whktml &
wkpid=$!
cd ~/frappe-bench || exit
@@ -55,11 +63,13 @@ sed -i 's/schedule:/# schedule:/g' Procfile
sed -i 's/socketio:/# socketio:/g' Procfile
sed -i 's/redis_socketio:/# redis_socketio:/g' Procfile
bench get-app payments
bench get-app payments --branch ${githubbranch%"-hotfix"}
bench get-app erpnext "${GITHUB_WORKSPACE}"
if [ "$TYPE" == "server" ]; then bench setup requirements --dev; fi
bench start &> bench_run_logs.txt &
wait $wkpid
bench start &>> ~/frappe-bench/bench_start.log &
CI=Yes bench build --app frappe &
bench --site test_site reinstall --yes

View File

@@ -11,6 +11,6 @@
"root_login": "root",
"root_password": "root",
"host_name": "http://test_site:8000",
"install_apps": ["erpnext"],
"install_apps": ["payments", "erpnext"],
"throttle_user_limit": 100
}

View File

@@ -9,7 +9,7 @@ on:
workflow_dispatch:
jobs:
release:
stable-release:
name: Release
runs-on: ubuntu-latest
strategy:

View File

@@ -9,21 +9,22 @@ jobs:
name: linters
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Set up Python 3.10
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: '3.10'
cache: pip
- name: Install and Run Pre-commit
uses: pre-commit/action@v2.0.3
uses: pre-commit/action@v3.0.0
- name: Download Semgrep rules
run: git clone --depth 1 https://github.com/frappe/semgrep-rules.git frappe-semgrep-rules
- name: Download semgrep
run: pip install semgrep==0.97.0
run: pip install semgrep
- name: Run Semgrep rules
run: semgrep ci --config ./frappe-semgrep-rules/rules --config r/python.lang.correctness

View File

@@ -23,12 +23,12 @@ jobs:
services:
mysql:
image: mariadb:10.3
image: mariadb:10.6
env:
MARIADB_ROOT_PASSWORD: 'root'
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
options: --health-cmd="mariadb-admin ping" --health-interval=5s --health-timeout=2s --health-retries=3
steps:
- name: Clone
@@ -43,14 +43,14 @@ jobs:
fi
- name: Setup Python
uses: "gabrielfalcao/pyenv-action@v9"
uses: "actions/setup-python@v4"
with:
versions: 3.10:latest, 3.7:latest
python-version: '3.10'
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: 14
node-version: 18
check-latest: true
- name: Add to Hosts
@@ -92,7 +92,6 @@ jobs:
- name: Install
run: |
pip install frappe-bench
pyenv global $(pyenv versions | grep '3.10')
bash ${GITHUB_WORKSPACE}/.github/helper/install.sh
env:
DB: mariadb
@@ -101,42 +100,61 @@ jobs:
- name: Run Patch Tests
run: |
cd ~/frappe-bench/
wget https://erpnext.com/files/v10-erpnext.sql.gz
bench --site test_site --force restore ~/frappe-bench/v10-erpnext.sql.gz
bench remove-app payments --force
jq 'del(.install_apps)' ~/frappe-bench/sites/test_site/site_config.json > tmp.json
mv tmp.json ~/frappe-bench/sites/test_site/site_config.json
wget https://erpnext.com/files/v13-erpnext.sql.gz
bench --site test_site --force restore ~/frappe-bench/v13-erpnext.sql.gz
git -C "apps/frappe" remote set-url upstream https://github.com/frappe/frappe.git
git -C "apps/erpnext" remote set-url upstream https://github.com/frappe/erpnext.git
pyenv global $(pyenv versions | grep '3.7')
for version in $(seq 12 13)
do
echo "Updating to v$version"
branch_name="version-$version-hotfix"
git -C "apps/frappe" fetch --depth 1 upstream $branch_name:$branch_name
git -C "apps/erpnext" fetch --depth 1 upstream $branch_name:$branch_name
function update_to_version() {
version=$1
git -C "apps/frappe" checkout -q -f $branch_name
git -C "apps/erpnext" checkout -q -f $branch_name
branch_name="version-$version-hotfix"
echo "Updating to v$version"
rm -rf ~/frappe-bench/env
bench setup env
bench pip install -e ./apps/payments
bench pip install -e ./apps/erpnext
# Fetch and checkout branches
git -C "apps/frappe" fetch --depth 1 upstream $branch_name:$branch_name
git -C "apps/erpnext" fetch --depth 1 upstream $branch_name:$branch_name
git -C "apps/frappe" checkout -q -f $branch_name
git -C "apps/erpnext" checkout -q -f $branch_name
bench --site test_site migrate
done
# Resetup env and install apps
pgrep honcho | xargs kill
rm -rf ~/frappe-bench/env
bench -v setup env
bench pip install -e ./apps/erpnext
bench start &>> ~/frappe-bench/bench_start.log &
bench --site test_site migrate
}
update_to_version 14
update_to_version 15
echo "Updating to latest version"
git -C "apps/frappe" checkout -q -f "${GITHUB_BASE_REF:-${GITHUB_REF##*/}}"
git -C "apps/erpnext" checkout -q -f "$GITHUB_SHA"
pyenv global $(pyenv versions | grep '3.10')
pgrep honcho | xargs kill
rm -rf ~/frappe-bench/env
bench -v setup env
bench pip install -e ./apps/payments
bench pip install -e ./apps/erpnext
bench start &>> ~/frappe-bench/bench_start.log &
bench --site test_site migrate
bench --site test_site install-app payments
- name: Show bench output
if: ${{ always() }}
run: |
cd ~/frappe-bench
cat bench_start.log || true
cd logs
for f in ./*.log*; do
echo "Printing log: $f";
cat $f
done

View File

@@ -13,10 +13,10 @@ jobs:
with:
fetch-depth: 0
persist-credentials: false
- name: Setup Node.js v14
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 14
node-version: 18
- name: Setup dependencies
run: |
npm install @semantic-release/git @semantic-release/exec --no-save
@@ -28,4 +28,4 @@ jobs:
GIT_AUTHOR_EMAIL: "developers@frappe.io"
GIT_COMMITTER_NAME: "Frappe PR Bot"
GIT_COMMITTER_EMAIL: "developers@frappe.io"
run: npx semantic-release
run: npx semantic-release

38
.github/workflows/release_notes.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
# This action:
#
# 1. Generates release notes using github API.
# 2. Strips unnecessary info like chore/style etc from notes.
# 3. Updates release info.
# This action needs to be maintained on all branches that do releases.
name: 'Release Notes'
on:
workflow_dispatch:
inputs:
tag_name:
description: 'Tag of release like v13.0.0'
required: true
type: string
release:
types: [released]
permissions:
contents: read
jobs:
regen-notes:
name: 'Regenerate release notes'
runs-on: ubuntu-latest
steps:
- name: Update notes
run: |
NEW_NOTES=$(gh api --method POST -H "Accept: application/vnd.github+json" /repos/frappe/erpnext/releases/generate-notes -f tag_name=$RELEASE_TAG | jq -r '.body' | sed -E '/^\* (chore|ci|test|docs|style)/d' )
RELEASE_ID=$(gh api -H "Accept: application/vnd.github+json" /repos/frappe/erpnext/releases/tags/$RELEASE_TAG | jq -r '.id')
gh api --method PATCH -H "Accept: application/vnd.github+json" /repos/frappe/erpnext/releases/$RELEASE_ID -f body="$NEW_NOTES"
env:
GH_TOKEN: ${{ secrets.RELEASE_TOKEN }}
RELEASE_TAG: ${{ github.event.inputs.tag_name || github.event.release.tag_name }}

View File

@@ -21,7 +21,7 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: 14
node-version: 18
check-latest: true
- name: Check commit titles

View File

@@ -7,21 +7,18 @@ on:
- '**.css'
- '**.md'
- '**.html'
- '**.csv'
push:
branches: [ develop ]
paths-ignore:
- '**.js'
- '**.md'
schedule:
# Run everday at midnight UTC / 5:30 IST
- cron: "0 0 * * *"
workflow_dispatch:
inputs:
user:
description: 'user'
description: 'Frappe Framework repository user (add your username for forks)'
required: true
default: 'frappe'
type: string
branch:
description: 'Branch name'
description: 'Frappe Framework branch'
default: 'develop'
required: false
type: string
@@ -50,7 +47,7 @@ jobs:
MARIADB_ROOT_PASSWORD: 'root'
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
options: --health-cmd="mariadb-admin ping" --health-interval=5s --health-timeout=2s --health-retries=3
steps:
- name: Clone
@@ -72,7 +69,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: 14
node-version: 18
check-latest: true
- name: Add to Hosts
@@ -126,6 +123,10 @@ jobs:
CI_BUILD_ID: ${{ github.run_id }}
ORCHESTRATOR_URL: http://test-orchestrator.frappe.io
- name: Show bench output
if: ${{ always() }}
run: cat ~/frappe-bench/bench_start.log || true
- name: Upload coverage data
uses: actions/upload-artifact@v3
with:

View File

@@ -59,7 +59,7 @@ jobs:
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: 14
node-version: 18
check-latest: true
- name: Add to Hosts

View File

@@ -15,6 +15,9 @@ pull_request_rules:
- or:
- base=version-13
- base=version-12
- base=version-14
- base=version-15
- base=version-16
actions:
close:
comment:
@@ -22,16 +25,6 @@ pull_request_rules:
@{{author}}, thanks for the contribution, but we do not accept pull requests on a stable branch. Please raise PR on an appropriate hotfix branch.
https://github.com/frappe/erpnext/wiki/Pull-Request-Checklist#which-branch
- name: Auto-close PRs on pre-release branch
conditions:
- base=version-13-pre-release
actions:
close:
comment:
message: |
@{{author}}, pre-release branch is not maintained anymore. Releases are directly done by merging hotfix branch to stable branches.
- name: backport to develop
conditions:
- label="backport develop"
@@ -52,13 +45,13 @@ pull_request_rules:
assignees:
- "{{ author }}"
- name: backport to version-14-pre-release
- name: backport to version-15-hotfix
conditions:
- label="backport version-14-pre-release"
- label="backport version-15-hotfix"
actions:
backport:
branches:
- version-14-pre-release
- version-15-hotfix
assignees:
- "{{ author }}"
@@ -72,35 +65,6 @@ pull_request_rules:
assignees:
- "{{ author }}"
- name: backport to version-13-pre-release
conditions:
- label="backport version-13-pre-release"
actions:
backport:
branches:
- version-13-pre-release
assignees:
- "{{ author }}"
- name: backport to version-12-hotfix
conditions:
- label="backport version-12-hotfix"
actions:
backport:
branches:
- version-12-hotfix
assignees:
- "{{ author }}"
- name: backport to version-12-pre-release
conditions:
- label="backport version-12-pre-release"
actions:
backport:
branches:
- version-12-pre-release
assignees:
- "{{ author }}"
- name: Automatic merge on CI success and review
conditions:

View File

@@ -16,12 +16,31 @@ repos:
- id: check-merge-conflict
- id: check-ast
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v8.44.0
hooks:
- id: eslint
types_or: [javascript]
args: ['--quiet']
# Ignore any files that might contain jinja / bundles
exclude: |
(?x)^(
erpnext/public/dist/.*|
cypress/.*|
.*node_modules.*|
.*boilerplate.*|
erpnext/public/js/controllers/.*|
erpnext/templates/pages/order.js|
erpnext/templates/includes/.*
)$
- repo: https://github.com/PyCQA/flake8
rev: 5.0.4
rev: 6.0.0
hooks:
- id: flake8
additional_dependencies: [
'flake8-bugbear',
'flake8-tuple',
]
args: ['--config', '.github/helper/.flake8_strict']
exclude: ".*setup.py$"
@@ -32,8 +51,8 @@ repos:
- id: black
additional_dependencies: ['click==8.0.4']
- repo: https://github.com/timothycrosley/isort
rev: 5.9.1
- repo: https://github.com/PyCQA/isort
rev: 5.12.0
hooks:
- id: isort
exclude: ".*setup.py$"

View File

@@ -3,26 +3,22 @@
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
erpnext/accounts/ @nextchamp-saqib @deepeshgarg007 @ruthra-kumar
erpnext/assets/ @nextchamp-saqib @deepeshgarg007 @ruthra-kumar
erpnext/loan_management/ @nextchamp-saqib @deepeshgarg007
erpnext/regional @nextchamp-saqib @deepeshgarg007 @ruthra-kumar
erpnext/selling @nextchamp-saqib @deepeshgarg007 @ruthra-kumar
erpnext/support/ @nextchamp-saqib @deepeshgarg007
pos* @nextchamp-saqib
erpnext/accounts/ @deepeshgarg007 @ruthra-kumar
erpnext/assets/ @anandbaburajan @deepeshgarg007
erpnext/regional @deepeshgarg007 @ruthra-kumar
erpnext/selling @deepeshgarg007 @ruthra-kumar
erpnext/support/ @deepeshgarg007
pos*
erpnext/buying/ @rohitwaghchaure @s-aga-r
erpnext/maintenance/ @rohitwaghchaure @s-aga-r
erpnext/manufacturing/ @rohitwaghchaure @s-aga-r
erpnext/quality_management/ @rohitwaghchaure @s-aga-r
erpnext/stock/ @rohitwaghchaure @s-aga-r
erpnext/subcontracting @rohitwaghchaure @s-aga-r
erpnext/crm/ @NagariaHussain
erpnext/education/ @rutwikhdev
erpnext/projects/ @ruchamahabal
erpnext/controllers/ @deepeshgarg007 @rohitwaghchaure
erpnext/patches/ @deepeshgarg007
erpnext/controllers/ @deepeshgarg007 @nextchamp-saqib @rohitwaghchaure
erpnext/patches/ @deepeshgarg007 @nextchamp-saqib
.github/ @ankush
pyproject.toml @ankush
.github/ @deepeshgarg007
pyproject.toml @phot0n

View File

@@ -65,7 +65,7 @@ New passwords will be created for the ERPNext "Administrator" user, the MariaDB
1. [Frappe School](https://frappe.school) - Learn Frappe Framework and ERPNext from the various courses by the maintainers or from the community.
2. [Official documentation](https://docs.erpnext.com/) - Extensive documentation for ERPNext.
3. [Discussion Forum](https://discuss.erpnext.com/) - Engage with community of ERPNext users and service providers.
4. [Telegram Group](https://t.me/erpnexthelp) - Get instant help from huge community of users.
4. [Telegram Group](https://erpnext_public.t.me) - Get instant help from huge community of users.
## Contributing

View File

@@ -1,8 +1,9 @@
import functools
import inspect
import frappe
__version__ = "14.0.0-dev"
__version__ = "15.0.0-dev"
def get_default_company(user=None):
@@ -120,12 +121,14 @@ def get_region(company=None):
You can also set global company flag in `frappe.flags.company`
"""
if company or frappe.flags.company:
return frappe.get_cached_value("Company", company or frappe.flags.company, "country")
elif frappe.flags.country:
return frappe.flags.country
else:
return frappe.get_system_settings("country")
if not company:
company = frappe.local.flags.company
if company:
return frappe.get_cached_value("Company", company, "country")
return frappe.flags.country or frappe.get_system_settings("country")
def allow_regional(fn):
@@ -136,6 +139,7 @@ def allow_regional(fn):
def myfunction():
pass"""
@functools.wraps(fn)
def caller(*args, **kwargs):
overrides = frappe.get_hooks("regional_overrides", {}).get(get_region())
function_path = f"{inspect.getmodule(fn).__name__}.{fn.__name__}"

View File

@@ -4,18 +4,19 @@
"creation": "2020-07-17 11:25:34.593061",
"docstatus": 0,
"doctype": "Dashboard Chart",
"dynamic_filters_json": "{\"company\":\"frappe.defaults.get_user_default(\\\"Company\\\")\",\"from_fiscal_year\":\"frappe.sys_defaults.fiscal_year\",\"to_fiscal_year\":\"frappe.sys_defaults.fiscal_year\"}",
"dynamic_filters_json": "{\"company\":\"frappe.defaults.get_user_default(\\\"Company\\\")\",\"from_fiscal_year\":\"erpnext.utils.get_fiscal_year()\",\"to_fiscal_year\":\"erpnext.utils.get_fiscal_year()\"}",
"filters_json": "{\"period\":\"Monthly\",\"budget_against\":\"Cost Center\",\"show_cumulative\":0}",
"idx": 0,
"is_public": 1,
"is_standard": 1,
"modified": "2020-07-22 12:24:49.144210",
"modified": "2023-07-19 13:13:13.307073",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Budget Variance",
"number_of_groups": 0,
"owner": "Administrator",
"report_name": "Budget Variance Report",
"roles": [],
"timeseries": 0,
"type": "Bar",
"use_report_chart": 1,

View File

@@ -4,18 +4,19 @@
"creation": "2020-07-17 11:25:34.448572",
"docstatus": 0,
"doctype": "Dashboard Chart",
"dynamic_filters_json": "{\"company\":\"frappe.defaults.get_user_default(\\\"Company\\\")\",\"from_fiscal_year\":\"frappe.sys_defaults.fiscal_year\",\"to_fiscal_year\":\"frappe.sys_defaults.fiscal_year\"}",
"dynamic_filters_json": "{\"company\":\"frappe.defaults.get_user_default(\\\"Company\\\")\",\"from_fiscal_year\":\"erpnext.utils.get_fiscal_year()\",\"to_fiscal_year\":\"erpnext.utils.get_fiscal_year()\"}",
"filters_json": "{\"filter_based_on\":\"Fiscal Year\",\"period_start_date\":\"2020-04-01\",\"period_end_date\":\"2021-03-31\",\"periodicity\":\"Yearly\",\"include_default_book_entries\":1}",
"idx": 0,
"is_public": 1,
"is_standard": 1,
"modified": "2020-07-22 12:33:48.888943",
"modified": "2023-07-19 13:08:56.470390",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Profit and Loss",
"number_of_groups": 0,
"owner": "Administrator",
"report_name": "Profit and Loss Statement",
"roles": [],
"timeseries": 0,
"type": "Bar",
"use_report_chart": 1,

View File

@@ -136,7 +136,7 @@ def convert_deferred_revenue_to_income(
send_mail(deferred_process)
def get_booking_dates(doc, item, posting_date=None):
def get_booking_dates(doc, item, posting_date=None, prev_posting_date=None):
if not posting_date:
posting_date = add_days(today(), -1)
@@ -146,39 +146,42 @@ def get_booking_dates(doc, item, posting_date=None):
"deferred_revenue_account" if doc.doctype == "Sales Invoice" else "deferred_expense_account"
)
prev_gl_entry = frappe.db.sql(
"""
select name, posting_date from `tabGL Entry` where company=%s and account=%s and
voucher_type=%s and voucher_no=%s and voucher_detail_no=%s
and is_cancelled = 0
order by posting_date desc limit 1
""",
(doc.company, item.get(deferred_account), doc.doctype, doc.name, item.name),
as_dict=True,
)
if not prev_posting_date:
prev_gl_entry = frappe.db.sql(
"""
select name, posting_date from `tabGL Entry` where company=%s and account=%s and
voucher_type=%s and voucher_no=%s and voucher_detail_no=%s
and is_cancelled = 0
order by posting_date desc limit 1
""",
(doc.company, item.get(deferred_account), doc.doctype, doc.name, item.name),
as_dict=True,
)
prev_gl_via_je = frappe.db.sql(
"""
SELECT p.name, p.posting_date FROM `tabJournal Entry` p, `tabJournal Entry Account` c
WHERE p.name = c.parent and p.company=%s and c.account=%s
and c.reference_type=%s and c.reference_name=%s
and c.reference_detail_no=%s and c.docstatus < 2 order by posting_date desc limit 1
""",
(doc.company, item.get(deferred_account), doc.doctype, doc.name, item.name),
as_dict=True,
)
prev_gl_via_je = frappe.db.sql(
"""
SELECT p.name, p.posting_date FROM `tabJournal Entry` p, `tabJournal Entry Account` c
WHERE p.name = c.parent and p.company=%s and c.account=%s
and c.reference_type=%s and c.reference_name=%s
and c.reference_detail_no=%s and c.docstatus < 2 order by posting_date desc limit 1
""",
(doc.company, item.get(deferred_account), doc.doctype, doc.name, item.name),
as_dict=True,
)
if prev_gl_via_je:
if (not prev_gl_entry) or (
prev_gl_entry and prev_gl_entry[0].posting_date < prev_gl_via_je[0].posting_date
):
prev_gl_entry = prev_gl_via_je
if prev_gl_via_je:
if (not prev_gl_entry) or (
prev_gl_entry and prev_gl_entry[0].posting_date < prev_gl_via_je[0].posting_date
):
prev_gl_entry = prev_gl_via_je
if prev_gl_entry:
start_date = getdate(add_days(prev_gl_entry[0].posting_date, 1))
else:
start_date = item.service_start_date
if prev_gl_entry:
start_date = getdate(add_days(prev_gl_entry[0].posting_date, 1))
else:
start_date = item.service_start_date
start_date = getdate(add_days(prev_posting_date, 1))
end_date = get_last_day(start_date)
if end_date >= item.service_end_date:
end_date = item.service_end_date
@@ -338,12 +341,18 @@ def book_deferred_income_or_expense(doc, deferred_process, posting_date=None):
"enable_deferred_revenue" if doc.doctype == "Sales Invoice" else "enable_deferred_expense"
)
accounts_frozen_upto = frappe.get_cached_value("Accounts Settings", "None", "acc_frozen_upto")
accounts_frozen_upto = frappe.db.get_single_value("Accounts Settings", "acc_frozen_upto")
def _book_deferred_revenue_or_expense(
item, via_journal_entry, submit_journal_entry, book_deferred_entries_based_on
item,
via_journal_entry,
submit_journal_entry,
book_deferred_entries_based_on,
prev_posting_date=None,
):
start_date, end_date, last_gl_entry = get_booking_dates(doc, item, posting_date=posting_date)
start_date, end_date, last_gl_entry = get_booking_dates(
doc, item, posting_date=posting_date, prev_posting_date=prev_posting_date
)
if not (start_date and end_date):
return
@@ -377,9 +386,12 @@ def book_deferred_income_or_expense(doc, deferred_process, posting_date=None):
if not amount:
return
gl_posting_date = end_date
prev_posting_date = None
# check if books nor frozen till endate:
if accounts_frozen_upto and (end_date) <= getdate(accounts_frozen_upto):
end_date = get_last_day(add_days(accounts_frozen_upto, 1))
if accounts_frozen_upto and getdate(end_date) <= getdate(accounts_frozen_upto):
gl_posting_date = get_last_day(add_days(accounts_frozen_upto, 1))
prev_posting_date = end_date
if via_journal_entry:
book_revenue_via_journal_entry(
@@ -388,7 +400,7 @@ def book_deferred_income_or_expense(doc, deferred_process, posting_date=None):
debit_account,
amount,
base_amount,
end_date,
gl_posting_date,
project,
account_currency,
item.cost_center,
@@ -404,7 +416,7 @@ def book_deferred_income_or_expense(doc, deferred_process, posting_date=None):
against,
amount,
base_amount,
end_date,
gl_posting_date,
project,
account_currency,
item.cost_center,
@@ -418,7 +430,11 @@ def book_deferred_income_or_expense(doc, deferred_process, posting_date=None):
if getdate(end_date) < getdate(posting_date) and not last_gl_entry:
_book_deferred_revenue_or_expense(
item, via_journal_entry, submit_journal_entry, book_deferred_entries_based_on
item,
via_journal_entry,
submit_journal_entry,
book_deferred_entries_based_on,
prev_posting_date,
)
via_journal_entry = cint(

View File

@@ -1,67 +1,83 @@
// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors
// License: GNU General Public License v3. See license.txt
frappe.ui.form.on('Account', {
setup: function(frm) {
frm.add_fetch('parent_account', 'report_type', 'report_type');
frm.add_fetch('parent_account', 'root_type', 'root_type');
frappe.ui.form.on("Account", {
setup: function (frm) {
frm.add_fetch("parent_account", "report_type", "report_type");
frm.add_fetch("parent_account", "root_type", "root_type");
},
onload: function(frm) {
frm.set_query('parent_account', function(doc) {
onload: function (frm) {
frm.set_query("parent_account", function (doc) {
return {
filters: {
"is_group": 1,
"company": doc.company
}
is_group: 1,
company: doc.company,
},
};
});
},
refresh: function(frm) {
frm.toggle_display('account_name', frm.is_new());
refresh: function (frm) {
frm.toggle_display("account_name", frm.is_new());
// hide fields if group
frm.toggle_display(['account_type', 'tax_rate'], cint(frm.doc.is_group) == 0);
frm.toggle_display(["tax_rate"], cint(frm.doc.is_group) == 0);
// disable fields
frm.toggle_enable(['is_group', 'company'], false);
frm.toggle_enable(["is_group", "company"], false);
if (cint(frm.doc.is_group) == 0) {
frm.toggle_display('freeze_account', frm.doc.__onload
&& frm.doc.__onload.can_freeze_account);
frm.toggle_display(
"freeze_account",
frm.doc.__onload && frm.doc.__onload.can_freeze_account
);
}
// read-only for root accounts
if (!frm.is_new()) {
if (!frm.doc.parent_account) {
frm.set_read_only();
frm.set_intro(__("This is a root account and cannot be edited."));
frm.set_intro(
__("This is a root account and cannot be edited.")
);
} else {
// credit days and type if customer or supplier
frm.set_intro(null);
frm.trigger('account_type');
frm.trigger("account_type");
// show / hide convert buttons
frm.trigger('add_toolbar_buttons');
frm.trigger("add_toolbar_buttons");
}
if (frm.has_perm('write')) {
frm.add_custom_button(__('Merge Account'), function () {
frm.trigger("merge_account");
}, __('Actions'));
frm.add_custom_button(__('Update Account Name / Number'), function () {
frm.trigger("update_account_number");
}, __('Actions'));
if (frm.has_perm("write")) {
frm.add_custom_button(
__("Merge Account"),
function () {
frm.trigger("merge_account");
},
__("Actions")
);
frm.add_custom_button(
__("Update Account Name / Number"),
function () {
frm.trigger("update_account_number");
},
__("Actions")
);
}
}
},
account_type: function (frm) {
if (frm.doc.is_group == 0) {
frm.toggle_display(['tax_rate'], frm.doc.account_type == 'Tax');
frm.toggle_display('warehouse', frm.doc.account_type == 'Stock');
frm.toggle_display(["tax_rate"], frm.doc.account_type == "Tax");
frm.toggle_display("warehouse", frm.doc.account_type == "Stock");
}
},
add_toolbar_buttons: function(frm) {
frm.add_custom_button(__('Chart of Accounts'), () => {
frappe.set_route("Tree", "Account");
}, __('View'));
add_toolbar_buttons: function (frm) {
frm.add_custom_button(
__("Chart of Accounts"),
() => {
frappe.set_route("Tree", "Account");
},
__("View")
);
if (frm.doc.is_group == 1) {
frm.add_custom_button(__('Convert to Non-Group'), function () {
@@ -79,84 +95,88 @@ frappe.ui.form.on('Account', {
frm.add_custom_button(__('General Ledger'), function () {
frappe.route_options = {
"account": frm.doc.name,
"from_date": frappe.sys_defaults.year_start_date,
"to_date": frappe.sys_defaults.year_end_date,
"from_date": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[1],
"to_date": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[2],
"company": frm.doc.company
};
frappe.set_route("query-report", "General Ledger");
}, __('View'));
frm.add_custom_button(__('Convert to Group'), function () {
return frappe.call({
doc: frm.doc,
method: 'convert_ledger_to_group',
callback: function() {
frm.refresh();
}
});
}, __('Actions'));
frm.add_custom_button(
__("Convert to Group"),
function () {
return frappe.call({
doc: frm.doc,
method: "convert_ledger_to_group",
callback: function () {
frm.refresh();
},
});
},
__("Actions")
);
}
},
merge_account: function(frm) {
merge_account: function (frm) {
var d = new frappe.ui.Dialog({
title: __('Merge with Existing Account'),
title: __("Merge with Existing Account"),
fields: [
{
"label" : "Name",
"fieldname": "name",
"fieldtype": "Data",
"reqd": 1,
"default": frm.doc.name
}
label: "Name",
fieldname: "name",
fieldtype: "Data",
reqd: 1,
default: frm.doc.name,
},
],
primary_action: function() {
primary_action: function () {
var data = d.get_values();
frappe.call({
method: "erpnext.accounts.doctype.account.account.merge_account",
args: {
old: frm.doc.name,
new: data.name,
is_group: frm.doc.is_group,
root_type: frm.doc.root_type,
company: frm.doc.company
},
callback: function(r) {
if(!r.exc) {
if(r.message) {
callback: function (r) {
if (!r.exc) {
if (r.message) {
frappe.set_route("Form", "Account", r.message);
}
d.hide();
}
}
},
});
},
primary_action_label: __('Merge')
primary_action_label: __("Merge"),
});
d.show();
},
update_account_number: function(frm) {
update_account_number: function (frm) {
var d = new frappe.ui.Dialog({
title: __('Update Account Number / Name'),
title: __("Update Account Number / Name"),
fields: [
{
"label": "Account Name",
"fieldname": "account_name",
"fieldtype": "Data",
"reqd": 1,
"default": frm.doc.account_name
label: "Account Name",
fieldname: "account_name",
fieldtype: "Data",
reqd: 1,
default: frm.doc.account_name,
},
{
"label": "Account Number",
"fieldname": "account_number",
"fieldtype": "Data",
"default": frm.doc.account_number
}
label: "Account Number",
fieldname: "account_number",
fieldtype: "Data",
default: frm.doc.account_number,
},
],
primary_action: function() {
primary_action: function () {
var data = d.get_values();
if(data.account_number === frm.doc.account_number && data.account_name === frm.doc.account_name) {
if (
data.account_number === frm.doc.account_number &&
data.account_name === frm.doc.account_name
) {
d.hide();
return;
}
@@ -166,23 +186,29 @@ frappe.ui.form.on('Account', {
args: {
account_number: data.account_number,
account_name: data.account_name,
name: frm.doc.name
name: frm.doc.name,
},
callback: function(r) {
if(!r.exc) {
if(r.message) {
callback: function (r) {
if (!r.exc) {
if (r.message) {
frappe.set_route("Form", "Account", r.message);
} else {
frm.set_value("account_number", data.account_number);
frm.set_value("account_name", data.account_name);
frm.set_value(
"account_number",
data.account_number
);
frm.set_value(
"account_name",
data.account_name
);
}
d.hide();
}
}
},
});
},
primary_action_label: __('Update')
primary_action_label: __("Update"),
});
d.show();
}
},
});

View File

@@ -18,7 +18,6 @@
"root_type",
"report_type",
"account_currency",
"inter_company_account",
"column_break1",
"parent_account",
"account_type",
@@ -34,15 +33,11 @@
{
"fieldname": "properties",
"fieldtype": "Section Break",
"oldfieldtype": "Section Break",
"show_days": 1,
"show_seconds": 1
"oldfieldtype": "Section Break"
},
{
"fieldname": "column_break0",
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1,
"width": "50%"
},
{
@@ -53,9 +48,7 @@
"no_copy": 1,
"oldfieldname": "account_name",
"oldfieldtype": "Data",
"reqd": 1,
"show_days": 1,
"show_seconds": 1
"reqd": 1
},
{
"fieldname": "account_number",
@@ -63,17 +56,13 @@
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Account Number",
"read_only": 1,
"show_days": 1,
"show_seconds": 1
"read_only": 1
},
{
"default": "0",
"fieldname": "is_group",
"fieldtype": "Check",
"label": "Is Group",
"show_days": 1,
"show_seconds": 1
"label": "Is Group"
},
{
"fieldname": "company",
@@ -85,9 +74,7 @@
"options": "Company",
"read_only": 1,
"remember_last_selected_value": 1,
"reqd": 1,
"show_days": 1,
"show_seconds": 1
"reqd": 1
},
{
"fieldname": "root_type",
@@ -95,9 +82,7 @@
"in_standard_filter": 1,
"label": "Root Type",
"options": "\nAsset\nLiability\nIncome\nExpense\nEquity",
"read_only": 1,
"show_days": 1,
"show_seconds": 1
"read_only": 1
},
{
"fieldname": "report_type",
@@ -105,32 +90,18 @@
"in_standard_filter": 1,
"label": "Report Type",
"options": "\nBalance Sheet\nProfit and Loss",
"read_only": 1,
"show_days": 1,
"show_seconds": 1
"read_only": 1
},
{
"depends_on": "eval:doc.is_group==0",
"fieldname": "account_currency",
"fieldtype": "Link",
"label": "Currency",
"options": "Currency",
"show_days": 1,
"show_seconds": 1
},
{
"default": "0",
"fieldname": "inter_company_account",
"fieldtype": "Check",
"label": "Inter Company Account",
"show_days": 1,
"show_seconds": 1
"options": "Currency"
},
{
"fieldname": "column_break1",
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1,
"width": "50%"
},
{
@@ -142,9 +113,7 @@
"oldfieldtype": "Link",
"options": "Account",
"reqd": 1,
"search_index": 1,
"show_days": 1,
"show_seconds": 1
"search_index": 1
},
{
"description": "Setting Account Type helps in selecting this Account in transactions.",
@@ -154,9 +123,7 @@
"label": "Account Type",
"oldfieldname": "account_type",
"oldfieldtype": "Select",
"options": "\nAccumulated Depreciation\nAsset Received But Not Billed\nBank\nCash\nChargeable\nCapital Work in Progress\nCost of Goods Sold\nDepreciation\nEquity\nExpense Account\nExpenses Included In Asset Valuation\nExpenses Included In Valuation\nFixed Asset\nIncome Account\nPayable\nReceivable\nRound Off\nStock\nStock Adjustment\nStock Received But Not Billed\nService Received But Not Billed\nTax\nTemporary",
"show_days": 1,
"show_seconds": 1
"options": "\nAccumulated Depreciation\nAsset Received But Not Billed\nBank\nCash\nChargeable\nCapital Work in Progress\nCost of Goods Sold\nCurrent Asset\nCurrent Liability\nDepreciation\nDirect Expense\nDirect Income\nEquity\nExpense Account\nExpenses Included In Asset Valuation\nExpenses Included In Valuation\nFixed Asset\nIncome Account\nIndirect Expense\nIndirect Income\nLiability\nPayable\nReceivable\nRound Off\nStock\nStock Adjustment\nStock Received But Not Billed\nService Received But Not Billed\nTax\nTemporary"
},
{
"description": "Rate at which this tax is applied",
@@ -164,9 +131,7 @@
"fieldtype": "Float",
"label": "Rate",
"oldfieldname": "tax_rate",
"oldfieldtype": "Currency",
"show_days": 1,
"show_seconds": 1
"oldfieldtype": "Currency"
},
{
"description": "If the account is frozen, entries are allowed to restricted users.",
@@ -175,17 +140,13 @@
"label": "Frozen",
"oldfieldname": "freeze_account",
"oldfieldtype": "Select",
"options": "No\nYes",
"show_days": 1,
"show_seconds": 1
"options": "No\nYes"
},
{
"fieldname": "balance_must_be",
"fieldtype": "Select",
"label": "Balance must be",
"options": "\nDebit\nCredit",
"show_days": 1,
"show_seconds": 1
"options": "\nDebit\nCredit"
},
{
"fieldname": "lft",
@@ -194,9 +155,7 @@
"label": "Lft",
"print_hide": 1,
"read_only": 1,
"search_index": 1,
"show_days": 1,
"show_seconds": 1
"search_index": 1
},
{
"fieldname": "rgt",
@@ -205,9 +164,7 @@
"label": "Rgt",
"print_hide": 1,
"read_only": 1,
"search_index": 1,
"show_days": 1,
"show_seconds": 1
"search_index": 1
},
{
"fieldname": "old_parent",
@@ -215,33 +172,27 @@
"hidden": 1,
"label": "Old Parent",
"print_hide": 1,
"read_only": 1,
"show_days": 1,
"show_seconds": 1
"read_only": 1
},
{
"default": "0",
"depends_on": "eval:(doc.report_type == 'Profit and Loss' && !doc.is_group)",
"fieldname": "include_in_gross",
"fieldtype": "Check",
"label": "Include in gross",
"show_days": 1,
"show_seconds": 1
"label": "Include in gross"
},
{
"default": "0",
"fieldname": "disabled",
"fieldtype": "Check",
"label": "Disable",
"show_days": 1,
"show_seconds": 1
"label": "Disable"
}
],
"icon": "fa fa-money",
"idx": 1,
"is_tree": 1,
"links": [],
"modified": "2020-06-11 15:15:54.338622",
"modified": "2023-07-20 18:18:44.405723",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Account",
@@ -292,7 +243,6 @@
"read": 1,
"report": 1,
"role": "Accounts Manager",
"set_user_permissions": 1,
"share": 1,
"write": 1
}
@@ -301,5 +251,6 @@
"show_name_in_global_search": 1,
"sort_field": "modified",
"sort_order": "ASC",
"states": [],
"track_changes": 1
}

View File

@@ -18,6 +18,10 @@ class BalanceMismatchError(frappe.ValidationError):
pass
class InvalidAccountMergeError(frappe.ValidationError):
pass
class Account(NestedSet):
nsm_parent_field = "parent_account"
@@ -45,6 +49,7 @@ class Account(NestedSet):
if frappe.local.flags.allow_unverified_charts:
return
self.validate_parent()
self.validate_parent_child_account_type()
self.validate_root_details()
validate_field_number("Account", self.name, self.account_number, self.company, "account_number")
self.validate_group_or_ledger()
@@ -55,6 +60,20 @@ class Account(NestedSet):
self.validate_account_currency()
self.validate_root_company_and_sync_account_to_children()
def validate_parent_child_account_type(self):
if self.parent_account:
if self.account_type in [
"Direct Income",
"Indirect Income",
"Current Asset",
"Current Liability",
"Direct Expense",
"Indirect Expense",
]:
parent_account_type = frappe.db.get_value("Account", self.parent_account, ["account_type"])
if parent_account_type == self.account_type:
throw(_("Only Parent can be of type {0}").format(self.account_type))
def validate_parent(self):
"""Fetch Parent Details and validate parent account"""
if self.parent_account:
@@ -204,8 +223,11 @@ class Account(NestedSet):
)
def validate_account_currency(self):
self.currency_explicitly_specified = True
if not self.account_currency:
self.account_currency = frappe.get_cached_value("Company", self.company, "default_currency")
self.currency_explicitly_specified = False
gl_currency = frappe.db.get_value("GL Entry", {"account": self.name}, "account_currency")
@@ -251,8 +273,10 @@ class Account(NestedSet):
{
"company": company,
# parent account's currency should be passed down to child account's curreny
# if it is None, it picks it up from default company currency, which might be unintended
"account_currency": erpnext.get_company_currency(company),
# if currency explicitly specified by user, child will inherit. else, default currency will be used.
"account_currency": self.account_currency
if self.currency_explicitly_specified
else erpnext.get_company_currency(company),
"parent_account": parent_acc_name_map[company],
}
)
@@ -394,7 +418,13 @@ def update_account_number(name, account_name, account_number=None, from_descenda
if ancestors and not allow_independent_account_creation:
for ancestor in ancestors:
if frappe.db.get_value("Account", {"account_name": old_acc_name, "company": ancestor}, "name"):
old_name = frappe.db.get_value(
"Account",
{"account_number": old_acc_number, "account_name": old_acc_name, "company": ancestor},
"name",
)
if old_name:
# same account in parent company exists
allow_child_account_creation = _("Allow Account Creation Against Child Company")
@@ -434,25 +464,34 @@ def update_account_number(name, account_name, account_number=None, from_descenda
@frappe.whitelist()
def merge_account(old, new, is_group, root_type, company):
def merge_account(old, new):
# Validate properties before merging
new_account = frappe.get_cached_doc("Account", new)
old_account = frappe.get_cached_doc("Account", old)
if not new_account:
throw(_("Account {0} does not exist").format(new))
if (new_account.is_group, new_account.root_type, new_account.company) != (
cint(is_group),
root_type,
company,
if (
cint(new_account.is_group),
new_account.root_type,
new_account.company,
cstr(new_account.account_currency),
) != (
cint(old_account.is_group),
old_account.root_type,
old_account.company,
cstr(old_account.account_currency),
):
throw(
_(
"""Merging is only possible if following properties are same in both records. Is Group, Root Type, Company"""
)
msg=_(
"""Merging is only possible if following properties are same in both records. Is Group, Root Type, Company and Account Currency"""
),
title=("Invalid Accounts"),
exc=InvalidAccountMergeError,
)
if is_group and new_account.parent_account == old:
if old_account.is_group and new_account.parent_account == old:
new_account.db_set("parent_account", frappe.get_cached_value("Account", old, "parent_account"))
frappe.rename_doc("Account", old, new, merge=1, force=1)

View File

@@ -56,36 +56,41 @@ frappe.treeview_settings["Account"] = {
accounts = nodes;
}
const get_balances = frappe.call({
method: 'erpnext.accounts.utils.get_account_balances',
args: {
accounts: accounts,
company: cur_tree.args.company
},
});
frappe.db.get_single_value("Accounts Settings", "show_balance_in_coa").then((value) => {
if(value) {
get_balances.then(r => {
if (!r.message || r.message.length == 0) return;
const get_balances = frappe.call({
method: 'erpnext.accounts.utils.get_account_balances',
args: {
accounts: accounts,
company: cur_tree.args.company
},
});
for (let account of r.message) {
get_balances.then(r => {
if (!r.message || r.message.length == 0) return;
const node = cur_tree.nodes && cur_tree.nodes[account.value];
if (!node || node.is_root) continue;
for (let account of r.message) {
// show Dr if positive since balance is calculated as debit - credit else show Cr
const balance = account.balance_in_account_currency || account.balance;
const dr_or_cr = balance > 0 ? "Dr": "Cr";
const format = (value, currency) => format_currency(Math.abs(value), currency);
const node = cur_tree.nodes && cur_tree.nodes[account.value];
if (!node || node.is_root) continue;
if (account.balance!==undefined) {
node.parent && node.parent.find('.balance-area').remove();
$('<span class="balance-area pull-right">'
+ (account.balance_in_account_currency ?
(format(account.balance_in_account_currency, account.account_currency) + " / ") : "")
+ format(account.balance, account.company_currency)
+ " " + dr_or_cr
+ '</span>').insertBefore(node.$ul);
}
// show Dr if positive since balance is calculated as debit - credit else show Cr
const balance = account.balance_in_account_currency || account.balance;
const dr_or_cr = balance > 0 ? "Dr": "Cr";
const format = (value, currency) => format_currency(Math.abs(value), currency);
if (account.balance!==undefined) {
node.parent && node.parent.find('.balance-area').remove();
$('<span class="balance-area pull-right">'
+ (account.balance_in_account_currency ?
(format(account.balance_in_account_currency, account.account_currency) + " / ") : "")
+ format(account.balance, account.company_currency)
+ " " + dr_or_cr
+ '</span>').insertBefore(node.$ul);
}
}
});
}
});
},
@@ -189,8 +194,8 @@ frappe.treeview_settings["Account"] = {
click: function(node, btn) {
frappe.route_options = {
"account": node.label,
"from_date": frappe.sys_defaults.year_start_date,
"to_date": frappe.sys_defaults.year_end_date,
"from_date": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[1],
"to_date": erpnext.utils.get_fiscal_year(frappe.datetime.get_today(), true)[2],
"company": frappe.treeview_settings['Account'].treeview.page.fields_dict.company.get_value()
};
frappe.set_route("query-report", "General Ledger");

View File

@@ -29,6 +29,7 @@ def create_charts(
"root_type",
"is_group",
"tax_rate",
"account_currency",
]:
account_number = cstr(child.get("account_number")).strip()
@@ -95,7 +96,17 @@ def identify_is_group(child):
is_group = child.get("is_group")
elif len(
set(child.keys())
- set(["account_name", "account_type", "root_type", "is_group", "tax_rate", "account_number"])
- set(
[
"account_name",
"account_type",
"root_type",
"is_group",
"tax_rate",
"account_number",
"account_currency",
]
)
):
is_group = 1
else:
@@ -185,6 +196,7 @@ def get_account_tree_from_existing_company(existing_company):
"root_type",
"tax_rate",
"account_number",
"account_currency",
],
order_by="lft, rgt",
)
@@ -267,6 +279,7 @@ def build_tree_from_json(chart_template, chart_data=None, from_coa_importer=Fals
"root_type",
"is_group",
"tax_rate",
"account_currency",
]:
continue

View File

@@ -1,289 +0,0 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
"""
Import chart of accounts from OpenERP sources
"""
import ast
import json
import os
from xml.etree import ElementTree as ET
import frappe
from frappe.utils.csvutils import read_csv_content
path = "/Users/nabinhait/projects/odoo/addons"
accounts = {}
charts = {}
all_account_types = []
all_roots = {}
def go():
global accounts, charts
default_account_types = get_default_account_types()
country_dirs = []
for basepath, folders, files in os.walk(path):
basename = os.path.basename(basepath)
if basename.startswith("l10n_"):
country_dirs.append(basename)
for country_dir in country_dirs:
accounts, charts = {}, {}
country_path = os.path.join(path, country_dir)
manifest = ast.literal_eval(open(os.path.join(country_path, "__openerp__.py")).read())
data_files = (
manifest.get("data", []) + manifest.get("init_xml", []) + manifest.get("update_xml", [])
)
files_path = [os.path.join(country_path, d) for d in data_files]
xml_roots = get_xml_roots(files_path)
csv_content = get_csv_contents(files_path)
prefix = country_dir if csv_content else None
account_types = get_account_types(
xml_roots.get("account.account.type", []), csv_content.get("account.account.type", []), prefix
)
account_types.update(default_account_types)
if xml_roots:
make_maps_for_xml(xml_roots, account_types, country_dir)
if csv_content:
make_maps_for_csv(csv_content, account_types, country_dir)
make_account_trees()
make_charts()
create_all_roots_file()
def get_default_account_types():
default_types_root = []
default_types_root.append(
ET.parse(os.path.join(path, "account", "data", "data_account_type.xml")).getroot()
)
return get_account_types(default_types_root, None, prefix="account")
def get_xml_roots(files_path):
xml_roots = frappe._dict()
for filepath in files_path:
fname = os.path.basename(filepath)
if fname.endswith(".xml"):
tree = ET.parse(filepath)
root = tree.getroot()
for node in root[0].findall("record"):
if node.get("model") in [
"account.account.template",
"account.chart.template",
"account.account.type",
]:
xml_roots.setdefault(node.get("model"), []).append(root)
break
return xml_roots
def get_csv_contents(files_path):
csv_content = {}
for filepath in files_path:
fname = os.path.basename(filepath)
for file_type in ["account.account.template", "account.account.type", "account.chart.template"]:
if fname.startswith(file_type) and fname.endswith(".csv"):
with open(filepath, "r") as csvfile:
try:
csv_content.setdefault(file_type, []).append(read_csv_content(csvfile.read()))
except Exception as e:
continue
return csv_content
def get_account_types(root_list, csv_content, prefix=None):
types = {}
account_type_map = {
"cash": "Cash",
"bank": "Bank",
"tr_cash": "Cash",
"tr_bank": "Bank",
"receivable": "Receivable",
"tr_receivable": "Receivable",
"account rec": "Receivable",
"payable": "Payable",
"tr_payable": "Payable",
"equity": "Equity",
"stocks": "Stock",
"stock": "Stock",
"tax": "Tax",
"tr_tax": "Tax",
"tax-out": "Tax",
"tax-in": "Tax",
"charges_personnel": "Chargeable",
"fixed asset": "Fixed Asset",
"cogs": "Cost of Goods Sold",
}
for root in root_list:
for node in root[0].findall("record"):
if node.get("model") == "account.account.type":
data = {}
for field in node.findall("field"):
if (
field.get("name") == "code"
and field.text.lower() != "none"
and account_type_map.get(field.text)
):
data["account_type"] = account_type_map[field.text]
node_id = prefix + "." + node.get("id") if prefix else node.get("id")
types[node_id] = data
if csv_content and csv_content[0][0] == "id":
for row in csv_content[1:]:
row_dict = dict(zip(csv_content[0], row))
data = {}
if row_dict.get("code") and account_type_map.get(row_dict["code"]):
data["account_type"] = account_type_map[row_dict["code"]]
if data and data.get("id"):
node_id = prefix + "." + data.get("id") if prefix else data.get("id")
types[node_id] = data
return types
def make_maps_for_xml(xml_roots, account_types, country_dir):
"""make maps for `charts` and `accounts`"""
for model, root_list in xml_roots.items():
for root in root_list:
for node in root[0].findall("record"):
if node.get("model") == "account.account.template":
data = {}
for field in node.findall("field"):
if field.get("name") == "name":
data["name"] = field.text
if field.get("name") == "parent_id":
parent_id = field.get("ref") or field.get("eval")
data["parent_id"] = parent_id
if field.get("name") == "user_type":
value = field.get("ref")
if account_types.get(value, {}).get("account_type"):
data["account_type"] = account_types[value]["account_type"]
if data["account_type"] not in all_account_types:
all_account_types.append(data["account_type"])
data["children"] = []
accounts[node.get("id")] = data
if node.get("model") == "account.chart.template":
data = {}
for field in node.findall("field"):
if field.get("name") == "name":
data["name"] = field.text
if field.get("name") == "account_root_id":
data["account_root_id"] = field.get("ref")
data["id"] = country_dir
charts.setdefault(node.get("id"), {}).update(data)
def make_maps_for_csv(csv_content, account_types, country_dir):
for content in csv_content.get("account.account.template", []):
for row in content[1:]:
data = dict(zip(content[0], row))
account = {
"name": data.get("name"),
"parent_id": data.get("parent_id:id") or data.get("parent_id/id"),
"children": [],
}
user_type = data.get("user_type/id") or data.get("user_type:id")
if account_types.get(user_type, {}).get("account_type"):
account["account_type"] = account_types[user_type]["account_type"]
if account["account_type"] not in all_account_types:
all_account_types.append(account["account_type"])
accounts[data.get("id")] = account
if not account.get("parent_id") and data.get("chart_template_id:id"):
chart_id = data.get("chart_template_id:id")
charts.setdefault(chart_id, {}).update({"account_root_id": data.get("id")})
for content in csv_content.get("account.chart.template", []):
for row in content[1:]:
if row:
data = dict(zip(content[0], row))
charts.setdefault(data.get("id"), {}).update(
{
"account_root_id": data.get("account_root_id:id") or data.get("account_root_id/id"),
"name": data.get("name"),
"id": country_dir,
}
)
def make_account_trees():
"""build tree hierarchy"""
for id in accounts.keys():
account = accounts[id]
if account.get("parent_id"):
if accounts.get(account["parent_id"]):
# accounts[account["parent_id"]]["children"].append(account)
accounts[account["parent_id"]][account["name"]] = account
del account["parent_id"]
del account["name"]
# remove empty children
for id in accounts.keys():
if "children" in accounts[id] and not accounts[id].get("children"):
del accounts[id]["children"]
def make_charts():
"""write chart files in app/setup/doctype/company/charts"""
for chart_id in charts:
src = charts[chart_id]
if not src.get("name") or not src.get("account_root_id"):
continue
if not src["account_root_id"] in accounts:
continue
filename = src["id"][5:] + "_" + chart_id
print("building " + filename)
chart = {}
chart["name"] = src["name"]
chart["country_code"] = src["id"][5:]
chart["tree"] = accounts[src["account_root_id"]]
for key, val in chart["tree"].items():
if key in ["name", "parent_id"]:
chart["tree"].pop(key)
if type(val) == dict:
val["root_type"] = ""
if chart:
fpath = os.path.join(
"erpnext", "erpnext", "accounts", "doctype", "account", "chart_of_accounts", filename + ".json"
)
with open(fpath, "r") as chartfile:
old_content = chartfile.read()
if not old_content or (
json.loads(old_content).get("is_active", "No") == "No"
and json.loads(old_content).get("disabled", "No") == "No"
):
with open(fpath, "w") as chartfile:
chartfile.write(json.dumps(chart, indent=4, sort_keys=True))
all_roots.setdefault(filename, chart["tree"].keys())
def create_all_roots_file():
with open("all_roots.txt", "w") as f:
for filename, roots in sorted(all_roots.items()):
f.write(filename)
f.write("\n----------------------\n")
for r in sorted(roots):
f.write(r.encode("utf-8"))
f.write("\n")
f.write("\n\n\n")
if __name__ == "__main__":
go()

View File

@@ -437,12 +437,20 @@
},
"Sales": {
"Sales from Other Regions": {
"Sales from Other Region": {}
"Sales from Other Region": {
"account_type": "Income Account"
}
},
"Sales of same region": {
"Management Consultancy Fees 1": {},
"Sales Account": {},
"Sales of I/C": {}
"Management Consultancy Fees 1": {
"account_type": "Income Account"
},
"Sales Account": {
"account_type": "Income Account"
},
"Sales of I/C": {
"account_type": "Income Account"
}
}
},
"root_type": "Income"

View File

@@ -1,38 +1,38 @@
{
"country_code": "de",
"name": "SKR03 mit Kontonummern",
"tree": {
"Aktiva": {
"is_group": 1,
"country_code": "de",
"name": "SKR03 mit Kontonummern",
"tree": {
"Aktiva": {
"is_group": 1,
"root_type": "Asset",
"A - Anlagevermögen": {
"is_group": 1,
"EDV-Software": {
"account_number": "0027",
"account_type": "Fixed Asset"
},
"Gesch\u00e4ftsausstattung": {
"account_number": "0410",
"account_type": "Fixed Asset"
},
"B\u00fcroeinrichtung": {
"account_number": "0420",
"account_type": "Fixed Asset"
},
"Darlehen": {
"account_number": "0565"
},
"Maschinen": {
"account_number": "0210",
"account_type": "Fixed Asset"
},
"Betriebsausstattung": {
"account_number": "0400",
"account_type": "Fixed Asset"
},
"Ladeneinrichtung": {
"account_number": "0430",
"account_type": "Fixed Asset"
"A - Anlagevermögen": {
"is_group": 1,
"EDV-Software": {
"account_number": "0027",
"account_type": "Fixed Asset"
},
"Geschäftsausstattung": {
"account_number": "0410",
"account_type": "Fixed Asset"
},
"Büroeinrichtung": {
"account_number": "0420",
"account_type": "Fixed Asset"
},
"Darlehen": {
"account_number": "0565"
},
"Maschinen": {
"account_number": "0210",
"account_type": "Fixed Asset"
},
"Betriebsausstattung": {
"account_number": "0400",
"account_type": "Fixed Asset"
},
"Ladeneinrichtung": {
"account_number": "0430",
"account_type": "Fixed Asset"
},
"Accumulated Depreciation": {
"account_type": "Accumulated Depreciation"
@@ -60,36 +60,46 @@
"Durchlaufende Posten": {
"account_number": "1590"
},
"Gewinnermittlung \u00a74/3 nicht Ergebniswirksam": {
"Verrechnungskonto Gewinnermittlung § 4 Abs. 3 EStG, nicht ergebniswirksam": {
"account_number": "1371"
},
"Abziehbare Vorsteuer": {
"account_type": "Tax",
"is_group": 1,
"Abziehbare Vorsteuer 7%": {
"account_number": "1571"
"Abziehbare Vorsteuer 7 %": {
"account_number": "1571",
"account_type": "Tax",
"tax_rate": 7.0
},
"Abziehbare Vorsteuer 19%": {
"account_number": "1576"
"Abziehbare Vorsteuer 19 %": {
"account_number": "1576",
"account_type": "Tax",
"tax_rate": 19.0
},
"Abziehbare Vorsteuer nach \u00a713b UStG 19%": {
"account_number": "1577"
},
"Leistungen \u00a713b UStG 19% Vorsteuer, 19% Umsatzsteuer": {
"account_number": "3120"
"Abziehbare Vorsteuer nach § 13b UStG 19 %": {
"account_number": "1577",
"account_type": "Tax",
"tax_rate": 19.0
}
}
},
"III. Wertpapiere": {
"is_group": 1
"is_group": 1,
"Anteile an verbundenen Unternehmen (Umlaufvermögen)": {
"account_number": "1340"
},
"Anteile an herrschender oder mit Mehrheit beteiligter Gesellschaft": {
"account_number": "1344"
},
"Sonstige Wertpapiere": {
"account_number": "1348"
}
},
"IV. Kassenbestand, Bundesbankguthaben, Guthaben bei Kreditinstituten und Schecks.": {
"is_group": 1,
"Kasse": {
"account_type": "Cash",
"is_group": 1,
"account_type": "Cash",
"Kasse": {
"is_group": 1,
"account_number": "1000",
"account_type": "Cash"
}
@@ -111,21 +121,21 @@
"C - Rechnungsabgrenzungsposten": {
"is_group": 1,
"Aktive Rechnungsabgrenzung": {
"account_number": "0980"
"account_number": "0980"
}
},
"D - Aktive latente Steuern": {
"is_group": 1,
"Aktive latente Steuern": {
"account_number": "0983"
"account_number": "0983"
}
},
"E - Aktiver Unterschiedsbetrag aus der Vermögensverrechnung": {
"is_group": 1
}
},
"Passiva": {
"is_group": 1,
},
"Passiva": {
"is_group": 1,
"root_type": "Liability",
"A. Eigenkapital": {
"is_group": 1,
@@ -200,26 +210,32 @@
},
"Umsatzsteuer": {
"is_group": 1,
"account_type": "Tax",
"Umsatzsteuer 7%": {
"account_number": "1771"
"Umsatzsteuer 7 %": {
"account_number": "1771",
"account_type": "Tax",
"tax_rate": 7.0
},
"Umsatzsteuer 19%": {
"account_number": "1776"
"Umsatzsteuer 19 %": {
"account_number": "1776",
"account_type": "Tax",
"tax_rate": 19.0
},
"Umsatzsteuer-Vorauszahlung": {
"account_number": "1780"
"account_number": "1780",
"account_type": "Tax"
},
"Umsatzsteuer-Vorauszahlung 1/11": {
"account_number": "1781"
},
"Umsatzsteuer \u00a7 13b UStG 19%": {
"account_number": "1787"
"Umsatzsteuer nach § 13b UStG 19 %": {
"account_number": "1787",
"account_type": "Tax",
"tax_rate": 19.0
},
"Umsatzsteuer Vorjahr": {
"account_number": "1790"
},
"Umsatzsteuer fr\u00fchere Jahre": {
"Umsatzsteuer frühere Jahre": {
"account_number": "1791"
}
}
@@ -234,44 +250,56 @@
"E. Passive latente Steuern": {
"is_group": 1
}
},
"Erl\u00f6se u. Ertr\u00e4ge 2/8": {
"is_group": 1,
"root_type": "Income",
"Erl\u00f6skonten 8": {
},
"Erlöse u. Erträge 2/8": {
"is_group": 1,
"root_type": "Income",
"Erlöskonten 8": {
"is_group": 1,
"Erl\u00f6se": {
"account_number": "8200",
"account_type": "Income Account"
},
"Erl\u00f6se USt. 19%": {
"account_number": "8400",
"account_type": "Income Account"
},
"Erl\u00f6se USt. 7%": {
"account_number": "8300",
"account_type": "Income Account"
}
},
"Ertragskonten 2": {
"is_group": 1,
"sonstige Zinsen und \u00e4hnliche Ertr\u00e4ge": {
"account_number": "2650",
"account_type": "Income Account"
},
"Au\u00dferordentliche Ertr\u00e4ge": {
"account_number": "2500",
"account_type": "Income Account"
},
"Sonstige Ertr\u00e4ge": {
"account_number": "2700",
"account_type": "Income Account"
}
}
},
"Aufwendungen 2/4": {
"is_group": 1,
"Erlöse": {
"account_number": "8200",
"account_type": "Income Account"
},
"Erlöse USt. 19 %": {
"account_number": "8400",
"account_type": "Income Account"
},
"Erlöse USt. 7 %": {
"account_number": "8300",
"account_type": "Income Account"
}
},
"Ertragskonten 2": {
"is_group": 1,
"sonstige Zinsen und ähnliche Erträge": {
"account_number": "2650",
"account_type": "Income Account"
},
"Außerordentliche Erträge": {
"account_number": "2500",
"account_type": "Income Account"
},
"Sonstige Erträge": {
"account_number": "2700",
"account_type": "Income Account"
}
}
},
"Aufwendungen 2/4": {
"is_group": 1,
"root_type": "Expense",
"Fremdleistungen": {
"account_number": "3100",
"account_type": "Expense Account"
},
"Fremdleistungen ohne Vorsteuer": {
"account_number": "3109",
"account_type": "Expense Account"
},
"Bauleistungen eines im Inland ansässigen Unternehmers 19 % Vorsteuer und 19 % Umsatzsteuer": {
"account_number": "3120",
"account_type": "Expense Account"
},
"Wareneingang": {
"account_number": "3200"
},
@@ -298,234 +326,234 @@
"Gegenkonto 4996-4998": {
"account_number": "4999"
},
"Abschreibungen": {
"is_group": 1,
"Abschreibungen": {
"is_group": 1,
"Abschreibungen auf Sachanlagen (ohne AfA auf Kfz und Gebäude)": {
"account_number": "4830",
"account_type": "Accumulated Depreciation"
"account_number": "4830",
"account_type": "Accumulated Depreciation"
},
"Abschreibungen auf Gebäude": {
"account_number": "4831",
"account_type": "Depreciation"
"account_number": "4831",
"account_type": "Depreciation"
},
"Abschreibungen auf Kfz": {
"account_number": "4832",
"account_type": "Depreciation"
"account_number": "4832",
"account_type": "Depreciation"
},
"Sofortabschreibung GWG": {
"account_number": "4855",
"account_type": "Expense Account"
"account_number": "4855",
"account_type": "Expense Account"
}
},
"Kfz-Kosten": {
"is_group": 1,
"Kfz-Steuer": {
"account_number": "4510",
"account_type": "Expense Account"
},
"Kfz-Versicherungen": {
"account_number": "4520",
"account_type": "Expense Account"
},
"laufende Kfz-Betriebskosten": {
"account_number": "4530",
"account_type": "Expense Account"
},
"Kfz-Reparaturen": {
"account_number": "4540",
"account_type": "Expense Account"
},
"Fremdfahrzeuge": {
"account_number": "4570",
"account_type": "Expense Account"
},
"sonstige Kfz-Kosten": {
"account_number": "4580",
"account_type": "Expense Account"
}
},
"Personalkosten": {
"is_group": 1,
"Geh\u00e4lter": {
"account_number": "4120",
"account_type": "Expense Account"
},
"gesetzliche soziale Aufwendungen": {
"account_number": "4130",
"account_type": "Expense Account"
},
"Aufwendungen f\u00fcr Altersvorsorge": {
"account_number": "4165",
"account_type": "Expense Account"
},
"Verm\u00f6genswirksame Leistungen": {
"account_number": "4170",
"account_type": "Expense Account"
},
"Aushilfsl\u00f6hne": {
"account_number": "4190",
"account_type": "Expense Account"
}
},
"Raumkosten": {
"is_group": 1,
"Miete und Nebenkosten": {
"account_number": "4210",
"account_type": "Expense Account"
},
"Gas, Wasser, Strom (Verwaltung, Vertrieb)": {
"account_number": "4240",
"account_type": "Expense Account"
},
"Reinigung": {
"account_number": "4250",
"account_type": "Expense Account"
}
},
"Reparatur/Instandhaltung": {
"is_group": 1,
"Reparatur u. Instandh. von Anlagen/Maschinen u. Betriebs- u. Gesch\u00e4ftsausst.": {
"account_number": "4805",
"account_type": "Expense Account"
}
},
"Versicherungsbeitr\u00e4ge": {
"is_group": 1,
"Versicherungen": {
"account_number": "4360",
"account_type": "Expense Account"
},
"Beitr\u00e4ge": {
"account_number": "4380",
"account_type": "Expense Account"
},
"sonstige Ausgaben": {
"account_number": "4390",
"account_type": "Expense Account"
},
"steuerlich abzugsf\u00e4hige Versp\u00e4tungszuschl\u00e4ge und Zwangsgelder": {
"account_number": "4396",
"account_type": "Expense Account"
}
},
"Werbe-/Reisekosten": {
"is_group": 1,
"Werbekosten": {
"account_number": "4610",
"account_type": "Expense Account"
},
"Aufmerksamkeiten": {
"account_number": "4653",
"account_type": "Expense Account"
},
"nicht abzugsf\u00e4hige Betriebsausg. aus Werbe-, Repr\u00e4s.- u. Reisekosten": {
"account_number": "4665",
"account_type": "Expense Account"
},
"Reisekosten Unternehmer": {
"account_number": "4670",
"account_type": "Expense Account"
}
},
"verschiedene Kosten": {
"is_group": 1,
"Porto": {
"account_number": "4910",
"account_type": "Expense Account"
},
"Telekom": {
"account_number": "4920",
"account_type": "Expense Account"
},
"Mobilfunk D2": {
"account_number": "4921",
"account_type": "Expense Account"
},
"Internet": {
"account_number": "4922",
"account_type": "Expense Account"
},
"B\u00fcrobedarf": {
"account_number": "4930",
"account_type": "Expense Account"
},
"Zeitschriften, B\u00fccher": {
"account_number": "4940",
"account_type": "Expense Account"
},
"Fortbildungskosten": {
"account_number": "4945",
"account_type": "Expense Account"
},
"Buchf\u00fchrungskosten": {
"account_number": "4955",
"account_type": "Expense Account"
},
"Abschlu\u00df- u. Pr\u00fcfungskosten": {
"account_number": "4957",
"account_type": "Expense Account"
},
"Nebenkosten des Geldverkehrs": {
"account_number": "4970",
"account_type": "Expense Account"
},
"Werkzeuge und Kleinger\u00e4te": {
"account_number": "4985",
"account_type": "Expense Account"
}
},
"Zinsaufwendungen": {
"is_group": 1,
"Zinsaufwendungen f\u00fcr kurzfristige Verbindlichkeiten": {
"account_number": "2110",
"account_type": "Expense Account"
},
"Zinsaufwendungen f\u00fcr KFZ Finanzierung": {
"account_number": "2121",
"account_type": "Expense Account"
}
}
},
"Anfangsbestand 9": {
"is_group": 1,
"root_type": "Equity",
"Saldenvortragskonten": {
"is_group": 1,
"Saldenvortrag Sachkonten": {
"account_number": "9000"
},
"Saldenvortr\u00e4ge Debitoren": {
"account_number": "9008"
},
"Saldenvortr\u00e4ge Kreditoren": {
"account_number": "9009"
}
}
},
"Privatkonten 1": {
"is_group": 1,
"root_type": "Equity",
"Privatentnahmen/-einlagen": {
"is_group": 1,
"Privatentnahme allgemein": {
"account_number": "1800"
},
"Privatsteuern": {
"account_number": "1810"
},
"Sonderausgaben beschr\u00e4nkt abzugsf\u00e4hig": {
"account_number": "1820"
},
"Sonderausgaben unbeschr\u00e4nkt abzugsf\u00e4hig": {
"account_number": "1830"
},
"Au\u00dfergew\u00f6hnliche Belastungen": {
"account_number": "1850"
},
"Privateinlagen": {
"account_number": "1890"
}
}
}
}
},
"Kfz-Kosten": {
"is_group": 1,
"Kfz-Steuer": {
"account_number": "4510",
"account_type": "Expense Account"
},
"Kfz-Versicherungen": {
"account_number": "4520",
"account_type": "Expense Account"
},
"laufende Kfz-Betriebskosten": {
"account_number": "4530",
"account_type": "Expense Account"
},
"Kfz-Reparaturen": {
"account_number": "4540",
"account_type": "Expense Account"
},
"Fremdfahrzeuge": {
"account_number": "4570",
"account_type": "Expense Account"
},
"sonstige Kfz-Kosten": {
"account_number": "4580",
"account_type": "Expense Account"
}
},
"Personalkosten": {
"is_group": 1,
"Gehälter": {
"account_number": "4120",
"account_type": "Expense Account"
},
"gesetzliche soziale Aufwendungen": {
"account_number": "4130",
"account_type": "Expense Account"
},
"Aufwendungen für Altersvorsorge": {
"account_number": "4165",
"account_type": "Expense Account"
},
"Vermögenswirksame Leistungen": {
"account_number": "4170",
"account_type": "Expense Account"
},
"Aushilfslöhne": {
"account_number": "4190",
"account_type": "Expense Account"
}
},
"Raumkosten": {
"is_group": 1,
"Miete und Nebenkosten": {
"account_number": "4210",
"account_type": "Expense Account"
},
"Gas, Wasser, Strom (Verwaltung, Vertrieb)": {
"account_number": "4240",
"account_type": "Expense Account"
},
"Reinigung": {
"account_number": "4250",
"account_type": "Expense Account"
}
},
"Reparatur/Instandhaltung": {
"is_group": 1,
"Reparaturen und Instandhaltungen von anderen Anlagen und Betriebs- und Geschäftsausstattung": {
"account_number": "4805",
"account_type": "Expense Account"
}
},
"Versicherungsbeiträge": {
"is_group": 1,
"Versicherungen": {
"account_number": "4360",
"account_type": "Expense Account"
},
"Beiträge": {
"account_number": "4380",
"account_type": "Expense Account"
},
"sonstige Ausgaben": {
"account_number": "4390",
"account_type": "Expense Account"
},
"steuerlich abzugsfähige Verspätungszuschläge und Zwangsgelder": {
"account_number": "4396",
"account_type": "Expense Account"
}
},
"Werbe-/Reisekosten": {
"is_group": 1,
"Werbekosten": {
"account_number": "4610",
"account_type": "Expense Account"
},
"Aufmerksamkeiten": {
"account_number": "4653",
"account_type": "Expense Account"
},
"nicht abzugsfähige Betriebsausg. aus Werbe-, Repräs.- u. Reisekosten": {
"account_number": "4665",
"account_type": "Expense Account"
},
"Reisekosten Unternehmer": {
"account_number": "4670",
"account_type": "Expense Account"
}
},
"verschiedene Kosten": {
"is_group": 1,
"Porto": {
"account_number": "4910",
"account_type": "Expense Account"
},
"Telekom": {
"account_number": "4920",
"account_type": "Expense Account"
},
"Mobilfunk D2": {
"account_number": "4921",
"account_type": "Expense Account"
},
"Internet": {
"account_number": "4922",
"account_type": "Expense Account"
},
"Bürobedarf": {
"account_number": "4930",
"account_type": "Expense Account"
},
"Zeitschriften, Bücher": {
"account_number": "4940",
"account_type": "Expense Account"
},
"Fortbildungskosten": {
"account_number": "4945",
"account_type": "Expense Account"
},
"Buchführungskosten": {
"account_number": "4955",
"account_type": "Expense Account"
},
"Abschluß- u. Prüfungskosten": {
"account_number": "4957",
"account_type": "Expense Account"
},
"Nebenkosten des Geldverkehrs": {
"account_number": "4970",
"account_type": "Expense Account"
},
"Werkzeuge und Kleingeräte": {
"account_number": "4985",
"account_type": "Expense Account"
}
},
"Zinsaufwendungen": {
"is_group": 1,
"Zinsaufwendungen für kurzfristige Verbindlichkeiten": {
"account_number": "2110",
"account_type": "Expense Account"
},
"Zinsaufwendungen für KFZ Finanzierung": {
"account_number": "2121",
"account_type": "Expense Account"
}
}
},
"Anfangsbestand 9": {
"is_group": 1,
"root_type": "Equity",
"Saldenvortragskonten": {
"is_group": 1,
"Saldenvortrag Sachkonten": {
"account_number": "9000"
},
"Saldenvorträge Debitoren": {
"account_number": "9008"
},
"Saldenvorträge Kreditoren": {
"account_number": "9009"
}
}
},
"Privatkonten 1": {
"is_group": 1,
"root_type": "Equity",
"Privatentnahmen/-einlagen": {
"is_group": 1,
"Privatentnahme allgemein": {
"account_number": "1800"
},
"Privatsteuern": {
"account_number": "1810"
},
"Sonderausgaben beschränkt abzugsfähig": {
"account_number": "1820"
},
"Sonderausgaben unbeschränkt abzugsfähig": {
"account_number": "1830"
},
"Außergewöhnliche Belastungen": {
"account_number": "1850"
},
"Privateinlagen": {
"account_number": "1890"
}
}
}
}
}

View File

@@ -69,8 +69,7 @@
"Persediaan Barang": {
"Persediaan Barang": {
"account_number": "1141.000",
"account_type": "Stock",
"is_group": 1
"account_type": "Stock"
},
"Uang Muka Pembelian": {
"Uang Muka Pembelian": {
@@ -670,7 +669,8 @@
},
"Penjualan Barang Dagangan": {
"Penjualan": {
"account_number": "4110.000"
"account_number": "4110.000",
"account_type": "Income Account"
},
"Potongan Penjualan": {
"account_number": "4130.000"

View File

@@ -109,8 +109,7 @@
}
},
"INVENTARIOS": {
"account_type": "Stock",
"is_group": 1
"account_type": "Stock"
}
},
"ACTIVO LARGO PLAZO": {
@@ -398,10 +397,18 @@
"INGRESOS POR SERVICIOS 1": {}
},
"VENTAS": {
"VENTAS EXPORTACION": {},
"VENTAS INMUEBLES": {},
"VENTAS NACIONALES": {},
"VENTAS NACIONALES AL DETAL": {}
"VENTAS EXPORTACION": {
"account_type": "Income Account"
},
"VENTAS INMUEBLES": {
"account_type": "Income Account"
},
"VENTAS NACIONALES": {
"account_type": "Income Account"
},
"VENTAS NACIONALES AL DETAL": {
"account_type": "Income Account"
}
}
}
},

View File

@@ -2,75 +2,13 @@
"country_code": "nl",
"name": "Netherlands - Grootboekschema",
"tree": {
"FABRIKAGEREKENINGEN": {
"is_group": 1,
"root_type": "Expense"
},
"FINANCIELE REKENINGEN, KORTLOPENDE VORDERINGEN EN SCHULDEN": {
"Bank": {
"RABO Bank": {
"account_type": "Bank"
},
"account_type": "Bank"
},
"KORTLOPENDE SCHULDEN": {
"Af te dragen Btw-verlegd": {
"account_type": "Tax"
},
"Afdracht loonheffing": {},
"Btw af te dragen hoog": {
"account_type": "Tax"
},
"Btw af te dragen laag": {
"account_type": "Tax"
},
"Btw af te dragen overig": {
"account_type": "Tax"
},
"Btw oude jaren": {
"account_type": "Tax"
},
"Btw te vorderen hoog": {
"account_type": "Tax"
},
"Btw te vorderen laag": {
"account_type": "Tax"
},
"Btw te vorderen overig": {
"account_type": "Tax"
},
"Btw-afdracht": {
"account_type": "Tax"
},
"Crediteuren": {
"account_type": "Payable"
},
"Dividend": {},
"Dividendbelasting": {},
"Energiekosten 1": {},
"Investeringsaftrek": {},
"Loonheffing": {},
"Overige te betalen posten": {},
"Pensioenpremies 1": {},
"Premie WIR": {},
"Rekening-courant inkoopvereniging": {},
"Rente": {},
"Sociale lasten 1": {},
"Stock Recieved niet gefactureerd": {
"account_type": "Stock Received But Not Billed"
},
"Tanti\u00e8mes 1": {},
"Te vorderen Btw-verlegd": {
"account_type": "Tax"
},
"Telefoon/telefax 1": {},
"Termijnen onderh. werk": {},
"Vakantiedagen": {},
"Vakantiegeld 1": {},
"Vakantiezegels": {},
"Vennootschapsbelasting": {},
"Vooruit ontvangen bedr.": {}
},
},
"LIQUIDE MIDDELEN": {
"ABN-AMRO bank": {},
"Bankbetaalkaarten": {},
@@ -91,6 +29,110 @@
},
"account_type": "Cash"
},
"TUSSENREKENINGEN": {
"Betaalwijze cadeaubonnen": {
"account_type": "Cash"
},
"Betaalwijze chipknip": {
"account_type": "Cash"
},
"Betaalwijze contant": {
"account_type": "Cash"
},
"Betaalwijze pin": {
"account_type": "Cash"
},
"Inkopen Nederland hoog": {
"account_type": "Cash"
},
"Inkopen Nederland laag": {
"account_type": "Cash"
},
"Inkopen Nederland onbelast": {
"account_type": "Cash"
},
"Inkopen Nederland overig": {
"account_type": "Cash"
},
"Inkopen Nederland verlegd": {
"account_type": "Cash"
},
"Inkopen binnen EU hoog": {
"account_type": "Cash"
},
"Inkopen binnen EU laag": {
"account_type": "Cash"
},
"Inkopen binnen EU overig": {
"account_type": "Cash"
},
"Inkopen buiten EU hoog": {
"account_type": "Cash"
},
"Inkopen buiten EU laag": {
"account_type": "Cash"
},
"Inkopen buiten EU overig": {
"account_type": "Cash"
},
"Kassa 1": {
"account_type": "Cash"
},
"Kassa 2": {
"account_type": "Cash"
},
"Netto lonen": {
"account_type": "Cash"
},
"Tegenrekening Inkopen": {
"account_type": "Cash"
},
"Tussenrek. autom. betalingen": {
"account_type": "Cash"
},
"Tussenrek. autom. loonbetalingen": {
"account_type": "Cash"
},
"Tussenrek. cadeaubonbetalingen": {
"account_type": "Cash"
},
"Tussenrekening balans": {
"account_type": "Cash"
},
"Tussenrekening chipknip": {
"account_type": "Cash"
},
"Tussenrekening correcties": {
"account_type": "Cash"
},
"Tussenrekening pin": {
"account_type": "Cash"
},
"Vraagposten": {
"account_type": "Cash"
},
"VOORRAAD GRONDSTOFFEN, HULPMATERIALEN EN HANDELSGOEDEREN": {
"Emballage": {},
"Gereed product 1": {},
"Gereed product 2": {},
"Goederen 1": {},
"Goederen 2": {},
"Goederen in consignatie": {},
"Goederen onderweg": {},
"Grondstoffen 1": {},
"Grondstoffen 2": {},
"Halffabrikaten 1": {},
"Halffabrikaten 2": {},
"Hulpstoffen 1": {},
"Hulpstoffen 2": {},
"Kantoorbenodigdheden": {},
"Onderhanden werk": {},
"Verpakkingsmateriaal": {},
"Zegels": {},
"root_type": "Asset"
},
"root_type": "Asset"
},
"VORDERINGEN": {
"Debiteuren": {
"account_type": "Receivable"
@@ -104,278 +146,299 @@
"Voorziening dubieuze debiteuren": {}
},
"root_type": "Asset"
},
"INDIRECTE KOSTEN": {
},
"KORTLOPENDE SCHULDEN": {
"Af te dragen Btw-verlegd": {
"account_type": "Tax"
},
"Afdracht loonheffing": {},
"Btw af te dragen hoog": {
"account_type": "Tax"
},
"Btw af te dragen laag": {
"account_type": "Tax"
},
"Btw af te dragen overig": {
"account_type": "Tax"
},
"Btw oude jaren": {
"account_type": "Tax"
},
"Btw te vorderen hoog": {
"account_type": "Tax"
},
"Btw te vorderen laag": {
"account_type": "Tax"
},
"Btw te vorderen overig": {
"account_type": "Tax"
},
"Btw-afdracht": {
"account_type": "Tax"
},
"Crediteuren": {
"account_type": "Payable"
},
"Dividend": {},
"Dividendbelasting": {},
"Energiekosten 1": {},
"Investeringsaftrek": {},
"Loonheffing": {},
"Overige te betalen posten": {},
"Pensioenpremies 1": {},
"Premie WIR": {},
"Rekening-courant inkoopvereniging": {},
"Rente": {},
"Sociale lasten 1": {},
"Stock Recieved niet gefactureerd": {
"account_type": "Stock Received But Not Billed"
},
"Tanti\u00e8mes 1": {},
"Te vorderen Btw-verlegd": {
"account_type": "Tax"
},
"Telefoon/telefax 1": {},
"Termijnen onderh. werk": {},
"Vakantiedagen": {},
"Vakantiegeld 1": {},
"Vakantiezegels": {},
"Vennootschapsbelasting": {},
"Vooruit ontvangen bedr.": {},
"is_group": 1,
"root_type": "Liability"
},
"FABRIKAGEREKENINGEN": {
"is_group": 1,
"root_type": "Expense"
},
"KOSTENREKENINGEN": {
"AFSCHRIJVINGEN": {
"Aanhangwagens": {},
"Aankoopkosten": {},
"Aanloopkosten": {},
"Auteursrechten": {},
"Bedrijfsgebouwen": {},
"Bedrijfsinventaris": {
"root_type": "Expense",
"INDIRECTE KOSTEN": {
"is_group": 1,
"root_type": "Expense"
},
"KOSTENREKENINGEN": {
"AFSCHRIJVINGEN": {
"Aanhangwagens": {},
"Aankoopkosten": {},
"Aanloopkosten": {},
"Auteursrechten": {},
"Bedrijfsgebouwen": {},
"Bedrijfsinventaris": {
"account_type": "Depreciation"
},
"Drankvergunningen": {},
"Fabrieksinventaris": {
"account_type": "Depreciation"
},
"Gebouwen": {},
"Gereedschappen": {},
"Goodwill": {},
"Grondverbetering": {},
"Heftrucks": {},
"Kantine-inventaris": {},
"Kantoorinventaris": {
"account_type": "Depreciation"
},
"Kantoormachines": {},
"Licenties": {},
"Machines 1": {},
"Magazijninventaris": {},
"Octrooien": {},
"Ontwikkelingskosten": {},
"Pachtersinvestering": {},
"Parkeerplaats": {},
"Personenauto's": {
"account_type": "Depreciation"
},
"Rijwielen en bromfietsen": {},
"Tonnagevergunningen": {},
"Verbouwingen": {},
"Vergunningen": {},
"Voorraadverschillen": {},
"Vrachtauto's": {},
"Winkels": {},
"Woon-winkelhuis": {},
"account_type": "Depreciation"
},
"Drankvergunningen": {},
"Fabrieksinventaris": {
"account_type": "Depreciation"
"ALGEMENE KOSTEN": {
"Accountantskosten": {},
"Advieskosten": {},
"Assuranties 1": {},
"Bankkosten": {},
"Juridische kosten": {},
"Overige algemene kosten": {},
"Toev. Ass. eigen risico": {}
},
"Gebouwen": {},
"Gereedschappen": {},
"Goodwill": {},
"Grondverbetering": {},
"Heftrucks": {},
"Kantine-inventaris": {},
"Kantoorinventaris": {
"account_type": "Depreciation"
"BEDRIJFSKOSTEN": {
"Assuranties 2": {},
"Energie (krachtstroom)": {},
"Gereedschappen 1": {},
"Hulpmaterialen 1": {},
"Huur inventaris": {},
"Huur machines": {},
"Leasing invent.operational": {},
"Leasing mach. operational": {},
"Onderhoud inventaris": {},
"Onderhoud machines": {},
"Ophalen/vervoer afval": {},
"Overige bedrijfskosten": {}
},
"Kantoormachines": {},
"Licenties": {},
"Machines 1": {},
"Magazijninventaris": {},
"Octrooien": {},
"Ontwikkelingskosten": {},
"Pachtersinvestering": {},
"Parkeerplaats": {},
"Personenauto's": {
"account_type": "Depreciation"
"FINANCIERINGSKOSTEN 1": {
"Overige rentebaten": {},
"Overige rentelasten": {},
"Rente bankkrediet": {},
"Rente huurkoopcontracten": {},
"Rente hypotheek": {},
"Rente leasecontracten": {},
"Rente lening o/g": {},
"Rente lening u/g": {}
},
"Rijwielen en bromfietsen": {},
"Tonnagevergunningen": {},
"Verbouwingen": {},
"Vergunningen": {},
"Voorraadverschillen": {},
"Vrachtauto's": {},
"Winkels": {},
"Woon-winkelhuis": {},
"account_type": "Depreciation"
},
"ALGEMENE KOSTEN": {
"Accountantskosten": {},
"Advieskosten": {},
"Assuranties 1": {},
"Bankkosten": {},
"Juridische kosten": {},
"Overige algemene kosten": {},
"Toev. Ass. eigen risico": {}
},
"BEDRIJFSKOSTEN": {
"Assuranties 2": {},
"Energie (krachtstroom)": {},
"Gereedschappen 1": {},
"Hulpmaterialen 1": {},
"Huur inventaris": {},
"Huur machines": {},
"Leasing invent.operational": {},
"Leasing mach. operational": {},
"Onderhoud inventaris": {},
"Onderhoud machines": {},
"Ophalen/vervoer afval": {},
"Overige bedrijfskosten": {}
},
"FINANCIERINGSKOSTEN 1": {
"Overige rentebaten": {},
"Overige rentelasten": {},
"Rente bankkrediet": {},
"Rente huurkoopcontracten": {},
"Rente hypotheek": {},
"Rente leasecontracten": {},
"Rente lening o/g": {},
"Rente lening u/g": {}
},
"HUISVESTINGSKOSTEN": {
"Assurantie onroerend goed": {},
"Belastingen onr. Goed": {},
"Energiekosten": {},
"Groot onderhoud onr. Goed": {},
"Huur": {},
"Huurwaarde woongedeelte": {},
"Onderhoud onroerend goed": {},
"Ontvangen huren": {},
"Overige huisvestingskosten": {},
"Pacht": {},
"Schoonmaakkosten": {},
"Toevoeging egalisatieres. Groot onderhoud": {}
},
"KANTOORKOSTEN": {
"Administratiekosten": {},
"Contributies/abonnementen": {},
"Huur kantoorapparatuur": {},
"Internetaansluiting": {},
"Kantoorbenodigdh./drukw.": {},
"Onderhoud kantoorinvent.": {},
"Overige kantoorkosten": {},
"Porti": {},
"Telefoon/telefax": {}
},
"OVERIGE BATEN EN LASTEN": {
"Betaalde schadevergoed.": {},
"Boekverlies vaste activa": {},
"Boekwinst van vaste activa": {},
"K.O. regeling OB": {},
"Kasverschillen": {},
"Kosten loonbelasting": {},
"Kosten omzetbelasting": {},
"Nadelige koersverschillen": {},
"Naheffing bedrijfsver.": {},
"Ontvangen schadevergoed.": {},
"Overige baten": {},
"Overige lasten": {},
"Voordelige koersverschil.": {}
},
"PERSONEELSKOSTEN": {
"Autokostenvergoeding": {},
"Bedrijfskleding": {},
"Belastingvrije uitkeringen": {},
"Bijzondere beloningen": {},
"Congressen, seminars en symposia": {},
"Gereedschapsgeld": {},
"Geschenken personeel": {},
"Gratificaties": {},
"Inhouding pensioenpremies": {},
"Inhouding sociale lasten": {},
"Kantinekosten": {},
"Lonen en salarissen": {},
"Loonwerk": {},
"Managementvergoedingen": {},
"Opleidingskosten": {},
"Oprenting stamrechtverpl.": {},
"Overhevelingstoeslag": {},
"Overige kostenverg.": {},
"Overige personeelskosten": {},
"Overige uitkeringen": {},
"Pensioenpremies": {},
"Provisie 1": {},
"Reiskosten": {},
"Rijwielvergoeding": {},
"Sociale lasten": {},
"Tanti\u00e8mes": {},
"Thuiswerkers": {},
"Toev. Backservice pens.verpl.": {},
"Toevoeging pensioenverpl.": {},
"Uitkering ziekengeld": {},
"Uitzendkrachten": {},
"Vakantiebonnen": {},
"Vakantiegeld": {},
"Vergoeding studiekosten": {},
"Wervingskosten personeel": {}
},
"VERKOOPKOSTEN": {
"Advertenties": {},
"Afschrijving dubieuze deb.": {},
"Beurskosten": {},
"Etalagekosten": {},
"Exportkosten": {},
"Kascorrecties": {},
"Overige verkoopkosten": {},
"Provisie": {},
"Reclame": {},
"Reis en verblijfkosten": {},
"Relatiegeschenken": {},
"Representatiekosten": {},
"Uitgaande vrachten": {},
"Veilingkosten": {},
"Verpakkingsmateriaal 1": {},
"Websitekosten": {}
},
"VERVOERSKOSTEN": {
"Assuranties auto's": {},
"Brandstoffen": {},
"Leasing auto's": {},
"Onderhoud personenauto's": {},
"Onderhoud vrachtauto's": {},
"Overige vervoerskosten": {},
"Priv\u00e9-gebruik auto's": {},
"Wegenbelasting": {}
},
"root_type": "Expense"
},
"TUSSENREKENINGEN": {
"Betaalwijze cadeaubonnen": {
"account_type": "Cash"
},
"Betaalwijze chipknip": {
"account_type": "Cash"
},
"Betaalwijze contant": {
"account_type": "Cash"
},
"Betaalwijze pin": {
"account_type": "Cash"
},
"Inkopen Nederland hoog": {
"account_type": "Cash"
},
"Inkopen Nederland laag": {
"account_type": "Cash"
},
"Inkopen Nederland onbelast": {
"account_type": "Cash"
},
"Inkopen Nederland overig": {
"account_type": "Cash"
},
"Inkopen Nederland verlegd": {
"account_type": "Cash"
},
"Inkopen binnen EU hoog": {
"account_type": "Cash"
},
"Inkopen binnen EU laag": {
"account_type": "Cash"
},
"Inkopen binnen EU overig": {
"account_type": "Cash"
},
"Inkopen buiten EU hoog": {
"account_type": "Cash"
},
"Inkopen buiten EU laag": {
"account_type": "Cash"
},
"Inkopen buiten EU overig": {
"account_type": "Cash"
},
"Kassa 1": {
"account_type": "Cash"
},
"Kassa 2": {
"account_type": "Cash"
},
"Netto lonen": {
"account_type": "Cash"
},
"Tegenrekening Inkopen": {
"account_type": "Cash"
},
"Tussenrek. autom. betalingen": {
"account_type": "Cash"
},
"Tussenrek. autom. loonbetalingen": {
"account_type": "Cash"
},
"Tussenrek. cadeaubonbetalingen": {
"account_type": "Cash"
},
"Tussenrekening balans": {
"account_type": "Cash"
},
"Tussenrekening chipknip": {
"account_type": "Cash"
},
"Tussenrekening correcties": {
"account_type": "Cash"
},
"Tussenrekening pin": {
"account_type": "Cash"
},
"Vraagposten": {
"account_type": "Cash"
},
"root_type": "Asset"
"HUISVESTINGSKOSTEN": {
"Assurantie onroerend goed": {},
"Belastingen onr. Goed": {},
"Energiekosten": {},
"Groot onderhoud onr. Goed": {},
"Huur": {},
"Huurwaarde woongedeelte": {},
"Onderhoud onroerend goed": {},
"Ontvangen huren": {},
"Overige huisvestingskosten": {},
"Pacht": {},
"Schoonmaakkosten": {},
"Toevoeging egalisatieres. Groot onderhoud": {}
},
"KANTOORKOSTEN": {
"Administratiekosten": {},
"Contributies/abonnementen": {},
"Huur kantoorapparatuur": {},
"Internetaansluiting": {},
"Kantoorbenodigdh./drukw.": {},
"Onderhoud kantoorinvent.": {},
"Overige kantoorkosten": {},
"Porti": {},
"Telefoon/telefax": {}
},
"OVERIGE BATEN EN LASTEN": {
"Betaalde schadevergoed.": {},
"Boekverlies vaste activa": {},
"Boekwinst van vaste activa": {},
"K.O. regeling OB": {},
"Kasverschillen": {},
"Kosten loonbelasting": {},
"Kosten omzetbelasting": {},
"Nadelige koersverschillen": {},
"Naheffing bedrijfsver.": {},
"Ontvangen schadevergoed.": {},
"Overige baten": {},
"Overige lasten": {},
"Voordelige koersverschil.": {}
},
"PERSONEELSKOSTEN": {
"Autokostenvergoeding": {},
"Bedrijfskleding": {},
"Belastingvrije uitkeringen": {},
"Bijzondere beloningen": {},
"Congressen, seminars en symposia": {},
"Gereedschapsgeld": {},
"Geschenken personeel": {},
"Gratificaties": {},
"Inhouding pensioenpremies": {},
"Inhouding sociale lasten": {},
"Kantinekosten": {},
"Lonen en salarissen": {},
"Loonwerk": {},
"Managementvergoedingen": {},
"Opleidingskosten": {},
"Oprenting stamrechtverpl.": {},
"Overhevelingstoeslag": {},
"Overige kostenverg.": {},
"Overige personeelskosten": {},
"Overige uitkeringen": {},
"Pensioenpremies": {},
"Provisie 1": {},
"Reiskosten": {},
"Rijwielvergoeding": {},
"Sociale lasten": {},
"Tanti\u00e8mes": {},
"Thuiswerkers": {},
"Toev. Backservice pens.verpl.": {},
"Toevoeging pensioenverpl.": {},
"Uitkering ziekengeld": {},
"Uitzendkrachten": {},
"Vakantiebonnen": {},
"Vakantiegeld": {},
"Vergoeding studiekosten": {},
"Wervingskosten personeel": {}
},
"VERKOOPKOSTEN": {
"Advertenties": {},
"Afschrijving dubieuze deb.": {},
"Beurskosten": {},
"Etalagekosten": {},
"Exportkosten": {},
"Kascorrecties": {},
"Overige verkoopkosten": {},
"Provisie": {},
"Reclame": {},
"Reis en verblijfkosten": {},
"Relatiegeschenken": {},
"Representatiekosten": {},
"Uitgaande vrachten": {},
"Veilingkosten": {},
"Verpakkingsmateriaal 1": {},
"Websitekosten": {}
},
"VERVOERSKOSTEN": {
"Assuranties auto's": {},
"Brandstoffen": {},
"Leasing auto's": {},
"Onderhoud personenauto's": {},
"Onderhoud vrachtauto's": {},
"Overige vervoerskosten": {},
"Priv\u00e9-gebruik auto's": {},
"Wegenbelasting": {}
},
"VOORRAAD GEREED PRODUCT EN ONDERHANDEN WERK": {
"Betalingskort. crediteuren": {},
"Garantiekosten": {},
"Hulpmaterialen": {},
"Inkomende vrachten": {
"account_type": "Expenses Included In Valuation"
},
"Inkoop import buiten EU hoog": {},
"Inkoop import buiten EU laag": {},
"Inkoop import buiten EU overig": {},
"Inkoopbonussen": {},
"Inkoopkosten": {},
"Inkoopprovisie": {},
"Inkopen BTW verlegd": {},
"Inkopen EU hoog tarief": {},
"Inkopen EU laag tarief": {},
"Inkopen EU overig": {},
"Inkopen hoog": {},
"Inkopen laag": {},
"Inkopen nul": {},
"Inkopen overig": {},
"Invoerkosten": {},
"Kosten inkoopvereniging": {},
"Kostprijs omzet grondstoffen": {
"account_type": "Cost of Goods Sold"
},
"Kostprijs omzet handelsgoederen": {},
"Onttrekking uitgev.garantie": {},
"Priv\u00e9-gebruik goederen": {},
"Stock aanpassing": {
"account_type": "Stock Adjustment"
},
"Tegenrekening inkoop": {},
"Toev. Voorz. incour. grondst.": {},
"Toevoeging garantieverpl.": {},
"Toevoeging voorz. incour. handelsgoed.": {},
"Uitbesteed werk": {},
"Voorz. Incourourant grondst.": {},
"Voorz.incour. handelsgoed.": {},
"root_type": "Expense"
},
"root_type": "Expense"
}
},
"VASTE ACTIVA, EIGEN VERMOGEN, LANGLOPEND VREEMD VERMOGEN EN VOORZIENINGEN": {
"EIGEN VERMOGEN": {
@@ -602,7 +665,7 @@
"account_type": "Equity"
}
},
"root_type": "Asset"
"root_type": "Equity"
},
"VERKOOPRESULTATEN": {
"Diensten fabric. 0% niet-EU": {},
@@ -627,67 +690,6 @@
"Verleende Kredietbep. fabricage": {},
"Verleende Kredietbep. handel": {},
"root_type": "Income"
},
"VOORRAAD GEREED PRODUCT EN ONDERHANDEN WERK": {
"Betalingskort. crediteuren": {},
"Garantiekosten": {},
"Hulpmaterialen": {},
"Inkomende vrachten": {
"account_type": "Expenses Included In Valuation"
},
"Inkoop import buiten EU hoog": {},
"Inkoop import buiten EU laag": {},
"Inkoop import buiten EU overig": {},
"Inkoopbonussen": {},
"Inkoopkosten": {},
"Inkoopprovisie": {},
"Inkopen BTW verlegd": {},
"Inkopen EU hoog tarief": {},
"Inkopen EU laag tarief": {},
"Inkopen EU overig": {},
"Inkopen hoog": {},
"Inkopen laag": {},
"Inkopen nul": {},
"Inkopen overig": {},
"Invoerkosten": {},
"Kosten inkoopvereniging": {},
"Kostprijs omzet grondstoffen": {
"account_type": "Cost of Goods Sold"
},
"Kostprijs omzet handelsgoederen": {},
"Onttrekking uitgev.garantie": {},
"Priv\u00e9-gebruik goederen": {},
"Stock aanpassing": {
"account_type": "Stock Adjustment"
},
"Tegenrekening inkoop": {},
"Toev. Voorz. incour. grondst.": {},
"Toevoeging garantieverpl.": {},
"Toevoeging voorz. incour. handelsgoed.": {},
"Uitbesteed werk": {},
"Voorz. Incourourant grondst.": {},
"Voorz.incour. handelsgoed.": {},
"root_type": "Expense"
},
"VOORRAAD GRONDSTOFFEN, HULPMATERIALEN EN HANDELSGOEDEREN": {
"Emballage": {},
"Gereed product 1": {},
"Gereed product 2": {},
"Goederen 1": {},
"Goederen 2": {},
"Goederen in consignatie": {},
"Goederen onderweg": {},
"Grondstoffen 1": {},
"Grondstoffen 2": {},
"Halffabrikaten 1": {},
"Halffabrikaten 2": {},
"Hulpstoffen 1": {},
"Hulpstoffen 2": {},
"Kantoorbenodigdheden": {},
"Onderhanden werk": {},
"Verpakkingsmateriaal": {},
"Zegels": {},
"root_type": "Asset"
}
}
}

View File

@@ -5,10 +5,17 @@
import unittest
import frappe
from frappe.test_runner import make_test_records
from erpnext.accounts.doctype.account.account import merge_account, update_account_number
from erpnext.accounts.doctype.account.account import (
InvalidAccountMergeError,
merge_account,
update_account_number,
)
from erpnext.stock import get_company_default_inventory_account, get_warehouse_account
test_dependencies = ["Company"]
class TestAccount(unittest.TestCase):
def test_rename_account(self):
@@ -44,49 +51,53 @@ class TestAccount(unittest.TestCase):
frappe.delete_doc("Account", "1211-11-4 - 6 - Debtors 1 - Test - - _TC")
def test_merge_account(self):
if not frappe.db.exists("Account", "Current Assets - _TC"):
acc = frappe.new_doc("Account")
acc.account_name = "Current Assets"
acc.is_group = 1
acc.parent_account = "Application of Funds (Assets) - _TC"
acc.company = "_Test Company"
acc.insert()
if not frappe.db.exists("Account", "Securities and Deposits - _TC"):
acc = frappe.new_doc("Account")
acc.account_name = "Securities and Deposits"
acc.parent_account = "Current Assets - _TC"
acc.is_group = 1
acc.company = "_Test Company"
acc.insert()
if not frappe.db.exists("Account", "Earnest Money - _TC"):
acc = frappe.new_doc("Account")
acc.account_name = "Earnest Money"
acc.parent_account = "Securities and Deposits - _TC"
acc.company = "_Test Company"
acc.insert()
if not frappe.db.exists("Account", "Cash In Hand - _TC"):
acc = frappe.new_doc("Account")
acc.account_name = "Cash In Hand"
acc.is_group = 1
acc.parent_account = "Current Assets - _TC"
acc.company = "_Test Company"
acc.insert()
if not frappe.db.exists("Account", "Accumulated Depreciation - _TC"):
acc = frappe.new_doc("Account")
acc.account_name = "Accumulated Depreciation"
acc.parent_account = "Fixed Assets - _TC"
acc.company = "_Test Company"
acc.account_type = "Accumulated Depreciation"
acc.insert()
create_account(
account_name="Current Assets",
is_group=1,
parent_account="Application of Funds (Assets) - _TC",
company="_Test Company",
)
create_account(
account_name="Securities and Deposits",
is_group=1,
parent_account="Current Assets - _TC",
company="_Test Company",
)
create_account(
account_name="Earnest Money",
parent_account="Securities and Deposits - _TC",
company="_Test Company",
)
create_account(
account_name="Cash In Hand",
is_group=1,
parent_account="Current Assets - _TC",
company="_Test Company",
)
create_account(
account_name="Receivable INR",
parent_account="Current Assets - _TC",
company="_Test Company",
account_currency="INR",
)
create_account(
account_name="Receivable USD",
parent_account="Current Assets - _TC",
company="_Test Company",
account_currency="USD",
)
doc = frappe.get_doc("Account", "Securities and Deposits - _TC")
parent = frappe.db.get_value("Account", "Earnest Money - _TC", "parent_account")
self.assertEqual(parent, "Securities and Deposits - _TC")
merge_account(
"Securities and Deposits - _TC", "Cash In Hand - _TC", doc.is_group, doc.root_type, doc.company
)
merge_account("Securities and Deposits - _TC", "Cash In Hand - _TC")
parent = frappe.db.get_value("Account", "Earnest Money - _TC", "parent_account")
# Parent account of the child account changes after merging
@@ -95,30 +106,28 @@ class TestAccount(unittest.TestCase):
# Old account doesn't exist after merging
self.assertFalse(frappe.db.exists("Account", "Securities and Deposits - _TC"))
doc = frappe.get_doc("Account", "Current Assets - _TC")
# Raise error as is_group property doesn't match
self.assertRaises(
frappe.ValidationError,
InvalidAccountMergeError,
merge_account,
"Current Assets - _TC",
"Accumulated Depreciation - _TC",
doc.is_group,
doc.root_type,
doc.company,
)
doc = frappe.get_doc("Account", "Capital Stock - _TC")
# Raise error as root_type property doesn't match
self.assertRaises(
frappe.ValidationError,
InvalidAccountMergeError,
merge_account,
"Capital Stock - _TC",
"Softwares - _TC",
doc.is_group,
doc.root_type,
doc.company,
)
# Raise error as currency doesn't match
self.assertRaises(
InvalidAccountMergeError,
merge_account,
"Receivable INR - _TC",
"Receivable USD - _TC",
)
def test_account_sync(self):
@@ -188,6 +197,58 @@ class TestAccount(unittest.TestCase):
frappe.delete_doc("Account", "1234 - Test Rename Sync Account - _TC4")
frappe.delete_doc("Account", "1234 - Test Rename Sync Account - _TC5")
def test_account_currency_sync(self):
"""
In a parent->child company setup, child should inherit parent account currency if explicitly specified.
"""
make_test_records("Company")
frappe.local.flags.pop("ignore_root_company_validation", None)
def create_bank_account():
acc = frappe.new_doc("Account")
acc.account_name = "_Test Bank JPY"
acc.parent_account = "Temporary Accounts - _TC6"
acc.company = "_Test Company 6"
return acc
acc = create_bank_account()
# Explicitly set currency
acc.account_currency = "JPY"
acc.insert()
self.assertTrue(
frappe.db.exists(
{
"doctype": "Account",
"account_name": "_Test Bank JPY",
"account_currency": "JPY",
"company": "_Test Company 7",
}
)
)
frappe.delete_doc("Account", "_Test Bank JPY - _TC6")
frappe.delete_doc("Account", "_Test Bank JPY - _TC7")
acc = create_bank_account()
# default currency is used
acc.insert()
self.assertTrue(
frappe.db.exists(
{
"doctype": "Account",
"account_name": "_Test Bank JPY",
"account_currency": "USD",
"company": "_Test Company 7",
}
)
)
frappe.delete_doc("Account", "_Test Bank JPY - _TC6")
frappe.delete_doc("Account", "_Test Bank JPY - _TC7")
def test_child_company_account_rename_sync(self):
frappe.local.flags.pop("ignore_root_company_validation", None)
@@ -297,7 +358,7 @@ def _make_test_records(verbose=None):
# fixed asset depreciation
["_Test Fixed Asset", "Current Assets", 0, "Fixed Asset", None],
["_Test Accumulated Depreciations", "Current Assets", 0, "Accumulated Depreciation", None],
["_Test Depreciations", "Expenses", 0, None, None],
["_Test Depreciations", "Expenses", 0, "Depreciation", None],
["_Test Gain/Loss on Asset Disposal", "Expenses", 0, None, None],
# Receivable / Payable Account
["_Test Receivable", "Current Assets", 0, "Receivable", None],
@@ -345,11 +406,20 @@ def create_account(**kwargs):
"Account", filters={"account_name": kwargs.get("account_name"), "company": kwargs.get("company")}
)
if account:
return account
account = frappe.get_doc("Account", account)
account.update(
dict(
is_group=kwargs.get("is_group", 0),
parent_account=kwargs.get("parent_account"),
)
)
account.save()
return account.name
else:
account = frappe.get_doc(
dict(
doctype="Account",
is_group=kwargs.get("is_group", 0),
account_name=kwargs.get("account_name"),
account_type=kwargs.get("account_type"),
parent_account=kwargs.get("parent_account"),

View File

@@ -0,0 +1,8 @@
// Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
// frappe.ui.form.on("Account Closing Balance", {
// refresh(frm) {
// },
// });

View File

@@ -0,0 +1,164 @@
{
"actions": [],
"creation": "2023-02-21 15:20:59.586811",
"default_view": "List",
"doctype": "DocType",
"document_type": "Document",
"engine": "InnoDB",
"field_order": [
"closing_date",
"account",
"cost_center",
"debit",
"credit",
"account_currency",
"debit_in_account_currency",
"credit_in_account_currency",
"project",
"company",
"finance_book",
"period_closing_voucher",
"is_period_closing_voucher_entry"
],
"fields": [
{
"fieldname": "closing_date",
"fieldtype": "Date",
"in_filter": 1,
"in_list_view": 1,
"label": "Closing Date",
"oldfieldname": "posting_date",
"oldfieldtype": "Date",
"search_index": 1
},
{
"fieldname": "account",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Account",
"oldfieldname": "account",
"oldfieldtype": "Link",
"options": "Account",
"search_index": 1
},
{
"fieldname": "cost_center",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"label": "Cost Center",
"oldfieldname": "cost_center",
"oldfieldtype": "Link",
"options": "Cost Center"
},
{
"fieldname": "debit",
"fieldtype": "Currency",
"label": "Debit Amount",
"oldfieldname": "debit",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency"
},
{
"fieldname": "credit",
"fieldtype": "Currency",
"label": "Credit Amount",
"oldfieldname": "credit",
"oldfieldtype": "Currency",
"options": "Company:company:default_currency"
},
{
"fieldname": "account_currency",
"fieldtype": "Link",
"label": "Account Currency",
"options": "Currency"
},
{
"fieldname": "debit_in_account_currency",
"fieldtype": "Currency",
"label": "Debit Amount in Account Currency",
"options": "account_currency"
},
{
"fieldname": "credit_in_account_currency",
"fieldtype": "Currency",
"label": "Credit Amount in Account Currency",
"options": "account_currency"
},
{
"fieldname": "project",
"fieldtype": "Link",
"label": "Project",
"options": "Project"
},
{
"fieldname": "company",
"fieldtype": "Link",
"in_filter": 1,
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Company",
"oldfieldname": "company",
"oldfieldtype": "Link",
"options": "Company",
"search_index": 1
},
{
"fieldname": "finance_book",
"fieldtype": "Link",
"label": "Finance Book",
"options": "Finance Book"
},
{
"fieldname": "period_closing_voucher",
"fieldtype": "Link",
"in_standard_filter": 1,
"label": "Period Closing Voucher",
"options": "Period Closing Voucher",
"search_index": 1
},
{
"default": "0",
"fieldname": "is_period_closing_voucher_entry",
"fieldtype": "Check",
"label": "Is Period Closing Voucher Entry"
}
],
"icon": "fa fa-list",
"in_create": 1,
"links": [],
"modified": "2023-03-06 08:56:36.393237",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Account Closing Balance",
"owner": "Administrator",
"permissions": [
{
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts User"
},
{
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Accounts Manager"
},
{
"export": 1,
"read": 1,
"report": 1,
"role": "Auditor"
}
],
"sort_field": "modified",
"sort_order": "DESC",
"states": []
}

View File

@@ -0,0 +1,127 @@
# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
import frappe
from frappe.model.document import Document
from frappe.utils import cint, cstr
from erpnext.accounts.doctype.accounting_dimension.accounting_dimension import (
get_accounting_dimensions,
)
class AccountClosingBalance(Document):
pass
def make_closing_entries(closing_entries, voucher_name, company, closing_date):
accounting_dimensions = get_accounting_dimensions()
previous_closing_entries = get_previous_closing_entries(
company, closing_date, accounting_dimensions
)
combined_entries = closing_entries + previous_closing_entries
merged_entries = aggregate_with_last_account_closing_balance(
combined_entries, accounting_dimensions
)
for key, value in merged_entries.items():
cle = frappe.new_doc("Account Closing Balance")
cle.update(value)
cle.update(value["dimensions"])
cle.update(
{
"period_closing_voucher": voucher_name,
"closing_date": closing_date,
}
)
cle.flags.ignore_permissions = True
cle.flags.ignore_links = True
cle.submit()
def aggregate_with_last_account_closing_balance(entries, accounting_dimensions):
merged_entries = {}
for entry in entries:
key, key_values = generate_key(entry, accounting_dimensions)
merged_entries.setdefault(
key,
{
"debit": 0,
"credit": 0,
"debit_in_account_currency": 0,
"credit_in_account_currency": 0,
},
)
merged_entries[key]["dimensions"] = key_values
merged_entries[key]["debit"] += entry.get("debit")
merged_entries[key]["credit"] += entry.get("credit")
merged_entries[key]["debit_in_account_currency"] += entry.get("debit_in_account_currency")
merged_entries[key]["credit_in_account_currency"] += entry.get("credit_in_account_currency")
return merged_entries
def generate_key(entry, accounting_dimensions):
key = [
cstr(entry.get("account")),
cstr(entry.get("account_currency")),
cstr(entry.get("cost_center")),
cstr(entry.get("project")),
cstr(entry.get("finance_book")),
cint(entry.get("is_period_closing_voucher_entry")),
]
key_values = {
"company": cstr(entry.get("company")),
"account": cstr(entry.get("account")),
"account_currency": cstr(entry.get("account_currency")),
"cost_center": cstr(entry.get("cost_center")),
"project": cstr(entry.get("project")),
"finance_book": cstr(entry.get("finance_book")),
"is_period_closing_voucher_entry": cint(entry.get("is_period_closing_voucher_entry")),
}
for dimension in accounting_dimensions:
key.append(cstr(entry.get(dimension)))
key_values[dimension] = cstr(entry.get(dimension))
return tuple(key), key_values
def get_previous_closing_entries(company, closing_date, accounting_dimensions):
entries = []
last_period_closing_voucher = frappe.db.get_all(
"Period Closing Voucher",
filters={"docstatus": 1, "company": company, "posting_date": ("<", closing_date)},
fields=["name"],
order_by="posting_date desc",
limit=1,
)
if last_period_closing_voucher:
account_closing_balance = frappe.qb.DocType("Account Closing Balance")
query = frappe.qb.from_(account_closing_balance).select(
account_closing_balance.company,
account_closing_balance.account,
account_closing_balance.account_currency,
account_closing_balance.debit,
account_closing_balance.credit,
account_closing_balance.debit_in_account_currency,
account_closing_balance.credit_in_account_currency,
account_closing_balance.cost_center,
account_closing_balance.project,
account_closing_balance.finance_book,
account_closing_balance.is_period_closing_voucher_entry,
)
for dimension in accounting_dimensions:
query = query.select(account_closing_balance[dimension])
query = query.where(
account_closing_balance.period_closing_voucher == last_period_closing_voucher[0].name
)
entries = query.run(as_dict=1)
return entries

View File

@@ -0,0 +1,9 @@
# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
# import frappe
from frappe.tests.utils import FrappeTestCase
class TestAccountClosingBalance(FrappeTestCase):
pass

View File

@@ -15,6 +15,17 @@ frappe.ui.form.on('Accounting Dimension', {
};
});
frm.set_query("offsetting_account", "dimension_defaults", function(doc, cdt, cdn) {
let d = locals[cdt][cdn];
return {
filters: {
company: d.company,
root_type: ["in", ["Asset", "Liability"]],
is_group: 0
}
}
});
if (!frm.is_new()) {
frm.add_custom_button(__('Show {0}', [frm.doc.document_type]), function () {
frappe.set_route("List", frm.doc.document_type);

View File

@@ -39,6 +39,8 @@ class AccountingDimension(Document):
if not self.is_new():
self.validate_document_type_change()
self.validate_dimension_defaults()
def validate_document_type_change(self):
doctype_before_save = frappe.db.get_value("Accounting Dimension", self.name, "document_type")
if doctype_before_save != self.document_type:
@@ -46,17 +48,27 @@ class AccountingDimension(Document):
message += _("Please create a new Accounting Dimension if required.")
frappe.throw(message)
def validate_dimension_defaults(self):
companies = []
for default in self.get("dimension_defaults"):
if default.company not in companies:
companies.append(default.company)
else:
frappe.throw(_("Company {0} is added more than once").format(frappe.bold(default.company)))
def after_insert(self):
if frappe.flags.in_test:
make_dimension_in_accounting_doctypes(doc=self)
else:
frappe.enqueue(make_dimension_in_accounting_doctypes, doc=self, queue="long")
frappe.enqueue(
make_dimension_in_accounting_doctypes, doc=self, queue="long", enqueue_after_commit=True
)
def on_trash(self):
if frappe.flags.in_test:
delete_accounting_dimension(doc=self)
else:
frappe.enqueue(delete_accounting_dimension, doc=self, queue="long")
frappe.enqueue(delete_accounting_dimension, doc=self, queue="long", enqueue_after_commit=True)
def set_fieldname_and_label(self):
if not self.label:
@@ -253,21 +265,28 @@ def get_dimension_with_children(doctype, dimensions):
@frappe.whitelist()
def get_dimensions(with_cost_center_and_project=False):
dimension_filters = frappe.db.sql(
"""
SELECT label, fieldname, document_type
FROM `tabAccounting Dimension`
WHERE disabled = 0
""",
as_dict=1,
c = frappe.qb.DocType("Accounting Dimension Detail")
p = frappe.qb.DocType("Accounting Dimension")
dimension_filters = (
frappe.qb.from_(p)
.select(p.label, p.fieldname, p.document_type)
.where(p.disabled == 0)
.run(as_dict=1)
)
default_dimensions = (
frappe.qb.from_(c)
.inner_join(p)
.on(c.parent == p.name)
.select(p.fieldname, c.company, c.default_dimension)
.run(as_dict=1)
)
default_dimensions = frappe.db.sql(
"""SELECT p.fieldname, c.company, c.default_dimension
FROM `tabAccounting Dimension Detail` c, `tabAccounting Dimension` p
WHERE c.parent = p.name""",
as_dict=1,
)
if isinstance(with_cost_center_and_project, str):
if with_cost_center_and_project.lower().strip() == "true":
with_cost_center_and_project = True
else:
with_cost_center_and_project = False
if with_cost_center_and_project:
dimension_filters.extend(
@@ -283,3 +302,30 @@ def get_dimensions(with_cost_center_and_project=False):
default_dimensions_map[dimension.company][dimension.fieldname] = dimension.default_dimension
return dimension_filters, default_dimensions_map
def create_accounting_dimensions_for_doctype(doctype):
accounting_dimensions = frappe.db.get_all(
"Accounting Dimension", fields=["fieldname", "label", "document_type", "disabled"]
)
if not accounting_dimensions:
return
for d in accounting_dimensions:
field = frappe.db.get_value("Custom Field", {"dt": doctype, "fieldname": d.fieldname})
if field:
continue
df = {
"fieldname": d.fieldname,
"label": d.label,
"fieldtype": "Link",
"options": d.document_type,
"insert_after": "accounting_dimensions_section",
}
create_custom_field(doctype, df, ignore_validate=True)
frappe.clear_cache(doctype=doctype)

View File

@@ -84,12 +84,22 @@ def create_dimension():
frappe.set_user("Administrator")
if not frappe.db.exists("Accounting Dimension", {"document_type": "Department"}):
frappe.get_doc(
dimension = frappe.get_doc(
{
"doctype": "Accounting Dimension",
"document_type": "Department",
}
).insert()
)
dimension.append(
"dimension_defaults",
{
"company": "_Test Company",
"reference_document": "Department",
"default_dimension": "_Test Department - _TC",
},
)
dimension.insert()
dimension.save()
else:
dimension = frappe.get_doc("Accounting Dimension", "Department")
dimension.disabled = 0

View File

@@ -8,7 +8,10 @@
"reference_document",
"default_dimension",
"mandatory_for_bs",
"mandatory_for_pl"
"mandatory_for_pl",
"column_break_lqns",
"automatically_post_balancing_accounting_entry",
"offsetting_account"
],
"fields": [
{
@@ -50,6 +53,23 @@
"fieldtype": "Check",
"in_list_view": 1,
"label": "Mandatory For Profit and Loss Account"
},
{
"default": "0",
"fieldname": "automatically_post_balancing_accounting_entry",
"fieldtype": "Check",
"label": "Automatically post balancing accounting entry"
},
{
"fieldname": "offsetting_account",
"fieldtype": "Link",
"label": "Offsetting Account",
"mandatory_depends_on": "eval: doc.automatically_post_balancing_accounting_entry",
"options": "Account"
},
{
"fieldname": "column_break_lqns",
"fieldtype": "Column Break"
}
],
"istable": 1,

View File

@@ -68,6 +68,16 @@ frappe.ui.form.on('Accounting Dimension Filter', {
frm.refresh_field("dimensions");
frm.trigger('setup_filters');
},
apply_restriction_on_values: function(frm) {
/** If restriction on values is not applied, we should set "allow_or_restrict" to "Restrict" with an empty allowed dimension table.
* Hence it's not "restricted" on any value.
*/
if (!frm.doc.apply_restriction_on_values) {
frm.set_value("allow_or_restrict", "Restrict");
frm.clear_table("dimensions");
frm.refresh_field("dimensions");
}
}
});
frappe.ui.form.on('Allowed Dimension', {

View File

@@ -10,6 +10,7 @@
"disabled",
"column_break_2",
"company",
"apply_restriction_on_values",
"allow_or_restrict",
"section_break_4",
"accounts",
@@ -24,94 +25,80 @@
"fieldtype": "Select",
"in_list_view": 1,
"label": "Accounting Dimension",
"reqd": 1,
"show_days": 1,
"show_seconds": 1
"reqd": 1
},
{
"fieldname": "column_break_2",
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1
"fieldtype": "Column Break"
},
{
"fieldname": "section_break_4",
"fieldtype": "Section Break",
"hide_border": 1,
"show_days": 1,
"show_seconds": 1
"hide_border": 1
},
{
"fieldname": "column_break_6",
"fieldtype": "Column Break",
"show_days": 1,
"show_seconds": 1
"fieldtype": "Column Break"
},
{
"depends_on": "eval:doc.apply_restriction_on_values == 1;",
"fieldname": "allow_or_restrict",
"fieldtype": "Select",
"label": "Allow Or Restrict Dimension",
"options": "Allow\nRestrict",
"reqd": 1,
"show_days": 1,
"show_seconds": 1
"reqd": 1
},
{
"fieldname": "accounts",
"fieldtype": "Table",
"label": "Applicable On Account",
"options": "Applicable On Account",
"reqd": 1,
"show_days": 1,
"show_seconds": 1
"reqd": 1
},
{
"depends_on": "eval:doc.accounting_dimension",
"depends_on": "eval:doc.accounting_dimension && doc.apply_restriction_on_values",
"fieldname": "dimensions",
"fieldtype": "Table",
"label": "Applicable Dimension",
"options": "Allowed Dimension",
"reqd": 1,
"show_days": 1,
"show_seconds": 1
"mandatory_depends_on": "eval:doc.apply_restriction_on_values == 1;",
"options": "Allowed Dimension"
},
{
"default": "0",
"fieldname": "disabled",
"fieldtype": "Check",
"label": "Disabled",
"show_days": 1,
"show_seconds": 1
"label": "Disabled"
},
{
"fieldname": "company",
"fieldtype": "Link",
"label": "Company",
"options": "Company",
"reqd": 1,
"show_days": 1,
"show_seconds": 1
"reqd": 1
},
{
"fieldname": "dimension_filter_help",
"fieldtype": "HTML",
"label": "Dimension Filter Help",
"show_days": 1,
"show_seconds": 1
"label": "Dimension Filter Help"
},
{
"fieldname": "section_break_10",
"fieldtype": "Section Break",
"show_days": 1,
"show_seconds": 1
"fieldtype": "Section Break"
},
{
"default": "1",
"fieldname": "apply_restriction_on_values",
"fieldtype": "Check",
"label": "Apply restriction on dimension values"
}
],
"index_web_pages_for_search": 1,
"links": [],
"modified": "2021-02-03 12:04:58.678402",
"modified": "2023-06-07 14:59:41.869117",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Accounting Dimension Filter",
"naming_rule": "Expression",
"owner": "Administrator",
"permissions": [
{
@@ -154,5 +141,6 @@
"quick_entry": 1,
"sort_field": "modified",
"sort_order": "DESC",
"states": [],
"track_changes": 1
}

View File

@@ -8,6 +8,12 @@ from frappe.model.document import Document
class AccountingDimensionFilter(Document):
def before_save(self):
# If restriction is not applied on values, then remove all the dimensions and set allow_or_restrict to Restrict
if not self.apply_restriction_on_values:
self.allow_or_restrict = "Restrict"
self.set("dimensions", [])
def validate(self):
self.validate_applicable_accounts()
@@ -44,12 +50,12 @@ def get_dimension_filter_map():
a.applicable_on_account, d.dimension_value, p.accounting_dimension,
p.allow_or_restrict, a.is_mandatory
FROM
`tabApplicable On Account` a, `tabAllowed Dimension` d,
`tabApplicable On Account` a,
`tabAccounting Dimension Filter` p
LEFT JOIN `tabAllowed Dimension` d ON d.parent = p.name
WHERE
p.name = a.parent
AND p.disabled = 0
AND p.name = d.parent
""",
as_dict=1,
)
@@ -76,4 +82,5 @@ def build_map(map_object, dimension, account, filter_value, allow_or_restrict, i
(dimension, account),
{"allowed_dimensions": [], "is_mandatory": is_mandatory, "allow_or_restrict": allow_or_restrict},
)
map_object[(dimension, account)]["allowed_dimensions"].append(filter_value)
if filter_value:
map_object[(dimension, account)]["allowed_dimensions"].append(filter_value)

View File

@@ -64,6 +64,7 @@ def create_accounting_dimension_filter():
"accounting_dimension": "Cost Center",
"allow_or_restrict": "Allow",
"company": "_Test Company",
"apply_restriction_on_values": 1,
"accounts": [
{
"applicable_on_account": "Sales - _TC",
@@ -85,6 +86,7 @@ def create_accounting_dimension_filter():
"doctype": "Accounting Dimension Filter",
"accounting_dimension": "Department",
"allow_or_restrict": "Allow",
"apply_restriction_on_values": 1,
"company": "_Test Company",
"accounts": [{"applicable_on_account": "Sales - _TC", "is_mandatory": 1}],
"dimensions": [{"accounting_dimension": "Department", "dimension_value": "Accounts - _TC"}],

View File

@@ -20,5 +20,11 @@ frappe.ui.form.on('Accounting Period', {
}
});
}
frm.set_query("document_type", "closed_documents", () => {
return {
query: "erpnext.controllers.queries.get_doctypes_for_closing",
}
});
}
});

View File

@@ -11,6 +11,10 @@ class OverlapError(frappe.ValidationError):
pass
class ClosedAccountingPeriod(frappe.ValidationError):
pass
class AccountingPeriod(Document):
def validate(self):
self.validate_overlap()
@@ -65,3 +69,42 @@ class AccountingPeriod(Document):
"closed_documents",
{"document_type": doctype_for_closing.document_type, "closed": doctype_for_closing.closed},
)
def validate_accounting_period_on_doc_save(doc, method=None):
if doc.doctype == "Bank Clearance":
return
elif doc.doctype == "Asset":
if doc.is_existing_asset:
return
else:
date = doc.available_for_use_date
elif doc.doctype == "Asset Repair":
date = doc.completion_date
else:
date = doc.posting_date
ap = frappe.qb.DocType("Accounting Period")
cd = frappe.qb.DocType("Closed Document")
accounting_period = (
frappe.qb.from_(ap)
.from_(cd)
.select(ap.name)
.where(
(ap.name == cd.parent)
& (ap.company == doc.company)
& (cd.closed == 1)
& (cd.document_type == doc.doctype)
& (date >= ap.start_date)
& (date <= ap.end_date)
)
).run(as_dict=1)
if accounting_period:
frappe.throw(
_("You cannot create a {0} within the closed Accounting Period {1}").format(
doc.doctype, frappe.bold(accounting_period[0]["name"])
),
ClosedAccountingPeriod,
)

View File

@@ -6,9 +6,11 @@ import unittest
import frappe
from frappe.utils import add_months, nowdate
from erpnext.accounts.doctype.accounting_period.accounting_period import OverlapError
from erpnext.accounts.doctype.accounting_period.accounting_period import (
ClosedAccountingPeriod,
OverlapError,
)
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
from erpnext.accounts.general_ledger import ClosedAccountingPeriod
test_dependencies = ["Item"]
@@ -33,9 +35,9 @@ class TestAccountingPeriod(unittest.TestCase):
ap1.save()
doc = create_sales_invoice(
do_not_submit=1, cost_center="_Test Company - _TC", warehouse="Stores - _TC"
do_not_save=1, cost_center="_Test Company - _TC", warehouse="Stores - _TC"
)
self.assertRaises(ClosedAccountingPeriod, doc.submit)
self.assertRaises(ClosedAccountingPeriod, doc.save)
def tearDown(self):
for d in frappe.get_all("Accounting Period"):

View File

@@ -19,8 +19,8 @@
"column_break_17",
"enable_common_party_accounting",
"allow_multi_currency_invoices_against_single_party_account",
"report_setting_section",
"use_custom_cash_flow",
"journals_section",
"merge_similar_account_heads",
"deferred_accounting_settings_section",
"book_deferred_entries_based_on",
"column_break_18",
@@ -31,12 +31,17 @@
"determine_address_tax_category_from",
"column_break_19",
"add_taxes_from_item_tax_template",
"book_tax_discount_loss",
"round_row_wise_tax",
"print_settings",
"show_inclusive_tax_in_print",
"show_taxes_as_table_in_print",
"column_break_12",
"show_payment_schedule_in_print",
"currency_exchange_section",
"allow_stale",
"section_break_jpd0",
"auto_reconcile_payments",
"stale_days",
"invoicing_settings_tab",
"accounts_transactions_settings_section",
@@ -54,9 +59,14 @@
"closing_settings_tab",
"period_closing_settings_section",
"acc_frozen_upto",
"ignore_account_closing_balance",
"column_break_25",
"frozen_accounts_modifier",
"report_settings_sb"
"tab_break_dpet",
"show_balance_in_coa",
"banking_tab",
"enable_party_matching",
"enable_fuzzy_matching"
],
"fields": [
{
@@ -167,20 +177,9 @@
"fieldtype": "Int",
"label": "Stale Days"
},
{
"fieldname": "report_settings_sb",
"fieldtype": "Section Break",
"label": "Report Settings"
},
{
"default": "0",
"description": "Only select this if you have set up the Cash Flow Mapper documents",
"fieldname": "use_custom_cash_flow",
"fieldtype": "Check",
"label": "Enable Custom Cash Flow Format"
},
{
"default": "0",
"description": "Payment Terms from orders will be fetched into the invoices as is",
"fieldname": "automatically_fetch_payment_terms",
"fieldtype": "Check",
"label": "Automatically Fetch Payment Terms from Order"
@@ -336,17 +335,93 @@
"fieldtype": "Tab Break",
"label": "POS"
},
{
"fieldname": "report_setting_section",
"fieldtype": "Section Break",
"label": "Report Setting"
},
{
"default": "0",
"description": "Enabling this will allow creation of multi-currency invoices against single party account in company currency",
"fieldname": "allow_multi_currency_invoices_against_single_party_account",
"fieldtype": "Check",
"label": "Allow multi-currency invoices against single party account "
},
{
"fieldname": "tab_break_dpet",
"fieldtype": "Tab Break",
"label": "Chart Of Accounts"
},
{
"default": "1",
"fieldname": "show_balance_in_coa",
"fieldtype": "Check",
"label": "Show Balances in Chart Of Accounts"
},
{
"default": "0",
"description": "Split Early Payment Discount Loss into Income and Tax Loss",
"fieldname": "book_tax_discount_loss",
"fieldtype": "Check",
"label": "Book Tax Loss on Early Payment Discount"
},
{
"fieldname": "journals_section",
"fieldtype": "Section Break",
"label": "Journals"
},
{
"default": "0",
"description": "Rows with Same Account heads will be merged on Ledger",
"fieldname": "merge_similar_account_heads",
"fieldtype": "Check",
"label": "Merge Similar Account Heads"
},
{
"fieldname": "section_break_jpd0",
"fieldtype": "Section Break",
"label": "Payment Reconciliations"
},
{
"default": "0",
"fieldname": "auto_reconcile_payments",
"fieldtype": "Check",
"label": "Auto Reconcile Payments"
},
{
"default": "0",
"fieldname": "show_taxes_as_table_in_print",
"fieldtype": "Check",
"label": "Show Taxes as Table in Print"
},
{
"fieldname": "banking_tab",
"fieldtype": "Tab Break",
"label": "Banking"
},
{
"default": "0",
"description": "Auto match and set the Party in Bank Transactions",
"fieldname": "enable_party_matching",
"fieldtype": "Check",
"label": "Enable Automatic Party Matching"
},
{
"default": "0",
"depends_on": "enable_party_matching",
"description": "Approximately match the description/party name against parties",
"fieldname": "enable_fuzzy_matching",
"fieldtype": "Check",
"label": "Enable Fuzzy Matching"
},
{
"default": "0",
"description": "Financial reports will be generated using GL Entry doctypes (should be enabled if Period Closing Voucher is not posted for all years sequentially or missing) ",
"fieldname": "ignore_account_closing_balance",
"fieldtype": "Check",
"label": "Ignore Account Closing Balance"
},
{
"default": "0",
"description": "Tax Amount will be rounded on a row(items) level",
"fieldname": "round_row_wise_tax",
"fieldtype": "Check",
"label": "Round Tax Amount Row-wise"
}
],
"icon": "icon-cog",
@@ -354,7 +429,7 @@
"index_web_pages_for_search": 1,
"issingle": 1,
"links": [],
"modified": "2022-11-27 21:49:52.538655",
"modified": "2023-08-28 00:12:02.740633",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Accounts Settings",

View File

@@ -14,21 +14,32 @@ from erpnext.stock.utils import check_pending_reposting
class AccountsSettings(Document):
def on_update(self):
frappe.clear_cache()
def validate(self):
frappe.db.set_default(
"add_taxes_from_item_tax_template", self.get("add_taxes_from_item_tax_template", 0)
)
old_doc = self.get_doc_before_save()
clear_cache = False
frappe.db.set_default(
"enable_common_party_accounting", self.get("enable_common_party_accounting", 0)
)
if old_doc.add_taxes_from_item_tax_template != self.add_taxes_from_item_tax_template:
frappe.db.set_default(
"add_taxes_from_item_tax_template", self.get("add_taxes_from_item_tax_template", 0)
)
clear_cache = True
if old_doc.enable_common_party_accounting != self.enable_common_party_accounting:
frappe.db.set_default(
"enable_common_party_accounting", self.get("enable_common_party_accounting", 0)
)
clear_cache = True
self.validate_stale_days()
self.enable_payment_schedule_in_print()
self.validate_pending_reposts()
if old_doc.show_payment_schedule_in_print != self.show_payment_schedule_in_print:
self.enable_payment_schedule_in_print()
if old_doc.acc_frozen_upto != self.acc_frozen_upto:
self.validate_pending_reposts()
if clear_cache:
frappe.clear_cache()
def validate_stale_days(self):
if not self.allow_stale and cint(self.stale_days) <= 0:

View File

@@ -8,9 +8,6 @@ frappe.ui.form.on('Bank', {
},
refresh: function(frm) {
add_fields_to_mapping_table(frm);
frappe.dynamic_link = { doc: frm.doc, fieldname: 'name', doctype: 'Bank' };
frm.toggle_display(['address_html','contact_html'], !frm.doc.__islocal);
if (frm.doc.__islocal) {
@@ -105,7 +102,7 @@ erpnext.integrations.refreshPlaidLink = class refreshPlaidLink {
}
onScriptLoaded(me) {
me.linkHandler = Plaid.create({
me.linkHandler = Plaid.create({ // eslint-disable-line no-undef
env: me.plaid_env,
token: me.token,
onSuccess: me.plaid_success
@@ -118,6 +115,10 @@ erpnext.integrations.refreshPlaidLink = class refreshPlaidLink {
}
plaid_success(token, response) {
frappe.show_alert({ message: __('Plaid Link Updated'), indicator: 'green' });
frappe.xcall('erpnext.erpnext_integrations.doctype.plaid_settings.plaid_settings.update_bank_account_ids', {
response: response,
}).then(() => {
frappe.show_alert({ message: __('Plaid Link Updated'), indicator: 'green' });
});
}
};

View File

@@ -13,6 +13,7 @@
"account_type",
"account_subtype",
"column_break_7",
"disabled",
"is_default",
"is_company_account",
"company",
@@ -199,10 +200,16 @@
"fieldtype": "Data",
"in_global_search": 1,
"label": "Branch Code"
},
{
"default": "0",
"fieldname": "disabled",
"fieldtype": "Check",
"label": "Disabled"
}
],
"links": [],
"modified": "2022-05-04 15:49:42.620630",
"modified": "2023-09-22 21:31:34.763977",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Bank Account",

View File

@@ -70,7 +70,6 @@ def make_bank_account(doctype, docname):
return doc
@frappe.whitelist()
def get_party_bank_account(party_type, party):
return frappe.db.get_value(party_type, party, "default_bank_account")

View File

@@ -37,14 +37,11 @@ frappe.ui.form.on("Bank Clearance", {
refresh: function(frm) {
frm.disable_save();
frm.add_custom_button(__('Get Payment Entries'), () =>
frm.trigger("get_payment_entries")
);
if (frm.doc.account && frm.doc.from_date && frm.doc.to_date) {
frm.add_custom_button(__('Get Payment Entries'), () =>
frm.trigger("get_payment_entries")
);
frm.change_custom_button_type('Get Payment Entries', null, 'primary');
}
frm.change_custom_button_type(__('Get Payment Entries'), null, 'primary');
},
update_clearance_date: function(frm) {
@@ -56,8 +53,8 @@ frappe.ui.form.on("Bank Clearance", {
frm.refresh_fields();
if (!frm.doc.payment_entries.length) {
frm.change_custom_button_type('Get Payment Entries', null, 'primary');
frm.change_custom_button_type('Update Clearance Date', null, 'default');
frm.change_custom_button_type(__('Get Payment Entries'), null, 'primary');
frm.change_custom_button_type(__('Update Clearance Date'), null, 'default');
}
}
});
@@ -75,8 +72,8 @@ frappe.ui.form.on("Bank Clearance", {
frm.trigger("update_clearance_date")
);
frm.change_custom_button_type('Get Payment Entries', null, 'default');
frm.change_custom_button_type('Update Clearance Date', null, 'primary');
frm.change_custom_button_type(__('Get Payment Entries'), null, 'default');
frm.change_custom_button_type(__('Update Clearance Date'), null, 'primary');
}
}
});

View File

@@ -5,7 +5,6 @@
import frappe
from frappe import _, msgprint
from frappe.model.document import Document
from frappe.query_builder.custom import ConstantColumn
from frappe.utils import flt, fmt_money, getdate
import erpnext
@@ -22,159 +21,24 @@ class BankClearance(Document):
if not self.account:
frappe.throw(_("Account is mandatory to get payment entries"))
condition = ""
if not self.include_reconciled_entries:
condition = "and (clearance_date IS NULL or clearance_date='0000-00-00')"
entries = []
journal_entries = frappe.db.sql(
"""
select
"Journal Entry" as payment_document, t1.name as payment_entry,
t1.cheque_no as cheque_number, t1.cheque_date,
sum(t2.debit_in_account_currency) as debit, sum(t2.credit_in_account_currency) as credit,
t1.posting_date, t2.against_account, t1.clearance_date, t2.account_currency
from
`tabJournal Entry` t1, `tabJournal Entry Account` t2
where
t2.parent = t1.name and t2.account = %(account)s and t1.docstatus=1
and t1.posting_date >= %(from)s and t1.posting_date <= %(to)s
and ifnull(t1.is_opening, 'No') = 'No' {condition}
group by t2.account, t1.name
order by t1.posting_date ASC, t1.name DESC
""".format(
condition=condition
),
{"account": self.account, "from": self.from_date, "to": self.to_date},
as_dict=1,
)
if self.bank_account:
condition += "and bank_account = %(bank_account)s"
payment_entries = frappe.db.sql(
"""
select
"Payment Entry" as payment_document, name as payment_entry,
reference_no as cheque_number, reference_date as cheque_date,
if(paid_from=%(account)s, paid_amount, 0) as credit,
if(paid_from=%(account)s, 0, received_amount) as debit,
posting_date, ifnull(party,if(paid_from=%(account)s,paid_to,paid_from)) as against_account, clearance_date,
if(paid_to=%(account)s, paid_to_account_currency, paid_from_account_currency) as account_currency
from `tabPayment Entry`
where
(paid_from=%(account)s or paid_to=%(account)s) and docstatus=1
and posting_date >= %(from)s and posting_date <= %(to)s
{condition}
order by
posting_date ASC, name DESC
""".format(
condition=condition
),
{
"account": self.account,
"from": self.from_date,
"to": self.to_date,
"bank_account": self.bank_account,
},
as_dict=1,
)
loan_disbursement = frappe.qb.DocType("Loan Disbursement")
loan_disbursements = (
frappe.qb.from_(loan_disbursement)
.select(
ConstantColumn("Loan Disbursement").as_("payment_document"),
loan_disbursement.name.as_("payment_entry"),
loan_disbursement.disbursed_amount.as_("credit"),
ConstantColumn(0).as_("debit"),
loan_disbursement.reference_number.as_("cheque_number"),
loan_disbursement.reference_date.as_("cheque_date"),
loan_disbursement.disbursement_date.as_("posting_date"),
loan_disbursement.applicant.as_("against_account"),
)
.where(loan_disbursement.docstatus == 1)
.where(loan_disbursement.disbursement_date >= self.from_date)
.where(loan_disbursement.disbursement_date <= self.to_date)
.where(loan_disbursement.clearance_date.isnull())
.where(loan_disbursement.disbursement_account.isin([self.bank_account, self.account]))
.orderby(loan_disbursement.disbursement_date)
.orderby(loan_disbursement.name, order=frappe.qb.desc)
).run(as_dict=1)
loan_repayment = frappe.qb.DocType("Loan Repayment")
query = (
frappe.qb.from_(loan_repayment)
.select(
ConstantColumn("Loan Repayment").as_("payment_document"),
loan_repayment.name.as_("payment_entry"),
loan_repayment.amount_paid.as_("debit"),
ConstantColumn(0).as_("credit"),
loan_repayment.reference_number.as_("cheque_number"),
loan_repayment.reference_date.as_("cheque_date"),
loan_repayment.applicant.as_("against_account"),
loan_repayment.posting_date,
)
.where(loan_repayment.docstatus == 1)
.where(loan_repayment.clearance_date.isnull())
.where(loan_repayment.posting_date >= self.from_date)
.where(loan_repayment.posting_date <= self.to_date)
.where(loan_repayment.payment_account.isin([self.bank_account, self.account]))
)
if frappe.db.has_column("Loan Repayment", "repay_from_salary"):
query = query.where((loan_repayment.repay_from_salary == 0))
query = query.orderby(loan_repayment.posting_date).orderby(
loan_repayment.name, order=frappe.qb.desc
)
loan_repayments = query.run(as_dict=True)
pos_sales_invoices, pos_purchase_invoices = [], []
if self.include_pos_transactions:
pos_sales_invoices = frappe.db.sql(
"""
select
"Sales Invoice Payment" as payment_document, sip.name as payment_entry, sip.amount as debit,
si.posting_date, si.customer as against_account, sip.clearance_date,
account.account_currency, 0 as credit
from `tabSales Invoice Payment` sip, `tabSales Invoice` si, `tabAccount` account
where
sip.account=%(account)s and si.docstatus=1 and sip.parent = si.name
and account.name = sip.account and si.posting_date >= %(from)s and si.posting_date <= %(to)s
order by
si.posting_date ASC, si.name DESC
""",
{"account": self.account, "from": self.from_date, "to": self.to_date},
as_dict=1,
)
pos_purchase_invoices = frappe.db.sql(
"""
select
"Purchase Invoice" as payment_document, pi.name as payment_entry, pi.paid_amount as credit,
pi.posting_date, pi.supplier as against_account, pi.clearance_date,
account.account_currency, 0 as debit
from `tabPurchase Invoice` pi, `tabAccount` account
where
pi.cash_bank_account=%(account)s and pi.docstatus=1 and account.name = pi.cash_bank_account
and pi.posting_date >= %(from)s and pi.posting_date <= %(to)s
order by
pi.posting_date ASC, pi.name DESC
""",
{"account": self.account, "from": self.from_date, "to": self.to_date},
as_dict=1,
# get entries from all the apps
for method_name in frappe.get_hooks("get_payment_entries_for_bank_clearance"):
entries += (
frappe.get_attr(method_name)(
self.from_date,
self.to_date,
self.account,
self.bank_account,
self.include_reconciled_entries,
self.include_pos_transactions,
)
or []
)
entries = sorted(
list(payment_entries)
+ list(journal_entries)
+ list(pos_sales_invoices)
+ list(pos_purchase_invoices)
+ list(loan_disbursements)
+ list(loan_repayments),
entries,
key=lambda k: getdate(k["posting_date"]),
)
@@ -227,3 +91,111 @@ class BankClearance(Document):
msgprint(_("Clearance Date updated"))
else:
msgprint(_("Clearance Date not mentioned"))
def get_payment_entries_for_bank_clearance(
from_date, to_date, account, bank_account, include_reconciled_entries, include_pos_transactions
):
entries = []
condition = ""
if not include_reconciled_entries:
condition = "and (clearance_date IS NULL or clearance_date='0000-00-00')"
journal_entries = frappe.db.sql(
"""
select
"Journal Entry" as payment_document, t1.name as payment_entry,
t1.cheque_no as cheque_number, t1.cheque_date,
sum(t2.debit_in_account_currency) as debit, sum(t2.credit_in_account_currency) as credit,
t1.posting_date, t2.against_account, t1.clearance_date, t2.account_currency
from
`tabJournal Entry` t1, `tabJournal Entry Account` t2
where
t2.parent = t1.name and t2.account = %(account)s and t1.docstatus=1
and t1.posting_date >= %(from)s and t1.posting_date <= %(to)s
and ifnull(t1.is_opening, 'No') = 'No' {condition}
group by t2.account, t1.name
order by t1.posting_date ASC, t1.name DESC
""".format(
condition=condition
),
{"account": account, "from": from_date, "to": to_date},
as_dict=1,
)
if bank_account:
condition += "and bank_account = %(bank_account)s"
payment_entries = frappe.db.sql(
"""
select
"Payment Entry" as payment_document, name as payment_entry,
reference_no as cheque_number, reference_date as cheque_date,
if(paid_from=%(account)s, paid_amount + total_taxes_and_charges, 0) as credit,
if(paid_from=%(account)s, 0, received_amount) as debit,
posting_date, ifnull(party,if(paid_from=%(account)s,paid_to,paid_from)) as against_account, clearance_date,
if(paid_to=%(account)s, paid_to_account_currency, paid_from_account_currency) as account_currency
from `tabPayment Entry`
where
(paid_from=%(account)s or paid_to=%(account)s) and docstatus=1
and posting_date >= %(from)s and posting_date <= %(to)s
{condition}
order by
posting_date ASC, name DESC
""".format(
condition=condition
),
{
"account": account,
"from": from_date,
"to": to_date,
"bank_account": bank_account,
},
as_dict=1,
)
pos_sales_invoices, pos_purchase_invoices = [], []
if include_pos_transactions:
pos_sales_invoices = frappe.db.sql(
"""
select
"Sales Invoice Payment" as payment_document, sip.name as payment_entry, sip.amount as debit,
si.posting_date, si.customer as against_account, sip.clearance_date,
account.account_currency, 0 as credit
from `tabSales Invoice Payment` sip, `tabSales Invoice` si, `tabAccount` account
where
sip.account=%(account)s and si.docstatus=1 and sip.parent = si.name
and account.name = sip.account and si.posting_date >= %(from)s and si.posting_date <= %(to)s
order by
si.posting_date ASC, si.name DESC
""",
{"account": account, "from": from_date, "to": to_date},
as_dict=1,
)
pos_purchase_invoices = frappe.db.sql(
"""
select
"Purchase Invoice" as payment_document, pi.name as payment_entry, pi.paid_amount as credit,
pi.posting_date, pi.supplier as against_account, pi.clearance_date,
account.account_currency, 0 as debit
from `tabPurchase Invoice` pi, `tabAccount` account
where
pi.cash_bank_account=%(account)s and pi.docstatus=1 and account.name = pi.cash_bank_account
and pi.posting_date >= %(from)s and pi.posting_date <= %(to)s
order by
pi.posting_date ASC, pi.name DESC
""",
{"account": account, "from": from_date, "to": to_date},
as_dict=1,
)
entries = (
list(payment_entries)
+ list(journal_entries)
+ list(pos_sales_invoices)
+ list(pos_purchase_invoices)
)
return entries

View File

@@ -8,26 +8,76 @@ from frappe.utils import add_months, getdate
from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_payment_entry
from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice
from erpnext.loan_management.doctype.loan.test_loan import (
create_loan,
create_loan_accounts,
create_loan_type,
create_repayment_entry,
make_loan_disbursement_entry,
)
from erpnext.tests.utils import if_lending_app_installed, if_lending_app_not_installed
class TestBankClearance(unittest.TestCase):
@classmethod
def setUpClass(cls):
clear_payment_entries()
clear_loan_transactions()
make_bank_account()
create_loan_accounts()
create_loan_masters()
add_transactions()
# Basic test case to test if bank clearance tool doesn't break
# Detailed test can be added later
@if_lending_app_not_installed
def test_bank_clearance(self):
bank_clearance = frappe.get_doc("Bank Clearance")
bank_clearance.account = "_Test Bank Clearance - _TC"
bank_clearance.from_date = add_months(getdate(), -1)
bank_clearance.to_date = getdate()
bank_clearance.get_payment_entries()
self.assertEqual(len(bank_clearance.payment_entries), 1)
@if_lending_app_installed
def test_bank_clearance_with_loan(self):
from lending.loan_management.doctype.loan.test_loan import (
create_loan,
create_loan_accounts,
create_loan_product,
create_repayment_entry,
make_loan_disbursement_entry,
)
def create_loan_masters():
create_loan_product(
"Clearance Loan",
"Clearance Loan",
2000000,
13.5,
25,
0,
5,
"Cash",
"_Test Bank Clearance - _TC",
"_Test Bank Clearance - _TC",
"Loan Account - _TC",
"Interest Income Account - _TC",
"Penalty Income Account - _TC",
)
def make_loan():
loan = create_loan(
"_Test Customer",
"Clearance Loan",
280000,
"Repay Over Number of Periods",
20,
applicant_type="Customer",
)
loan.submit()
make_loan_disbursement_entry(loan.name, loan.loan_amount, disbursement_date=getdate())
repayment_entry = create_repayment_entry(
loan.name, "_Test Customer", getdate(), loan.loan_amount
)
repayment_entry.save()
repayment_entry.submit()
create_loan_accounts()
create_loan_masters()
make_loan()
bank_clearance = frappe.get_doc("Bank Clearance")
bank_clearance.account = "_Test Bank Clearance - _TC"
bank_clearance.from_date = add_months(getdate(), -1)
@@ -36,6 +86,19 @@ class TestBankClearance(unittest.TestCase):
self.assertEqual(len(bank_clearance.payment_entries), 3)
def clear_payment_entries():
frappe.db.delete("Payment Entry")
@if_lending_app_installed
def clear_loan_transactions():
for dt in [
"Loan Disbursement",
"Loan Repayment",
]:
frappe.db.delete(dt)
def make_bank_account():
if not frappe.db.get_value("Account", "_Test Bank Clearance - _TC"):
frappe.get_doc(
@@ -49,42 +112,8 @@ def make_bank_account():
).insert()
def create_loan_masters():
create_loan_type(
"Clearance Loan",
2000000,
13.5,
25,
0,
5,
"Cash",
"_Test Bank Clearance - _TC",
"_Test Bank Clearance - _TC",
"Loan Account - _TC",
"Interest Income Account - _TC",
"Penalty Income Account - _TC",
)
def add_transactions():
make_payment_entry()
make_loan()
def make_loan():
loan = create_loan(
"_Test Customer",
"Clearance Loan",
280000,
"Repay Over Number of Periods",
20,
applicant_type="Customer",
)
loan.submit()
make_loan_disbursement_entry(loan.name, loan.loan_amount, disbursement_date=getdate())
repayment_entry = create_repayment_entry(loan.name, "_Test Customer", getdate(), loan.loan_amount)
repayment_entry.save()
repayment_entry.submit()
def make_payment_entry():

View File

@@ -18,16 +18,30 @@ frappe.ui.form.on("Bank Reconciliation Tool", {
},
onload: function (frm) {
// Set default filter dates
let today = frappe.datetime.get_today()
frm.doc.bank_statement_from_date = frappe.datetime.add_months(today, -1);
frm.doc.bank_statement_to_date = today;
frm.trigger('bank_account');
},
filter_by_reference_date: function (frm) {
if (frm.doc.filter_by_reference_date) {
frm.set_value("bank_statement_from_date", "");
frm.set_value("bank_statement_to_date", "");
} else {
frm.set_value("from_reference_date", "");
frm.set_value("to_reference_date", "");
}
},
refresh: function (frm) {
frm.disable_save();
frappe.require("bank-reconciliation-tool.bundle.js", () =>
frm.trigger("make_reconciliation_tool")
);
frm.upload_statement_button = frm.page.set_secondary_action(
__("Upload Bank Statement"),
() =>
frm.add_custom_button(__("Upload Bank Statement"), () =>
frappe.call({
method:
"erpnext.accounts.doctype.bank_statement_import.bank_statement_import.upload_bank_statement",
@@ -49,10 +63,26 @@ frappe.ui.form.on("Bank Reconciliation Tool", {
},
})
);
},
after_save: function (frm) {
frm.trigger("make_reconciliation_tool");
frm.add_custom_button(__('Auto Reconcile'), function() {
frappe.call({
method: "erpnext.accounts.doctype.bank_reconciliation_tool.bank_reconciliation_tool.auto_reconcile_vouchers",
args: {
bank_account: frm.doc.bank_account,
from_date: frm.doc.bank_statement_from_date,
to_date: frm.doc.bank_statement_to_date,
filter_by_reference_date: frm.doc.filter_by_reference_date,
from_reference_date: frm.doc.from_reference_date,
to_reference_date: frm.doc.to_reference_date,
},
})
});
frm.add_custom_button(__('Get Unreconciled Entries'), function() {
frm.trigger("make_reconciliation_tool");
});
frm.change_custom_button_type(__('Get Unreconciled Entries'), null, 'primary');
},
bank_account: function (frm) {
@@ -66,7 +96,7 @@ frappe.ui.form.on("Bank Reconciliation Tool", {
r.account,
"account_currency",
(r) => {
frm.currency = r.account_currency;
frm.doc.account_currency = r.account_currency;
frm.trigger("render_chart");
}
);
@@ -132,19 +162,19 @@ frappe.ui.form.on("Bank Reconciliation Tool", {
}
},
render_chart: frappe.utils.debounce((frm) => {
render_chart(frm) {
frm.cards_manager = new erpnext.accounts.bank_reconciliation.NumberCardManager(
{
$reconciliation_tool_cards: frm.get_field(
"reconciliation_tool_cards"
).$wrapper,
bank_statement_closing_balance:
frm.doc.bank_statement_closing_balance,
frm.doc.bank_statement_closing_balance,
cleared_balance: frm.cleared_balance,
currency: frm.currency,
currency: frm.doc.account_currency,
}
);
}, 500),
},
render(frm) {
if (frm.doc.bank_account) {
@@ -160,6 +190,9 @@ frappe.ui.form.on("Bank Reconciliation Tool", {
).$wrapper,
bank_statement_from_date: frm.doc.bank_statement_from_date,
bank_statement_to_date: frm.doc.bank_statement_to_date,
filter_by_reference_date: frm.doc.filter_by_reference_date,
from_reference_date: frm.doc.from_reference_date,
to_reference_date: frm.doc.to_reference_date,
bank_statement_closing_balance:
frm.doc.bank_statement_closing_balance,
cards_manager: frm.cards_manager,

View File

@@ -10,7 +10,11 @@
"column_break_1",
"bank_statement_from_date",
"bank_statement_to_date",
"from_reference_date",
"to_reference_date",
"filter_by_reference_date",
"column_break_2",
"account_currency",
"account_opening_balance",
"bank_statement_closing_balance",
"section_break_1",
@@ -36,13 +40,13 @@
"fieldtype": "Column Break"
},
{
"depends_on": "eval: doc.bank_account",
"depends_on": "eval: doc.bank_account && !doc.filter_by_reference_date",
"fieldname": "bank_statement_from_date",
"fieldtype": "Date",
"label": "From Date"
},
{
"depends_on": "eval: doc.bank_statement_from_date",
"depends_on": "eval: doc.bank_account && !doc.filter_by_reference_date",
"fieldname": "bank_statement_to_date",
"fieldtype": "Date",
"label": "To Date"
@@ -56,7 +60,7 @@
"fieldname": "account_opening_balance",
"fieldtype": "Currency",
"label": "Account Opening Balance",
"options": "Currency",
"options": "account_currency",
"read_only": 1
},
{
@@ -64,7 +68,7 @@
"fieldname": "bank_statement_closing_balance",
"fieldtype": "Currency",
"label": "Closing Balance",
"options": "Currency"
"options": "account_currency"
},
{
"fieldname": "section_break_1",
@@ -81,14 +85,40 @@
},
{
"fieldname": "no_bank_transactions",
"fieldtype": "HTML"
"fieldtype": "HTML",
"options": "<div class=\"text-muted text-center\">No Matching Bank Transactions Found</div>"
},
{
"depends_on": "eval:doc.filter_by_reference_date",
"fieldname": "from_reference_date",
"fieldtype": "Date",
"label": "From Reference Date"
},
{
"depends_on": "eval:doc.filter_by_reference_date",
"fieldname": "to_reference_date",
"fieldtype": "Date",
"label": "To Reference Date"
},
{
"default": "0",
"fieldname": "filter_by_reference_date",
"fieldtype": "Check",
"label": "Filter by Reference Date"
},
{
"fieldname": "account_currency",
"fieldtype": "Link",
"hidden": 1,
"label": "Account Currency",
"options": "Currency"
}
],
"hide_toolbar": 1,
"index_web_pages_for_search": 1,
"issingle": 1,
"links": [],
"modified": "2021-04-21 11:13:49.831769",
"modified": "2023-03-07 11:02:24.535714",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Bank Reconciliation Tool",
@@ -107,5 +137,6 @@
],
"quick_entry": 1,
"sort_field": "modified",
"sort_order": "DESC"
}
"sort_order": "DESC",
"states": []
}

View File

@@ -8,14 +8,16 @@ import frappe
from frappe import _
from frappe.model.document import Document
from frappe.query_builder.custom import ConstantColumn
from frappe.utils import flt
from frappe.utils import cint, flt
from pypika.terms import Parameter
from erpnext.accounts.doctype.bank_transaction.bank_transaction import get_paid_amount
from erpnext import get_default_cost_center
from erpnext.accounts.doctype.bank_transaction.bank_transaction import get_total_allocated_amount
from erpnext.accounts.report.bank_reconciliation_statement.bank_reconciliation_statement import (
get_amounts_not_reflected_in_system,
get_entries,
)
from erpnext.accounts.utils import get_balance_on
from erpnext.accounts.utils import get_account_currency, get_balance_on
class BankReconciliationTool(Document):
@@ -28,7 +30,7 @@ def get_bank_transactions(bank_account, from_date=None, to_date=None):
filters = []
filters.append(["bank_account", "=", bank_account])
filters.append(["docstatus", "=", 1])
filters.append(["unallocated_amount", ">", 0])
filters.append(["unallocated_amount", ">", 0.0])
if to_date:
filters.append(["date", "<=", to_date])
if from_date:
@@ -50,6 +52,7 @@ def get_bank_transactions(bank_account, from_date=None, to_date=None):
"party",
],
filters=filters,
order_by="date",
)
return transactions
@@ -57,7 +60,7 @@ def get_bank_transactions(bank_account, from_date=None, to_date=None):
@frappe.whitelist()
def get_account_balance(bank_account, till_date):
# returns account balance till the specified date
account = frappe.get_cached_value("Bank Account", bank_account, "account")
account = frappe.db.get_value("Bank Account", bank_account, "account")
filters = frappe._dict(
{"account": account, "report_date": till_date, "include_pos_transactions": 1}
)
@@ -65,7 +68,7 @@ def get_account_balance(bank_account, till_date):
balance_as_per_system = get_balance_on(filters["account"], filters["report_date"])
total_debit, total_credit = 0, 0
total_debit, total_credit = 0.0, 0.0
for d in data:
total_debit += flt(d.debit)
total_credit += flt(d.credit)
@@ -130,10 +133,8 @@ def create_journal_entry_bts(
fieldname=["name", "deposit", "withdrawal", "bank_account"],
as_dict=True,
)[0]
company_account = frappe.get_cached_value(
"Bank Account", bank_transaction.bank_account, "account"
)
account_type = frappe.get_cached_value("Account", second_account, "account_type")
company_account = frappe.get_value("Bank Account", bank_transaction.bank_account, "account")
account_type = frappe.db.get_value("Account", second_account, "account_type")
if account_type in ["Receivable", "Payable"]:
if not (party_type and party):
frappe.throw(
@@ -141,17 +142,19 @@ def create_journal_entry_bts(
second_account
)
)
company = frappe.get_value("Account", company_account, "company")
accounts = []
# Multi Currency?
accounts.append(
{
"account": second_account,
"credit_in_account_currency": bank_transaction.deposit if bank_transaction.deposit > 0 else 0,
"debit_in_account_currency": bank_transaction.withdrawal
if bank_transaction.withdrawal > 0
else 0,
"credit_in_account_currency": bank_transaction.deposit,
"debit_in_account_currency": bank_transaction.withdrawal,
"party_type": party_type,
"party": party,
"cost_center": get_default_cost_center(company),
}
)
@@ -159,15 +162,12 @@ def create_journal_entry_bts(
{
"account": company_account,
"bank_account": bank_transaction.bank_account,
"credit_in_account_currency": bank_transaction.withdrawal
if bank_transaction.withdrawal > 0
else 0,
"debit_in_account_currency": bank_transaction.deposit if bank_transaction.deposit > 0 else 0,
"credit_in_account_currency": bank_transaction.withdrawal,
"debit_in_account_currency": bank_transaction.deposit,
"cost_center": get_default_cost_center(company),
}
)
company = frappe.get_cached_value("Account", company_account, "company")
journal_entry_dict = {
"voucher_type": entry_type,
"company": company,
@@ -186,16 +186,22 @@ def create_journal_entry_bts(
journal_entry.insert()
journal_entry.submit()
if bank_transaction.deposit > 0:
if bank_transaction.deposit > 0.0:
paid_amount = bank_transaction.deposit
else:
paid_amount = bank_transaction.withdrawal
vouchers = json.dumps(
[{"payment_doctype": "Journal Entry", "payment_name": journal_entry.name, "amount": paid_amount}]
[
{
"payment_doctype": "Journal Entry",
"payment_name": journal_entry.name,
"amount": paid_amount,
}
]
)
return reconcile_vouchers(bank_transaction.name, vouchers)
return reconcile_vouchers(bank_transaction_name, vouchers)
@frappe.whitelist()
@@ -219,12 +225,10 @@ def create_payment_entry_bts(
as_dict=True,
)[0]
paid_amount = bank_transaction.unallocated_amount
payment_type = "Receive" if bank_transaction.deposit > 0 else "Pay"
payment_type = "Receive" if bank_transaction.deposit > 0.0 else "Pay"
company_account = frappe.get_cached_value(
"Bank Account", bank_transaction.bank_account, "account"
)
company = frappe.get_cached_value("Account", company_account, "company")
company_account = frappe.get_value("Bank Account", bank_transaction.bank_account, "account")
company = frappe.get_value("Account", company_account, "company")
payment_entry_dict = {
"company": company,
"payment_type": payment_type,
@@ -260,9 +264,89 @@ def create_payment_entry_bts(
payment_entry.submit()
vouchers = json.dumps(
[{"payment_doctype": "Payment Entry", "payment_name": payment_entry.name, "amount": paid_amount}]
[
{
"payment_doctype": "Payment Entry",
"payment_name": payment_entry.name,
"amount": paid_amount,
}
]
)
return reconcile_vouchers(bank_transaction.name, vouchers)
return reconcile_vouchers(bank_transaction_name, vouchers)
@frappe.whitelist()
def auto_reconcile_vouchers(
bank_account,
from_date=None,
to_date=None,
filter_by_reference_date=None,
from_reference_date=None,
to_reference_date=None,
):
frappe.flags.auto_reconcile_vouchers = True
reconciled, partially_reconciled = set(), set()
bank_transactions = get_bank_transactions(bank_account)
for transaction in bank_transactions:
linked_payments = get_linked_payments(
transaction.name,
["payment_entry", "journal_entry"],
from_date,
to_date,
filter_by_reference_date,
from_reference_date,
to_reference_date,
)
if not linked_payments:
continue
vouchers = list(
map(
lambda entry: {
"payment_doctype": entry.get("doctype"),
"payment_name": entry.get("name"),
"amount": entry.get("paid_amount"),
},
linked_payments,
)
)
updated_transaction = reconcile_vouchers(transaction.name, json.dumps(vouchers))
if updated_transaction.status == "Reconciled":
reconciled.add(updated_transaction.name)
elif flt(transaction.unallocated_amount) != flt(updated_transaction.unallocated_amount):
# Partially reconciled (status = Unreconciled & unallocated amount changed)
partially_reconciled.add(updated_transaction.name)
alert_message, indicator = get_auto_reconcile_message(partially_reconciled, reconciled)
frappe.msgprint(title=_("Auto Reconciliation"), msg=alert_message, indicator=indicator)
frappe.flags.auto_reconcile_vouchers = False
return reconciled, partially_reconciled
def get_auto_reconcile_message(partially_reconciled, reconciled):
"""Returns alert message and indicator for auto reconciliation depending on result state."""
alert_message, indicator = "", "blue"
if not partially_reconciled and not reconciled:
alert_message = _("No matches occurred via auto reconciliation")
return alert_message, indicator
indicator = "green"
if reconciled:
alert_message += _("{0} Transaction(s) Reconciled").format(len(reconciled))
alert_message += "<br>"
if partially_reconciled:
alert_message += _("{0} {1} Partially Reconciled").format(
len(partially_reconciled),
_("Transactions") if len(partially_reconciled) > 1 else _("Transaction"),
)
return alert_message, indicator
@frappe.whitelist()
@@ -270,80 +354,82 @@ def reconcile_vouchers(bank_transaction_name, vouchers):
# updated clear date of all the vouchers based on the bank transaction
vouchers = json.loads(vouchers)
transaction = frappe.get_doc("Bank Transaction", bank_transaction_name)
company_account = frappe.get_cached_value("Bank Account", transaction.bank_account, "account")
if transaction.unallocated_amount == 0:
frappe.throw(_("This bank transaction is already fully reconciled"))
total_amount = 0
for voucher in vouchers:
voucher["payment_entry"] = frappe.get_doc(voucher["payment_doctype"], voucher["payment_name"])
total_amount += get_paid_amount(
frappe._dict(
{
"payment_document": voucher["payment_doctype"],
"payment_entry": voucher["payment_name"],
}
),
transaction.currency,
company_account,
)
if total_amount > transaction.unallocated_amount:
frappe.throw(
_(
"The sum total of amounts of all selected vouchers should be less than the unallocated amount of the bank transaction"
)
)
account = frappe.get_cached_value("Bank Account", transaction.bank_account, "account")
for voucher in vouchers:
gl_entry = frappe.db.get_value(
"GL Entry",
dict(
account=account, voucher_type=voucher["payment_doctype"], voucher_no=voucher["payment_name"]
),
["credit", "debit"],
as_dict=1,
)
gl_amount, transaction_amount = (
(gl_entry.credit, transaction.deposit)
if gl_entry.credit > 0
else (gl_entry.debit, transaction.withdrawal)
)
allocated_amount = gl_amount if gl_amount >= transaction_amount else transaction_amount
transaction.append(
"payment_entries",
{
"payment_document": voucher["payment_entry"].doctype,
"payment_entry": voucher["payment_entry"].name,
"allocated_amount": allocated_amount,
},
)
transaction.save()
transaction.update_allocations()
transaction.add_payment_entries(vouchers)
return frappe.get_doc("Bank Transaction", bank_transaction_name)
@frappe.whitelist()
def get_linked_payments(bank_transaction_name, document_types=None):
def get_linked_payments(
bank_transaction_name,
document_types=None,
from_date=None,
to_date=None,
filter_by_reference_date=None,
from_reference_date=None,
to_reference_date=None,
):
# get all matching payments for a bank transaction
transaction = frappe.get_doc("Bank Transaction", bank_transaction_name)
bank_account = frappe.db.get_values(
"Bank Account", transaction.bank_account, ["account", "company"], as_dict=True
)[0]
(account, company) = (bank_account.account, bank_account.company)
matching = check_matching(account, company, transaction, document_types)
return matching
(gl_account, company) = (bank_account.account, bank_account.company)
matching = check_matching(
gl_account,
company,
transaction,
document_types,
from_date,
to_date,
filter_by_reference_date,
from_reference_date,
to_reference_date,
)
return subtract_allocations(gl_account, matching)
def check_matching(bank_account, company, transaction, document_types):
# combine all types of vouchers
subquery = get_queries(bank_account, company, transaction, document_types)
def subtract_allocations(gl_account, vouchers):
"Look up & subtract any existing Bank Transaction allocations"
copied = []
for voucher in vouchers:
rows = get_total_allocated_amount(voucher.get("doctype"), voucher.get("name"))
filtered_row = list(filter(lambda row: row.get("gl_account") == gl_account, rows))
if amount := None if not filtered_row else filtered_row[0]["total"]:
voucher["paid_amount"] -= amount
copied.append(voucher)
return copied
def check_matching(
bank_account,
company,
transaction,
document_types,
from_date,
to_date,
filter_by_reference_date,
from_reference_date,
to_reference_date,
):
exact_match = True if "exact_match" in document_types else False
queries = get_queries(
bank_account,
company,
transaction,
document_types,
from_date,
to_date,
filter_by_reference_date,
from_reference_date,
to_reference_date,
exact_match,
)
filters = {
"amount": transaction.unallocated_amount,
"payment_type": "Receive" if transaction.deposit > 0 else "Pay",
"payment_type": "Receive" if transaction.deposit > 0.0 else "Pay",
"reference_no": transaction.reference_number,
"party_type": transaction.party_type,
"party": transaction.party,
@@ -351,24 +437,28 @@ def check_matching(bank_account, company, transaction, document_types):
}
matching_vouchers = []
for query in queries:
matching_vouchers.extend(frappe.db.sql(query, filters, as_dict=True))
matching_vouchers.extend(get_loan_vouchers(bank_account, transaction, document_types, filters))
for query in subquery:
matching_vouchers.extend(
frappe.db.sql(
query,
filters,
)
)
return sorted(matching_vouchers, key=lambda x: x[0], reverse=True) if matching_vouchers else []
return (
sorted(matching_vouchers, key=lambda x: x["rank"], reverse=True) if matching_vouchers else []
)
def get_queries(bank_account, company, transaction, document_types):
def get_queries(
bank_account,
company,
transaction,
document_types,
from_date,
to_date,
filter_by_reference_date,
from_reference_date,
to_reference_date,
exact_match,
):
# get queries to get matching vouchers
amount_condition = "=" if "exact_match" in document_types else "<="
account_from_to = "paid_to" if transaction.deposit > 0 else "paid_from"
account_from_to = "paid_to" if transaction.deposit > 0.0 else "paid_from"
queries = []
# get matching queries from all the apps
@@ -379,8 +469,13 @@ def get_queries(bank_account, company, transaction, document_types):
company,
transaction,
document_types,
amount_condition,
exact_match,
account_from_to,
from_date,
to_date,
filter_by_reference_date,
from_reference_date,
to_reference_date,
)
or []
)
@@ -389,238 +484,302 @@ def get_queries(bank_account, company, transaction, document_types):
def get_matching_queries(
bank_account, company, transaction, document_types, amount_condition, account_from_to
bank_account,
company,
transaction,
document_types,
exact_match,
account_from_to,
from_date,
to_date,
filter_by_reference_date,
from_reference_date,
to_reference_date,
):
queries = []
currency = get_account_currency(bank_account)
if "payment_entry" in document_types:
pe_amount_matching = get_pe_matching_query(amount_condition, account_from_to, transaction)
queries.extend([pe_amount_matching])
query = get_pe_matching_query(
exact_match,
account_from_to,
transaction,
from_date,
to_date,
filter_by_reference_date,
from_reference_date,
to_reference_date,
)
queries.append(query)
if "journal_entry" in document_types:
je_amount_matching = get_je_matching_query(amount_condition, transaction)
queries.extend([je_amount_matching])
query = get_je_matching_query(
exact_match,
transaction,
from_date,
to_date,
filter_by_reference_date,
from_reference_date,
to_reference_date,
)
queries.append(query)
if transaction.deposit > 0 and "sales_invoice" in document_types:
si_amount_matching = get_si_matching_query(amount_condition)
queries.extend([si_amount_matching])
if transaction.deposit > 0.0 and "sales_invoice" in document_types:
query = get_si_matching_query(exact_match, currency)
queries.append(query)
if transaction.withdrawal > 0:
if transaction.withdrawal > 0.0:
if "purchase_invoice" in document_types:
pi_amount_matching = get_pi_matching_query(amount_condition)
queries.extend([pi_amount_matching])
query = get_pi_matching_query(exact_match, currency)
queries.append(query)
if "bank_transaction" in document_types:
query = get_bt_matching_query(exact_match, transaction)
queries.append(query)
return queries
def get_loan_vouchers(bank_account, transaction, document_types, filters):
vouchers = []
amount_condition = True if "exact_match" in document_types else False
def get_bt_matching_query(exact_match, transaction):
# get matching bank transaction query
# find bank transactions in the same bank account with opposite sign
# same bank account must have same company and currency
bt = frappe.qb.DocType("Bank Transaction")
if transaction.withdrawal > 0 and "loan_disbursement" in document_types:
vouchers.extend(get_ld_matching_query(bank_account, amount_condition, filters))
field = "deposit" if transaction.withdrawal > 0.0 else "withdrawal"
amount_equality = getattr(bt, field) == transaction.unallocated_amount
amount_rank = frappe.qb.terms.Case().when(amount_equality, 1).else_(0)
amount_condition = amount_equality if exact_match else getattr(bt, field) > 0.0
if transaction.deposit > 0 and "loan_repayment" in document_types:
vouchers.extend(get_lr_matching_query(bank_account, amount_condition, filters))
return vouchers
def get_ld_matching_query(bank_account, amount_condition, filters):
loan_disbursement = frappe.qb.DocType("Loan Disbursement")
matching_reference = loan_disbursement.reference_number == filters.get("reference_number")
matching_party = loan_disbursement.applicant_type == filters.get(
"party_type"
) and loan_disbursement.applicant == filters.get("party")
rank = frappe.qb.terms.Case().when(matching_reference, 1).else_(0)
rank1 = frappe.qb.terms.Case().when(matching_party, 1).else_(0)
query = (
frappe.qb.from_(loan_disbursement)
.select(
rank + rank1 + 1,
ConstantColumn("Loan Disbursement").as_("doctype"),
loan_disbursement.name,
loan_disbursement.disbursed_amount,
loan_disbursement.reference_number,
loan_disbursement.reference_date,
loan_disbursement.applicant_type,
loan_disbursement.disbursement_date,
)
.where(loan_disbursement.docstatus == 1)
.where(loan_disbursement.clearance_date.isnull())
.where(loan_disbursement.disbursement_account == bank_account)
ref_rank = (
frappe.qb.terms.Case().when(bt.reference_number == transaction.reference_number, 1).else_(0)
)
unallocated_rank = (
frappe.qb.terms.Case().when(bt.unallocated_amount == transaction.unallocated_amount, 1).else_(0)
)
if amount_condition:
query.where(loan_disbursement.disbursed_amount == filters.get("amount"))
else:
query.where(loan_disbursement.disbursed_amount <= filters.get("amount"))
vouchers = query.run(as_list=True)
return vouchers
def get_lr_matching_query(bank_account, amount_condition, filters):
loan_repayment = frappe.qb.DocType("Loan Repayment")
matching_reference = loan_repayment.reference_number == filters.get("reference_number")
matching_party = loan_repayment.applicant_type == filters.get(
"party_type"
) and loan_repayment.applicant == filters.get("party")
rank = frappe.qb.terms.Case().when(matching_reference, 1).else_(0)
rank1 = frappe.qb.terms.Case().when(matching_party, 1).else_(0)
party_condition = (
(bt.party_type == transaction.party_type)
& (bt.party == transaction.party)
& bt.party.isnotnull()
)
party_rank = frappe.qb.terms.Case().when(party_condition, 1).else_(0)
query = (
frappe.qb.from_(loan_repayment)
frappe.qb.from_(bt)
.select(
rank + rank1 + 1,
ConstantColumn("Loan Repayment").as_("doctype"),
loan_repayment.name,
loan_repayment.amount_paid,
loan_repayment.reference_number,
loan_repayment.reference_date,
loan_repayment.applicant_type,
loan_repayment.posting_date,
(ref_rank + amount_rank + party_rank + unallocated_rank + 1).as_("rank"),
ConstantColumn("Bank Transaction").as_("doctype"),
bt.name,
bt.unallocated_amount.as_("paid_amount"),
bt.reference_number.as_("reference_no"),
bt.date.as_("reference_date"),
bt.party,
bt.party_type,
bt.date.as_("posting_date"),
bt.currency,
)
.where(loan_repayment.docstatus == 1)
.where(loan_repayment.clearance_date.isnull())
.where(loan_repayment.payment_account == bank_account)
.where(bt.status != "Reconciled")
.where(bt.name != transaction.name)
.where(bt.bank_account == transaction.bank_account)
.where(amount_condition)
.where(bt.docstatus == 1)
)
if frappe.db.has_column("Loan Repayment", "repay_from_salary"):
query = query.where((loan_repayment.repay_from_salary == 0))
if amount_condition:
query.where(loan_repayment.amount_paid == filters.get("amount"))
else:
query.where(loan_repayment.amount_paid <= filters.get("amount"))
vouchers = query.run()
return vouchers
return str(query)
def get_pe_matching_query(amount_condition, account_from_to, transaction):
def get_pe_matching_query(
exact_match,
account_from_to,
transaction,
from_date,
to_date,
filter_by_reference_date,
from_reference_date,
to_reference_date,
):
# get matching payment entries query
if transaction.deposit > 0:
currency_field = "paid_to_account_currency as currency"
else:
currency_field = "paid_from_account_currency as currency"
return f"""
SELECT
(CASE WHEN reference_no=%(reference_no)s THEN 1 ELSE 0 END
+ CASE WHEN (party_type = %(party_type)s AND party = %(party)s ) THEN 1 ELSE 0 END
+ 1 ) AS rank,
'Payment Entry' as doctype,
name,
paid_amount,
reference_no,
reference_date,
party,
party_type,
posting_date,
{currency_field}
FROM
`tabPayment Entry`
WHERE
paid_amount {amount_condition} %(amount)s
AND docstatus = 1
AND payment_type IN (%(payment_type)s, 'Internal Transfer')
AND ifnull(clearance_date, '') = ""
AND {account_from_to} = %(bank_account)s
"""
to_from = "to" if transaction.deposit > 0.0 else "from"
currency_field = f"paid_{to_from}_account_currency"
payment_type = "Receive" if transaction.deposit > 0.0 else "Pay"
pe = frappe.qb.DocType("Payment Entry")
ref_condition = pe.reference_no == transaction.reference_number
ref_rank = frappe.qb.terms.Case().when(ref_condition, 1).else_(0)
amount_equality = pe.paid_amount == transaction.unallocated_amount
amount_rank = frappe.qb.terms.Case().when(amount_equality, 1).else_(0)
amount_condition = amount_equality if exact_match else pe.paid_amount > 0.0
party_condition = (
(pe.party_type == transaction.party_type)
& (pe.party == transaction.party)
& pe.party.isnotnull()
)
party_rank = frappe.qb.terms.Case().when(party_condition, 1).else_(0)
filter_by_date = pe.posting_date.between(from_date, to_date)
if cint(filter_by_reference_date):
filter_by_date = pe.reference_date.between(from_reference_date, to_reference_date)
query = (
frappe.qb.from_(pe)
.select(
(ref_rank + amount_rank + party_rank + 1).as_("rank"),
ConstantColumn("Payment Entry").as_("doctype"),
pe.name,
pe.paid_amount,
pe.reference_no,
pe.reference_date,
pe.party,
pe.party_type,
pe.posting_date,
getattr(pe, currency_field).as_("currency"),
)
.where(pe.docstatus == 1)
.where(pe.payment_type.isin([payment_type, "Internal Transfer"]))
.where(pe.clearance_date.isnull())
.where(getattr(pe, account_from_to) == Parameter("%(bank_account)s"))
.where(amount_condition)
.where(filter_by_date)
.orderby(pe.reference_date if cint(filter_by_reference_date) else pe.posting_date)
)
if frappe.flags.auto_reconcile_vouchers == True:
query = query.where(ref_condition)
return str(query)
def get_je_matching_query(amount_condition, transaction):
def get_je_matching_query(
exact_match,
transaction,
from_date,
to_date,
filter_by_reference_date,
from_reference_date,
to_reference_date,
):
# get matching journal entry query
# We have mapping at the bank level
# So one bank could have both types of bank accounts like asset and liability
# So cr_or_dr should be judged only on basis of withdrawal and deposit and not account type
cr_or_dr = "credit" if transaction.withdrawal > 0 else "debit"
cr_or_dr = "credit" if transaction.withdrawal > 0.0 else "debit"
je = frappe.qb.DocType("Journal Entry")
jea = frappe.qb.DocType("Journal Entry Account")
return f"""
ref_condition = je.cheque_no == transaction.reference_number
ref_rank = frappe.qb.terms.Case().when(ref_condition, 1).else_(0)
SELECT
(CASE WHEN je.cheque_no=%(reference_no)s THEN 1 ELSE 0 END
+ 1) AS rank ,
'Journal Entry' as doctype,
amount_field = f"{cr_or_dr}_in_account_currency"
amount_equality = getattr(jea, amount_field) == transaction.unallocated_amount
amount_rank = frappe.qb.terms.Case().when(amount_equality, 1).else_(0)
filter_by_date = je.posting_date.between(from_date, to_date)
if cint(filter_by_reference_date):
filter_by_date = je.cheque_date.between(from_reference_date, to_reference_date)
query = (
frappe.qb.from_(jea)
.join(je)
.on(jea.parent == je.name)
.select(
(ref_rank + amount_rank + 1).as_("rank"),
ConstantColumn("Journal Entry").as_("doctype"),
je.name,
jea.{cr_or_dr}_in_account_currency as paid_amount,
je.cheque_no as reference_no,
je.cheque_date as reference_date,
je.pay_to_recd_from as party,
getattr(jea, amount_field).as_("paid_amount"),
je.cheque_no.as_("reference_no"),
je.cheque_date.as_("reference_date"),
je.pay_to_recd_from.as_("party"),
jea.party_type,
je.posting_date,
jea.account_currency as currency
FROM
`tabJournal Entry Account` as jea
JOIN
`tabJournal Entry` as je
ON
jea.parent = je.name
WHERE
(je.clearance_date is null or je.clearance_date='0000-00-00')
AND jea.account = %(bank_account)s
AND jea.{cr_or_dr}_in_account_currency {amount_condition} %(amount)s
AND je.docstatus = 1
"""
jea.account_currency.as_("currency"),
)
.where(je.docstatus == 1)
.where(je.voucher_type != "Opening Entry")
.where(je.clearance_date.isnull())
.where(jea.account == Parameter("%(bank_account)s"))
.where(amount_equality if exact_match else getattr(jea, amount_field) > 0.0)
.where(je.docstatus == 1)
.where(filter_by_date)
.orderby(je.cheque_date if cint(filter_by_reference_date) else je.posting_date)
)
if frappe.flags.auto_reconcile_vouchers == True:
query = query.where(ref_condition)
return str(query)
def get_si_matching_query(amount_condition):
# get matchin sales invoice query
return f"""
SELECT
( CASE WHEN si.customer = %(party)s THEN 1 ELSE 0 END
+ 1 ) AS rank,
'Sales Invoice' as doctype,
def get_si_matching_query(exact_match, currency):
# get matching sales invoice query
si = frappe.qb.DocType("Sales Invoice")
sip = frappe.qb.DocType("Sales Invoice Payment")
amount_equality = sip.amount == Parameter("%(amount)s")
amount_rank = frappe.qb.terms.Case().when(amount_equality, 1).else_(0)
amount_condition = amount_equality if exact_match else sip.amount > 0.0
party_condition = si.customer == Parameter("%(party)s")
party_rank = frappe.qb.terms.Case().when(party_condition, 1).else_(0)
query = (
frappe.qb.from_(sip)
.join(si)
.on(sip.parent == si.name)
.select(
(party_rank + amount_rank + 1).as_("rank"),
ConstantColumn("Sales Invoice").as_("doctype"),
si.name,
sip.amount as paid_amount,
'' as reference_no,
'' as reference_date,
si.customer as party,
'Customer' as party_type,
sip.amount.as_("paid_amount"),
ConstantColumn("").as_("reference_no"),
ConstantColumn("").as_("reference_date"),
si.customer.as_("party"),
ConstantColumn("Customer").as_("party_type"),
si.posting_date,
si.currency
si.currency,
)
.where(si.docstatus == 1)
.where(sip.clearance_date.isnull())
.where(sip.account == Parameter("%(bank_account)s"))
.where(amount_condition)
.where(si.currency == currency)
)
FROM
`tabSales Invoice Payment` as sip
JOIN
`tabSales Invoice` as si
ON
sip.parent = si.name
WHERE (sip.clearance_date is null or sip.clearance_date='0000-00-00')
AND sip.account = %(bank_account)s
AND sip.amount {amount_condition} %(amount)s
AND si.docstatus = 1
"""
return str(query)
def get_pi_matching_query(amount_condition):
# get matching purchase invoice query
return f"""
SELECT
( CASE WHEN supplier = %(party)s THEN 1 ELSE 0 END
+ 1 ) AS rank,
'Purchase Invoice' as doctype,
name,
paid_amount,
'' as reference_no,
'' as reference_date,
supplier as party,
'Supplier' as party_type,
posting_date,
currency
FROM
`tabPurchase Invoice`
WHERE
paid_amount {amount_condition} %(amount)s
AND docstatus = 1
AND is_paid = 1
AND ifnull(clearance_date, '') = ""
AND cash_bank_account = %(bank_account)s
"""
def get_pi_matching_query(exact_match, currency):
# get matching purchase invoice query when they are also used as payment entries (is_paid)
purchase_invoice = frappe.qb.DocType("Purchase Invoice")
amount_equality = purchase_invoice.paid_amount == Parameter("%(amount)s")
amount_rank = frappe.qb.terms.Case().when(amount_equality, 1).else_(0)
amount_condition = amount_equality if exact_match else purchase_invoice.paid_amount > 0.0
party_condition = purchase_invoice.supplier == Parameter("%(party)s")
party_rank = frappe.qb.terms.Case().when(party_condition, 1).else_(0)
query = (
frappe.qb.from_(purchase_invoice)
.select(
(party_rank + amount_rank + 1).as_("rank"),
ConstantColumn("Purchase Invoice").as_("doctype"),
purchase_invoice.name,
purchase_invoice.paid_amount,
ConstantColumn("").as_("reference_no"),
ConstantColumn("").as_("reference_date"),
purchase_invoice.supplier.as_("party"),
ConstantColumn("Supplier").as_("party_type"),
purchase_invoice.posting_date,
purchase_invoice.currency,
)
.where(purchase_invoice.docstatus == 1)
.where(purchase_invoice.is_paid == 1)
.where(purchase_invoice.clearance_date.isnull())
.where(purchase_invoice.cash_bank_account == Parameter("%(bank_account)s"))
.where(amount_condition)
.where(purchase_invoice.currency == currency)
)
return str(query)

View File

@@ -1,9 +1,100 @@
# Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
# import frappe
import unittest
import frappe
from frappe import qb
from frappe.tests.utils import FrappeTestCase, change_settings
from frappe.utils import add_days, flt, getdate, today
class TestBankReconciliationTool(unittest.TestCase):
pass
from erpnext.accounts.doctype.bank_reconciliation_tool.bank_reconciliation_tool import (
auto_reconcile_vouchers,
get_bank_transactions,
)
from erpnext.accounts.doctype.payment_entry.test_payment_entry import create_payment_entry
from erpnext.accounts.test.accounts_mixin import AccountsTestMixin
class TestBankReconciliationTool(AccountsTestMixin, FrappeTestCase):
def setUp(self):
self.create_company()
self.create_customer()
self.clear_old_entries()
bank_dt = qb.DocType("Bank")
q = qb.from_(bank_dt).delete().where(bank_dt.name == "HDFC").run()
self.create_bank_account()
def tearDown(self):
frappe.db.rollback()
def create_bank_account(self):
bank = frappe.get_doc(
{
"doctype": "Bank",
"bank_name": "HDFC",
}
).save()
self.bank_account = (
frappe.get_doc(
{
"doctype": "Bank Account",
"account_name": "HDFC _current_",
"bank": bank,
"is_company_account": True,
"account": self.bank, # account from Chart of Accounts
}
)
.insert()
.name
)
def test_auto_reconcile(self):
# make payment
from_date = add_days(today(), -1)
to_date = today()
payment = create_payment_entry(
company=self.company,
posting_date=from_date,
payment_type="Receive",
party_type="Customer",
party=self.customer,
paid_from=self.debit_to,
paid_to=self.bank,
paid_amount=100,
).save()
payment.reference_no = "123"
payment = payment.save().submit()
# make bank transaction
bank_transaction = (
frappe.get_doc(
{
"doctype": "Bank Transaction",
"date": to_date,
"deposit": 100,
"bank_account": self.bank_account,
"reference_number": "123",
}
)
.save()
.submit()
)
# assert API output pre reconciliation
transactions = get_bank_transactions(self.bank_account, from_date, to_date)
self.assertEqual(len(transactions), 1)
self.assertEqual(transactions[0].name, bank_transaction.name)
# auto reconcile
auto_reconcile_vouchers(
bank_account=self.bank_account,
from_date=from_date,
to_date=to_date,
filter_by_reference_date=False,
)
# assert API output post reconciliation
transactions = get_bank_transactions(self.bank_account, from_date, to_date)
self.assertEqual(len(transactions), 0)

View File

@@ -352,10 +352,11 @@ frappe.ui.form.on("Bank Statement Import", {
export_errored_rows(frm) {
open_url_post(
"/api/method/frappe.core.doctype.data_import.data_import.download_errored_template",
"/api/method/erpnext.accounts.doctype.bank_statement_import.bank_statement_import.download_errored_template",
{
data_import_name: frm.doc.name,
}
},
true
);
},

View File

@@ -53,19 +53,20 @@ class BankStatementImport(DataImport):
if "Bank Account" not in json.dumps(preview["columns"]):
frappe.throw(_("Please add the Bank Account column"))
from frappe.utils.background_jobs import is_job_queued
from frappe.utils.background_jobs import is_job_enqueued
from frappe.utils.scheduler import is_scheduler_inactive
if is_scheduler_inactive() and not frappe.flags.in_test:
frappe.throw(_("Scheduler is inactive. Cannot import data."), title=_("Scheduler Inactive"))
if not is_job_queued(self.name):
job_id = f"bank_statement_import::{self.name}"
if not is_job_enqueued(job_id):
enqueue(
start_import,
queue="default",
timeout=6000,
event="data_import",
job_name=self.name,
job_id=job_id,
data_import=self.name,
bank_account=self.bank_account,
import_file_path=self.import_file,

View File

@@ -0,0 +1,178 @@
from typing import Tuple, Union
import frappe
from frappe.utils import flt
from rapidfuzz import fuzz, process
class AutoMatchParty:
"""
Matches by Account/IBAN and then by Party Name/Description sequentially.
Returns when a result is obtained.
Result (if present) is of the form: (Party Type, Party,)
"""
def __init__(self, **kwargs) -> None:
self.__dict__.update(kwargs)
def get(self, key):
return self.__dict__.get(key, None)
def match(self) -> Union[Tuple, None]:
result = None
result = AutoMatchbyAccountIBAN(
bank_party_account_number=self.bank_party_account_number,
bank_party_iban=self.bank_party_iban,
deposit=self.deposit,
).match()
fuzzy_matching_enabled = frappe.db.get_single_value("Accounts Settings", "enable_fuzzy_matching")
if not result and fuzzy_matching_enabled:
result = AutoMatchbyPartyNameDescription(
bank_party_name=self.bank_party_name, description=self.description, deposit=self.deposit
).match()
return result
class AutoMatchbyAccountIBAN:
def __init__(self, **kwargs) -> None:
self.__dict__.update(kwargs)
def get(self, key):
return self.__dict__.get(key, None)
def match(self):
if not (self.bank_party_account_number or self.bank_party_iban):
return None
result = self.match_account_in_party()
return result
def match_account_in_party(self) -> Union[Tuple, None]:
"""Check if there is a IBAN/Account No. match in Customer/Supplier/Employee"""
result = None
parties = get_parties_in_order(self.deposit)
or_filters = self.get_or_filters()
for party in parties:
party_result = frappe.db.get_all(
"Bank Account", or_filters=or_filters, pluck="party", limit_page_length=1
)
if party == "Employee" and not party_result:
# Search in Bank Accounts first for Employee, and then Employee record
if "bank_account_no" in or_filters:
or_filters["bank_ac_no"] = or_filters.pop("bank_account_no")
party_result = frappe.db.get_all(
party, or_filters=or_filters, pluck="name", limit_page_length=1
)
if party_result:
result = (
party,
party_result[0],
)
break
return result
def get_or_filters(self) -> dict:
or_filters = {}
if self.bank_party_account_number:
or_filters["bank_account_no"] = self.bank_party_account_number
if self.bank_party_iban:
or_filters["iban"] = self.bank_party_iban
return or_filters
class AutoMatchbyPartyNameDescription:
def __init__(self, **kwargs) -> None:
self.__dict__.update(kwargs)
def get(self, key):
return self.__dict__.get(key, None)
def match(self) -> Union[Tuple, None]:
# fuzzy search by customer/supplier & employee
if not (self.bank_party_name or self.description):
return None
result = self.match_party_name_desc_in_party()
return result
def match_party_name_desc_in_party(self) -> Union[Tuple, None]:
"""Fuzzy search party name and/or description against parties in the system"""
result = None
parties = get_parties_in_order(self.deposit)
for party in parties:
filters = {"status": "Active"} if party == "Employee" else {"disabled": 0}
names = frappe.get_all(party, filters=filters, pluck=party.lower() + "_name")
for field in ["bank_party_name", "description"]:
if not self.get(field):
continue
result, skip = self.fuzzy_search_and_return_result(party, names, field)
if result or skip:
break
if result or skip:
# Skip If: It was hard to distinguish between close matches and so match is None
# OR if the right match was found
break
return result
def fuzzy_search_and_return_result(self, party, names, field) -> Union[Tuple, None]:
skip = False
result = process.extract(query=self.get(field), choices=names, scorer=fuzz.token_set_ratio)
party_name, skip = self.process_fuzzy_result(result)
if not party_name:
return None, skip
return (
party,
party_name,
), skip
def process_fuzzy_result(self, result: Union[list, None]):
"""
If there are multiple valid close matches return None as result may be faulty.
Return the result only if one accurate match stands out.
Returns: Result, Skip (whether or not to discontinue matching)
"""
PARTY, SCORE, CUTOFF = 0, 1, 80
if not result or not len(result):
return None, False
first_result = result[0]
if len(result) == 1:
return (first_result[PARTY] if first_result[SCORE] > CUTOFF else None), True
second_result = result[1]
if first_result[SCORE] > CUTOFF:
# If multiple matches with the same score, return None but discontinue matching
# Matches were found but were too close to distinguish between
if first_result[SCORE] == second_result[SCORE]:
return None, True
return first_result[PARTY], True
else:
return None, False
def get_parties_in_order(deposit: float) -> list:
parties = ["Supplier", "Employee", "Customer"] # most -> least likely to receive
if flt(deposit) > 0:
parties = ["Customer", "Supplier", "Employee"] # most -> least likely to pay
return parties

View File

@@ -12,8 +12,14 @@ frappe.ui.form.on("Bank Transaction", {
};
});
},
bank_account: function(frm) {
refresh(frm) {
if (!frm.is_dirty() && frm.doc.payment_entries.length > 0) {
frm.add_custom_button(__("Unreconcile Transaction"), () => {
frm.call("remove_payment_entries").then(() => frm.refresh());
});
}
},
bank_account: function (frm) {
set_bank_statement_filter(frm);
},
@@ -34,6 +40,7 @@ frappe.ui.form.on("Bank Transaction", {
"Journal Entry",
"Sales Invoice",
"Purchase Invoice",
"Bank Transaction",
];
}
});
@@ -49,7 +56,7 @@ const update_clearance_date = (frm, cdt, cdn) => {
frappe
.xcall(
"erpnext.accounts.doctype.bank_transaction.bank_transaction.unclear_reference_payment",
{ doctype: cdt, docname: cdn }
{ doctype: cdt, docname: cdn, bt_name: frm.doc.name }
)
.then((e) => {
if (e == "success") {

View File

@@ -20,9 +20,11 @@
"currency",
"section_break_10",
"description",
"section_break_14",
"reference_number",
"column_break_10",
"transaction_id",
"transaction_type",
"section_break_14",
"payment_entries",
"section_break_18",
"allocated_amount",
@@ -31,7 +33,11 @@
"unallocated_amount",
"party_section",
"party_type",
"party"
"party",
"column_break_3czf",
"bank_party_name",
"bank_party_account_number",
"bank_party_iban"
],
"fields": [
{
@@ -61,7 +67,7 @@
"fieldtype": "Select",
"in_standard_filter": 1,
"label": "Status",
"options": "\nPending\nSettled\nUnreconciled\nReconciled"
"options": "\nPending\nSettled\nUnreconciled\nReconciled\nCancelled"
},
{
"fieldname": "bank_account",
@@ -190,11 +196,40 @@
"label": "Withdrawal",
"oldfieldname": "credit",
"options": "currency"
},
{
"fieldname": "column_break_10",
"fieldtype": "Column Break"
},
{
"fieldname": "transaction_type",
"fieldtype": "Data",
"label": "Transaction Type",
"length": 50
},
{
"fieldname": "column_break_3czf",
"fieldtype": "Column Break"
},
{
"fieldname": "bank_party_name",
"fieldtype": "Data",
"label": "Party Name/Account Holder (Bank Statement)"
},
{
"fieldname": "bank_party_iban",
"fieldtype": "Data",
"label": "Party IBAN (Bank Statement)"
},
{
"fieldname": "bank_party_account_number",
"fieldtype": "Data",
"label": "Party Account No. (Bank Statement)"
}
],
"is_submittable": 1,
"links": [],
"modified": "2022-03-21 19:05:04.208222",
"modified": "2023-06-06 13:58:12.821411",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Bank Transaction",

View File

@@ -1,9 +1,6 @@
# Copyright (c) 2019, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from functools import reduce
import frappe
from frappe.utils import flt
@@ -18,73 +15,159 @@ class BankTransaction(StatusUpdater):
self.clear_linked_payment_entries()
self.set_status()
if frappe.db.get_single_value("Accounts Settings", "enable_party_matching"):
self.auto_set_party()
_saving_flag = False
# nosemgrep: frappe-semgrep-rules.rules.frappe-modifying-but-not-comitting
def on_update_after_submit(self):
self.update_allocations()
self.clear_linked_payment_entries()
self.set_status(update=True)
"Run on save(). Avoid recursion caused by multiple saves"
if not self._saving_flag:
self._saving_flag = True
self.clear_linked_payment_entries()
self.update_allocations()
self._saving_flag = False
def on_cancel(self):
self.clear_linked_payment_entries(for_cancel=True)
self.set_status(update=True)
def update_allocations(self):
"The doctype does not allow modifications after submission, so write to the db direct"
if self.payment_entries:
allocated_amount = reduce(
lambda x, y: flt(x) + flt(y), [x.allocated_amount for x in self.payment_entries]
)
allocated_amount = sum(p.allocated_amount for p in self.payment_entries)
else:
allocated_amount = 0
allocated_amount = 0.0
if allocated_amount:
frappe.db.set_value(self.doctype, self.name, "allocated_amount", flt(allocated_amount))
frappe.db.set_value(
self.doctype,
self.name,
"unallocated_amount",
abs(flt(self.withdrawal) - flt(self.deposit)) - flt(allocated_amount),
)
amount = abs(flt(self.withdrawal) - flt(self.deposit))
self.db_set("allocated_amount", flt(allocated_amount))
self.db_set("unallocated_amount", amount - flt(allocated_amount))
self.reload()
self.set_status(update=True)
else:
frappe.db.set_value(self.doctype, self.name, "allocated_amount", 0)
frappe.db.set_value(
self.doctype, self.name, "unallocated_amount", abs(flt(self.withdrawal) - flt(self.deposit))
)
def add_payment_entries(self, vouchers):
"Add the vouchers with zero allocation. Save() will perform the allocations and clearance"
if 0.0 >= self.unallocated_amount:
frappe.throw(frappe._("Bank Transaction {0} is already fully reconciled").format(self.name))
amount = self.deposit or self.withdrawal
if amount == self.allocated_amount:
frappe.db.set_value(self.doctype, self.name, "status", "Reconciled")
added = False
for voucher in vouchers:
# Can't add same voucher twice
found = False
for pe in self.payment_entries:
if (
pe.payment_document == voucher["payment_doctype"]
and pe.payment_entry == voucher["payment_name"]
):
found = True
if not found:
pe = {
"payment_document": voucher["payment_doctype"],
"payment_entry": voucher["payment_name"],
"allocated_amount": 0.0, # Temporary
}
child = self.append("payment_entries", pe)
added = True
# runs on_update_after_submit
if added:
self.save()
def allocate_payment_entries(self):
"""Refactored from bank reconciliation tool.
Non-zero allocations must be amended/cleared manually
Get the bank transaction amount (b) and remove as we allocate
For each payment_entry if allocated_amount == 0:
- get the amount already allocated against all transactions (t), need latest date
- get the voucher amount (from gl) (v)
- allocate (a = v - t)
- a = 0: should already be cleared, so clear & remove payment_entry
- 0 < a <= u: allocate a & clear
- 0 < a, a > u: allocate u
- 0 > a: Error: already over-allocated
- clear means: set the latest transaction date as clearance date
"""
gl_bank_account = frappe.db.get_value("Bank Account", self.bank_account, "account")
remaining_amount = self.unallocated_amount
for payment_entry in self.payment_entries:
if payment_entry.allocated_amount == 0.0:
unallocated_amount, should_clear, latest_transaction = get_clearance_details(
self, payment_entry
)
if 0.0 == unallocated_amount:
if should_clear:
latest_transaction.clear_linked_payment_entry(payment_entry)
self.db_delete_payment_entry(payment_entry)
elif remaining_amount <= 0.0:
self.db_delete_payment_entry(payment_entry)
elif 0.0 < unallocated_amount and unallocated_amount <= remaining_amount:
payment_entry.db_set("allocated_amount", unallocated_amount)
remaining_amount -= unallocated_amount
if should_clear:
latest_transaction.clear_linked_payment_entry(payment_entry)
elif 0.0 < unallocated_amount and unallocated_amount > remaining_amount:
payment_entry.db_set("allocated_amount", remaining_amount)
remaining_amount = 0.0
elif 0.0 > unallocated_amount:
self.db_delete_payment_entry(payment_entry)
frappe.throw(frappe._("Voucher {0} is over-allocated by {1}").format(unallocated_amount))
self.reload()
def clear_linked_payment_entries(self, for_cancel=False):
def db_delete_payment_entry(self, payment_entry):
frappe.db.delete("Bank Transaction Payments", {"name": payment_entry.name})
@frappe.whitelist()
def remove_payment_entries(self):
for payment_entry in self.payment_entries:
if payment_entry.payment_document == "Sales Invoice":
self.clear_sales_invoice(payment_entry, for_cancel=for_cancel)
elif payment_entry.payment_document in get_doctypes_for_bank_reconciliation():
self.clear_simple_entry(payment_entry, for_cancel=for_cancel)
self.remove_payment_entry(payment_entry)
# runs on_update_after_submit
self.save()
def clear_simple_entry(self, payment_entry, for_cancel=False):
if payment_entry.payment_document == "Payment Entry":
if (
frappe.db.get_value("Payment Entry", payment_entry.payment_entry, "payment_type")
== "Internal Transfer"
):
if len(get_reconciled_bank_transactions(payment_entry)) < 2:
return
def remove_payment_entry(self, payment_entry):
"Clear payment entry and clearance"
self.clear_linked_payment_entry(payment_entry, for_cancel=True)
self.remove(payment_entry)
clearance_date = self.date if not for_cancel else None
frappe.db.set_value(
payment_entry.payment_document, payment_entry.payment_entry, "clearance_date", clearance_date
def clear_linked_payment_entries(self, for_cancel=False):
if for_cancel:
for payment_entry in self.payment_entries:
self.clear_linked_payment_entry(payment_entry, for_cancel)
else:
self.allocate_payment_entries()
def clear_linked_payment_entry(self, payment_entry, for_cancel=False):
clearance_date = None if for_cancel else self.date
set_voucher_clearance(
payment_entry.payment_document, payment_entry.payment_entry, clearance_date, self
)
def clear_sales_invoice(self, payment_entry, for_cancel=False):
clearance_date = self.date if not for_cancel else None
frappe.db.set_value(
"Sales Invoice Payment",
dict(parenttype=payment_entry.payment_document, parent=payment_entry.payment_entry),
"clearance_date",
clearance_date,
)
def auto_set_party(self):
from erpnext.accounts.doctype.bank_transaction.auto_match_party import AutoMatchParty
if self.party_type and self.party:
return
result = AutoMatchParty(
bank_party_account_number=self.bank_party_account_number,
bank_party_iban=self.bank_party_iban,
bank_party_name=self.bank_party_name,
description=self.description,
deposit=self.deposit,
).match()
if result:
party_type, party = result
frappe.db.set_value(
"Bank Transaction", self.name, field={"party_type": party_type, "party": party}
)
@frappe.whitelist()
@@ -93,38 +176,114 @@ def get_doctypes_for_bank_reconciliation():
return frappe.get_hooks("bank_reconciliation_doctypes")
def get_reconciled_bank_transactions(payment_entry):
reconciled_bank_transactions = frappe.get_all(
"Bank Transaction Payments",
filters={"payment_entry": payment_entry.payment_entry},
fields=["parent"],
def get_clearance_details(transaction, payment_entry):
"""
There should only be one bank gle for a voucher.
Could be none for a Bank Transaction.
But if a JE, could affect two banks.
Should only clear the voucher if all bank gles are allocated.
"""
gl_bank_account = frappe.db.get_value("Bank Account", transaction.bank_account, "account")
gles = get_related_bank_gl_entries(payment_entry.payment_document, payment_entry.payment_entry)
bt_allocations = get_total_allocated_amount(
payment_entry.payment_document, payment_entry.payment_entry
)
return reconciled_bank_transactions
unallocated_amount = min(
transaction.unallocated_amount,
get_paid_amount(payment_entry, transaction.currency, gl_bank_account),
)
unmatched_gles = len(gles)
latest_transaction = transaction
for gle in gles:
if gle["gl_account"] == gl_bank_account:
if gle["amount"] <= 0.0:
frappe.throw(
frappe._("Voucher {0} value is broken: {1}").format(
payment_entry.payment_entry, gle["amount"]
)
)
unmatched_gles -= 1
unallocated_amount = gle["amount"]
for a in bt_allocations:
if a["gl_account"] == gle["gl_account"]:
unallocated_amount = gle["amount"] - a["total"]
if frappe.utils.getdate(transaction.date) < a["latest_date"]:
latest_transaction = frappe.get_doc("Bank Transaction", a["latest_name"])
else:
# Must be a Journal Entry affecting more than one bank
for a in bt_allocations:
if a["gl_account"] == gle["gl_account"] and a["total"] == gle["amount"]:
unmatched_gles -= 1
return unallocated_amount, unmatched_gles == 0, latest_transaction
def get_total_allocated_amount(payment_entry):
return frappe.db.sql(
def get_related_bank_gl_entries(doctype, docname):
# nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql
result = frappe.db.sql(
"""
SELECT
SUM(btp.allocated_amount) as allocated_amount,
bt.name
ABS(gle.credit_in_account_currency - gle.debit_in_account_currency) AS amount,
gle.account AS gl_account
FROM
`tabBank Transaction Payments` as btp
`tabGL Entry` gle
LEFT JOIN
`tabBank Transaction` bt ON bt.name=btp.parent
`tabAccount` ac ON ac.name=gle.account
WHERE
btp.payment_document = %s
AND
btp.payment_entry = %s
AND
bt.docstatus = 1""",
(payment_entry.payment_document, payment_entry.payment_entry),
ac.account_type = 'Bank'
AND gle.voucher_type = %(doctype)s
AND gle.voucher_no = %(docname)s
AND is_cancelled = 0
""",
dict(doctype=doctype, docname=docname),
as_dict=True,
)
return result
def get_paid_amount(payment_entry, currency, bank_account):
def get_total_allocated_amount(doctype, docname):
"""
Gets the sum of allocations for a voucher on each bank GL account
along with the latest bank transaction name & date
NOTE: query may also include just saved vouchers/payments but with zero allocated_amount
"""
# nosemgrep: frappe-semgrep-rules.rules.frappe-using-db-sql
result = frappe.db.sql(
"""
SELECT total, latest_name, latest_date, gl_account FROM (
SELECT
ROW_NUMBER() OVER w AS rownum,
SUM(btp.allocated_amount) OVER(PARTITION BY ba.account) AS total,
FIRST_VALUE(bt.name) OVER w AS latest_name,
FIRST_VALUE(bt.date) OVER w AS latest_date,
ba.account AS gl_account
FROM
`tabBank Transaction Payments` btp
LEFT JOIN `tabBank Transaction` bt ON bt.name=btp.parent
LEFT JOIN `tabBank Account` ba ON ba.name=bt.bank_account
WHERE
btp.payment_document = %(doctype)s
AND btp.payment_entry = %(docname)s
AND bt.docstatus = 1
WINDOW w AS (PARTITION BY ba.account ORDER BY bt.date desc)
) temp
WHERE
rownum = 1
""",
dict(doctype=doctype, docname=docname),
as_dict=True,
)
for row in result:
# Why is this *sometimes* a byte string?
if isinstance(row["latest_name"], bytes):
row["latest_name"] = row["latest_name"].decode()
row["latest_date"] = frappe.utils.getdate(row["latest_date"])
return result
def get_paid_amount(payment_entry, currency, gl_bank_account):
if payment_entry.payment_document in ["Payment Entry", "Sales Invoice", "Purchase Invoice"]:
paid_amount_field = "paid_amount"
@@ -137,7 +296,7 @@ def get_paid_amount(payment_entry, currency, bank_account):
)
elif doc.payment_type == "Pay":
paid_amount_field = (
"paid_amount" if doc.paid_to_account_currency == currency else "base_paid_amount"
"paid_amount" if doc.paid_from_account_currency == currency else "base_paid_amount"
)
return frappe.db.get_value(
@@ -145,10 +304,13 @@ def get_paid_amount(payment_entry, currency, bank_account):
)
elif payment_entry.payment_document == "Journal Entry":
return frappe.db.get_value(
"Journal Entry Account",
{"parent": payment_entry.payment_entry, "account": bank_account},
"sum(credit_in_account_currency)",
return abs(
frappe.db.get_value(
"Journal Entry Account",
{"parent": payment_entry.payment_entry, "account": gl_bank_account},
"sum(debit_in_account_currency-credit_in_account_currency)",
)
or 0
)
elif payment_entry.payment_document == "Expense Claim":
@@ -166,6 +328,12 @@ def get_paid_amount(payment_entry, currency, bank_account):
payment_entry.payment_document, payment_entry.payment_entry, "amount_paid"
)
elif payment_entry.payment_document == "Bank Transaction":
dep, wth = frappe.db.get_value(
"Bank Transaction", payment_entry.payment_entry, ("deposit", "withdrawal")
)
return abs(flt(wth) - flt(dep))
else:
frappe.throw(
"Please reconcile {0}: {1} manually".format(
@@ -174,18 +342,48 @@ def get_paid_amount(payment_entry, currency, bank_account):
)
@frappe.whitelist()
def unclear_reference_payment(doctype, docname):
if frappe.db.exists(doctype, docname):
doc = frappe.get_doc(doctype, docname)
if doctype == "Sales Invoice":
frappe.db.set_value(
"Sales Invoice Payment",
dict(parenttype=doc.payment_document, parent=doc.payment_entry),
"clearance_date",
None,
)
else:
frappe.db.set_value(doc.payment_document, doc.payment_entry, "clearance_date", None)
def set_voucher_clearance(doctype, docname, clearance_date, self):
if doctype in get_doctypes_for_bank_reconciliation():
if (
doctype == "Payment Entry"
and frappe.db.get_value("Payment Entry", docname, "payment_type") == "Internal Transfer"
and len(get_reconciled_bank_transactions(doctype, docname)) < 2
):
return
frappe.db.set_value(doctype, docname, "clearance_date", clearance_date)
return doc.payment_entry
elif doctype == "Sales Invoice":
frappe.db.set_value(
"Sales Invoice Payment",
dict(parenttype=doctype, parent=docname),
"clearance_date",
clearance_date,
)
elif doctype == "Bank Transaction":
# For when a second bank transaction has fixed another, e.g. refund
bt = frappe.get_doc(doctype, docname)
if clearance_date:
vouchers = [{"payment_doctype": "Bank Transaction", "payment_name": self.name}]
bt.add_payment_entries(vouchers)
else:
for pe in bt.payment_entries:
if pe.payment_document == self.doctype and pe.payment_entry == self.name:
bt.remove(pe)
bt.save()
break
def get_reconciled_bank_transactions(doctype, docname):
return frappe.get_all(
"Bank Transaction Payments",
filters={"payment_document": doctype, "payment_entry": docname},
pluck="parent",
)
@frappe.whitelist()
def unclear_reference_payment(doctype, docname, bt_name):
bt = frappe.get_doc("Bank Transaction", bt_name)
set_voucher_clearance(doctype, docname, None, bt)
return docname

View File

@@ -0,0 +1,151 @@
# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
import frappe
from frappe.tests.utils import FrappeTestCase
from frappe.utils import nowdate
from erpnext.accounts.doctype.bank_transaction.test_bank_transaction import create_bank_account
class TestAutoMatchParty(FrappeTestCase):
@classmethod
def setUpClass(cls):
create_bank_account()
frappe.db.set_single_value("Accounts Settings", "enable_party_matching", 1)
frappe.db.set_single_value("Accounts Settings", "enable_fuzzy_matching", 1)
return super().setUpClass()
@classmethod
def tearDownClass(cls):
frappe.db.set_single_value("Accounts Settings", "enable_party_matching", 0)
frappe.db.set_single_value("Accounts Settings", "enable_fuzzy_matching", 0)
def test_match_by_account_number(self):
create_supplier_for_match(account_no="000000003716541159")
doc = create_bank_transaction(
withdrawal=1200,
transaction_id="562213b0ca1bf838dab8f2c6a39bbc3b",
account_no="000000003716541159",
iban="DE02000000003716541159",
)
self.assertEqual(doc.party_type, "Supplier")
self.assertEqual(doc.party, "John Doe & Co.")
def test_match_by_iban(self):
create_supplier_for_match(iban="DE02000000003716541159")
doc = create_bank_transaction(
withdrawal=1200,
transaction_id="c5455a224602afaa51592a9d9250600d",
account_no="000000003716541159",
iban="DE02000000003716541159",
)
self.assertEqual(doc.party_type, "Supplier")
self.assertEqual(doc.party, "John Doe & Co.")
def test_match_by_party_name(self):
create_supplier_for_match(supplier_name="Jackson Ella W.")
doc = create_bank_transaction(
withdrawal=1200,
transaction_id="1f6f661f347ff7b1ea588665f473adb1",
party_name="Ella Jackson",
iban="DE04000000003716545346",
)
self.assertEqual(doc.party_type, "Supplier")
self.assertEqual(doc.party, "Jackson Ella W.")
def test_match_by_description(self):
create_supplier_for_match(supplier_name="Microsoft")
doc = create_bank_transaction(
description="Auftraggeber: microsoft payments Buchungstext: msft ..e3006b5hdy. ref. j375979555927627/5536",
withdrawal=1200,
transaction_id="8df880a2d09c3bed3fea358ca5168c5a",
party_name="",
)
self.assertEqual(doc.party_type, "Supplier")
self.assertEqual(doc.party, "Microsoft")
def test_skip_match_if_multiple_close_results(self):
create_supplier_for_match(supplier_name="Adithya Medical & General Stores")
create_supplier_for_match(supplier_name="Adithya Medical And General Stores")
doc = create_bank_transaction(
description="Paracetamol Consignment, SINV-0009",
withdrawal=24.85,
transaction_id="3a1da4ee2dc5a980138d56ef3460cbd9",
party_name="Adithya Medical & General",
)
# Mapping is skipped as both Supplier names have the same match score
self.assertEqual(doc.party_type, None)
self.assertEqual(doc.party, None)
def create_supplier_for_match(supplier_name="John Doe & Co.", iban=None, account_no=None):
if frappe.db.exists("Supplier", {"supplier_name": supplier_name}):
# Update related Bank Account details
if not (iban or account_no):
return
frappe.db.set_value(
dt="Bank Account",
dn={"party": supplier_name},
field={"iban": iban, "bank_account_no": account_no},
)
return
# Create Supplier and Bank Account for the same
supplier = frappe.new_doc("Supplier")
supplier.supplier_name = supplier_name
supplier.supplier_group = "Services"
supplier.supplier_type = "Company"
supplier.insert()
if not frappe.db.exists("Bank", "TestBank"):
bank = frappe.new_doc("Bank")
bank.bank_name = "TestBank"
bank.insert(ignore_if_duplicate=True)
if not frappe.db.exists("Bank Account", supplier.name + " - " + "TestBank"):
bank_account = frappe.new_doc("Bank Account")
bank_account.account_name = supplier.name
bank_account.bank = "TestBank"
bank_account.iban = iban
bank_account.bank_account_no = account_no
bank_account.party_type = "Supplier"
bank_account.party = supplier.name
bank_account.insert()
def create_bank_transaction(
description=None,
withdrawal=0,
deposit=0,
transaction_id=None,
party_name=None,
account_no=None,
iban=None,
):
doc = frappe.new_doc("Bank Transaction")
doc.update(
{
"doctype": "Bank Transaction",
"description": description or "1512567 BG/000002918 OPSKATTUZWXXX AT776000000098709837 Herr G",
"date": nowdate(),
"withdrawal": withdrawal,
"deposit": deposit,
"currency": "INR",
"bank_account": "Checking Account - Citi Bank",
"transaction_id": transaction_id,
"bank_party_name": party_name,
"bank_party_account_number": account_no,
"bank_party_iban": iban,
}
)
doc.insert()
doc.submit()
doc.reload()
return doc

View File

@@ -5,6 +5,7 @@ import json
import unittest
import frappe
from frappe import utils
from frappe.tests.utils import FrappeTestCase
from erpnext.accounts.doctype.bank_reconciliation_tool.bank_reconciliation_tool import (
@@ -15,6 +16,7 @@ from erpnext.accounts.doctype.payment_entry.test_payment_entry import get_paymen
from erpnext.accounts.doctype.pos_profile.test_pos_profile import make_pos_profile
from erpnext.accounts.doctype.purchase_invoice.test_purchase_invoice import make_purchase_invoice
from erpnext.accounts.doctype.sales_invoice.test_sales_invoice import create_sales_invoice
from erpnext.tests.utils import if_lending_app_installed
test_dependencies = ["Item", "Cost Center"]
@@ -22,14 +24,13 @@ test_dependencies = ["Item", "Cost Center"]
class TestBankTransaction(FrappeTestCase):
def setUp(self):
for dt in [
"Loan Repayment",
"Bank Transaction",
"Payment Entry",
"Payment Entry Reference",
"POS Profile",
]:
frappe.db.delete(dt)
clear_loan_transactions()
make_pos_profile()
add_transactions()
add_vouchers()
@@ -40,8 +41,13 @@ class TestBankTransaction(FrappeTestCase):
"Bank Transaction",
dict(description="Re 95282925234 FE/000002917 AT171513000281183046 Conrad Electronic"),
)
linked_payments = get_linked_payments(bank_transaction.name, ["payment_entry", "exact_match"])
self.assertTrue(linked_payments[0][6] == "Conrad Electronic")
linked_payments = get_linked_payments(
bank_transaction.name,
["payment_entry", "exact_match"],
from_date=bank_transaction.date,
to_date=utils.today(),
)
self.assertTrue(linked_payments[0]["party"] == "Conrad Electronic")
# This test validates a simple reconciliation leading to the clearance of the bank transaction and the payment
def test_reconcile(self):
@@ -81,8 +87,13 @@ class TestBankTransaction(FrappeTestCase):
"Bank Transaction",
dict(description="Auszahlung Karte MC/000002916 AUTOMAT 698769 K002 27.10. 14:07"),
)
linked_payments = get_linked_payments(bank_transaction.name, ["payment_entry", "exact_match"])
self.assertTrue(linked_payments[0][3])
linked_payments = get_linked_payments(
bank_transaction.name,
["payment_entry", "exact_match"],
from_date=bank_transaction.date,
to_date=utils.today(),
)
self.assertTrue(linked_payments[0]["paid_amount"])
# Check error if already reconciled
def test_already_reconciled(self):
@@ -149,8 +160,9 @@ class TestBankTransaction(FrappeTestCase):
is not None
)
@if_lending_app_installed
def test_matching_loan_repayment(self):
from erpnext.loan_management.doctype.loan.test_loan import create_loan_accounts
from lending.loan_management.doctype.loan.test_loan import create_loan_accounts
create_loan_accounts()
bank_account = frappe.get_doc(
@@ -176,7 +188,12 @@ class TestBankTransaction(FrappeTestCase):
repayment_entry = create_loan_and_repayment()
linked_payments = get_linked_payments(bank_transaction.name, ["loan_repayment", "exact_match"])
self.assertEqual(linked_payments[0][2], repayment_entry.name)
self.assertEqual(linked_payments[0]["name"], repayment_entry.name)
@if_lending_app_installed
def clear_loan_transactions():
frappe.db.delete("Loan Repayment")
def create_bank_account(bank_name="Citi Bank", account_name="_Test Bank - _TC"):
@@ -389,19 +406,22 @@ def add_vouchers():
si.submit()
@if_lending_app_installed
def create_loan_and_repayment():
from erpnext.loan_management.doctype.loan.test_loan import (
from lending.loan_management.doctype.loan.test_loan import (
create_loan,
create_loan_type,
create_loan_product,
create_repayment_entry,
make_loan_disbursement_entry,
)
from erpnext.loan_management.doctype.process_loan_interest_accrual.process_loan_interest_accrual import (
from lending.loan_management.doctype.process_loan_interest_accrual.process_loan_interest_accrual import (
process_loan_interest_accrual_for_term_loans,
)
from erpnext.setup.doctype.employee.test_employee import make_employee
create_loan_type(
create_loan_product(
"Personal Loan",
"Personal Loan",
500000,
8.4,
@@ -422,7 +442,7 @@ def create_loan_and_repayment():
"applicant_type": "Employee",
"company": "_Test Company",
"applicant": applicant,
"loan_type": "Personal Loan",
"loan_product": "Personal Loan",
"loan_amount": 5000,
"repayment_method": "Repay Fixed Amount per Period",
"monthly_repayment_amount": 500,

View File

@@ -125,14 +125,27 @@ def validate_expense_against_budget(args, expense_amount=0):
if not args.account:
return
for budget_against in ["project", "cost_center"] + get_accounting_dimensions():
default_dimensions = [
{
"fieldname": "project",
"document_type": "Project",
},
{
"fieldname": "cost_center",
"document_type": "Cost Center",
},
]
for dimension in default_dimensions + get_accounting_dimensions(as_list=False):
budget_against = dimension.get("fieldname")
if (
args.get(budget_against)
and args.account
and frappe.db.get_value("Account", {"name": args.account, "root_type": "Expense"})
):
doctype = frappe.unscrub(budget_against)
doctype = dimension.get("document_type")
if frappe.get_cached_value("DocType", doctype, "is_tree"):
lft, rgt = frappe.db.get_value(doctype, args.get(budget_against), ["lft", "rgt"])
@@ -184,6 +197,11 @@ def validate_budget_records(args, budget_records, expense_amount):
amount = expense_amount or get_amount(args, budget)
yearly_action, monthly_action = get_actions(args, budget)
if yearly_action in ("Stop", "Warn"):
compare_expense_with_budget(
args, flt(budget.budget_amount), _("Annual"), yearly_action, budget.budget_against, amount
)
if monthly_action in ["Stop", "Warn"]:
budget_amount = get_accumulated_monthly_budget(
budget.monthly_distribution, args.posting_date, args.fiscal_year, budget.budget_amount
@@ -195,28 +213,28 @@ def validate_budget_records(args, budget_records, expense_amount):
args, budget_amount, _("Accumulated Monthly"), monthly_action, budget.budget_against, amount
)
if (
yearly_action in ("Stop", "Warn")
and monthly_action != "Stop"
and yearly_action != monthly_action
):
compare_expense_with_budget(
args, flt(budget.budget_amount), _("Annual"), yearly_action, budget.budget_against, amount
)
def compare_expense_with_budget(args, budget_amount, action_for, action, budget_against, amount=0):
actual_expense = amount or get_actual_expense(args)
if actual_expense > budget_amount:
diff = actual_expense - budget_amount
actual_expense = get_actual_expense(args)
total_expense = actual_expense + amount
if total_expense > budget_amount:
if actual_expense > budget_amount:
error_tense = _("is already")
diff = actual_expense - budget_amount
else:
error_tense = _("will be")
diff = total_expense - budget_amount
currency = frappe.get_cached_value("Company", args.company, "default_currency")
msg = _("{0} Budget for Account {1} against {2} {3} is {4}. It will exceed by {5}").format(
msg = _("{0} Budget for Account {1} against {2} {3} is {4}. It {5} exceed by {6}").format(
_(action_for),
frappe.bold(args.account),
args.budget_against_field,
frappe.unscrub(args.budget_against_field),
frappe.bold(budget_against),
frappe.bold(fmt_money(budget_amount, currency=currency)),
error_tense,
frappe.bold(fmt_money(diff, currency=currency)),
)
@@ -227,9 +245,9 @@ def compare_expense_with_budget(args, budget_amount, action_for, action, budget_
action = "Warn"
if action == "Stop":
frappe.throw(msg, BudgetError)
frappe.throw(msg, BudgetError, title=_("Budget Exceeded"))
else:
frappe.msgprint(msg, indicator="orange")
frappe.msgprint(msg, indicator="orange", title=_("Budget Exceeded"))
def get_actions(args, budget):
@@ -351,7 +369,9 @@ def get_actual_expense(args):
"""
select sum(gle.debit) - sum(gle.credit)
from `tabGL Entry` gle
where gle.account=%(account)s
where
is_cancelled = 0
and gle.account=%(account)s
{condition1}
and gle.fiscal_year=%(fiscal_year)s
and gle.company=%(company)s

View File

@@ -1,6 +0,0 @@
// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ui.form.on('Cash Flow Mapper', {
});

View File

@@ -1,275 +0,0 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 1,
"autoname": "field:section_name",
"beta": 0,
"creation": "2018-02-08 10:00:14.066519",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "section_name",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Section Name",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "section_header",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Section Header",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"description": "e.g Adjustments for:",
"fieldname": "section_leader",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Section Leader",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "section_subtotal",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Section Subtotal",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "section_footer",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Section Footer",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "accounts",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Accounts",
"length": 0,
"no_copy": 0,
"options": "Cash Flow Mapping Template Details",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "position",
"fieldtype": "Int",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Position",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2018-02-15 18:28:55.034933",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Cash Flow Mapper",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 0,
"delete": 0,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
}
],
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "name",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

View File

@@ -1,9 +0,0 @@
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from frappe.model.document import Document
class CashFlowMapper(Document):
pass

View File

@@ -1,25 +0,0 @@
DEFAULT_MAPPERS = [
{
"doctype": "Cash Flow Mapper",
"section_footer": "Net cash generated by operating activities",
"section_header": "Cash flows from operating activities",
"section_leader": "Adjustments for",
"section_name": "Operating Activities",
"position": 0,
"section_subtotal": "Cash generated from operations",
},
{
"doctype": "Cash Flow Mapper",
"position": 1,
"section_footer": "Net cash used in investing activities",
"section_header": "Cash flows from investing activities",
"section_name": "Investing Activities",
},
{
"doctype": "Cash Flow Mapper",
"position": 2,
"section_footer": "Net cash used in financing activites",
"section_header": "Cash flows from financing activities",
"section_name": "Financing Activities",
},
]

View File

@@ -1,8 +0,0 @@
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
import unittest
class TestCashFlowMapper(unittest.TestCase):
pass

View File

@@ -1,43 +0,0 @@
// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ui.form.on('Cash Flow Mapping', {
refresh: function(frm) {
frm.events.disable_unchecked_fields(frm);
},
reset_check_fields: function(frm) {
frm.fields.filter(field => field.df.fieldtype === 'Check')
.map(field => frm.set_df_property(field.df.fieldname, 'read_only', 0));
},
has_checked_field(frm) {
const val = frm.fields.filter(field => field.value === 1);
return val.length ? 1 : 0;
},
_disable_unchecked_fields: function(frm) {
// get value of clicked field
frm.fields.filter(field => field.value === 0)
.map(field => frm.set_df_property(field.df.fieldname, 'read_only', 1));
},
disable_unchecked_fields: function(frm) {
frm.events.reset_check_fields(frm);
const checked = frm.events.has_checked_field(frm);
if (checked) {
frm.events._disable_unchecked_fields(frm);
}
},
is_working_capital: function(frm) {
frm.events.disable_unchecked_fields(frm);
},
is_finance_cost: function(frm) {
frm.events.disable_unchecked_fields(frm);
},
is_income_tax_liability: function(frm) {
frm.events.disable_unchecked_fields(frm);
},
is_income_tax_expense: function(frm) {
frm.events.disable_unchecked_fields(frm);
},
is_finance_cost_adjustment: function(frm) {
frm.events.disable_unchecked_fields(frm);
}
});

View File

@@ -1,359 +0,0 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 1,
"autoname": "field:mapping_name",
"beta": 0,
"creation": "2018-02-08 09:28:44.678364",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "mapping_name",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Name",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "label",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Label",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "accounts",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Accounts",
"length": 0,
"no_copy": 0,
"options": "Cash Flow Mapping Accounts",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "sb_1",
"fieldtype": "Section Break",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Select Maximum Of 1",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "0",
"fieldname": "is_finance_cost",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Is Finance Cost",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "0",
"fieldname": "is_working_capital",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Is Working Capital",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "0",
"fieldname": "is_finance_cost_adjustment",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Is Finance Cost Adjustment",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "0",
"fieldname": "is_income_tax_liability",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Is Income Tax Liability",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"default": "0",
"fieldname": "is_income_tax_expense",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Is Income Tax Expense",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2018-02-15 08:25:18.693533",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Cash Flow Mapping",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
},
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "Administrator",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
}
],
"quick_entry": 0,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "name",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

View File

@@ -1,22 +0,0 @@
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
import frappe
from frappe import _
from frappe.model.document import Document
class CashFlowMapping(Document):
def validate(self):
self.validate_checked_options()
def validate_checked_options(self):
checked_fields = [
d for d in self.meta.fields if d.fieldtype == "Check" and self.get(d.fieldname) == 1
]
if len(checked_fields) > 1:
frappe.throw(
_("You can only select a maximum of one option from the list of check boxes."),
title=_("Error"),
)

View File

@@ -1,28 +0,0 @@
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
import unittest
import frappe
class TestCashFlowMapping(unittest.TestCase):
def setUp(self):
if frappe.db.exists("Cash Flow Mapping", "Test Mapping"):
frappe.delete_doc("Cash Flow Mappping", "Test Mapping")
def tearDown(self):
frappe.delete_doc("Cash Flow Mapping", "Test Mapping")
def test_multiple_selections_not_allowed(self):
doc = frappe.new_doc("Cash Flow Mapping")
doc.mapping_name = "Test Mapping"
doc.label = "Test label"
doc.append("accounts", {"account": "Accounts Receivable - _TC"})
doc.is_working_capital = 1
doc.is_finance_cost = 1
self.assertRaises(frappe.ValidationError, doc.insert)
doc.is_finance_cost = 0
doc.insert()

View File

@@ -1,73 +0,0 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"autoname": "field:account",
"beta": 0,
"creation": "2018-02-08 09:25:34.353995",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "account",
"fieldtype": "Link",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "account",
"length": 0,
"no_copy": 0,
"options": "Account",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 1,
"max_attachments": 0,
"modified": "2018-02-08 09:25:34.353995",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Cash Flow Mapping Accounts",
"name_case": "",
"owner": "Administrator",
"permissions": [],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

View File

@@ -1,9 +0,0 @@
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from frappe.model.document import Document
class CashFlowMappingAccounts(Document):
pass

View File

@@ -1,6 +0,0 @@
// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ui.form.on('Cash Flow Mapping Template', {
});

View File

@@ -1,123 +0,0 @@
{
"allow_copy": 0,
"allow_guest_to_view": 0,
"allow_import": 0,
"allow_rename": 0,
"beta": 0,
"creation": "2018-02-08 10:20:18.316801",
"custom": 0,
"docstatus": 0,
"doctype": "DocType",
"document_type": "",
"editable_grid": 1,
"engine": "InnoDB",
"fields": [
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "template_name",
"fieldtype": "Data",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 1,
"in_standard_filter": 0,
"label": "Template Name",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{
"allow_bulk_edit": 0,
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"fieldname": "mapping",
"fieldtype": "Table",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Cash Flow Mapping",
"length": 0,
"no_copy": 0,
"options": "Cash Flow Mapping Template Details",
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 1,
"search_index": 0,
"set_only_once": 0,
"unique": 0
}
],
"has_web_view": 0,
"hide_heading": 0,
"hide_toolbar": 0,
"idx": 0,
"image_view": 0,
"in_create": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2018-02-08 10:20:18.316801",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Cash Flow Mapping Template",
"name_case": "",
"owner": "Administrator",
"permissions": [
{
"amend": 0,
"apply_user_permissions": 0,
"cancel": 0,
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"if_owner": 0,
"import": 0,
"permlevel": 0,
"print": 1,
"read": 1,
"report": 1,
"role": "System Manager",
"set_user_permissions": 0,
"share": 1,
"submit": 0,
"write": 1
}
],
"quick_entry": 1,
"read_only": 0,
"read_only_onload": 0,
"show_name_in_global_search": 0,
"sort_field": "modified",
"sort_order": "DESC",
"track_changes": 1,
"track_seen": 0
}

View File

@@ -1,9 +0,0 @@
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from frappe.model.document import Document
class CashFlowMappingTemplate(Document):
pass

View File

@@ -1,8 +0,0 @@
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
import unittest
class TestCashFlowMappingTemplate(unittest.TestCase):
pass

View File

@@ -1,6 +0,0 @@
// Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ui.form.on('Cash Flow Mapping Template Details', {
});

View File

@@ -1,9 +0,0 @@
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
from frappe.model.document import Document
class CashFlowMappingTemplateDetails(Document):
pass

View File

@@ -1,8 +0,0 @@
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
# See license.txt
import unittest
class TestCashFlowMappingTemplateDetails(unittest.TestCase):
pass

View File

@@ -36,7 +36,7 @@ def validate_columns(data):
no_of_columns = max([len(d) for d in data])
if no_of_columns > 7:
if no_of_columns > 8:
frappe.throw(
_("More columns found than expected. Please compare the uploaded file with standard template"),
title=(_("Wrong Template")),
@@ -233,6 +233,7 @@ def build_forest(data):
is_group,
account_type,
root_type,
account_currency,
) = i
if not account_name:
@@ -253,6 +254,8 @@ def build_forest(data):
charts_map[account_name]["account_type"] = account_type
if root_type:
charts_map[account_name]["root_type"] = root_type
if account_currency:
charts_map[account_name]["account_currency"] = account_currency
path = return_parent(data, account_name)[::-1]
paths.append(path) # List of path is created
line_no += 1
@@ -315,20 +318,21 @@ def get_template(template_type):
"Is Group",
"Account Type",
"Root Type",
"Account Currency",
]
writer = UnicodeWriter()
writer.writerow(fields)
if template_type == "Blank Template":
for root_type in get_root_types():
writer.writerow(["", "", "", 1, "", root_type])
writer.writerow(["", "", "", "", 1, "", root_type])
for account in get_mandatory_group_accounts():
writer.writerow(["", "", "", 1, account, "Asset"])
writer.writerow(["", "", "", "", 1, account, "Asset"])
for account_type in get_mandatory_account_types():
writer.writerow(
["", "", "", 0, account_type.get("account_type"), account_type.get("root_type")]
["", "", "", "", 0, account_type.get("account_type"), account_type.get("root_type")]
)
else:
writer = get_sample_template(writer)
@@ -485,6 +489,10 @@ def set_default_accounts(company):
"default_payable_account": frappe.db.get_value(
"Account", {"company": company.name, "account_type": "Payable", "is_group": 0}
),
"default_provisional_account": frappe.db.get_value(
"Account",
{"company": company.name, "account_type": "Service Received But Not Billed", "is_group": 0},
),
}
)

View File

@@ -70,7 +70,7 @@ frappe.ui.form.on('Cost Center', {
}
],
primary_action: function() {
var data = d.get_values();
let data = d.get_values();
if(data.cost_center_name === frm.doc.cost_center_name && data.cost_center_number === frm.doc.cost_center_number) {
d.hide();
return;
@@ -91,8 +91,8 @@ frappe.ui.form.on('Cost Center', {
if(r.message) {
frappe.set_route("Form", "Cost Center", r.message);
} else {
me.frm.set_value("cost_center_name", data.cost_center_name);
me.frm.set_value("cost_center_number", data.cost_center_number);
frm.set_value("cost_center_name", data.cost_center_name);
frm.set_value("cost_center_number", data.cost_center_number);
}
d.hide();
}

View File

@@ -28,9 +28,14 @@ class InvalidDateError(frappe.ValidationError):
class CostCenterAllocation(Document):
def __init__(self, *args, **kwargs):
super(CostCenterAllocation, self).__init__(*args, **kwargs)
self._skip_from_date_validation = False
def validate(self):
self.validate_total_allocation_percentage()
self.validate_from_date_based_on_existing_gle()
if not self._skip_from_date_validation:
self.validate_from_date_based_on_existing_gle()
self.validate_backdated_allocation()
self.validate_main_cost_center()
self.validate_child_cost_centers()

View File

@@ -6,8 +6,10 @@
"engine": "InnoDB",
"field_order": [
"api_details_section",
"disabled",
"service_provider",
"api_endpoint",
"access_key",
"url",
"column_break_3",
"help",
@@ -77,12 +79,24 @@
"label": "Service Provider",
"options": "frankfurter.app\nexchangerate.host\nCustom",
"reqd": 1
},
{
"default": "0",
"fieldname": "disabled",
"fieldtype": "Check",
"label": "Disabled"
},
{
"depends_on": "eval:doc.service_provider == 'exchangerate.host';",
"fieldname": "access_key",
"fieldtype": "Data",
"label": "Access Key"
}
],
"index_web_pages_for_search": 1,
"issingle": 1,
"links": [],
"modified": "2022-01-10 15:51:14.521174",
"modified": "2023-10-04 15:30:25.333860",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Currency Exchange Settings",

View File

@@ -18,11 +18,21 @@ class CurrencyExchangeSettings(Document):
def set_parameters_and_result(self):
if self.service_provider == "exchangerate.host":
if not self.access_key:
frappe.throw(
_("Access Key is required for Service Provider: {0}").format(
frappe.bold(self.service_provider)
)
)
self.set("result_key", [])
self.set("req_params", [])
self.api_endpoint = "https://api.exchangerate.host/convert"
self.append("result_key", {"key": "result"})
self.append("req_params", {"key": "access_key", "value": self.access_key})
self.append("req_params", {"key": "amount", "value": "1"})
self.append("req_params", {"key": "date", "value": "{transaction_date}"})
self.append("req_params", {"key": "from", "value": "{from_currency}"})
self.append("req_params", {"key": "to", "value": "{to_currency}"})

View File

@@ -1,13 +1,14 @@
// Copyright (c) 2020, Frappe Technologies Pvt. Ltd. and contributors
// Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
frappe.ui.form.on("Dunning", {
setup: function (frm) {
frm.set_query("sales_invoice", () => {
frm.set_query("sales_invoice", "overdue_payments", () => {
return {
filters: {
docstatus: 1,
company: frm.doc.company,
customer: frm.doc.customer,
outstanding_amount: [">", 0],
status: "Overdue"
},
@@ -22,14 +23,24 @@ frappe.ui.form.on("Dunning", {
}
};
});
frm.set_query("cost_center", () => {
return {
filters: {
company: frm.doc.company,
is_group: 0
}
};
});
frm.set_query("contact_person", erpnext.queries.contact_query);
frm.set_query("customer_address", erpnext.queries.address_query);
frm.set_query("company_address", erpnext.queries.company_address_query);
// cannot add rows manually, only via button "Fetch Overdue Payments"
frm.set_df_property("overdue_payments", "cannot_add_rows", true);
},
refresh: function (frm) {
frm.set_df_property("company", "read_only", frm.doc.__islocal ? 0 : 1);
frm.set_df_property(
"sales_invoice",
"read_only",
frm.doc.__islocal ? 0 : 1
);
if (frm.doc.docstatus === 1 && frm.doc.status === "Unresolved") {
frm.add_custom_button(__("Resolve"), () => {
frm.set_value("status", "Resolved");
@@ -40,42 +51,111 @@ frappe.ui.form.on("Dunning", {
__("Payment"),
function () {
frm.events.make_payment_entry(frm);
},__("Create")
}, __("Create")
);
frm.page.set_inner_btn_group_as_primary(__("Create"));
}
if(frm.doc.docstatus > 0) {
frm.add_custom_button(__('Ledger'), function() {
frappe.route_options = {
"voucher_no": frm.doc.name,
"from_date": frm.doc.posting_date,
"to_date": frm.doc.posting_date,
"company": frm.doc.company,
"show_cancelled_entries": frm.doc.docstatus === 2
};
frappe.set_route("query-report", "General Ledger");
}, __('View'));
if (frm.doc.docstatus === 0) {
frm.add_custom_button(__("Fetch Overdue Payments"), () => {
erpnext.utils.map_current_doc({
method: "erpnext.accounts.doctype.sales_invoice.sales_invoice.create_dunning",
source_doctype: "Sales Invoice",
date_field: "due_date",
target: frm,
setters: {
customer: frm.doc.customer || undefined,
},
get_query_filters: {
docstatus: 1,
status: "Overdue",
company: frm.doc.company
},
allow_child_item_selection: true,
child_fieldname: "payment_schedule",
child_columns: ["due_date", "outstanding"],
});
});
}
frappe.dynamic_link = { doc: frm.doc, fieldname: 'customer', doctype: 'Customer' };
frm.toggle_display("customer_name", (frm.doc.customer_name && frm.doc.customer_name !== frm.doc.customer));
},
overdue_days: function (frm) {
frappe.db.get_value(
"Dunning Type",
{
start_day: ["<", frm.doc.overdue_days],
end_day: [">=", frm.doc.overdue_days],
},
"dunning_type",
(r) => {
if (r) {
frm.set_value("dunning_type", r.dunning_type);
} else {
frm.set_value("dunning_type", "");
frm.set_value("rate_of_interest", "");
frm.set_value("dunning_fee", "");
// When multiple companies are set up. in case company name is changed set default company address
company: function (frm) {
if (frm.doc.company) {
frappe.call({
method: "erpnext.setup.doctype.company.company.get_default_company_address",
args: { name: frm.doc.company, existing_address: frm.doc.company_address || "" },
debounce: 2000,
callback: function (r) {
frm.set_value("company_address", r && r.message || "");
}
});
if (frm.fields_dict.currency) {
const company_currency = erpnext.get_currency(frm.doc.company);
if (!frm.doc.currency) {
frm.set_value("currency", company_currency);
}
if (frm.doc.currency == company_currency) {
frm.set_value("conversion_rate", 1.0);
}
}
);
const company_doc = frappe.get_doc(":Company", frm.doc.company);
if (company_doc.default_letter_head) {
if (frm.fields_dict.letter_head) {
frm.set_value("letter_head", company_doc.default_letter_head);
}
}
}
},
currency: function (frm) {
// this.set_dynamic_labels();
const company_currency = erpnext.get_currency(frm.doc.company);
// Added `ignore_pricing_rule` to determine if document is loading after mapping from another doc
if (frm.doc.currency && frm.doc.currency !== company_currency) {
frappe.call({
method: "erpnext.setup.utils.get_exchange_rate",
args: {
transaction_date: frm.doc.posting_date,
from_currency: frm.doc.currency,
to_currency: company_currency,
args: "for_selling"
},
freeze: true,
freeze_message: __("Fetching exchange rates ..."),
callback: function(r) {
const exchange_rate = flt(r.message);
if (exchange_rate != frm.doc.conversion_rate) {
frm.set_value("conversion_rate", exchange_rate);
}
}
});
} else {
frm.trigger("conversion_rate");
}
},
customer: (frm) => {
erpnext.utils.get_party_details(frm);
},
conversion_rate: function (frm) {
if (frm.doc.currency === erpnext.get_currency(frm.doc.company)) {
frm.set_value("conversion_rate", 1.0);
}
// Make read only if Accounts Settings doesn't allow stale rates
frm.set_df_property("conversion_rate", "read_only", erpnext.stale_rate_allowed() ? 0 : 1);
},
customer_address: function (frm) {
erpnext.utils.get_address_display(frm, "customer_address");
},
company_address: function (frm) {
erpnext.utils.get_address_display(frm, "company_address");
},
dunning_type: function (frm) {
frm.trigger("get_dunning_letter_text");
@@ -87,7 +167,7 @@ frappe.ui.form.on("Dunning", {
if (frm.doc.dunning_type) {
frappe.call({
method:
"erpnext.accounts.doctype.dunning.dunning.get_dunning_letter_text",
"erpnext.accounts.doctype.dunning.dunning.get_dunning_letter_text",
args: {
dunning_type: frm.doc.dunning_type,
language: frm.doc.language,
@@ -106,49 +186,62 @@ frappe.ui.form.on("Dunning", {
});
}
},
due_date: function (frm) {
frm.trigger("calculate_overdue_days");
},
posting_date: function (frm) {
frm.trigger("calculate_overdue_days");
},
rate_of_interest: function (frm) {
frm.trigger("calculate_interest_and_amount");
},
outstanding_amount: function (frm) {
frm.trigger("calculate_interest_and_amount");
},
interest_amount: function (frm) {
frm.trigger("calculate_interest_and_amount");
frm.trigger("calculate_interest");
},
dunning_fee: function (frm) {
frm.trigger("calculate_interest_and_amount");
frm.trigger("calculate_totals");
},
sales_invoice: function (frm) {
frm.trigger("calculate_overdue_days");
overdue_payments_add: function (frm) {
frm.trigger("calculate_totals");
},
overdue_payments_remove: function (frm) {
frm.trigger("calculate_totals");
},
calculate_overdue_days: function (frm) {
if (frm.doc.posting_date && frm.doc.due_date) {
const overdue_days = moment(frm.doc.posting_date).diff(
frm.doc.due_date,
"days"
);
frm.set_value("overdue_days", overdue_days);
}
frm.doc.overdue_payments.forEach((row) => {
if (frm.doc.posting_date && row.due_date) {
const overdue_days = moment(frm.doc.posting_date).diff(
row.due_date,
"days"
);
frappe.model.set_value(row.doctype, row.name, "overdue_days", overdue_days);
}
});
},
calculate_interest_and_amount: function (frm) {
const interest_per_year = frm.doc.outstanding_amount * frm.doc.rate_of_interest / 100;
const interest_amount = flt((interest_per_year * cint(frm.doc.overdue_days)) / 365 || 0, precision('interest_amount'));
const dunning_amount = flt(interest_amount + frm.doc.dunning_fee, precision('dunning_amount'));
const grand_total = flt(frm.doc.outstanding_amount + dunning_amount, precision('grand_total'));
frm.set_value("interest_amount", interest_amount);
frm.set_value("dunning_amount", dunning_amount);
frm.set_value("grand_total", grand_total);
calculate_interest: function (frm) {
frm.doc.overdue_payments.forEach((row) => {
const interest_per_day = frm.doc.rate_of_interest / 100 / 365;
const interest = flt((interest_per_day * row.overdue_days * row.outstanding), precision("interest", row));
frappe.model.set_value(row.doctype, row.name, "interest", interest);
});
},
calculate_totals: function (frm) {
const total_interest = frm.doc.overdue_payments
.reduce((prev, cur) => prev + cur.interest, 0);
const total_outstanding = frm.doc.overdue_payments
.reduce((prev, cur) => prev + cur.outstanding, 0);
const dunning_amount = total_interest + frm.doc.dunning_fee;
const base_dunning_amount = dunning_amount * frm.doc.conversion_rate;
const grand_total = total_outstanding + dunning_amount;
function setWithPrecison(field, value) {
frm.set_value(field, flt(value, precision(field)));
}
setWithPrecison("total_outstanding", total_outstanding);
setWithPrecison("total_interest", total_interest);
setWithPrecison("dunning_amount", dunning_amount);
setWithPrecison("base_dunning_amount", base_dunning_amount);
setWithPrecison("grand_total", grand_total);
},
make_payment_entry: function (frm) {
return frappe.call({
method:
"erpnext.accounts.doctype.payment_entry.payment_entry.get_payment_entry",
"erpnext.accounts.doctype.payment_entry.payment_entry.get_payment_entry",
args: {
dt: frm.doc.doctype,
dn: frm.doc.name,
@@ -160,3 +253,9 @@ frappe.ui.form.on("Dunning", {
});
},
});
frappe.ui.form.on("Overdue Payment", {
interest: function (frm) {
frm.trigger("calculate_totals");
}
});

View File

@@ -2,49 +2,60 @@
"actions": [],
"allow_events_in_timeline": 1,
"autoname": "naming_series:",
"beta": 1,
"creation": "2019-07-05 16:34:31.013238",
"doctype": "DocType",
"engine": "InnoDB",
"field_order": [
"title",
"naming_series",
"sales_invoice",
"customer",
"customer_name",
"outstanding_amount",
"currency",
"conversion_rate",
"column_break_3",
"company",
"posting_date",
"posting_time",
"due_date",
"overdue_days",
"status",
"section_break_9",
"currency",
"column_break_11",
"conversion_rate",
"address_and_contact_section",
"customer_address",
"address_display",
"contact_person",
"contact_display",
"column_break_16",
"company_address",
"company_address_display",
"contact_mobile",
"contact_email",
"column_break_18",
"company_address_display",
"section_break_6",
"dunning_type",
"dunning_fee",
"column_break_8",
"rate_of_interest",
"interest_amount",
"section_break_12",
"dunning_amount",
"grand_total",
"income_account",
"overdue_payments",
"section_break_28",
"total_interest",
"dunning_fee",
"column_break_17",
"status",
"printing_setting_section",
"dunning_amount",
"base_dunning_amount",
"section_break_32",
"spacer",
"column_break_33",
"total_outstanding",
"grand_total",
"printing_settings_section",
"language",
"body_text",
"column_break_22",
"letter_head",
"closing_text",
"accounting_details_section",
"income_account",
"column_break_48",
"cost_center",
"amended_from"
],
"fields": [
@@ -60,32 +71,17 @@
"fieldname": "naming_series",
"fieldtype": "Select",
"label": "Series",
"options": "DUNN-.MM.-.YY.-"
"options": "DUNN-.MM.-.YY.-",
"print_hide": 1
},
{
"fieldname": "sales_invoice",
"fieldtype": "Link",
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Sales Invoice",
"options": "Sales Invoice",
"reqd": 1
},
{
"fetch_from": "sales_invoice.customer_name",
"fetch_from": "customer.customer_name",
"fieldname": "customer_name",
"fieldtype": "Data",
"in_list_view": 1,
"label": "Customer Name",
"read_only": 1
},
{
"fetch_from": "sales_invoice.outstanding_amount",
"fieldname": "outstanding_amount",
"fieldtype": "Currency",
"label": "Outstanding Amount",
"read_only": 1
},
{
"fieldname": "column_break_3",
"fieldtype": "Column Break"
@@ -94,13 +90,8 @@
"default": "Today",
"fieldname": "posting_date",
"fieldtype": "Date",
"label": "Date"
},
{
"fieldname": "overdue_days",
"fieldtype": "Int",
"label": "Overdue Days",
"read_only": 1
"label": "Date",
"reqd": 1
},
{
"fieldname": "section_break_6",
@@ -112,16 +103,7 @@
"in_list_view": 1,
"in_standard_filter": 1,
"label": "Dunning Type",
"options": "Dunning Type",
"reqd": 1
},
{
"default": "0",
"fieldname": "interest_amount",
"fieldtype": "Currency",
"label": "Interest Amount",
"precision": "2",
"read_only": 1
"options": "Dunning Type"
},
{
"fieldname": "column_break_8",
@@ -134,6 +116,7 @@
"fieldname": "dunning_fee",
"fieldtype": "Currency",
"label": "Dunning Fee",
"options": "currency",
"precision": "2"
},
{
@@ -144,36 +127,24 @@
"fieldname": "column_break_17",
"fieldtype": "Column Break"
},
{
"fieldname": "printing_setting_section",
"fieldtype": "Section Break",
"label": "Printing Setting"
},
{
"fieldname": "language",
"fieldtype": "Link",
"label": "Print Language",
"options": "Language"
"options": "Language",
"print_hide": 1
},
{
"fieldname": "letter_head",
"fieldtype": "Link",
"label": "Letter Head",
"options": "Letter Head"
"options": "Letter Head",
"print_hide": 1
},
{
"fieldname": "column_break_22",
"fieldtype": "Column Break"
},
{
"fetch_from": "sales_invoice.currency",
"fieldname": "currency",
"fieldtype": "Link",
"hidden": 1,
"label": "Currency",
"options": "Currency",
"read_only": 1
},
{
"fieldname": "amended_from",
"fieldtype": "Link",
@@ -183,14 +154,6 @@
"print_hide": 1,
"read_only": 1
},
{
"allow_on_submit": 1,
"default": "{customer_name}",
"fieldname": "title",
"fieldtype": "Data",
"hidden": 1,
"label": "Title"
},
{
"fieldname": "body_text",
"fieldtype": "Text Editor",
@@ -201,13 +164,6 @@
"fieldtype": "Text Editor",
"label": "Closing Text"
},
{
"fetch_from": "sales_invoice.due_date",
"fieldname": "due_date",
"fieldtype": "Date",
"label": "Due Date",
"read_only": 1
},
{
"fieldname": "posting_time",
"fieldtype": "Time",
@@ -222,44 +178,37 @@
"label": "Rate of Interest (%) Yearly"
},
{
"collapsible": 1,
"fieldname": "address_and_contact_section",
"fieldtype": "Section Break",
"label": "Address and Contact"
},
{
"fetch_from": "sales_invoice.address_display",
"fieldname": "address_display",
"fieldtype": "Small Text",
"label": "Address",
"read_only": 1
},
{
"fetch_from": "sales_invoice.contact_display",
"fieldname": "contact_display",
"fieldtype": "Small Text",
"label": "Contact",
"read_only": 1
},
{
"fetch_from": "sales_invoice.contact_mobile",
"fieldname": "contact_mobile",
"fieldtype": "Small Text",
"label": "Mobile No",
"options": "Phone",
"read_only": 1
},
{
"fieldname": "column_break_18",
"fieldtype": "Column Break"
},
{
"fetch_from": "sales_invoice.company_address_display",
"fieldname": "company_address_display",
"fieldtype": "Small Text",
"label": "Company Address",
"label": "Company Address Display",
"read_only": 1
},
{
"fetch_from": "sales_invoice.contact_email",
"fieldname": "contact_email",
"fieldtype": "Data",
"label": "Contact Email",
@@ -267,18 +216,18 @@
"read_only": 1
},
{
"fetch_from": "sales_invoice.customer",
"fieldname": "customer",
"fieldtype": "Link",
"label": "Customer",
"options": "Customer",
"read_only": 1
"reqd": 1
},
{
"default": "0",
"fieldname": "grand_total",
"fieldtype": "Currency",
"label": "Grand Total",
"options": "currency",
"precision": "2",
"read_only": 1
},
@@ -289,36 +238,154 @@
"fieldtype": "Select",
"in_standard_filter": 1,
"label": "Status",
"options": "Draft\nResolved\nUnresolved\nCancelled"
},
{
"fieldname": "dunning_amount",
"fieldtype": "Currency",
"hidden": 1,
"label": "Dunning Amount",
"options": "Draft\nResolved\nUnresolved\nCancelled",
"read_only": 1
},
{
"description": "For dunning fee and interest",
"fetch_from": "dunning_type.income_account",
"fieldname": "income_account",
"fieldtype": "Link",
"label": "Income Account",
"options": "Account"
"options": "Account",
"print_hide": 1
},
{
"fieldname": "overdue_payments",
"fieldtype": "Table",
"label": "Overdue Payments",
"options": "Overdue Payment"
},
{
"fieldname": "section_break_28",
"fieldtype": "Section Break"
},
{
"default": "0",
"fieldname": "total_interest",
"fieldtype": "Currency",
"label": "Total Interest",
"options": "currency",
"precision": "2",
"read_only": 1
},
{
"fieldname": "total_outstanding",
"fieldtype": "Currency",
"label": "Total Outstanding",
"options": "currency",
"read_only": 1
},
{
"fieldname": "customer_address",
"fieldtype": "Link",
"label": "Customer Address",
"options": "Address",
"print_hide": 1
},
{
"fieldname": "contact_person",
"fieldtype": "Link",
"label": "Contact Person",
"options": "Contact",
"print_hide": 1
},
{
"default": "0",
"fieldname": "dunning_amount",
"fieldtype": "Currency",
"label": "Dunning Amount",
"options": "currency",
"read_only": 1
},
{
"collapsible": 1,
"fieldname": "accounting_details_section",
"fieldtype": "Section Break",
"label": "Accounting Details"
},
{
"fetch_from": "dunning_type.cost_center",
"fieldname": "cost_center",
"fieldtype": "Link",
"label": "Cost Center",
"options": "Cost Center",
"print_hide": 1
},
{
"collapsible": 1,
"fieldname": "printing_settings_section",
"fieldtype": "Section Break",
"label": "Printing Settings"
},
{
"fieldname": "section_break_32",
"fieldtype": "Section Break"
},
{
"fieldname": "column_break_33",
"fieldtype": "Column Break"
},
{
"fieldname": "spacer",
"fieldtype": "Data",
"hidden": 1,
"label": "Spacer",
"print_hide": 1,
"read_only": 1,
"report_hide": 1
},
{
"fieldname": "column_break_16",
"fieldtype": "Column Break"
},
{
"fieldname": "company_address",
"fieldtype": "Link",
"label": "Company Address",
"options": "Address",
"print_hide": 1
},
{
"fieldname": "section_break_9",
"fieldtype": "Section Break",
"label": "Currency"
},
{
"fieldname": "currency",
"fieldtype": "Link",
"label": "Currency",
"options": "Currency"
},
{
"fieldname": "column_break_11",
"fieldtype": "Column Break"
},
{
"fetch_from": "sales_invoice.conversion_rate",
"fieldname": "conversion_rate",
"fieldtype": "Float",
"hidden": 1,
"label": "Conversion Rate",
"label": "Conversion Rate"
},
{
"default": "0",
"fieldname": "base_dunning_amount",
"fieldtype": "Currency",
"label": "Dunning Amount (Company Currency)",
"options": "Company:company:default_currency",
"read_only": 1
},
{
"fieldname": "column_break_48",
"fieldtype": "Column Break"
}
],
"is_submittable": 1,
"links": [],
"modified": "2020-08-03 18:55:43.683053",
"modified": "2023-06-15 15:46:53.865712",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Dunning",
"naming_rule": "By \"Naming Series\" field",
"owner": "Administrator",
"permissions": [
{
@@ -365,6 +432,7 @@
],
"sort_field": "modified",
"sort_order": "ASC",
"states": [],
"title_field": "customer_name",
"track_changes": 1
}

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