-
Notifications
You must be signed in to change notification settings - Fork 7.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Auto set Party in Bank Transaction (backport #34675) #35802
Closed
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(cherry picked from commit eb1db5e) # Conflicts: # erpnext/accounts/doctype/bank_transaction/test_auto_match_party.py
- 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 (cherry picked from commit 752a92b) # Conflicts: # erpnext/accounts/doctype/bank_transaction/auto_match_party.py # erpnext/accounts/doctype/bank_transaction/bank_transaction.json # erpnext/accounts/doctype/bank_transaction/bank_transaction.py # erpnext/accounts/doctype/bank_transaction/test_auto_match_party.py
- 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 (cherry picked from commit dbf7a47) # Conflicts: # erpnext/accounts/doctype/bank_transaction/auto_match_party.py # erpnext/buying/doctype/supplier/supplier.json # erpnext/selling/doctype/customer/customer.json
(cherry picked from commit 4a14e9e) # Conflicts: # erpnext/accounts/doctype/bank_transaction/auto_match_party.py # erpnext/accounts/doctype/bank_transaction/test_auto_match_party.py
…ches - 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 (cherry picked from commit 4364fb9) # Conflicts: # erpnext/accounts/doctype/accounts_settings/accounts_settings.json # erpnext/accounts/doctype/bank_transaction/auto_match_party.py # erpnext/accounts/doctype/bank_transaction/bank_transaction.json
(cherry picked from commit 7ed8f59) # Conflicts: # erpnext/accounts/doctype/bank_transaction/test_auto_match_party.py
(cherry picked from commit 430b247) # Conflicts: # erpnext/accounts/doctype/shareholder/shareholder.json
- Checkbox in Accounts settings "Enable Automatic Party Matching" - Check before invoking automatching methods - misc: Remove TODO comments (cherry picked from commit aea4315) # Conflicts: # erpnext/accounts/doctype/accounts_settings/accounts_settings.json # erpnext/accounts/doctype/bank_transaction/bank_transaction.py
- 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 (cherry picked from commit d7bc192) # Conflicts: # erpnext/accounts/doctype/bank_transaction/auto_match_party.py # erpnext/accounts/doctype/bank_transaction/bank_transaction.py
…tion - 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. (cherry picked from commit 37c1331) # Conflicts: # erpnext/accounts/doctype/bank_transaction/auto_match_party.py # erpnext/accounts/doctype/bank_transaction/bank_transaction.py
- 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 (cherry picked from commit 27ce789) # Conflicts: # erpnext/accounts/doctype/bank_party_mapper/bank_party_mapper.js # erpnext/accounts/doctype/bank_party_mapper/bank_party_mapper.json # erpnext/accounts/doctype/bank_transaction/auto_match_party.py # erpnext/accounts/doctype/bank_transaction/bank_transaction.json # erpnext/accounts/doctype/bank_transaction/bank_transaction.py # erpnext/accounts/doctype/process_payment_reconciliation_log/process_payment_reconciliation_log.py
- misc: Clearer naming (cherry picked from commit 3360455) # Conflicts: # erpnext/accounts/doctype/bank_transaction/bank_transaction.py
…ployee/Shareholder) (cherry picked from commit ad31e02) # Conflicts: # erpnext/accounts/doctype/bank_transaction/bank_transaction.json # erpnext/accounts/doctype/shareholder/shareholder.json # erpnext/buying/doctype/supplier/supplier.json # erpnext/selling/doctype/customer/customer.json
- 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 (cherry picked from commit e774503) # Conflicts: # erpnext/accounts/doctype/bank_party_mapper/bank_party_mapper.js # erpnext/accounts/doctype/bank_party_mapper/bank_party_mapper.json # erpnext/accounts/doctype/bank_transaction/auto_match_party.py # erpnext/accounts/doctype/bank_transaction/bank_transaction.json # erpnext/accounts/doctype/bank_transaction/bank_transaction.py # pyproject.toml
(cherry picked from commit 3a89828) # Conflicts: # erpnext/accounts/doctype/bank_transaction/auto_match_party.py
mergify
bot
requested review from
ankush,
rohitwaghchaure,
s-aga-r,
deepeshgarg007 and
ruthra-kumar
as code owners
June 20, 2023 07:55
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is an automatic backport of pull request #34675 done by Mergify.
Cherry-pick of eb1db5e has failed:
Cherry-pick of 752a92b has failed:
Cherry-pick of dbf7a47 has failed:
Cherry-pick of 4a14e9e has failed:
Cherry-pick of 4364fb9 has failed:
Cherry-pick of 7ed8f59 has failed:
Cherry-pick of 430b247 has failed:
Cherry-pick of aea4315 has failed:
Cherry-pick of d7bc192 has failed:
Cherry-pick of 37c1331 has failed:
Cherry-pick of 27ce789 has failed:
Cherry-pick of 3360455 has failed:
Cherry-pick of ad31e02 has failed:
Cherry-pick of e774503 has failed:
Cherry-pick of 3a89828 has failed:
To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally
Mergify commands and options
More conditions and actions can be found in the documentation.
You can also trigger Mergify actions by commenting on this pull request:
@Mergifyio refresh
will re-evaluate the rules@Mergifyio rebase
will rebase this PR on its base branch@Mergifyio update
will merge the base branch into this PR@Mergifyio backport <destination>
will backport this PR on<destination>
branchAdditionally, on Mergify dashboard you can:
Finally, you can contact us on https://mergify.com