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

  • PaymentPolicyResolver no 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_mode and collect_value are 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.

Merge request reports

Loading
Loading