* 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>
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
```
- 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
- 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`