Version 8.0 Release Notes

These release notes list all changes since the version 7.0 release.

To upgrade to this release, you only need to install it over your current version. There is no need to uninstall the previous version. Any previous versions will be upgraded automatically -- you do not need to install previous upgrades before this one, and all of your data and settings will be retained. It will make some automatic changes to your database to bring it up to date, so there may be a slightly longer delay the first time you open it.

Upgrades License Expiration Note:
To use this version, your free-upgrades license must be current through 8 / 2014 (August 2014). To check your free-upgrades license expiration date, go to View / Product Authorizations and check the "Upgrades free through" date.

Networking Note:
Be sure that all workstations are upgraded at the same time (shut down all workstations, upgrade all of them, then restart them one by one starting with the master workstation).

Previous Versions Note: You will not be able to go back to using your database with your previous version of Campground Master once you start using this version.

Most Significant Enhancements:

IMPORTANT: Most changes will not affect your current operation, since they are additions or only appear if the situation arises. Any changes that might affect your normal procedures, previous data, reports, or user-customizations will be highlighted in bold.

·Added Work Orders functionality, for Sites and for General use. This is similar to the Journal functionality, but several additional fields make it functional for tracking whether the Work Order is complete, when it's due, when it starts, and who it's assigned to. Work orders are accessed through the View menu and also through Site Details and the popup menu when you right-click on a Site. Here are the key features of the Work Orders:  
·Besides the primary Date (the date it was added), you can optionally track the Date Due, Start Date, and Done Date. Note that the meaning of "Start Date" is up to you -- for instance it could be the date it's supposed to start, or the date that it actually started.  
·Several of the fields can be disabled if preferred (see Data Field Definitions / Work Orders).  
·The 'Assigned to' field is free-form text, so it doesn't have to be an operator name. This can be disabled if you don't need it.  
·There is a "Done" flag in addition to the Done Date. It's best to only have this field enabled if you don't enable the Done Date (and vice versa), since a blank Done Date also means it's not done. However if both are enabled, it will be considered "done" if it has a date even if the flag is not set, as well as if the flag is set even if there is no Done Date.  
·You can also add any number of custom User fields, just like you can for Sites, Customers, etc. The dialog for adding/editing Work Orders can be defined to add fields for any user-defined fields. Any user-defined fields will be added to the work order list automatically.  
·The View / Work Orders function operates as a report as well as a way to enter general work orders. It initially will list any that are not "Done". You can change the filtering to show all work orders or only those that are done. You can also select the type of work orders to show (General, Site, or All), filter by sites if you're showing Site work orders, and also filter by a date range. The date range filter can be used for any one of the date fields.  
·A "Work Orders" button is added to Site Details, and a "Site Work orders" function is on the right-click menu for sites. Either one will open the Work Orders list but be limited to showing work orders for that one site.  
·From the Work Orders list, you can Add a work order, Delete a work order, View the details (any number of Notes can be entered for a work order), or mark work orders as "Done". Note that when marking it Done, the Done Date field will be set to the current day automatically (if that field is enabled).  
·You can Print the list or Export the list to a CSV file, as with all other reports.  
·Access Levels are available to limit access to various work order functions (viewing, adding, editing, marking done, etc.)  
·Through new Expression functions, you can create a Color scheme that will highlight sites with any work orders not done (example to follow in the newsletter), or create a Query for work orders with your own custom fields and filtering.  

