Rates based on linked reservations |
Top Previous Next |
Q: How do we make a Rate that depends on other linked sites? For instance, our boat slip rental is cheaper if they're also renting an RV site.
A: If you're using version 4.2.2 or later, you can do this using the "Advanced Condition Expression" setting in the Rates definitions. This is a much more complicated condition than the others given in the previous example, because it has to look at all other reservations linked to this one to see if any of those are on an RV site. Note that this assumes the linking type is synchronized or sub-member linking. Non-synchronized linking results in separate billing, in which case the expression shown below would not give the discount.
For the Boat Slip rate that is WITH an RV site (e.g. discounted), the Advanced Condition Expression should be::
LoopSum(1, ResvNumLinkedResvs(ResvLinkedMaster(Resv())), "#", 'iif(Left(FieldText(ResvSite(ResvLinkedResvAt(ResvLinkedMaster(Resv()), #)), "Attrib_Site_Use"),2) = "RV",1,0)') > 0 OR Left(FieldText(ResvSite(ResvLinkedMaster(Resv())), "Attrib_Site_Use"),2) = "RV"
and for the rate that is WITHOUT an RV site:
LoopSum(1, ResvNumLinkedResvs(ResvLinkedMaster(Resv())), "#", 'iif(Left(FieldText(ResvSite(ResvLinkedResvAt(ResvLinkedMaster(Resv()), #)), "Attrib_Site_Use"),2) = "RV",1,0)') = 0 AND Left(FieldText(ResvSite(ResvLinkedMaster(Resv())), "Attrib_Site_Use"),2) != "RV"
The expressions above assume that any Site Class pick list item(s) for RV sites start with "RV", for instance if you just use the default "RV's" Site Class. The expressions would need to be changed appropriately for any other situations.
Note: The expressions will be shown as multiple lines above, but make sure that any line breaks are removed if you copy/paste the expressions. If you don't copy/paste, the expressions must be exact in every way. Where you see a line break above, you should have a space (e.g. there should be a space after the commas and before & after any "=", "AND" or "OR".)