1. General information


1.1. Program operates with help of CardSystem5, properly connected to RK7. Delivery system (RK7) cannot be used without R-Keeper CRM.

1.2. If you want to use Delivery7 in foreign language, you have to translate the following files: 2 executables (SDispather.exe; Operator.exe); 2 settings files (MSConfig.Ini; Operator.ini); find.xml and GCentre.xml (optionally, for maps).

1.3. Delivery 7 uses RK7 as cash system for order creation, payments, etc. You cannot use Delivery system without R-Keeper 7.

1.4. Delivery7 uses CardSystem5 as customer DB for saving and getting client information (minimal CS5.4.5.1., but it strongly recommended to use newest version).

1.5. Delivery7 has two separate modules which are using one database (Operator and Dispather).

1.6. Minimal Delivery modules version that work with RK7 is 3.0.1.0. We recommend you use newest versions of each software involved.

1.7. When you do settings for those applications installed in one OS, especially when you set them in one INI file, specify all IP addresses in one subnetwork. For that, use static IP assignment on each host. Avoid using localhost.

1.8. This manual is valid for versions below 3.1.4.0, for new versions see http://support.ucs.ru/en/node/8944


2. Before Delivery


2.1. Steps

2.1.1. RK7 is a first to install. Create corresponding xml interface for cash station (not cash server). Set some free port in xml interface driver properties [Options] section "Port" parameter (the same as "inRKPort=" parameter value in Delivery ini files). You may set CryptKey also (the same as "stRKPass=" parameter value in Delivery ini files).

2.1.2. CardSystem5 is a second one. You need all the CS5 references to be completed.
2.1.3. After RK7 interconnection with discount system have been configured, you have to complete all of the CardSystem5 references as follows.

2.2. CardSystem5 setup

2.2.1. Follow http://support.ucs.ru/en/node/5619 manual for CardSystem5 installation (paragraph 5.2. for RK7 connection).
2.2.2. Create new software classification for Delivery in Cards_Editor.exe. Put corresponding "Code" to Operator.ini and MSConfig.ini "stCSKey=" parameter value.

2.2.3. You have to create these software records and assign unique codes for each application which is going to connect to CRM (including separate for WebOrders).

2.3. RK7 maintaince

2.3.1. Printing

2.3.1.1. There are 4 document types which printing is initiated by Delivery: Invoice, Receipt, Bill, Service print.

2.3.1.2. Layout View from Printing scheme is chosen by default.

2.4. DB provider

2.4.1. You have to install Firebird DBMS server. Recommended version is 2.5 or newest.

2.4.2. You have to install 'DbExpressInstallation' windows provider (used by Delivery applications to connect to FDB).


3. Now Delivery


3.1. Operator

3.1.1. Operator.ini

3.1.1.1. File format

[Servers]
stDBServer=C:\DB\DELIVERYRK7.FDB
stDefCharSet=WIN1252
dbuname=E5EBE5F8F6F3
dbpass=DFD3C5C8D7C6DDD7CB
stRKServer=2.1.1.200
inRKPort=2244
stRKPass=
inDLVExtSource=21
inInetExtSource=31
strk7table=666
inrestid=1
inrk7category=1
inPersonalRole=100005
stCSServer=2.1.1.200
inCSPort=9191
stCSKey=5j8Ax32QWv3TjbgFntoM
stCSGlobal=EaYl2G9iFpZEEBVYdxmc
stCSUnit=1
stCSUser=1
inCSGroup=2
[Settings]
stMap_Name=c:\GWX_DEMO\2\GWX\CITY_DEM\city_dem.chart
boOrderFirst=0
boUseISDNMonitor=0
boUseDeliveryZones=0
boUseDefTime=1
inDefaultExpID=-1
boUSAMap_Par=0
boUse_NameDir=1
boUse_Order_Regulations=1
boUseDefProdTime=1
dtDefProdTime=30.12.1899 0:16:00
tiDefWayTime=0:15:00
tiDefPackTime=0:02:00
boHave_Subway=1
boUse_CardServer=1
boPassEnter=0
boUse_TouchScreen=0
boCanAppendStreet=1
boCanAppendZone=0
;stPhoneMask=99 9999999;1;_
boSerchByMask=1
;stPhoneMask=
boBigProdTime=0
stGMapKey=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-
i1QfUnH94QxWIa6N4U6MouMmBA
inWidthResolution=1280
[InetOrders]
boInetOrders=1
stNewInetOrdersSound=C:\WINDOWS\Media\ringin.wav
//294,125;440,250;524,250;660,250;415,125;440,1000;
tiNewInetOrdersSoundDuration=0:00:01
boPlayOnce=1
[DLV_TYPES]
inDefaultTypeDelivery=1
boUseTypeDelivery=1
in20=1
in21=1
...

