Two related correctness fixes:
1. Asymmetric Azerbaijani normalization.
consider_azeri_chars was only honoured by match_similar_customers/suppliers
when populating registries. At Create & Reconcile time both the party-name
lookup and the fuzzy purpose matcher compared raw lowercased strings, so a
party matched via "Şirkət" ↔ "Sirket" translit at registry time would not
resolve when the BT arrived, and a purpose rule keyed on "Mədaxil" would
fall short of fuzzy threshold against "Medaxil".
- name_to_party now indexes each row under strict / lowercase / translit /
translit+lowercase variants based on its effective Case Mode + Azeri
Translit (new per-row Select fields that override the globals, same
pattern as case sensitivity).
- _find_mapping_for_txn takes an `az` flag and applies translit to both
keyword cache and txn purpose/party before comparison.
2. Customer / Supplier dedup ignored VOEN.
create_unmapped_customers / create_unmapped_suppliers checked only by
customer_name / supplier_name, so a registry record sharing a VOEN with an
existing party under a slightly different name would create a duplicate.
Now: tax_id is checked first, name as fallback; when an existing party is
found, the mapping row is linked to it (instead of silently `continue`ing
without linking). Response includes linked_count alongside created_count.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| jey_erp | ||
| .gitignore | ||
| BANK_INTEGRATION_PLAN.md | ||
| README.md | ||
| TASK_CONTEXT.md | ||
| license.txt | ||
| pyproject.toml | ||
README.md
Jey Erp
Azerbaijan localization for JeyERP
License
unlicense