fix: remove ESS role when not mapped to employee (#37867)
* fix: remove ESS role when not mapped to employee
* fix: emp role removal on unlinking
* fix: test case for user employee role mapping
* fix: mapped employee and user on creation
(cherry picked from commit 56b8d1b927)
Co-authored-by: Dany Robert <danyrt@wahni.com>
* fix: use correct lang separator for frappe
(cherry picked from commit 0218ca538f)
* perf: defer babel import
Only required when configuring but will get loaded everywhere
(cherry picked from commit f574ac11ea)
---------
Co-authored-by: Ankush Menat <ankush@frappe.io>
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.
(cherry picked from commit fd2c272bed)
* 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
(cherry picked from commit 6270607c6d)
# Conflicts:
# erpnext/accounts/doctype/fiscal_year/fiscal_year.py
# erpnext/patches.txt
# erpnext/public/js/utils.js
* chore: resolve conflicts
---------
Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
* feat: add local holidays
(cherry picked from commit aa18b25a71)
* test(Holiday List): weekly off and local holidays
(cherry picked from commit fd23bd0434)
* feat(Holiday List): display localized country name
(cherry picked from commit 4888d75e72)
* fix: German translations of Holiday List
(cherry picked from commit 509061f05b)
# Conflicts:
# erpnext/translations/de.csv
* fix(Holiday List): use current user's language
For consistency with "weekly off" descriptions
(cherry picked from commit 8271a39cdb)
* fix(Holiday List): allow empty value
(cherry picked from commit 8aff5a1dab)
* refactor(Holiday List): use autocomplete fieldtype
(cherry picked from commit dab9688410)
* chore: resolve merge conflicts
---------
Co-authored-by: barredterra <14891507+barredterra@users.noreply.github.com>
* 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
* chore: Single query with or filter to search Party Mapper by name/desc
* feat: Store Party bank details in party records (Customer/Supplier/Employee/Shareholder)
* 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.
* 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
* chore: Perform automatch on submit
- misc: Clearer naming
* chore: Make auto matching party configurable
- Checkbox in Accounts settings "Enable Automatic Party Matching"
- Check before invoking automatching methods
- misc: Remove TODO comments
* 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
* test: Match by Account No, IBAN, Party Name, Desc and match correction
* fix: Remove bank details fields from Shareholder
* 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
* fix: Tests
* 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
* 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
* chore: Remove instances of `bank_party_mapper` and use `new_doc`
fix: replace quotation with invoice in first onboarding (#35389)
(cherry picked from commit b0eb72ffac)
Co-authored-by: Ankush Menat <ankush@frappe.io>
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
(cherry picked from commit 5574d9a72d)
Co-authored-by: Ankush Menat <ankush@frappe.io>
refactor: clear records in batches in 'Transaction Deletion Record' (#34109)
refactor: clear records in batches
(cherry picked from commit 4a7b1de2d8)
Co-authored-by: ruthra kumar <ruthra@erpnext.com>