[INI_Values_Name]

in20 = Delivery
in21 = TakeAway

3.1.1.2. Settings description

3.1.1.2.1. [Servers] section "stDBServer=" parameter value is a Delivery database full pathway (the DB you should have created as in 3.3.).
3.1.1.2.2. "stDefCharSet=" parameter value is a Delivery DB codepage (that you set in a script when created DB).
3.1.1.2.3. "dbuname=" parameter value is the encoded Delivery DB username (that you set in a script when created DB).
3.1.1.2.4. "dbpass=" parameter value is the encoded Delivery DB password (that you set in a script when created DB).
3.1.1.2.5. "stRKServer=" parameter value is the RK7 cash station IP address (with that xml interface from 2.1.1. and that is used for order creation). Pay attention: it is not cashier server!
3.1.1.2.6. "inRKPort=" parameter value is the RK7 cash station xml interface port (that you set as in 2.1.1.). Pay attention: it is not cashier server!
3.1.1.2.7. "stRKPass=" parameter value is the RK7 cash station xml interface password (that you set as in 2.1.1.).
3.1.1.2.8. "strk7table=" parameter value is the legacy RK7 table code (to use for Delivery orders).
3.1.1.2.9. "inrestid=" parameter value is the RK7 restaurant ident (that one with cash station from 3.1.1.2.5.).

3.1.1.2.10. "inrk7category=" parameter value is the RK7order category code (to use for Delivery orders).


3.1.1.2.11. "inPersonalRole=" parameter value is the RK7 employee role ident (not employee, but group).

3.1.1.2.12. "stCSServer=" is CardSystem5 server IP address.
3.1.1.2.13. "inCSPort=" is CardSystem5 external port.
3.1.1.2.14. "stCSKey=" is software classification code for Delivery from CardSystem5.
3.1.1.2.15. "stCSGlobal=" is the CardSystem5 external applications license (get from UCS licensing, but not required for recent Delivery versions to AuthServer connection).
3.1.1.2.16. "inCSGroup=" is the CardSystem5 customer group ident.
3.1.1.2.17. "boDefInvoice=" to print invoice automatically set to "1"

3.1.1.2.18. "in20=" and "in21=" in [DLV_TYPES] section are OrderType Idents from RK7, their screen names for GUI are the same in [INI_Values_Name] section (are sent to RK7 as <OrderType id=""/>).

3.1.1.2.19 "inCSIdent" is FarCards facing interface in RK7 ident.

3.1.2. Device drivers

3.1.2.1. Central exchange connection to get client telephone number (depends on device model)

3.1.2.1.1. MailSlot connection

3.1.2.1.2. COM port connection

3.1.2.1.3. TCP port connection

3.1.2.1.4. sipModule, CallSoft (SIPModule.exe)

3.1.2.2. Set Operator.ini

