U bevindt zich nu op een technische pagina over de software Mercator. Deze pagina bevat specifieke informatie die bestemd is voor professionals van de software Mercator. Wenst u naar algemenere informatie over Mercator door te gaan?


   Deze vraag niet meer stellen

Een kassalade openen met de OPOS-bibliotheek

0000002641     -      29-06-2016

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.

Zoom
// <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)