The graphical place picker in yoyaku_placement prices each category from the slot-category price override, or the category price, in VenueMapBuilder::categoriesByGrade(). The cart and checkout resolve the price through PaymentPolicyResolver, which honors the category payment_inherit flag and reads the price from the resource when the category inherits.
When a category has payment_inherit enabled and the resource carries a different price, the two surfaces disagree on the price of the same booking.
Example: a category with its own price of 60 EUR but payment_inherit enabled, on a resource priced at 0.00. The place picker shows the category at 60 EUR and a total of 120 EUR for two places, while the same two bookings show no price in the cart, because the resolved policy price is 0.00.
Steps to reproduce:
- Give a resource a placement venue with places, and a category whose own price is non-zero.
- Enable inherit payment on the category, and leave the resource price at 0.00.
- Pick a place on the graphical map: the selection shows the category price.
- Open the cart: the line shows no price and the total does not match the picker.
Expected: the price shown when picking a place and the price charged in the cart are the same. The place picker should resolve prices through the same PaymentPolicyResolver the cart uses, so payment_inherit is honored in one place.
Issue fork yoyaku-3612687
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #4
mably commented