[CallerID]
boUseCallID=1
inCallPort=12323
inCallBaud=115200
boDTR=1
boRTS=1
stCountryCode=+7
stMailSlot=
stInitParm=
boUseTCPSrv=1
boUseCallSoft=0
stCMDNewCall=NewCall:
stCMDEndCall=EndCall:
;stDevName=AUERSWALD4410
;stDevName=BULGCOMM1X
;stDevName=Jablocom
;stDevName=UCSCallCenter
;stDevName=TAI6101
;stDevName=Panasonic KX-TD1232
;stDevName=SIP3DUB
stDevName=PANASONIC-TEB308

[CallSoftCaller]
/*ip address of exchange*/
stpbx_IP=127.0.0.1
/*exchange connection port*/
inpbx_Port=5060
/*NAT address if use*/
stpbx_NatIP=
/*username (virtual number account) for exchange*/
stpbx_Login=login
/*password (virtual number account) for exchange*/
stpbx_Pass=password
/*real call centre number*/
stpbx_DefRefPhone=number
/*IP address SIPModule.exe*/
stsipM_IP=2.1.1.200
/*Port SIPModule.exe*/
insipM_Port=4505
/*License for SIPModule.exe*/
stLic=

3.1.2.2.1. inCallPort - TCP port to listen for data from exchange

3.1.2.3. For TCP connection you have to set: boUseCallID=1; inCallPort=12323; boUseTCPSrv=1; stCMDNewCall=NewCall:; stCMDEndCall=EndCall: .

3.1.2.3.1. Incoming data format will be: 'NewCall:'+CHAR(2)+'[phonenumber]'+CHAR(10) or 'EndCall:'+CHAR(2)+'[phonenumber]'+CHAR(10).

3.1.2.4. For COM port (RS232) exchange connection you have to set: inCallBaud=115200; boDTR=1; boRTS=1 .

3.1.2.4.1. In order to get 'stDevName' for your exchange, use 'MonCom.exe' software (get device working data) and send result to UCS-Moscow (development required for new device models).

3.1.2.4.1. Protocols for COM device are saved to 'ascpars.dll'.

3.1.2.5. For MailSlot connection you have to set: 'stMailSlot' (mail slot Name to be created by Operator.exe).

3.1.2.5.1. This protocol was originaly made for IP exchange device made by UCS.

3.1.2.5.2. You may send data in 1 of 2 formats:

3.1.2.5.2.1. CALL:xxxxxxxxxxxx - incoming call;    END:xxxxxxxxxxxx - end of incoming call.
3.1.2.5.2.2. (any symbols, except numeric) xxxxxxxxxxxx - incoming call;        END:xxxxxxxxxxxx - end of incoming call.


3.2. Dispather

3.2.1. MSConfig.ini

3.2.1.1. File format

[Servers]
stDBServer = C:\DB\DELIVERYRK7.FDB
stDefCharSet = WIN1251
dbuname = E5EBE5F8F6F3
dbpass = DFD3C5C8D7C6DDD7CB
stRKServer = 2.1.1.200
inRKPort = 2244
stRKPass =

stRKMidServer=2.1.1.200
inRKMidPort=65456
stRKMidPass=

stAuthIP=2.1.1.200
inAuthPort=12314
stBoundIP=2.1.1.200
inBoundPort=12315
inDLVExtSource = 21
; InInetExtSource = 31
strk7table = 666
inrestid = 1
inrk7category = 1
stCSServer = 2.1.1.200
inCSPort = 9191
stCSKey = 5j8Ax32QWv3TjbgFntoM
stCSGlobal = EaYl2G9iFpZEEBVYdxmc
stCSUnit = 1
stCSUser = 1
inCSGroup = 2
[Settings]
boUseCallCenter =0
boIsCenter =0
boDistributedDB =0
tiTimeForGetPacks =0:10:00
boUSAMap_Par = 0
stGMapKey =ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA
stGMapKey =
boUse_BlackList =1
boPassEnter =0
boUseKitReadyOrder =0
boUse_TouchScreen =0
**
stR_NAME =ENG
boUse_CarList =0
boUse_DLVPersonal =0
**
boCanEditOrder = 1
boProduceOneRec =1
boSendExpSMS = 0
boAlarmSendExp =1
tiAlarmFlashTime =0:00:02
stBeepSound = C: \ WINDOWS \ Media \ ringin.wav
tiBeepTime =0:00:10
boFiskSendExp = 1
inPersonalRole =100005
stExpRoles =100004,100005,
[RESTAURANTS]
...