·Added a "Label" field for reservations, designed for putting special notes or group names on the Rack like "Rally" or "Honeywagon". This is disabled by default -- enable it through Data Field Definitions / Reservations. When this field is enabled, a Label entry field will be added to the Reservation Details dialog (it will appear toward the right center, below the Linking/group leader information). Note that if you've already customized the Reservation Details dialog and added fields there, they could overlap this new field. Here are the key features of the Label field:  
·The Label, if there is one, will show on the Rack instead of the Last Name  
·You can change the title of this field if desired, e.g. to "Company" or "Group"  
·The pop-up tip when hovering the mouse over the name on all Tab views (Rack, Map, On Site, etc) will show the full Label (in case it doesn't fit on the Rack) and also the customer name. The full label also shows up in the pop-up "Quick-info" window (e.g. when you double-click on it). So while the Rack only shows a short bit, a longer label can still be useful. In fact, you might want to start your labels with something that stands out like "!!!!!!", so that shows on the Rack to indicate a warning, and then put more the details after that so you can see them when you hover over it or double-click it.  
·The Label field can be added as a separate column on most Tab Views (it won't replace the Last Name there, so it needs a separate column). See the Options for each tab view.  
·The Find Reservation function can search by Label, and will show the Label column if applicable.  
·If the reservation is linked with others, the Label is also copied by default. However if changed for non-synchronized, it will ask if it should be changed for all, so different labels are possible.  
·It's a Reservation field, not Customer, so it won't "stick" to the customer for other reservations.  
·It's not on the New Reservations dialog, because the only place to put it is a common area for adding custom fields. It can easily be added using a custom Dialog Definition (a newsletter article will show how to do this).  

·Added a "Dirty" flag for Sites, e.g. for indicating motel rooms needing cleaned after guest check-out. This is disabled by default -- enable it through Data Field Definitions / Sites. When this field is enabled, a "Dirty" checkbox will be added to Site Details next to the "More Site Attributes" button. Note that if you've already customized the Site Details dialog and added fields there, they could overlap this new field. Here are the key features of the Dirty field when it's enabled:  
·A column indicating dirty sites can be added to the Rack -- see the Rack Options.  
·The right-click menus will have "Mark as dirty"/"Mark as clean" options, so you don't have to go to Site Details to change it.  
·You can add a Dirty column to the other Tab views (Arrivals, Departures, etc).  
·Several options for quickly setting multiple sites as clean or dirty will be available if you right-click the Site name or Dirty flag on the list-type Tab views (Arrivals, Departures, etc).  
·The New Reservation dialog has a "Hide dirty sites" checkbox (above Use Preferences), so for walk-ins you can list only those sites that are clean.  
·An option can be enabled to automatically set the Dirty flag when a reservation is checked out (see Program Options / Functions).  
·If you use Scheduled sites (e.g. for hourly rentals or tours), you can optionally disable the automatic Dirty function for those. This also applies to manual functions that set multiple sites dirty at once, e.g. setting all checked-out sites dirty from the Departures tab.  
·Access Levels for various functions allow selecting what level is required to set sites dirty or clean, or set multiple sites dirty/clean, etc.  
·A warning can be shown if you attempt to Check In a reservation on a site that's dirty (see Program Options / Prompts).  
·Housekeeping report -- A column is added for Dirty, and an option to Hide dirty sites. A right-click menu allows setting the flags as dirty or clean for various situations (e.g. mark all pending arrivals as dirty, mark all checked out dirty, etc...), and double-clicking on a site will instantly toggle its status form Dirty to Clean or vice versa.  
·You can select a Global Color Scheme for the Dirty column ("header") on the Rack. A newsletter article will show how to set up a color scheme for this, but it's easy -- just create a new color scheme, select None as the default colors, and add a rule with Site_Dirty as the expression. Then of course choose that new scheme in Select Global Color Schemes for the dirty column scheme.  

·Added settings to select the Font size for grids and tab view controls, so they can be enlarged -- see Program Options / Formats.  

·Creating Color Schemes -- Made it easy to create a scheme for special Reservation Types. When editing a Color Scheme where the 'Default scheme' is Reservations (e.g. for the Rack colors), use the "Quick-Add Resv Type" button. Select the type, and it will instantly create all of the color rules needed for that type. The current colors for the associated Resv Base Type (e.g. "Normal" or Monthly") will be used by default, but then you just need to edit the individual colors as desired.  

·Creating Color Schemes -- Made it easy to create a scheme for special dates, e.g. for holidays on the Rack. When editing a Color Scheme where the 'Default scheme' is "None" or "Open Sites", a "Quick-Add Dates" button will let you enter any date range, list of dates, etc, and it will instantly create all of the color rules needed for that set of dates. Then you just need to edit the individual colors as desired.  

·Creating Color Schemes -- After creating a color scheme for Reservations or Open Sites, it will show a reminder that you need to select the scheme under Select Global Color Scheme in order for it to work (if it's not already selected there).  

·New Program Option added (Reservations): Automatically copy any existing Customer Notes to New Reservations Notes -- If you typically have notes in Customer Details that you want to see when making a new reservation (e.g. warnings or special circumstances), set this option so the Customer notes will always show up on New Reservation and will also stay with the Reservation Details. (Note that this is enabled by default, since that matches the prior functionality, but now you can disable it to keep the notes from being copied automatically.)  

·New Program Option added (Reservations): Automatically copy New Reservation Notes to Customer Notes -- Set this if you want any new or changed Notes entered on the New Reservation dialog to be copied back to the Customer Details (e.g. so they show up again next time you make a reservation for this customer). Note that this is enabled by default, since that matches the prior functionality, but now you can disable it to keep the notes from being copied automatically.  

·Added a Sites Setup functions to make multiple dates Available/Unavailable for multiple sites at once (Park Setup / Sites).  

·Additions to the Reservation Filter (as used in Find Reservation, Reports / Print Reservation Receipts, Transaction filtering, etc.) -  
·   added an option to invert the date filtering (include only if NOT matching the date range)  
·   added an option to filter by the Date Cancelled  
·   added an option to only include the "transaction master" reservations (exclude submember and synced reservations)  
·   added the option to enter an Advanced Condition expression  

·Adding a Query to tab views -- Changed so that any filter condition in the Query works even if the query has no fields (previously you needed at least 1 column in the query for the filter to activate). This allows adding a custom filter condition to any tab view, e.g. to show only Monthly reservations on the Payments Due tab.  

·Query Filter Conditions -- Added a "Quick-filter Auto-builder" function using the standard Reservation, Site, Transaction, Inventory or Purchase Order Filter (depending on the base table of the query), which will automatically generate the appropriate condition expressions from the filter settings you select. This makes it easier to create the necessary filtering for your own custom Queries.  

·Added a "Reverse Charges" function to the Transactions dialog for Reservations, Customers, and Unbound Transactions, for easier Refund handling (or other charge reversing), which will work similar to "Return Item" in the POS. If any Charges/Discounts/Taxes are selected (and ONLY those types), a "Reverse Charges" button will appear at the bottom. Click this button and it will add equivalent transactions with negative amounts, effectively reversing those charges in one step, rather than the multiple manual steps required before that were confusing and error-prone. You still need to do the Refund function to show the money refunded.  

·Point of Sale changes:  
·Default Filter -- Added a warning if changed, to try to avoid the problem of accidentally setting a default filter and not knowing why items were no longer coming up  
·Added an option to automatically use an item if it's the only match found (e.g. partial match on code/description), even if it's not an "exact" match, rather than just showing the item by itself in a selection list. See Program Options / POS to enable this.  
·Added an option to allow non-taxable sales (see Program Options / POS to enable it). A "Non-Taxable" checkbox will be added at the top of the POS Sales Entry. An Access Level was added for allowing it, so it can be limited to certain users. Note that it only applies to items added to the sale while the Non-Taxable box is checked -- so you could do a sale where some items are taxed and others are not. Note: If you've customized the POS dialog to add new fields/controls at the top, the new Non-tax control might be overlapped by your custom controls.  
·Allow multiple bar codes (or lookup codes) per item, e.g. so all sodas ring up as the same inventory item. There's a "More..." button on Inventory Item Setup for entering the other codes.  
·Inventory Setup - Added functions to "Add" or "Remove" a general discount to all selected items at once, making it easy to handle general discounts.  
·For Discount definitions, added a "surcharge" option so it would become a Charge instead of a Discount transaction -- e.g. for Soda deposits. While it's still set up as a "discount" definition, this makes it less confusing to the customer on receipts. This also has special handling so it can apply up to one Discount AND one Surcharge per item (they are checked separately), so for instance you can have the surcharge added even if there's a discount on the soda.  
·Inventory setup - for Inactive items show (INACTIVE) in the item Code column to make them easier to spot.  
·When a Resv or Cust is selected, show a "credit available" message if they have a credit balance.  
·Added Access Levels for whether or not a POS sale can be left with a balance exceeding the available credit balance (with or without prompting), if the Resv/Cust has a credit balance.  
·In the POS Sales entry, allow adding a simple percentage discount to multiple items at once (select the items, then click Discount Item(s)).  

Other Changes:

·New Reservation dialog -- to make selected sites more visible, the Site # color will be the same as the "<NEW>" color for any sites selected (e.g. yellow with red text is the default).  

·Updated U.S. Zip code data and Canadian Postal Code data.  

·Made the Color Key and Access Levels dialogs resizable (mostly because font size changes could require them to be larger).  

·Added Yesterday & Today button options for the Departures and On Site views (see the Options on those tabs). Note: The initial dates default to Yes/Today if that's enabled, else Today if that's enabled, else Yesterday if that's enabled (if none of them are enabled, defaults back to Yes/Today)  

·Non-reserved tab -- added Date Cancelled field option, and added the option to use Date Cancelled for the date range instead of the reservation date (First Night). See the Options on that tab.  

·Site setup -- added an "Inactive" indication with the abbreviation so you can easily spot Inactive sites.  

·Transaction Filter/Options: Added an option to use the transaction "created" date (which can never change), as opposed to the posting date (which can be changed). The dialog now uses a drop-down list for selecting the options Posting date, Date Created, or Resv First night, instead of just a checkbox for "Use reservation date". The "created" date should generally not be used for reporting, but can be used when searching for transactions entered on a certain day, for instance.  

·Housekeeping report -- Added options to show the # Adults/Children/Pets (or whatever you're using those fields for), for the incoming/occupying reservation.  

·Added Site Attribute fields for settings for a Minimum Rig Length as well as Minimum # Adults, Children, Pets, Extra Vehicles, and Trailers (or whatever you're using these fields for now), and filter sites "Available" accordingly when you have "Use Preferences" checked on the New Reservation dialog. These fields are disabled by default -- see Data Field Definitions / Site Fields to enable them, and set the minimum values through Site Details / More Attributes. Previously only a Maximum could be set for these, but now you can set a Minimum also (or you can set just a Minimum if no max is needed).  

·Allow custom Site Attribute fields to have both a maximum and minimum value for filtering sites available. A custom "Attrib_" field will be used as a maximum by default. To make it a minimum value instead, use an "Attrib_" prefix for the field ID as with the max, but also add "_Min" at the end. It will be compared against the Reservation field having an equivalent ID without the "_Min" in it. For instance, a custom field "Resv_User_Attrib_Slides" would check the field "Site_User_Attrib_Slides" as a maximum and the field "Site_User_Attrib_Slides_Min" as a minimum (if it exists).  

·Cash drawer (USB interface) -- added "QuickFire" USB option (to USB 'port' list) -- if selected, uses a new quick-fire DLL driver that finds the drawer automatically so you don't have to know the port number, and solves some odd driver issues. This also requires a separate DLL file, which is installed automatically with the update.  

·Transactions entry -- when manually entering a Discount, if any Charge(s) are selected first (before clicking "Discount") then use the total of the selected charges for the default "% of" amount. This is handy when discounting just new charges or just part of the bill.  

·Improved the default "Amount to tax" when entering manual Taxes (e.g. clicking the "Tax" button on Reservation Transactions) -- If any Charges/Discounts are selected before clicking Tax, then use that total for the default "Amount to tax". If none are selected, adjust the default "Amount to tax" by the amount already taxed for the tax rate chosen (rather than always setting it to the total charges). Note that this assumes the Qty in a Tax transaction is always the amount taxed. if these are ever manually adjusted, or if you use Rates with special tax situations, then this default will not necessarily be applicable.  

·Expressions - allow '||' and '&&' to be used as OR and AND operators (for C-language users)  

·View / Journal entries -- add filtering/reporting by date and also by record type, so it can show all entries or all entries for a particular record type (e.g. Sites), not just the "Main system" journal. This should make the Journal a lot more useful, since for instance you don't have to "know" which reservations have an entry that needs attention.  

·Networking - Added an option to Auto-fix Orphans (enabled by default, see Network Setup / Diagnostics to disable). If any orphan-causing network sync errors are detected, will auto-fix any orphans (after waiting for 5 seconds of idle time). This action is generally "silent" but will be recorded in the audit trail and will be shown in the status bar as it's doing it, in case it takes awhile. This should help eliminate most Orphan problems, or at least make them get corrected quickly. If you suspect this is causing a problem for some reason you can disable it, but it's recommended that you leave it on. Note that since orphans do affect reports (making them incorrect), if you haven't been checking and fixing them regularly before reporting then there might be some "automatic" changes to reports when this happens the first time.  

·Networking - Removed Ping and Send commands from Network Diagnostics window. These were being confused with true "Ping" functions and were not useful for diagnosing connection problems, since a successful connection was required before they could be used in the first place.  

·Added a Test / Ping button under Network Setup to test the IP address, which uses a true Ping and reports whether it's successful.  

·To help keep the data in RAM instead of swapping out to disk when the program is idle (causing a large initial delay when you use the program after it has been sitting for awhile), added idle-time processing to access random parts of the database. This starts after 1 minute of idle time (no user interaction).  

·Split reservation -- enlarged the button for the recommended option to put "recommended" in it (more visible), and added a Help button  

·Added options on the E-mail form selection dialog for including All transactions/New/Unpaid/by Date, if the selected form definition has transaction table. Thus if a custom Form for E-mail is created with transactions (there's a sample that can be imported that has transactions in it), then you can select which transactions are included.  

·Edit Operator -- require entering the password twice to confirm it, to help keep from getting locked out due to typos.  

·Access Levels added for:  
·Housekeeping report  
·Changing the Block-To date of a reservation before or after check-in  
·Add transactions to Inquiry/Can't Book/Wait List reservations  
·Skipping entry of an Amount tendered for cash payments  
·Checking out a reservation with a balance due  
·Checking out a reservation with a credit balance  
·Allowing E-mail file attachments  

·Added a "Transactions" tab to the Program Options, and moved some appropriate settings to it from Prompts and Reservations tabs. This is just a cosmetic change, and to allow some room for more options.  

·Added 12 more field options to Arrivals view (see the Options on that tab)  

·Hercules online interface -- Added an option to Never poll form this computer -- it's specific to the computer, not the database, so you can set it for backup/offline computers and it will remember the setting even if you restore from another backup. This is important to keep from corrupting the online synchronization. Previously you were required to change the Workstation ID to keep it from polling, however that was only an option if you have Networking. Now anyone can do it.  

·X-Charge credit card processing -- Added an XpressLink option "Allow swiping credit card before Process". This is enabled by default for normal operation. If you disable this, then swiping a card in Campground Master directly will show an error message, instead of attempting to process it (because in some cases this causes an error). This forces you to click the "Process Card" button before swiping the card into X-Charge directly. This does not prevent entering a card number manually.  

·Expression functions added:  
·ResvNumSyncedResvs / ResvSyncedResvAt -- for getting a list of synchronized reservations  
·CurrentShift -- gets the current shift number, if Shift functionality is enabled  
·UnboundRcptDue -- gets the amount due for an Unbound Transactions receipt  
·RecordWorkstation -- gets the WS # part of a record ID, e.g. where it was created  
·TranIsPOS -- to check whether a transaction was made through the POS or not  
·Inventory functions added to speed up custom queries:  
·RecordFromDescriptor / DescriptorFromRecord -- to support queries/filtering for Journal and Work Order records  
·WorkorderNum/WorkorderAt -- for getting the list of Work Orders for a particular Site or General  
·JournalNum/JournalAt -- for getting the list of Journal entries for a particular Reservation, Site, etc.  

Bug Fixes:

·Credit card processing with MCPS / TGate - fixed so the AVS info is skipped if AVS disabled or if non-US Zip code (helps avoid some decline/errors)  

·Fixed some bugs with Schedules if only one period was in the schedule (a rather nonsense situation anyway, but just in case)  

·Fixed Access Levels bug for Make Site Available/Unavailable options (was requiring that Edit site details information also be allowed).  

·Cash drawer (USB) -- don't initialize the drawer driver on startup, since that can lock up the system if the driver hangs.  

·Credit card processing with IC Verify (legacy support) -- added special check for "Call ..." in the response being a failed result (e.g. "Call 800 #")  

·Fixed bug causing disabled pick list items still showing in the drop-down lists inside Grid cells (e.g. Site Facing in the More Prefs list).  

·Various places where a file is opened, e.g. for the Import functions, any errors just showed "No Error Occurred". Now proper error messages are shown.  

·Fixed Help / Campground Master User's forum to go to the right page.  

·Query creation bug fixed for Purchase Order based queries -- adding Purchase Order fields (either quick-add or through expression / add field), did not work.  

·Access Levels - use the setting for Statistical reports for accessing the "Availability report", instead of just using the Reservations level.  

·Fixed so it doesn't lock up on startup if no printer is defined in Windows (but could still lock up if printing is attempted with no printer installed)  

·Event Actions - Fixed the "Each Day" event type so it doesn't keep doing it many times in a row.  

·Fixed a problem of not being able to handle Guest reservations simultaneously on other workstations due to locking (e.g. for things like check-in, check-out, transactions, etc. it won't try to lock the host, or if managing the host it won't lock the guest reservations)  

·Find Reservation - if the Confirmation # field is disabled for Reservations, make sure that's not an option on the filtering and does not show that column.  

·Fixed Unbound Transactions so a Clerk-level operator can print a normal receipt  

·Online reservations, if using E-mail requests -- Fixed a problem with new E-mail requests matching old reservations -- by default it looks for "Message-ID:" to use for an online request ID, but sometimes there's an extra one in the header that's not unique enough, so now it will find all instances of "Message-ID:" and concatenate them. Note: It might initially see some previous online reservations as new/unique ones unless you clear the inbox and delete the temporary file first.  

·Fixed a bug that allowed a reservation to be canceled and the new customer deleted even though a transaction was entered on the new customer. (which became unbound transactions with bad links)  

·Fixed bug in POS where the entire sale would be suddenly deleted if it can't get locks to inventory items and the Auto-Save on payment was enabled, even if a credit card payment was processed.  

·Added a way to get out of Transactions or POS (and save changes) in the catch-22 situation where processed credit card transactions were entered (preventing Cancel) but it can't get successful record locks due to a network error or inventory item locking conflict. Previously it would just delete the transactions (if Auto-Save enabled) or not allow exiting other than a re-boot.  

·Fixed Dialog Definition processing for the New Reservation dialog so when a multi-site reservation is made, any added reservation field values are saved to all reservations created, not just the first one.