Handling a cash discount |
Top Previous |
(From Newsletter #50, Jun 3, 2024)
DISCLAIMER: This article involves Advanced Customizations, which can be technically challenging to get working and is not part of standard support. This is programming and must be done precisely or the results can be unpredictable. This information is provided as a service for those who have the technical skills to work through it -- we cannot help you solve any issues with getting it working. For more information about Advanced Customizations, see the full documentation:
https://campgroundmaster.com/help/overview32.html
It's common to desire a 3% surcharge on credit card transactions (if your state allows it). However if credit cards are your main form of payment, you may prefer to consider that the normal rate and instead apply a 3% discount if they happen to pay cash. There isn't a way to automatically add a 3% discount when paying by cash, but this shows how to add a button to the Reservation Transactions dialog that will add a 3% Discount to the current balance.
Note that this is basically the same as using the 3% Surcharge customization provided earlier, but slightly modified for a Discount. If you actually prefer adding a Surcharge for credit cards, see that original article here:
https://campgroundmaster.com/help/adding-3-credit-card-surcharge.html
Important -- this assumes they're going to pay the entire amount due (since the button must be pressed before the payment is actually made) -- otherwise you will need to manually adjust the Qty of the Surcharge transaction to be the amount they will be paying.
IF YOU'RE NOT ALREADY VERY FAMILIAR WITH ENTERING ADVANCED CUSTOMIZATIONS FOR DIALOGS, PLEASE TRY METHOD 1.
Method 1 (the simple option): Import the 3% surcharge sample:
If you don't already have dialog definitions for the Transactions dialogs, then you can import the following sample Dialog and it will be done for you. (This is only available if you've installed version 9.2 or later.)
1. Go to Maintenance / Advanced Customizations / Dialogs.
2. Click the Import dialog button, and you'll get a typical Windows file dialog labeled "Import Dialogs".
3. Locate the samples folder, which is typically C:\Program Files (x86)\Campground Master\Samples (most likely you just need to double-click the "Samples" folder to get there).
4. Select the appropriate file, "Sample Dialogs - Credit Card 3% surcharge button", and click Open.
Now you will need to manually Edit the elements to change the expressions and the button text as appropriate. If you need general information see here:
https://campgroundmaster.com/help/editingdialogs.html
You need to make a couple modifications to the Button element in EACH of the imported dialog definitions (see the link above for details of how to edit the elements).
Edits to the Button control:
1. Change the "Control text" to "Add 3% Discount" (or showing whatever percentage you need).
2. Change the "Action Expression" to use a "Discount" type instead of "Charge", use the "Discount" category instead of "Surcharge", change the description accordingly, and insert "Other" for the discount type. You can optionally adjust the rate as well, in both the description and the value at the end. The changes are underlined in the example below, which shows changing it to a 3.5% discount as well:
DlgAddNewTransaction("Discount", "Discount", "3.5% cash discount", "", "", "", "Other", ResvDue(Resv()), .035)
Note that if you prefer, you can use a special Discount Type -- e.g. if you first add a new discount type like "cash discount" through the Pick Lists, you could use that instead of "Other" above.
Method 2 - from scratch: For versions prior to 9.2, or if you already have Transactions dialog definitions, follow these steps:
1. Go to Maintenance / Advanced Customizations / Dialogs.
2. If you already have a dialog definition for the base dialog "Reservation Transactions", Edit that dialog to add this new element. Otherwise, click "Add dialog definition", enter a name for it (e.g. "Resv Trans"), check the "Add-on" box, and select "Reservation Transactions"
3. Click "Add element".
4. Select "Add New Control" for the element type.
5. Enter a control name, e.g. "add discount".
6. Select the Control Type "Button"
7. Enter a position and size -- this can vary depending on your display settings, but for "normal" settings it should work to use Left=40, Right=245, Width=120, Height=18
8. Enter desired text for the button in Control Text, e.g. "3% Cash Discount".
9. Click in the Action Expression box and enter the following expression in the Expression Creator:
DlgAddNewTransaction("Discount", "Discount", "3% cash discount", "", "", "", "Other", ResvDue(Resv()), .03)
Pay attention to spacing, whether quotes are single or double, etc. -- it must be exact. If you're viewing this in a format where the line wraps, do not start a new line -- there should be no hard line breaks. If possible, use Copy/Paste instead of typing it.
Note that if you prefer, you can use a special Discount Type -- e.g. if you first add a new discount type like "cash discount" through the Pick Lists, you could use that instead of "Other" above.
10. Click Save.
11. Now you can use "Save & Test Dialog" to try it out. Be aware that anything done in that test will be real transactions on whatever reservation it opens.
Once satisfied, Save the dialog and Close out of Setup Dialogs.
Additional notes --
The above steps are just for the Reservation Transactions dialog. You can add similar functions on other dialogs (Unbound Transactions, Customer Transactions, and POS), but the expression will need to be different. Change the ResvDue(Resv()) part according to the dialog type:
For Customer Transactions: CustDue(Cust())
For Unbound Transactions or POS: DlgTransBal() (requires version 9.2)
The button positions given are for "Normal" Windows text size. If you use different font size settings, then you will need to manually adjust the button left and Right position. See step 7 above.