salesware user guide for advanced users · salesware user guide for advanced users version 4.4 ....

91
Salesware User Guide for Advanced Users Version 4.4 accesso 302 Camino de la Placita Taos, NM 87571 575.751.0633 www.accesso.com

Upload: others

Post on 15-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • Salesware User Guide for Advanced Users

    Version 4.4

    accesso 302 Camino de la Placita

    Taos, NM 87571

    575.751.0633

    www.accesso.com

    http://www.accesso.com/

  • Copyright

    Copyright 2015 accesso Technology Group, plc. All rights reserved.

    NOTICE: All information contained herein is the property of accesso Technology Group, plc. No part of this publication (whether in hardcopy or electronic form) may be reproduced or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of accesso Technology Group, plc. The software, which includes information contained in any databases, described in this document is furnished under a license agreement and may be used or copied only in accordance with the terms of that agreement.

    This publication and the information herein is furnished AS IS, is subject to change without notice, and should not be construed as a commitment by accesso Technology Group, plc. accesso Technology Group, plc. assumes no responsibility or liability for any errors or inaccuracies, makes no warranty of any kind (express, implied, or statutory) with respect to this publication, and expressly disclaims any and all warranties of merchantability, fitness for particular purposes, and non-infringement of third party rights.

  • INTRODUCTION ........................................................................................................................................ 4

    ADVANCED UTILITIES ............................................................................................................................. 4

    Helper ..................................................................................................................................................................................................... 4 To modify RunExe.INI: .............................................................................................................................................................. 7 To create a Helper folder and desktop shortcut: ........................................................................................................................... 7

    LocalDataBoss ........................................................................................................................................................................................ 8

    ItemBoss ................................................................................................................................................................................................. 8

    InvoiceBoss ............................................................................................................................................................................................. 8

    Photo ....................................................................................................................................................................................................... 9

    Ticker...................................................................................................................................................................................................... 9

    ConfigManager utility ............................................................................................................................................................................ 9 To install ConfigManager utility: .............................................................................................................................................. 10

    SendMail function in Win2000 and higher ......................................................................................................................................... 11

    PrintEZ ................................................................................................................................................................................................. 12 PrintEZ application uses the NovaPDF driver instead of Amyuni to generate all PDF files .................................................................. 12 PrintEZ application no longer uses the PdfPath, LayoutPath, DataPath and JpgTempPath values in the [Data] section ......................... 13 Sales stores PDF files created by PrintEZ application in the location defined by the PDFPath setting .................................................. 13

    Example: .................................................................................................................................................................................. 13 Sales passes path information to PrintEZ application rather than PrintEZ reading the paths from its own .INI file ................................ 13

    USING THE SALES > TOOLS > DIAGNOSTICS OPTIONS ................................................................... 14

    Finding and fixing SQL errors ............................................................................................................................................................. 16 Example: .................................................................................................................................................................................. 18

    ServiceMonitor logging can gather performance statistics .................................................................................................................. 18 Example: .................................................................................................................................................................................. 19 Example: .................................................................................................................................................................................. 19

    Finding and fixing duplicate records ................................................................................................................................................... 19 What is a duplicate record? ................................................................................................................................................................ 19 What can cause dupes?....................................................................................................................................................................... 20 How to repair duplicates .................................................................................................................................................................... 20

    To repair “good” duplicates: ..................................................................................................................................................... 20 To repair “bad” duplicates:........................................................................................................................................................ 21

    How to test/recreate dupes ................................................................................................................................................................. 21 To recreate “good” dupes: ......................................................................................................................................................... 21 To recreate “bad” dupes: ........................................................................................................................................................... 21

    TRIGGERED COUNTS ............................................................................................................................ 21

    1

  • Functionality ......................................................................................................................................................................................... 22

    Configuration ....................................................................................................................................................................................... 22 Changes to database for Max4Sale capability ................................................................................................................................. 22 Changes to database for Points4Sale capability .............................................................................................................................. 23 Constraint in tr_save table ............................................................................................................................................................. 25

    Triggered Count comparisons ............................................................................................................................................................ 25

    MAX4SALE SUBCATEGORIES (BLOCK HOLDS) ................................................................................ 25 Example: .................................................................................................................................................................................. 25

    Configuration ....................................................................................................................................................................................... 27 SysManager ....................................................................................................................................................................................... 27

    Max4Sale subcategory setup ..................................................................................................................................................... 28

    Use ........................................................................................................................................................................................................ 33 Sales 33

    Block Holds can now be released by date............................................................................................................................................. 35 Example: .................................................................................................................................................................................. 35

    Configuration .................................................................................................................................................................................... 35 SysManager .................................................................................................................................................................................. 35

    Use 36 Sales & E-Commerce .................................................................................................................................................................... 36

    Reporting........................................................................................................................................................................................... 36 Editing Block hold categories and subcategories ................................................................................................................................. 36

    MAX4SALE / POINTS4SALE LIMIT CHECK .......................................................................................... 37

    OTHER ADVANCED TOPICS ................................................................................................................. 38

    How to prevent a sale you don’t ever want to finalize from showing up in the recall list ................................................................... 38

    How to attach vouchers or coupons to a membership ......................................................................................................................... 42 Example: .................................................................................................................................................................................. 42

    How to create a birthday party reservations system ........................................................................................................................... 53

    Description of the *.bin files created in the Sales directory ................................................................................................................. 60 mearth.bin ......................................................................................................................................................................................... 60 mindy.bin .......................................................................................................................................................................................... 61 mork.bin ............................................................................................................................................................................................ 61 orson.bin............................................................................................................................................................................................ 61 shazbot.bin ........................................................................................................................................................................................ 61

    Fixing a corrupt database..................................................................................................................................................................... 61

    Logging in SalesEZ application ............................................................................................................................................................ 61 Examples: ................................................................................................................................................................................. 62

    Logging options in Middleware(EZ)* ................................................................................................................................................. 62 VerbosityLevel .................................................................................................................................................................................. 62 LogInvoke=True ................................................................................................................................................................................ 63 Filtered and Performance Logging ..................................................................................................................................................... 63

    2

  • Filtered Logging ................................................................................................................................................................................ 63 Performance Logging ......................................................................................................................................................................... 65

    Performance Logging in ReportManager ............................................................................................................................................ 65

    Marketing Survey capability ................................................................................................................................................................ 66 Two new menu items in SysManager > Activities > Item/Sales Lists .................................................................................................. 66 Changes to SiriusSQL application in support of Market Survey functionality ...................................................................................... 67

    AutoRecall of Sales ............................................................................................................................................................................... 67 Examples: .............................................................................................................................................................................. 67

    Sorting:.............................................................................................................................................................................................. 69

    Cash Management ................................................................................................................................................................................ 69 Cash Management configuration ........................................................................................................................................................ 70

    Configuration of Cash Thresholds.................................................................................................................................................. 70 Configuration of automated alerts .................................................................................................................................................. 71

    Example: .................................................................................................................................................................................. 71 Email and NetSend examples: ................................................................................................................................................... 74

    Assigning Bag Numbers and Banks and collecting Skims ................................................................................................................... 75 Assigning Bag Numbers and Banks (Floats) .................................................................................................................................. 75 Collecting Skims ........................................................................................................................................................................... 75

    How to use Cash Management ........................................................................................................................................................... 77 Assigning a bank/bag number to operators ..................................................................................................................................... 77 Skim/Pull ...................................................................................................................................................................................... 77 Submitting Closeouts: ................................................................................................................................................................... 82

    Example: .................................................................................................................................................................................. 84 ReportManager ............................................................................................................................................................................. 84 Reporting Services ........................................................................................................................................................................ 85

    Bosch security recorder integration ..................................................................................................................................................... 86 Introduction ....................................................................................................................................................................................... 86 Configuration .................................................................................................................................................................................... 86 Examples of use ................................................................................................................................................................................. 87

    Example: .................................................................................................................................................................................. 87 Example: .................................................................................................................................................................................. 87 Example: .................................................................................................................................................................................. 87 Example: .................................................................................................................................................................................. 88 Example: .................................................................................................................................................................................. 88 Example: .................................................................................................................................................................................. 88 Example: .................................................................................................................................................................................. 88 Example: .................................................................................................................................................................................. 89

    3

  • Introduction This document covers advanced topics not covered in the Salesware User and Ticketing Guide for Beginning Users. An intermediate knowledge of Salesware is necessary for understanding the information presented.

    Advanced utilities

    Salesware module provides a variety of utilities to help you with routine use, maintenance and troubleshooting. This section describes those utilities. In most cases, there is a charge for all assistance provided with these utilities by accesso Siriusware Technical Support.

    Helper Helper is a utility used to view/modify Visual FoxPro files. It is used for local files (salespoint local data or a FileSync database). You cannot look at SQL Server data with Helper 4.4. The Helper interface is shown in the following screen capture:

    4

  • With Helper 4.4 you can:• Run FoxPro commands by opening a command window and typing in commands• Open FoxPro tables (.dbf files)• Open local Sales tables and edit – the dropdown shows the most recently opened tables• Open FileSync tables and edit• Execute SQL statements like SELECT statements on local data• Edit and run a .prg program• Edit a .txt file• View a log file

    Warning: Always back up data files before modifying them with Helper utility.

    Note: Sometimes a field in Helper utility reads Memo or memo. If it reads Memo with a capital M, this means that you can see what actually prints from that field if you click the Edit Memo button.

    5

  • Helper utility is especially useful for checking the forwarding status (fwd_status) of records and changing if necessary. The following tables show the codes that are used to indicate the forwarding status of a record. The first table lists and describes the codes used in the local ww_sales table. The second table lists and describes the codes used in the server ww_sales table (you can’t view these codes, however, with Helper, because the table is on the server). The third table lists and describes codes used in the local ww_email table. More detailed information about the table data used by E-Commerce module can be found in Detailed description of E-Commerce communications between ww.dll and Sales Host. The fourth table lists and describes the codes used in all other tables.

    Code in local ww_sales table Description 0 Needs to be processed 1 Done locally, but need to send to the server 2 Done locally and sent up to the server 4 Error encountered locally, but need to notify the server 5 Error encountered locally, the server has been notified − or

    could mean an error occurred in forwarding the record 8 Retired, need to notify the server 9 Retired, server has been notified - The server notification

    needs to happen so that one can just look at the server ww_sales to see what’s been happening all over the site

    15 The FWD_Status is changed to 15 when changing WSH to Classic Sales.

    Code in server ww_sales table Description 0 Needs to be picked up by a salespoint 1 Assigned to another salespoint 2 Completed 5 Error 9 Retired

    Code in ww_email table Description 0 Unprocessed 2 E-mail has been sent 5 Error – either, “ww_tix records did not exist on server so e-

    mail could not be sent” or some other unknown error

    6

  • Codes used in all tables other than ww_****

    Description

    0 Record not yet forwarded - Forwards using AppendRecs in SalesEZ

    1 Record not yet forwarded - Forwards using ModifyRecs in SalesEZ

    2 Record was successfully forwarded 7 SQL error 8 Retired manually or with LocalDataBoss 9 Duplicate primary key error

    Currently, you must manually install Helper utility. Download the c_helper_*.exe update file from the accesso web site and put it in your Siriusware\Updates folder. Then modify your RunExe.INI file, create a Helper folder and create a desktop shortcut:

    To modify RunExe.INI:

    1. On the computer where you plan to run Helper utility you need to modify the RunExe.INI file manually. Open RunExe.INI (usually located in C:Program Files\Siriusware) using NotePad or another text editor.

    2. Add the following lines to the bottom of the RunExe.INI file: [Helper] EXEName=Helper.EXE LocalPath=C:\Program Files\Siriusware\Helper\ UpdatePath=\\fileserver\Siriusware\Updates\ CompressEXE=C_Helper_*.EXE IgnoreNetErrors=NO IgnoreLocalErrors=NO

    3. Edit the LocalPath and the UpdatePath as appropriate for your environment. 4. Save your changes.

    To create a Helper folder and desktop shortcut:

    1. Create a Helper folder in your local Program Files\Siriusware folder. 2. Create a desktop shortcut for launching the Helper application:

    a. Make a copy of an existing accesso Siriusware application shortcut and paste it to the desktop. b. Rename the desktop shortcut Helper. c. Right-click on the shortcut and select Properties.

    7

  • d. Edit the Target: to read: “C:\Program Files\Siriusware\RunExe.exe” Helper. (If needed, modify the pathname as appropriate for the local Sales installation.)

    e. Click Apply, and then OK to close the Properties window. 3. Double-click the Helper icon and Helper launches.

    LocalDataBoss LocalDataBoss is a utility used to open local Visual FoxPro files. Data can be gathered, analyzed and/or modified for the local salespoint (salespoint local data and FileSync database). To install, simply run Install_Local_Data_Boss_xxxx.exe. LocalDataBoss uses an .INI file, so adjustments may be necessary to get it to work on your system. For complete directions on use, click the Help tab from within LocalDataBoss utility.

    ItemBoss

    Item Boss is a utility used to move Department/Category/Items (DCIs) from one department/category to another, including all history. This is useful if you need to change the DCI tree after your implementation has already been deployed and used. It can also be used to fix typos. ItemBoss utility also exports and imports item setups for multiple site clients. To install, simply run Install_ItemBoss_xxxx.exe. ItemBoss utility uses an .INI file, so adjustments may be necessary to get it to work on your system. For complete directions on use, click the Help tab from within ItemBoss.

    Note: You need to have a department, category and item configured in order to move items. You may have to make up “dummy” departments and categories to move items. Warning: Do not use the item mover feature during the day.

    InvoiceBoss

    InvoiceBoss is a utility that enables you to use a custom layout for invoices at a salespoint. InvoiceBoss runs on each salespoint where you want to be able to use custom invoice layouts. InvoiceBoss layouts are created and stored locally. InvoiceBoss utility is separately licensed. Contact the accesso Siriusware Sales department for more information.

    InvoiceBoss utility is designed to run in the system tray. Users may notice that when InvoiceBoss is launched the user interface flashes on screen for a second, and then reduces to the tray. In order to bring up the application you simply click on the icon in the tray. Currently you cannot reprint itemized invoices in Salesware module. InvoiceBoss utility is used by many clients to do this.

    8

  • Photo

    Photo is a utility used to import/export photos into/out of Salesware module. To install, simply run Install_Photo41.exe. For complete directions on use, click the Help tab from within Photo.

    Ticker

    Ticker utility is an accesso Siriusware-supported utility used by site management to monitor ticket sales during the day. Ticker runs a query against your SQL Server database every x minutes (controllable by you) to collect real-time data about admissions, sales and validation activities. To install, simply run Install_Ticker40.exe. For notes on use, click the ? (question mark) icon from within Ticker. Ticker utility adds a small load to the server so may not be suitable for some sites.

    ConfigManager utility

    ConfigManager utility lets you set a salespoint’s e-mail preferences for use in PrintEZ application or in the middleware server’s e-mail preferences for use in BookEZ application. ConfigManager utility was created in order to write e-mail preferences into the Windows registry. ConfigManager is designed to ensure Salesware e-mail functionality with recent Microsoft operating systems. You can install ConfigManager utility on both your middleware server and affected salespoints. You need to have the registry settings on any Salesware computer that is sending e-mails. For reservation confirmation letters, that is from PrintEZ application on the local salespoint. For red/yellow pod booking capacity warnings, that is from BookEZ application on the middleware server. ConfigManager utility is simply the tool to add registry settings. Note: You must enter an e-mail subject and body in the SysManager > Preferences > Miscellaneous > Confirmation E-Mail tab. An e-mail can’t be sent without that and you don’t an error in Sales unless you get a verbosity 5 log from PrintEZ application.

    Note: The best way to troubleshoot ConfigManager is to run a test e-mail from the Test Middleware screen with PrintEZ application at verbosity 5. There is an Export button in ConfigManager that can be used to export a file with the registry settings. The default name for this file is emailprefs.reg. If you want to customize the e-mail settings for a specific computer, like the From setting for the e-mail sent from the computer, then you have to install ConfigManager utility on the computer where you want to perform the customization. If you don’t need to perform any customizations, you can:

    1. Install ConfigManager utility on one computer, as described in this section. 2. Create the settings that you need, as described in this section. 3. Save the settings to a .reg file using the Export button, as described in this section. 4. Copy the file to the computer that needs the settings. 5. Double-click to add the registry settings.

    9

  • It doesn’t do any harm to install ConfigManager on every computer, but that really isn’t needed. Use the following rule: Reservation confirmation letters = salespoint licensed for Reservations module; pod booking threshold warnings = middleware server. The installation for ConfigManager is manual; there currently is no installation program for it.

    To install ConfigManager utility:

    1. Go to the Program Files > Siriusware folder on your C:\ drive and make a new folder there named ConfigManager.

    2. Get the most recent version of c_confmgr_xxxx.exe from the accesso Siriusware Information Portal and save it to fileserver\\ Siriusware\Updates or to the location on your network where application updates are stored.

    3. Open C:\Program Files\Siriusware\Runexe_System.INI in Notepad. Copy one of the sections of the .INI file (SysManager section shown here):

    [SysManager] LocalPath=C:\Program Files\Siriusware\SysManager\ UpdatePath=\\fileserver\ Siriusware\Updates\ ExeName=SYSMANAGER.EXE CompressExe=C_SYSMGR*.EXE HelpName=SYSMANAGER.HLP CompressHelp=C_SM_HELP*.EXE CompressMisc=C_SM_MISC*.EXE IgnoreNetErrors=NO IgnoreLocalErrors=NO To the end of the file and edit as follows:

    [ConfigManager] LocalPath=C:\Program Files\Siriusware\ConfigManager\ UpdatePath=\\fileserver\Siriusware\Updates\ ExeName=CONFIGMANAGER.EXE CompressExe=C_CONFMGR*.EXE IgnoreNetErrors=NO IgnoreLocalErrors=NO

    Note: Point UpdatePath to the appropriate location.

    4. Create a ConfigManager icon on your desktop by copying and pasting one of the 4.4 icons and renaming it

    to ConfigManager; do this by right-clicking on it and selecting Rename from the menu. 5. Right click again on the ConfigManager icon and select Properties from the menu. 6. Select the Shortcut tab and set Target: to "C:\Program Files\Siriusware\RunExe.exe"

    ConfigManager. Click on the OK button.

    10

  • 7. Double click the ConfigManager icon to start the application.

    With ConfigManager utility running, you can select one of the following two radio buttons for your E-Mail Preferences:

    • Send e-mail via your e-mail client (MAPI) or • Send e-mail directly to an SMTP server.

    Messaging Application Programming Interface (MAPI) and is implemented in Windows. MAPI allows client programs to interface with certain massaging systems and message stores, including e-mail. An alternative is to directly interface with an SMTP server. If you select the second option, then the following SMTP Settings fields become available and must be populated:

    • From: Default From name that you want to display in the outgoing e-mail. This needs to be in the following format: Name – for example, Test .

    • ServerName: SMTP server name (e.g., mail.aol.com) or IP address. • Port: SMTP server port (defaults to 25). • Username: SMTP user log-in name. • Password: SMTP user password (encrypted when written into the registry).

    Click the OK button to write the settings into the registry (KEY_LOCAL_MACHINE\SOFTWARE\Siriusware\EmailPreferences) or click the Cancel button to cancel out of the E-Mail Preferences dialog.

    Clicking Export, as described at the beginning of this section, allows you to save the settings into the file emailprefs.reg. This file can be copied to other computers where you need to set the same e-mail preferences but do not want to install ConfigManager utility. Double-clicking emailprefs.reg writes the settings into the registry on whatever computer to which it is copied.

    SendMail function in Win2000 and higher

    ConfigManager utility enables SendMail. There is a button and text entry box on the Middleware Settings dialog in Sales > Tools > Diagnostics > Middleware. The button is labeled Send Test Email and the text entry box is labeled To:. These are used to send out a test e-mail through one of the EZ applications. Simply click on the SalesEZ, BookEZ, RentEZ or PrintEZ button, enter a valid e-mail address in the To: field and click the Send Test Email button. After ConfigManager utility is installed, e-mail can be sent via MAPI (your e-mail client such as Microsoft Outlook) or via an SMTP server.

    Note: If the Send Test Email button is grayed out, try going to Tools > Action > Reset PrintEZ to activate the button.

    11

    http://en.wikipedia.org/wiki/Application_Programming_Interface

  • PrintEZ

    PrintEZ application uses the NovaPDF driver instead of Amyuni to generate all PDF files

    PrintEZ application uses the NovaPDF driver instead of Amyuni to generate all PDF files. This is installed as a new SiriuswareNovaPDF printer on a salespoint by the latest CommonFiles or CommonUpdate_4101 programs. This change supports new settings in the [Preferences] section of PrintEZ.INI:

    PDFRenderWaitMode=

    1 = (Default) Wait for PDF print driver to report PDF file completion before continuing.

    2 = Do not wait for PDF print driver to report PDF file completion (it is spooled by the Windows print spooler), except when the PDF file needs to be emailed. While this is faster than 1, use this setting with caution, as it may cause missing PDF pages or stability problems.

    3 = Never wait for PDF print driver to report PDF file completion (it is spooled by the Windows print spooler). While this is faster than 1, use this setting with caution, as it may cause missing PDF pages or stability problems.

    PDFRenderTimeout= This is the number of seconds to wait for PDF print driver to report PDF file completion. This applies only if PDFRenderWaitMode is 1 or 2. Default is 20.

    PDFMarginsTopBottom= Top and bottom page margins (in millimeters). Default is 0.

    PDFMarginsLeftRight= Left and right page margins (in millimeters). Default is 0.

    PDFVersion= PDF rendering version. Default is 4.

    3 = PDF v1.3 (Adobe Acrobat Reader 4)

    4 = PDF v1.4 (Adobe Acrobat Reader 5)

    5 = PDF v1.5 (Adobe Acrobat Reader 6)

    6 = PDF v1.6 (Adobe Acrobat Reader 7)

    PDFSilentPrint= Generates PDFs silently. Default is "Yes".

    PDFPrinterName= The installed NovaPDF Windows printer. This defaults to "SiriuswareNovaPDF".

    12

  • In addition to these new PDF related .INI settings, the "PDFOptions" .INI setting and the old SiriuswarePDF printer are no longer used. Finally, the "PDFPath" PrintEZ.INI setting is no longer used. The default path for generated PDFs is now specified in the [Data] section of the Sales32c_system.INI file.

    There is also a new setting in the PrintEZ.INI file called PDFEmbedAllFonts. When set to a YES (default), it allows the reading of the PDF file on a computer where the fonts contained in that PDF might not be installed.

    PrintEZ application no longer uses the PdfPath, LayoutPath, DataPath and JpgTempPath values in the [Data] section

    As of version 4.1 PrintEZ application no longer uses the PdfPath, LayoutPath, DataPath and JPGTempPath values in the [Data] section of PrintEZ_System.INI. These values are now passed to PrintEZ application after the object is created by calling the SetPaths() function. JpgTempPath is not passed by Sales. JpgTempPath now uses the %TEMP% environment variable. This removes some of the complexity surrounding the paths set in .INI files.

    Sales stores PDF files created by PrintEZ application in the location defined by the PDFPath setting Sales now stores PDF files created by PrintEZ application in the location defined by the PDFPath setting in the [Data] section of the Sales32c_system.INI file. If this setting is missing from Sales32c_system.INI, Sales creates the folder called PDF in the ProgramData\Siriusware\Sales folder and store the files in that location. Additionally: Sales updates the setting in Sales32c_system.INI with that path. Example: PdfPath=C:\ProgramData\Siriusware\Sales\PDF\

    Sales passes path information to PrintEZ application rather than PrintEZ reading the paths from its own .INI file

    Sales now passes path information to PrintEZ application rather than PrintEZ reading the paths from its own .INI file. This allows for multiple salespoints to work with the one registered PrintEZ application.

    Note: Any path information is now pulled from the Sales32c_system.INI and all other path listings are ignored. This is true for DataPath, LayoutPath, JPGTempPath and PDFPath.

    13

  • Using the Sales > Tools > Diagnostics options

    The Sales > Tools > Diagnostics dialog is shown in the following screen capture.

    The following table summarizes the options available on the Sales > Tools > Diagnostics dialog.

    Option Description

    Reset Max. Keys Resets local max keys. After completing major updates to a salespoint (or if you suspect that there may be counter or duplicate issues), it is always a good idea to reset max keys. When max keys are reset at a salespoint, the salespoint checks both local data and server data to find the maximum value for all counters. This ensures that unique values are generated(reset) for all local counter values (trans_no, for example). The maximum local max key value is calculated to be the maximum non-duplicate value for the salespoint suffix in the

    14

  • local table. This also prevents duplicates from being generated during data re-forwarding. For more information on max keys, see the Salesware Modules, Licensing and Maintenance document.

    Note: Local max keys can be reset on all salespoints at the same time from SysManager > Utilities > Data Maintenance > MaxKeys on Salespts. This forces the salespoint to get MaxKeys the next time it finalizes or starts up.

    Note: SysManager > Data Maintenance/Max Keys On Server now processes the next last_mod values in the new last_mod columns in the department and category tables.

    Show Fwd Status

    Shows the status of records in the local data tables. For a description of these tables, see the SiriusSQL Data Dictionary, available from accesso Siriusware Technical Support. For information on how to use this information, see Finding and fixing SQL errors.

    Check Structures

    Updates the local data structure (this happens automatically upon start-up of Sales, but may be useful if Sales is rarely shut down). Updates can include new fields in existing tables or the addition of entirely new tables.

    Check Duplicates

    Checks for and repairs duplicate records in the local data. For information on fixing duplicates, see Finding and fixing duplicate records.

    Test PrintEZ Provides the tools to test PrintEZ application. You can select either a printer to print to or a file to print to.

    Sales32c.INI Enables you to view the settings in Sales32c.INI (usually located in C:\ProgramData\Siriusware\Sales). This is to help with technical support. The settings can be sorted by .INI section, name and setting (values). The settings cannot be changed from this dialog.

    Note: These settings do not take effect until you restart Sales.

    Ports.INI Enables you to view the settings in Ports.INI (usually located in C:\ProgramData\Siriusware\Sales). This is to help with technical support. The settings can be sorted by .INI section, name and setting (values). The settings cannot be changed from this dialog. Note: These settings do not take effect until you restart Sales.

    Start Debug Log Debug logging is now available in Tools > Diagnostics. When Debug logging is started for the first time a CollectingLog= setting is added to the [Preferences] section of the sales32c.INI. When Debug logging is started the sales32c_log.txt file is cleared, the sales32c.INI settings are written to the log and the Sales verbosity is set up to 5 if the verbosity is at a lower setting. If the operator does not have security rights to set the log verbosity or if Debug logging is turned off, an override security dialog appears. In addition, all calls to SalesEZ application are added to the log at verbosity 5 as well as all GUI actions/user keystrokes. When Debug logging is turned off and the salespoint has internet connectivity, the user is prompted whether the log is to be copied to the accesso Siriusware client FTP site.

    15

  • Middleware Provides the tools to test the middleware.

    Clear Log Clears the Sales32c_log.txt log (usually located in C:\ProgramData\Siriusware\Sales).

    Note: The preferred method of generating a log file is to close out of the Sales application, delete the log file and the restart the Sales application. This button is useful when log information needs to be generated but you don’t want to close and re-start Sales because that may make it difficult to recreate the problem you are experiencing.

    Log Verbosity Sets the logging verbosity level, which dictates the amount of logging that is written to the Sales32c_log.txt log (usually located in C:\ProgramData\Siriusware\Sales).

    Test Layout Brings up a Layout Test Dlg dialog box. A dropdown enables the user to choose which layout they would like to evaluate. Choosing the Evaluate button will display the sample layout on the right hand side of the dialog box.

    Re-Forward Enables you to re-forward records. For information on when to use this, see Finding and fixing SQL errors. Requires a daily code to use. You need to contact accesso Siriusware Technical Support to obtain the daily code.

    Read Scale Allows for getting weight from scale.

    Upload Log This will upload a log directly to the accesso Siriusware ftp server, thus enabling this to be attached to a case or enable accesso Siriusware Technical Support staff the opportunity to review your salespoint’s log for errors.

    Finding and fixing SQL errors SQL errors usually occur when there is a problem forwarding information to the SiriusSQL database, via SalesEZ, BookEZ and RentEZ applications. When SQL errors occur, the source can usually be traced by using the Sales > Tools > Diagnostics > Show Fwd Status information, shown in the following screen capture. Duplicate records are a very common type of SQL error and are discussed in a separate section, Finding and fixing duplicate records. This section provides general information about how to find and fix all types of SQL errors. SQL errors can be very difficult to trace and fix. If you’re lucky, they are spurious in nature and disappear after a reboot of Sales. accesso recommends that you work with accesso Siriusware Technical Support representatives on the more serious SQL errors until you become confident enough to be able to fix them on your own.

    16

  • In the above screen capture, SQL errors occurred when attempting to forward records in the transact and tr_info tables. If you use Helper utility to investigate these tables, you find the value of 7 in the fwd_statusfield of the affected records, which means that a SQL error occurred. (See Helper for a description of all codes that Salesware module uses in the fwd_status field.) When SQL errors display on the Tools > Diagnostics > Show Fwd Status dialog, the Reset Sql-Err button also displays. Click this button to clear the SQL errors and restart Sales. If SQL errors continue to appear on this dialog, then you need to perform further investigation to understand the nature of the SQL errors and fix them.

    The utilities that accesso Siriusware Technical Support representatives use to find and fix SQL errors are listed and described in the following table. You can find more information about these tools in a previous section of this document, Advanced utilities.

    17

  • Utility How to use

    Helper With Helper 4.4 you can: • Run FoxPro commands by opening a command window and typing in commands • Open FoxPro tables (.dbf files) • Open local Sales tables and edit – the dropdown shows the most recently opened

    tables • Open FileSync tables and edit • Execute SQL statements like SELECT statements on local data • Edit and run a .prg program • Edit a .txt file • View a log file

    LocalDataBoss Allows checking and repair of forwarding errors found in local salespoint data. Duplicates and SQL errors may be examined and “reset” or “retired.” Provides a convenient way to edit local data, .INI files and log files. Provides a means to perform repetitive tasks on each salespoint. These tasks are performed with “plug-in” style code snippets.

    Example:

    • Trimming file sizes of various tables • Moving, copying and deleting layouts

    Local Data Boss provides more capabilities than Helper utility and can be used to analyze and adjust data on multiple salespoints at the same time.

    In some cases you can avoid using these tools altogether and simply attempt to eliminate SQL errors by re-forwarding records using the Tools > Diagnostics > Re-Forward button. However, this button should be used with care. You need to obtain a daily use code from accesso Siriusware Technical Support before using it, at which time you can also discuss your issue with a support representative.

    ServiceMonitor logging can gather performance statistics Logging was added to ServiceMonitor for the purpose of gathering performance statistics over time in a way that is very low impact and very low risk. ServiceMonitor can now extract information from the HTML using regular expressions and writing this information to a log. ServiceMonitor looks for the presence of ServiceMonitor.INI in the directory with ServiceMonitor.exe. If the .INI file is absent or the Log setting is absent or FALSE, ServiceMonitor's behavior is unchanged.

    The following is an example for logging Pool Service data:

    [Preferences] Log=true

    18

  • Pattern1=Salespoints[\D]+(\d*) Legend1=sp: Pattern2=Servers[\D]+(\d*) Legend2=svr: Pattern3=Long calls in last minute[\D]+(\d*) Legend3=lcs: Pattern4=Avg. call time \(last 250 calls\)[\D]+([\d\.]*) Legend4=act: Pattern5=Avg. lag time \(last 250 calls\)[\D]+([\d\.]*) Legend5=alt: Pattern6=Total Calls[\D]+(\d*) Legend6=tcs: These above settings cause a log file to be generated. The log file is in the same directory with ServiceMonitor.exe and is named: sm_Service-Name_log.txt where Service-Name is the name of the actual service.

    Example: sm_Siriusware PoolService SalesEZ_log.txt. ServiceMonitor outputs one line for each update of the HTML. Example: 2011.12.15 12:01:42.814 sp: 0 svr: 3 lcs: 0 act: 0.02 alt: 0.0019 tcs: 45

    Tabs are put between the Legend and the data extracted from the HTML. The .INI settings Pattern1, Pattern2, etc. are regular expressions. Pattern1, for example, looks for the string Salespoints followed by one or more non-digits (\D), and then some number of digits (which is actually what's grabbed, indicated by the parentheses).

    Added additional debugging options to save a verbosity 6 log to a sales32c_debug_crash_log.txt file when specifically activated by a developer in the event of SQL error forwarding a local record, detection of a duplicate record and when there's inconsistencies between in the pmt_amt, xchg_rate and foreign total in the sale_hdr and sh_save table.

    Finding and fixing duplicate records

    What is a duplicate record?

    A duplicate is a record that Sales is attempting to forward to the server, but can’t. This is because the server data believes that it already contains that same record, so it rejects the Sales program’s attempt to write a “duplicate” entry.

    19

  • For example, let’s say that Sales has just created a gst_pass number of 1500000. Sales attempts to forward the gst_pass record to the server, but can’t because a record with gst_pass number 1500000 already exists on the server. Sales then displays a duplicate error message.

    There are two types of duplicates: “good” and “bad.” A “good” duplicate is a true duplicate: the exact same record – with completely identical fields – does indeed exist in the server data. Because records of this type are relatively easy to fix, they are dubbed “good” duplicates. While they aren’t exactly “good,” they are relatively easy to repair. A “bad” duplicate is a bit trickier. A bad duplicate means that the local record (the one generated in Sales) is not exactly the same as the record found in the server data. It is a duplicate because the local record and the server record share at least one “primary key” field. Every other field may be different, but at least one “primary key” has lost its uniqueness. Repair of “bad” duplicates usually requires the help of accesso Siriusware Technical Support.

    What can cause dupes?

    The following are the primary causes of duplicates:

    • Disconnecting from SalesEZ application. If Sales is forwarding a record and gets disconnected from SalesEZ, it’s possible to create a duplicate. The time frame for this scenario is miniscule (something like 1/100 of a second), so it is an unlikely cause of dupes. If a duplicate does get created this way, however, we see one record per disconnect. A “good” dupe is then created (i.e., the exact same record is already in the server data).

    • Power outages, power surges, etc. Same as #1 above. • Two salespoints, each with the same salespoint ID, can cause duplicates. Lock keys make sharing a

    salespoint ID difficult, but it’s not impossible. This duplicate scenario would happen when both salespoints are live. A likely cause is that one computer has come out of storage and it has the same name as an active salespoint. This situation creates a “bad” dupe (the exact same record is not already on the server).

    • Inconsistent max keys can cause “bad” dupes. • Bugs in the software can cause “bad” dupes. • Manually copying your live data to training can cause dupes in the training data. Copying live data to

    training data (or vice versa) are done via the SysManager > Utilities > Data Maintenance dialog; this reduces the chances for duplicate creation.

    In some cases it is possible that two salespoints are editing the same saved sale or same reservation at the same time. There have been occasions where this may cause duplicates or forwarding errors. Duplicates and forwarding errors can also be caused when an off-site laptop (used for selling products at a remote location – like a ski show) is returned to the main location and hooked up to the network. Sometimes, because records were created in an off-line state, it is possible in certain circumstances to create duplicate entries.

    How to repair duplicates To repair “good” duplicates:

    1. Click on Tools > Diagnostics > Check Duplicates. 2. Use Helper and SQL scripts to sync the two versions.

    20

  • To repair “bad” duplicates: 1. Click on Tools > Diagnostics > Check Duplicates and make sure these aren’t “good” duplicates. 2. Clear your Sales32c log (Tools > Diagnostics > Clear Log button), and then set Tools > Diagnostics >

    Log Verbosity to verbosity 5. 3. Go back into Check Duplicates. Click on the Repair button and enter daily code when prompted. This

    code is generated by accesso Siriusware Technical Support representatives and is different every day.

    Note: Most clients need help from accesso Siriusware Technical Support to use the Repair button. The Repair button creates a new primary key for duplicates, so can cause your reporting to be wrong. New transactions can be created that cause your reports not to balance with actual sales.

    4. The duplicates are repaired. A duplicate fix log is generated in your local Siriusware\Sales folder. It’s called duplicatefix_XXXX.txt, where XXXX is the date. You can study this log along with your Sales32c_log.txt file.

    Note: Just because the “dupes” are fixed at this point, you may still have problems. For example, two duplicate pass numbers may have been printed on two different passes. Or you may have general data mix-up issues (for example, transactions attached to wrong sale_hdr). Also, reports can be wrong or present strange-looking data. If fallout like this happens, further manual repair of data may be required.

    How to test/recreate dupes

    You can create duplicates on purpose and try fixing them for practice.

    Warning: Do this with your training data only. To recreate “good” dupes:

    1. Take a local record that has already forwarded (status 2) and change it to a status 9. 2. (Alternatively) Take a status 2 and change it to 0.

    To recreate “bad” dupes:

    1. Name two salespoints with the same salespoint ID. 2. (Alternatively) Set your local max keys table lower than what it is currently.

    Triggered Counts

    This functionality reduces server traffic significantly and allows much faster operation at the salespoints and in E-Commerce pages. Most speed issues in E-Commerce and in Sales modules were in part or primarily caused by issues related to the continual recalculation of Max4Sale limits.

    21

  • Functionality

    A new table (Max4SaleCounts) was created, ancillary to Max4Sale and Points4sale capabilities, that stores the limits associated with each limit.

    This allows limits to be selectively identified to use the Max4SaleCounts table. Dynamic timespan limits are not be allowed with this approach. Any limit not specifically identified would be calculated every call.

    Entries in the Max4SaleCounts table are created when an item falling into that limit was added/changed in the transact/tr_save table. Or, entries would be created when a call was made in order to retrieve the value that affected that particular limit. Only the limits that are requested are stored. Max4SaleCounts can be deleted at any time and the limits refresh.

    Configuration Changes to database for Max4Sale capability The following changes have been made to the SiriusSQL database in support of Triggered Counts for Max4Sale capability:

    siriussp_GetQtyRemaining_By_DCI_base:

    • Made refinements to the remaining quantity calculations on Time Only Max4Sale limits when the limits are further restricted by Sales Channels.

    • An optional parameter tlBypassTC (bit, default = 0) - If passed and set to 1, it bypasses using new Triggered Counts in remaining quantity calculations (if activated in prefs_sl.UseCounts) and calculates remaining quantities as before, by summation of applicable tr_save and transact rows.

    • Minor performance enhancement when using trigger counts. • If UseCounts in prefs_sl is TRUE, stored procedure now attempts to retrieve current sold and saved

    quantities from the related Max4SaleCounts table for the relevant Max4Sale restrictions. Those counts which are not yet calculated and available in Max4SaleCounts is calculated as before by summing existing transact and tr_save rows. Those missing counts are then be added to the Max4SaleCounts table, thereby speeding up subsequent calls to this GetQtyRemaining stored procedure.

    Note: The Max4SaleCounts table is used only for Date/Time and Time Only Max4Sale restrictions, not Dynamic Time Span restriction types.

    prefs_sl:

    • Added UseCounts (bit). • Modified Insert/Update trigger to truncate the Max4SaleCounts table if the values of the UseCounts

    or Max4Saved columns are changed.

    22

  • prefs:

    • Removed triggercnt. • Superseded by UseCounts in prefs_sl table.

    Max4Sale and pts4sale:

    • Removed UseCounts. • Superseded by UseCounts in prefs_sl table.

    Max4Sale:

    • Modified Insert/Update trigger to delete the related Max4SaleCounts child row if one exists.

    Max4SaleCounts:

    • Added CurrentSavedCount

    tr_save:

    • Added Insert/Update/Delete triggers to update CurrentSavedCount values in all affected Max4SaleCounts rows, using the same criteria used in the siriussp_GetQtyRemaining_By_DCI_base stored procedure.

    • This affects only one row inserts, updates and deletes performed through accesso Siriusware modules. • Multiple row batch inserts, updates and deletes done outside of accesso Siriusware modules truncate the

    Max4SaleCounts table and are rebuilt as necessary by calls to the siriussp_GetQtyRemaining_By_DCI_base stored procedure.

    transact:

    • Added Insert/Update/Delete triggers to update CurrentCount values in all affected Max4SaleCounts rows, using the same criteria used in the siriussp_GetQtyRemaining_By_DCI_base stored procedure.

    • This affects only one row inserts, updates and deletes performed through accesso Siriusware modules. • Multiple row batch inserts, updates and deletes done outside of accesso Siriusware modules truncate the

    Max4SaleCounts table and are rebuilt as necessary by calls to the siriussp_GetQtyRemaining_By_DCI_base stored procedure.

    Changes to database for Points4Sale capability

    The following changes have been made to the SiriusSQL database in support of Triggered Counts for Points4Sale capability:

    siriussp_GetPointsRemaining_By_DCI_base_sub:

    23

  • • If UseCounts in prefs_sl is TRUE, stored procedure now attempts to retrieve current sold and saved points from the related Pts4SaleCounts table for the relevant Points4Sale restrictions.

    • Those point counts which are not yet calculated and available in Pts4SaleCounts are calculated as before by summing existing transact and tr_save rows.

    • Those missing counts are then added to the Pts4SaleCounts table, thereby speeding up subsequent calls to this GetPointsRemaining stored procedure.

    prefs_sl:

    • Added UseCounts (bit). • Modified Insert/Update trigger to truncate the Pts4SaleCounts table if the values of the UseCounts

    or Max4Save columns are changed.

    Pts4Sale:

    • Created Insert/Update trigger to delete the related Pts4SaleCounts child row if one exists.

    Pts4SaleCounts:

    • Added CurrentSavedCount (numeric(12,4)).

    tr_save:

    • Added Insert/Update/Delete triggers to update CurrentSavedCount values in all affected Pts4SaleCounts rows, using the same criteria used in the siriussp_GetPointsRemaining_By_DCI_base stored procedure.

    • This affects only one row inserts, updates and deletes performed through accesso Siriusware modules. • Multiple row batch inserts, updates and deletes done outside of accesso Siriusware modules truncate the

    Pts4SaleCounts table and are rebuilt as necessary by calls to the siriussp_GetPointsRemaining_By_DCI_base stored procedure.

    transact:

    • Added Insert/Update/Delete triggers to update CurrentCount values in all affected Pts4SaleCounts rows, using the same criteria used in the siriussp_GetPointsRemaining_By_DCI_base stored procedure.

    • This affects only one row inserts, updates and deletes performed through accesso Siriusware modules. • Multiple row batch inserts, updates and deletes done outside of accesso Siriusware modules truncate the

    Pts4SaleCounts table and are rebuilt as necessary by calls to the siriussp_GetPointsRemaining_By_DCI_base stored procedure.

    24

  • Constraint in tr_save table

    The constraint siriusfn_CheckLiveTransactRowAlreadyExists has been added to the tr_save table in SiriusSQL database. This prevents inserting or updating a tr_save row that has Finalized = 0 and already has a matching row in the transact table.

    Triggered Count comparisons

    Sales displays the Triggered Counts Test dialog when %XXXX is entered at the Swipe Injection dialog. This dialog shows the Max4Sale quantity remaining for each item in the currently active item tree for the selected date and time, as determined using Triggered Counts. It displays the Max4Sale quantity remaining determined using a force calculation and indicates if there is any discrepancy. The dialog does not display any information if Triggered Counts are not enabled. It currently supports Max4Sale date/time and time limits, as well as Sales Channels, but does not support Points4Sale or Timespan Max4Sale.

    Max4Sale subcategories (block holds) In certain client environments in which tickets are sold on a time dependent basis, it may be necessary to reserve a certain number of tickets for specific groups (ticket block hold). In order to not lose profit on those reserved tickets that are not purchased for a specific time, Max4Sale subcategories and block hold release times have been added to Salesware module. These release times allow items (tickets) for subcategories (groups) to be released to an overriding item (General admission ticket).

    Example: Site A has a maximum of 100 visitors that may tour their site per hour.

    Assuming that there is the following capacity restrictions from 9:00 - 10:00 AM:

    • Total Capacity: 100 • Member Hold: 20, expires at 9:55 AM • Group Hold: 10, expires at 9:50 AM

    Initially at 9:00 AM, here is what is available:

    • General: 70 (100 total capacity – 20 for members hold – 10 for groups hold)

    • Member: 20 (100 total capacity – 10 for groups hold – 70 for general)

    • Group: 10 (100 total capacity – 20 for members hold – 70 for general)

    25

  • 9:00 AM, with 100 TOTAL capacity Quantity Expiration of Hold

    General Tickets (no Block Hold – receives balance of total capacity)

    70 None

    Member Tickets (Block Hold of 20) 20 9:55 AM

    Group Tickets (Block Hold of 10) 10 9:50 AM

    By 9:30 AM the following purchases have been made:

    • General: 40 • Member: 15 • Group: 5

    The availability at 9:30 AM would then be:

    • General: 30 (100 total capacity – 40 general purchase -15 member purchase – 5 group purchase – 5 left in member hold – 5 left in group hold)

    • Member: 5 (20 total in hold – 15 member purchase)

    • Group: 5 (10 total in hold –5 group purchase)

    9:30 AM, with 100 TOTAL capacity Quantity Expiration of Hold

    General Tickets (no Block Hold – receives balance of total capacity)

    30 None

    Member Tickets (Block Hold of 20) 5 9:55 AM

    Group Tickets (Block Hold of 10) 5 9:50 AM

    At 9:50 AM, the group hold expires resulting in the following availability:

    • General: 35 (100 total capacity - 40 general purchase - 15 member purchase - 5 group purchase - 5 left in member hold)

    • Member: 5 (20 total in hold – 15 member purchase)

    • Group: 0 (Remaining tickets in hold were released to General availability at 9:50 AM)

    9:50 AM, with 100 TOTAL capacity Quantity Expiration of Hold

    26

  • General Tickets (no Block Hold – receives balance of total capacity)

    35 None

    Member Tickets (Block Hold of 20) 5 9:55 AM

    Group Tickets (Block Hold of 10) 0 9:50 AM EXPIRED

    At 9:55 AM, the member hold expires resulting in the following availability (all available for general purchase):

    • General: 40 (100 total capacity – 40 general purchase – 15 member purchase – 5 group purchase)

    • Member: 0 (Remaining tickets in hold were released to General availability at 9:55 AM)

    • Group: 0 (Remaining tickets in hold were released to General availability at 9:50 AM)

    8:55 AM, with 100 TOTAL capacity Quantity Expiration of Hold

    General Tickets (no Block Hold – receives balance of total capacity)

    40 None

    Member Tickets (Block Hold of 20) 0 9:55 AM EXPIRED

    Group Tickets (Block Hold of 10) 0 9:50 AM EXPIRED

    Note: Max4Sale subcategories are time dependent. You must supply a block hold expiration time. If you do not select a release time, items in Sales may not perform as expected.

    Configuration SysManager In support of the new Block Holds functionality new forms have been added to SysManager that give users the ability to define subcategories from within the Category edit form and assign items within that category to the subcategory.

    Note: Subcategories are not part of the DCI structure.

    Max4Sale limits can then be configured for the Category and these new subcategories. The items configured for the subcategories are used to hold back a certain number of tickets from being sold from the overall Category Max4Sale limit but allow sales of items in the subcategory up to the limit set. Additional changes have been made to the Max4Sale forms that are accessed from within the Sub-Category edit form that allow the user to configure an expiration time for the block hold as well as designating whether or not to allow the sale of subcategory items after the hold has expired.

    27

  • Max4Sale subcategory setup1. Establish an appropriate Department, in this example, “Block Holds.” 2. Establish time based Categories, in this example, “9:00 AM, 10:00 AM, 11:00 AM etc.”3. Create your Items within each time based category, in this example, general admission child, adult and

    senior; member child, adult and senior.

    Once you have established your basic DCI setup, you can now edit your categories and create Max4Sale subcategories.

    1. Check the Enforce Max4Sale check box and select the Max4Sale button.

    28

  • 2. Establish your overall Max4Sale settings:• Beginning and ending time• Days• Number available for sale, in this example, “100.”

    29

  • After Max4Sale capability has been established for each category you can now create subcategories for your block holds.

    1. Select the Sub-Category button on the Category edit dialog.

    30

  • 2. You are presented with the category’s Sub-Categories edit list. From here you can select or create an appropriate subcategory.

    3. On the Sub-Category edit dialog you can:• Provide a Description – The name of the subcategory• Provide up to three User-Defined fields• Select Associated Items from the Available Items box – Items that are created under each category

    populates the Available Items box, you can then highlight those items you wish to be associated with the subcategory and move them to Associate Items.

    In the following example we have established a, “10:00 AM Member Ticket” subcategory. This category contains all of the associated member items. You can establish multiple subcategories as needed per category.

    31

  • After you have associated the appropriate items to be included in the subcategory, you must establish Max4Sale limits.

    1. Click on the Max4Sale button located on the lower left-hand corner of the Sub-Category edit dialog.2. You can now create or edit particular parameters for the subcategory.3. Select Create Daily to create a range of block hold settings such as:

    • Begins and Ends dates – provides the date range for how many days the block hold is in effect• Times – sets specific time range for the block hold to be in effect• Sales Channel – Dropdown that limits at what location the block hold is available• Daily limits –Sets limits for specific or all days of the week• Max # For Sale – designates the amount of items to be reserved for each subcategory group• Enable Block Holds – This check box is automatically populated when entering subcategories

    Note: Disabling this check box produces unexpected behavior in Sales. If using subcategories please be certain to keep this box checked.

    • Block Hold Expires – The time at which the block hold expires. At this established time, all remaining number of items moves to the overriding item (non-subcategory item), in this example, “General Admission (Adult, Child and Senior)” tickets.

    32

  • Important: Block Holds are time dependent. You must establish a Block Hold Expires time. If no time is established, Sales does not perform as expected.

    • Allow sale of sub-category items after expiration – by checking this box, this allows that subcategory amounts can be sold after the block hold expires, however it becomes first come-first serve for the overriding category and subcategory.

    Use

    Sales

    When selling tickets from the block hold we can see the two items within our 10:00 AM category, General Admission and Member items display with their associated allotment of tickets.

    33

  • Prior to 9:45 AM guests can purchase out of General Admission or Member items within those designated subcategory Max4Sale limits.

    In this example we have not allowed for our block holds to continue after the expiration time. Therefore at 9:46 AM all of our member tickets roll into General Admission ticket numbers that are available for sale.

    34

  • Block Holds can now be released by date

    Many clients need to release the Block Holds days in at advance of the specific time of the event. In order to enhance this capability, we added the following functionality to the Block Holds feature:

    • Add control for the # of days in advance to release the Block Hold in addition to the time of day to release.

    Example: A Block Hold of 20 for Feb 26, 2015 should be released on Feb 20 at 8:00 AM. The Block Hold Expiration for this Feb 26 Date/Time Max4Sale record would be 6 days at 08:00.

    • Revised the Stored Procedure to look at not only the time of day, but the number of days prior, in order to determine if the Block Hold should be released.

    • Sales is sending in both the current date/time and the item valid date so that the stored procedure can compare and release as appropriate.

    Configuration

    SysManagerThe Category and Sub-Category Max4Sale limits have been combined into one form. In addition, one can now designate that Sub-Category block holds be released at a certain number of days prior to the limit date at a designated time. To make these additions possible, the following fields are now a part of the Category Max4Sale creation dialog (individual and create daily ranges).

    Note: These fields are only present when Sub Categories have been configured for the Category:

    • Enable Block Hold check box - checking this activates the fields described below, when unchecked the fields below are deactivated

    • Sub Category description field• Block Hold Expires - field with a Days counter field and a time entry field• Max # for Block Hold - numeric entry field• Rem. – Displays number of remaining available items under the block hold• Allow Item Sale after Expire check box

    35

  • Use

    Sales & E-Commerce

    Sub Category block holds can now be released a set number of days prior to the limit date at a designated time in Sales and E-Commerce modules.

    Reporting

    The Max4Sale Subcategory Detail Report has been updated to include the expiration date and time for block holds expiring on prior days.

    Editing Block hold categories and subcategories

    The Max4Sale button on the Category edit dialog now opens an enlarged Max4Sale grid displaying the following columns:

    • Start Time & End Time - the beginning and ending date/time for the configured Max4Sale limit• # Days - the number of days that the Max4Sale limit exists• Max - the Max4Sale limit

    36

  • • Sub Category - if applicable, the Sub Category description• Block Hold Expires - if applicable, the number of days prior to and the time when the block hold expires• Allow Item Sale after Expire - if applicable, indicates whether or not a Sub Category item can be sold after

    the block hold expires

    Logic has been adjusted so that when editing an existing Max4Sale limit the Enable Block Hold check box for a Sub-Category remains unchecked if it was saved that way originally.

    Max4Sale / Points4Sale limit check

    A check box has been added to the Item Edit form > Restrictions tab > Max4Sale / Points4Sale area in SysManager: Prevent sales when no limits are set. This is available when either Max4Sale or Points4Sale restrictions are active. Checking this option returns zero remaining quantities to a salespoint if that item has no limits in effect for a given timeframe.

    37

  • Other advanced topics

    How to prevent a sale you don’t ever want to finalize from showing up in the recall list

    1. Recall the sale and note the Sale# (in this case 277103000).

    38

  • 2. Open Enterprise Manager (or Management Studio if you are using SQL Server 2005) and open the sh_save table as a query. Select the sale_no field in the list of fields and set the criteria for that field to be equal to the sale_no you obtained above – run the query.

    39

  • 3. Locate the Finalized field and set the value to 1 and close the table.

    40

  • 4. Open the tr_save table, check the sale_no field in the fields list and enter the same criteria as above – run the query. Set the quantity for each line item to zero and close the table and Enterprise Manager. Make sure that you can no longer recall the sale.

    Note: that if the sale has pending credit card or debit card transactions, they never finalize, the cards are never charged and the amount being held on the card generally clears in one week.

    41

  • How to attach vouchers or coupons to a membership The approach to using vouchers or coupons attached to a membership is to use pass items as modifiers to the parent pass. The modifiers are themselves passes that inherit guest information from the parent record. The modifiers have limited use (usually one total use) and are limited to validate specific items. When validated, a use is taken off. The validation is to allow a discount to be applied. Example: An Adult Unlimited Pass comes with $2 off of a latte at the snack bar, $45 off of a private lesson and $10 off of a rental. We’ll focus on the Latte as the other discounts work the same way.

    1. Create a discount of $2 off and make it Force validation when applied:

    42

  • 2. Add the special to an item, in this case a latte:

    3. On the Action tab for the latte, set Validation as Optional:

    43

  • 4. In the Template have it take one use off of the item that validates the latte:

    44

  • 5. Now create the pass item that is the modifier of the parent pass and that is used to validate the discount. Call this a “voucher.”

    6. On the Action tab for the item, make it Create a pass and in the Action Specifics, give it 1 use. 7. On the Item Discounts tab, put in a macro that adds the $2 special to the item being validated and assign to

    it the latte as the item:

    8. Now go back to the Template for the latte item and go to the Item/Pass Relationships tab and you’ll see the link back to the voucher and the macro. Click the Restrict validation to only the following pass types to limit what can validate the item.

    45

  • 9. Go to the parent pass (in our case the Adult Ultimate Pass) and on the Modifiers tab add the voucher to the

    item and click the Inherit Guest Information from Main Item check box:

    10. On the Sales Actions tab, add Sales screen action macros to automatically add all vouchers you want as modifiers to the pass:

    46

  • 11. Add the parent pass to an item tree and also the modifiers (you can hide them so they don’t show up) and

    test it out. 12. When you sell the item, the modifiers automatically attach and when you add guest info, that info

    propagates to the voucher items.

    47

  • 13. The parent pass must have a sixteen digit number. It can be an In-House Cards (Debitware) number if you like. It can print at the time of sale or you can attach it to the parent item during the sale if you have pre-printed cards. Because all card numbers automatically cascade when the pass is swiped against an item, the system looks for a pass owned by the guest that can validate the item. It only finds the vouchers because they should be the only items that can validate.

    14. To test, sell a latte and click the Add Guest? button. Because the latte was set for optional validation, the dialog that comes up is the Validation dialog. On this dialog, swipe the pass. The system looks up the card number, find the guest, find all passes associated with the guest and try to find one that can validate a latte. Only the voucher can do this so it is used.

    48

  • Note: The DCI being used is the BEVVOUCHER because no other vouchers can validate the item. Once you close the Validation dialog you see that the discount was automatically applied.

    Once you finalize the sale, the voucher is validated and can’t be used again. It fails the next time you try:

    49

  • You can look up the guest and see what passes and vouchers the guest has.

    Note: that Amy’s Adult Snovember Pass is still active but the vouchers for that pass have expired. She also has a valid Ultimate pass with vouchers that are still active. You can drill down into a voucher to see if, when and where it was used:

    50

  • Best of all you can always give a guest another voucher, say as consolation for some incident just by selling them a voucher as a parent item and attaching guest info:

    51

  • The system warns you that the guest already has a voucher (pass) of this type but you can still add it and it is cascaded to when the person’s card is swiped as described above. You can see in Amy’s history the addition of this voucher as well:

    A pass can therefore be issued with the following combination of attributes:

    • Season pass that can be scanned at the lift • In-House debit or gift card • Attached coupons or vouchers • Discount card (with the %E functionality)

    In fact the only conflicting programs are In-House Charge and Resort Charge applications. They both can’t be used on the same card.

    If a guest loses his card, all you have to do is look up the guest and attach a new card (removing the old number from the pass).

    To do this, you would look up the guest and go to the Pass Inquiry tab. Locate the pass that has a Card# attached. In this case the Adult Ultimate Pass:

    52

  • Double-click on the pass, click Modify and you can attach a new card by swiping a new card.

    How to create a birthday party reservations system

    Note: This can be done using the Salesware Group Scheduling module as well.

    This example implements a birthday party booking system. Customers phone to book on a specific date and provide a $50 credit card deposit; they then pay the balance on the day of the party. When making the booking, you enter guest details and allocate a deposit to the guest, and then set up and block out the date for the party. Parties can be scheduled at 10 AM and 1 PM on any Saturday or Sunday.The first step is to set up a pod and the product that books into the pod. These instructions go step by step and assume some knowledge about pods in Salesware module. (Pods are documented in detail in the Salesware Activity/Facility Scheduling document.)

    1. Create a pod preference to be used to filter the pods that show up when you are booking the product:a. Go to SysManager > Activities > Lesson Lists > Pod Preferences.b. Create a new preference named “Birthday” and set it to Logical and Equal.

    53

  • 2. Create a type for birthday bookings. The primary purpose of this is to define the color of the birthday booking bar but can be used for other things as well.a. Go to SysManager > Activities > Lesson Lists > Lesson Types.b. Create a new Lesson Type. Call it what you like. Set a color for the booking bar and make sure it is

    scheduled.

    3. Create a birthday pod.a. Go to SysManager > Activities > Lesson Lists > Pods.b. Create a new pod. Call it what you like. Under Selection Criteria, make sure to put a .T. in the

    birthday preference.

    4. Put in the booking limits for the pod.

    54

  • a. Go to SysManager > Activities > Lesson Activities > Book a Pod – or just click the Pods button.b. Drag in a limit for the time frames that birthday parties can be booked.c. You’ll want to drag in limits for each time on each day the birthday parties can happen.d. You can sort the pods to look at a single pod for a single day of the week (like Saturdays or Sundays) so

    that you can easily copy the limit down to the other days.e. But don’t do a big copy until you have tested end-to-end with a single limit for each time.

    The following screen capture shows dragging in the limit:

    The following screen capture shows the results after you drag in the limit.

    The following screen capture shows both limits in place.

    55

  • 5. Create a product that books into the pod.a. Go to SysManager > DCIs.b. Pick a Department and Category to create the item within (or create new ones).c. Add a new item called “10:00 AM Birthday Party”d. Fill in all of the normal information like Nickname, Description, Price and Profit Center Split.e. Click the Action tab and select Begin Pod Booking.f. Click Action Specifics.g. Select the Birthdays lesson type.h. Set the time span to equal the length of the booking bar (180 minutes in this case).i. Click Enforce Restricted Startimes and set the start time for 10:00 AM.

    56

  • j. Click the Auto-Set Prefs tab and put .T. in for the Birthday preferencek. Make sure to select Reqd.

    6. Save the item and add it to your Item Tree. Repeat for the 1:00 PM birthday but make sure to set the required start time to 1:00 PM.

    7. Test it by selling and booking a pod in Sales.a. Sell the item.b. Set the start date to the day of the birthday.c. Click Set Guest.d. Enter the name of the birthday party guest.

    57

  • e. Go to the scheduler.f. You see the birthday pod listed and available (colored yellow).

    58

  • g. Drag in the booking and it snaps to the right time.

    59

  • Notes:

    • If you do this as a part of a reservation with a Reservation Header, you can put the parental information in the Reservation Header and the child’s name in the booking.

    • You can save the reservation with a deposit and the booking is saved. Then you can finalize when they show up and take final payment.

    • You can run the Pod Booking Report for a list of upcoming birthdays.• If you use a Reservation Header and set the arrival date, you see all pending birthdays on the Recall dialog.

    Description of the *.bin files created in the Sales directory

    Sales creates the following *.bin files in the Sales directory.

    Warning: Extreme caution should be used with these files to ensure that local data is not accidentally deleted.

    mearth.bin

    Contains the information about which operators are assigned to which cash drawers in a multiple cash drawer setup.

    60

  • mindy.bin Contains the salespoint ID. If you delete your local data, the salespoint can start-up and identify itself without asking you to choose a salespoint. If you delete this file, it gets recreated from the local data’s sales_pt table. If you delete both local data and mindy.bin, you are asked to choose a salespoint. mindy.bin actually contains the entire sales_pt record, so if you receive a, “Lock keys do not match” error, you need to delete mindy.bin also. Otherwise Sales just rebuilds the sales_pt table from the mindy.bin file and you get the lock key error again.

    mork.bin

    Contains a value that is checked by Sales to see if you ran Sales using the loader (Runexe application). If the values match, then the program runs; if not, it won't, unless you delete mork.bin, and call Sales32c.exe with a 1234567 parameter.

    orson.bin Used for the deferring of Sales data group updates.

    shazbot.bin Created after Sales starts up an