Issue #3614391: A tariff that overrides its price silently stops inheriting collection, deposit and no-show settings
Each payment value on a tariff becomes its own override, empty meaning inherit, so a tariff that names a price keeps the resource's collection mode, security deposit and no-show fee. payment_inherit is gone.
What changed
PaymentPolicyResolverno longer picks one source entity and reads everything from it. It resolves value by value: the tariff supplies what it fills in, the resource supplies the rest.collect_modeandcollect_valueare inherited as a pair. The value reads as currency or as a percentage depending on the mode, so resolving them separately would let a tariff asking for a percentage take the resource's fixed 50.00 as 50%.- The security deposit (
caution_enabled,caution_amount,caution_mode) is no longer on the tariff at all. A deposit guarantees the resource being reserved, not the audience paying for it. - On the tariff form, the collection mode's empty option reads "Inherit from the resource" instead of "- None -", the pattern the refund override already uses on the resource.
- The Price column collapses to one rule for both tables: a row shows its own override, or "Inherited" when it left the field empty.
Behavior change
A site that switched inheritance off and left the fields at their defaults is collecting the full price with no deposit today, and will start following the resource. Pre-1.0, so no update hook: reinstall is the upgrade path, and this belongs in the release notes.
Also in here
_yoyaku_payment_added_fields() never listed noshow_fee, allow_refund, refund_deadline or refund_deadline_unit, so a site that enabled yoyaku_payment after the booking entities existed never got their storage, and uninstalling left the columns behind. The list now matches the fields the hook defines.
Testing
Kernel: 35/35 classes green across yoyaku_payment and yoyaku_placement. The four new resolver tests were run against the unfixed resolver first and seen to fail. Docs and the French translation are in the same commit.