3.2.1.2. Settings description

3.2.1.2.1. Set connection to the DB and RK7 the same as in operator.ini. Some other common parameters also set the same.

3.2.1.2.2. "stRKMidServer" - RK7 cashier server XML interface IP address. Pay attention: it is not cashier station!

3.2.1.2.3. "inRKMidPort" - RK7 cashier server XML interface TCP port. Pay attention: it is not cashier station!

3.2.1.2.4. "stRKMidPass" - RK7 cashier server XML interface password (if any).

3.2.1.2.5. "boUseCallCenter" - define "=1" if you have CallCenter chain distributed configuration, "=0" is for standalone installation.
3.2.1.2.6. "boIsCenter" - define "=1" if you install this application in Center and "=0" if case of local restaurant.
3.2.1.2.7. "boDistributedDB" - define "=1" in case of CallCenter (and you will use CCTransport.exe to sync DBs). "=0" is for standalone installation (one Delivery DB).

3.2.1.2.8. stBoundIP=  is the local network interface IP address on the same OS where you do start Dispather application, for this application to open connection to DLVserv
3.2.1.2.9. inBoundPort= is Dispather application own additional TCP port for connection to DLVserv

3.3. Database

3.3.1. You have to create a new database using the script from the distributive. We recommend you IBexpert.exe tool.
3.3.2. You should check script header parameters:

SET SQL DIALECT 3;
SET NAMES WIN1252;
CREATE DATABASE 'C:\DB\DELIVERY7ENG.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1252;

3.3.3. Set proper charset for your language, database name, change credentials if necessary.

3.3.4. You should add 'CinemaUF' module and register that in your system.

3.4. Translation

3.4.1. You have to translate resources of both applications using Localizator software (Localize.exe utility). Follow http://support.ucs.ru/en/node/5626 manual.
3.4.2. You have to translate strings in MSConfig.Ini; find.xml; Operator.ini and GCentre.xml (optionally, for maps).


4. After Delivery


4.1. Licensing

4.1.1. CardSystem5 link licensing

4.1.1.1. You have to get external applications license for CardSystem.
4.1.1.2. Put this license to Operator.ini and MSConfig.ini "stCSGlobal=" parameter value.

4.1.2. Delivery licensing

4.1.2.1. Delivery7 is protected with Guardant key and DLVServ.exe (AuthSrv folder) application.
4.1.2.2. DLVServ.exe application is connected by SDispather.exe and Operator.exe applications, it uses SrvParams.ini with settings:

[Params]
srvPort=12314
srvPingClientSec=7
KeyID=722888876

4.1.2.3. Corresponding connection parameters for clients (set DLVServ.exe IP and port): "stAuthIP=" and "inAuthPort=".

4.1.3. DLVServ.exe

4.1.3.1. Send "KEY UNQ" to UCS licensing and get "License" and press "Save".

4.1.3.2. Your license contains allowed client(s) quantity (see in 'modules' section). You will not be able to start and use more clients than included in your license.

4.1.3.3. This AuthSrv will authenticate other Delivery package applications on their start, check license saved to Guardant key and allow them to start and use.

4.1.3.4. Install service like

DLVServ.exe /install /NAME:DEL_SRV_CENTER

4.1.4. Coding

4.1.4.1. Coding - utility to encode password for DB, xml-interface.

4.1.4.2. You have to write passwords to ini files encoded.
 

4.2. Applications

