Het voorbeeld van de geleverde code toont hoe we een kassa openen die gebruikt maakt van OPOS-tools. Het gebruikt het event BeforeOpenCashDrawer beschikbaar in het object Payment van de BillingForm. Dit event maakt het mogelijk om tussen te komen voor de kassa-lade opent.
In deze programmatie gebruiken we de Windows OPOS standaardversie, meegeleverd door Microsoft.
Men moet dus de meegeleverde dll's uit het onderstaande zip-bestand overnemen en kopiëren in de hoofddirectory van Mercator.
// <ReferenceInclude>"POS.Devices.Opos_Constants.dll"</ReferenceInclude>
// <ReferenceInclude>"POS.Devices.OPOSCashDrawer.dll"</ReferenceInclude>
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using MercatorApi;
using MercatorUi;
using System.Reflection;
using System.Windows.Forms;
using POS.Devices;
using POS;
namespace Main
{
public class Customizer : MercatorUi.ICustomizers.IExec
{
public void Main(MercatorUi.ICustomizers.ExecAction Action)
{
if (Action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
{
MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawer += new MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerEventHandler(MercatorUiFormsBillingBillingObjectsPayments_BeforeOpenCashDrawer);
}
if (Action == MercatorUi.ICustomizers.ExecAction.DossierClose)
{
MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawer -= new MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerEventHandler(MercatorUiFormsBillingBillingObjectsPayments_BeforeOpenCashDrawer);
}
}
void MercatorUiFormsBillingBillingObjectsPayments_BeforeOpenCashDrawer(MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerEventArgs e)
{
POS.Devices.OPOSCashDrawer tiroir = new POS.Devices.OPOSCashDrawer();
int rc = 0;
rc = tiroir.Open(Globals.ParamPos["PORT_TIR"]);
if (rc != (int)OPOS_Constants.OPOS_SUCCESS)
{
Dialogs.Stop(((OPOS_Constants)Enum.ToObject(typeof(OPOS_Constants), rc)).ToString());
e.Result = MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerResultEnum.Failed;
return;
}
rc = tiroir.ClaimDevice(200);
tiroir.DeviceEnabled = true;
if (rc != (int)OPOS_Constants.OPOS_SUCCESS)
{
Dialogs.Stop(((OPOS_Constants)Enum.ToObject(typeof(OPOS_Constants), rc)).ToString());
e.Result = MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerResultEnum.Failed;
return;
}
rc = tiroir.OpenDrawer();
if (rc != (int)OPOS_Constants.OPOS_SUCCESS)
{
Dialogs.Stop(((OPOS_Constants)Enum.ToObject(typeof(OPOS_Constants), rc)).ToString());
e.Result = MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerResultEnum.Failed;
return;
}
e.Result = MercatorUi.Forms.Billing.BillingObjects.Payments.BeforeOpenCashDrawerResultEnum.Done;
tiroir.DeviceEnabled = false;
tiroir.ReleaseDevice();
tiroir.Close();
}
}
}
Te laden :
0000002641.zip (43 Kb - 28-04-2016)