4.2.1. Start Delivery applications only after RK7 and CardSystem5 are online.
4.2.2. Delivery will not start without RK7 cash station.
4.2.3. Delivery will not get and save client info without CS_Auth_Server.exe running.

4.3. Startup

4.3.1. Standalone restaurant

4.3.1.1. You have to start the following applications (as desktop or service) or make sure that all of them are running:

MIDSERV.EXE
doscash.exe
fbserver.exe
CS_Server.exe (should be started automatically with DCOM call)
CS_Auth_Server.exe
scktsrvr.exe
DLVServ.exe
Farcards.exe (if CS5 is used as RK7 discont system)
Operator.exe
SDispather.exe

4.3.2. Chain of restaurants (Call centre)

4.3.2.1. You have to start both front office and call centre RK7 modules.

4.4. Maps

4.4.1. You are able to use google maps or other internet maps provider.

4.4.2. You are to have account in web map provider (google).
4.4.3. As for google, login to https://code.google.com/apis/console, set usage for maps to "On" in services (Google Maps API v3), copy API Key: ХХХХХХХХХХХ from 'API Access'.
4.4.4. Set API key in ini 'stGMapKey' parameter.
4.4.5. Follow provider licensing rules to get proper maps functionality from.
4.4.6. Each direction get several querries from maps.google.


5. CallCenter


5.1. Basics

5.1.1. The difference between standalone installation and distributed chain with CallCenter is in quantity of applications to be installed, in their interconnection scheme, in settings of those application.

5.1.2. There is CCTransport application made to sync data between Center and each restaurant location.

5.1.3. Orders are saved in both RK7 cashier server DB and Delivery DB.

5.1.4. There is DictionaryEditor application made to set correspondence between delivery zone and city/street.

5.2. DB

5.2.1. There must be distributed DB mode set for applications.

5.2.2. In each location you have to install DBMS and separate DB file.

5.3. Operator

5.3.1. Operator application to be installed only in CallCenter location. No need to install this application in restaurant location unless you really need to accept orders locally.

5.3.2. Also, you can install as many application instances as you need (according to your license and workplaces).

5.4. Dispather

5.4.1. You have to install SDispather both in CallCenter and Restaurant locations.

5.4.2. Central Dispather is required to make changes in orders and monitor their distribution by resaurants. Also, you can install as many application instances as you need (according to your license and workplaces).

5.4.3. Local Dispather is required to manage orders lifespan, delivery procedures, in each restaurant.

5.4.4. Settings in msconfig.ini (additional to standalone configuration or different from that):

5.4.4.1. For HeadOffice instance:

[Servers]
stRKMidServer=2.1.1.200
inRKMidPort=65456
stRKMidPass=

[Settings]
boUseCallCenter=1
boIsCenter=1
boDistributedDB=1

5.4.4.2. For local Reastaurant set the same, but boIsCenter=0

5.5. DictionaryEditor

5.5.1. Description of module

5.5.1.1. You have to install this application in CallCenter only. No need to install several instances.

5.5.1.2. This application provides you ability to edit Delivery references (link to CRM). They are: streets, towns, delivery zones, restaurants.

5.5.1.3. DictionaryEditor.exe is application to run.

5.5.1.4. It has connections both to RK7 and CRM, also to Delivery own DB.

5.5.2. Set DictionaryEditor.ini

[DBSRV]
stDBServer=..\DELIVERYRK7.FDB
stDefCharSet=WIN1251
dbuname=E5EBE5F8F6F3
dbpass=DFD3C5C8D7C6DDD7CB
[CSSRV]
stCSServer=2.1.1.200
inCSPort=9191
stCSKey=
stCSUnit=1
stCSUser=1
inCSGroup=1
inCSIdent=1
[RKSRV]
stRKServer=2.1.1.200
inRKPort=2233
stRKPass=

5.5.3. Run this application

5.5.3.1. Start RK7 station and CRM auth server before.

5.6. CCTransport

3.6.1. This application was made to control distribution of CallCenter orders by restaurants (front offices).

3.6.2. CCTRansport will send order from centre cashier server to that cashier server of chosen restaurant, which is set in its 'RestIP' property.

3.6.3. You install this CCTransport to Center only, only one instance.

3.6.4. In Delivery distributive this module is located in folder \CCTransport\.

3.6.5. For this module you must set file CCTransport.ini.

3.6.5.1. Example format.

[DBSRV]
stDBServer=127.0.0.1:C:\DB\DELIVERYRK7.FDB
stDefCharSet=WIN1251
dbuname=E5EBE5F8F6F3
dbpass=DFD3C5C8D7C6DDD7CB
inRestInThread=3        
[CSSRV]
stCSServer=2.1.1.200
inCSPort=9191               
stCSKey=3                      
stCSUnit=1                        
stCSUser=1                      
inCSGroup=2                    
inCSIdent=1                    
inVoidForCenterClose=1 
[RKSRV]
stRKServer=2.1.1.200
inRKPort=22300         
stRKPass=
inDLVExtSource=21  

3.6.5.2. Parameters description

3.6.5.2.1. DB connection and CRM parameters set the same way as for other modules (example, Operator.ini).

3.6.5.2.2. "inRestInThread" - maximum restaurants to sync at the same time.

3.6.5.2.3. "inVoidForCenterClose" - deletion reason ID (RK7).

3.6.5.2.4. "stRKServer" - Central (HeadOffice) cashier server IP address.

3.6.5.2.5. "inRKPort" - Central (HeadOffice) cashier server XML interface port.

3.6.5.2.6. "inDLVExtSource" - special identifier of order creation way. "21" is for Delivery Operator, "31" if for internet ordering. Do not change yourself.

3.6.6. In Delivery versions newer than 3.1.3.50 there is TranspGuard.exe module, contoller for CCTRansport.exe stable work.

3.6.6.1. You can start that as service with /install parameter (UCS_TRANSPORTGUARD).

3.6.6.2. Settings TranspGuard.ini example.

[C:\WORK\DeliveryRK7\CCTransport\CCTRansport.exe ]
FileName=C:\WORK\DeliveryRK7\CCTransport\CCTRansport.exe
ServiceName=DMCCT
WorkTimeOut=10
CloseTimeOut=40

3.6.6.2.1. "ServiceName" - set windows service name.
3.6.6.2.2. "WorkTimeOut" - interval to check CCTransport live state.

3.6.6.2.3. "FileName" and section name - full path to CCTRansport.exe

5.7. Licensing

5.7.1. You need as many license servers (and G.keys) as many locations you do have.

5.7.2. You set DLVServ in each location the same way as in standalone restaurant.

5.8. RK7 manager

5.8.1. You have to use extended property "RestIP" to fill in IP address and port of each restaurant location cashier server XML interface (external address/port, which will redirect data from internet or VPN gate). This property will be used by CCTransport in order to search for the location.

5.8.2. You have to install and use cashier server + station(s) in HeadOffice preset restaurant for Call center Operator(s).

5.8.3. You have to add XML interface to each cashier server, both in HeadOffice and Restaurant(s). These XML interfaces you have to set in "RestIP" and msconfig.ini (Dispather settings).

5.8.4. You have to set each "location" (restaurant) cashier server XML interface IP address and port in that extended property from 5.8.1.

5.8.4.1. It can be external (public) IP address in internet or VPN one.

5.8.5. You have to add XML interface for each cash station, which will be running locally in the same OS together with Delivery applications.


6. Troubleshooting


6.1. Advice

6.1.1. Follow general manual (http://support.ucs.ru/en/node/5532).

6.2. Frequently get errors (FGE)

6.2.1. No authorization connection. Means that cannot get proper licensing confirmation from DLVServ or CS5. Check corresponding licensing points.