private static PosEventPayment GetPaymentInfoById(int iTenderId, IberDepot depot, double amount)
        {
            foreach (IIberObject tender in depot.GetEnum(Constants.FILE_TENDER))
            {
                var idTender = tender.GetLongVal("ID");
                if (idTender == iTenderId)
                {
                    return new PosEventPayment
                    {
                        PaymentMethod = tender.GetStringVal("NAME"),
                        Amount = amount
                    };
                }
            }

            return PosEvent.GetPaymentNotFound();
        }
コード例 #2
0
        private void GetInternalItems(int iCheckId)
        {
            var pDepot = new IberDepot();

            try
            {
                _iTries = 0;
                var posCheck   = new PosCheck();
                var lstItems   = new List <ItemModel>();
                var dictLevels = new Dictionary <int, ItemModel>();



                foreach (IIberObject chkObject in pDepot.FindObjectFromId(INTERNAL_CHECKS, iCheckId))
                {
                    GetPromosIfAny(chkObject, posCheck);

                    foreach (IIberObject objItem in chkObject.GetEnum(INTERNAL_CHECKS_ENTRIES))
                    {
                        var modCode = objItem.GetLongVal("MOD_CODE");
                        if (modCode == 8)
                        {
                            continue;               //ITEM DELETED
                        }
                        var idItem = objItem.GetLongVal("DATA");
                        if (idItem <= 0)
                        {
                            continue;
                        }

                        //var type = objItem.GetStringVal("TYPE");
                        //var mode = objItem.GetStringVal("MODE");
                        //var routing = objItem.GetStringVal("ROUTING");
                        //var menu = objItem.GetStringVal("MENU");
                        var origin = objItem.GetLongVal("ORIGIN");

                        var idCheckItem = objItem.GetLongVal("ID");
                        var itemName    = objItem.GetStringVal("DISP_NAME");
                        var price       = objItem.GetDoubleVal("PRICE");
                        var level       = objItem.GetLongVal("LEVEL");
                        var item        = new ItemModel {
                            ItemId  = idItem, CheckItemId = idCheckItem, Name = itemName, IsIdSpecified = true, Price = price, Level = level,
                            ModCode = modCode, Origin = origin
                        };

                        //Console.WriteLine(type + mode + origin + routing + menu);

                        dictLevels[level] = item;

                        if (level > 0)
                        {
                            item.Parent = dictLevels[level - 1];
                        }

                        lstItems.Add(item);
                    }

                    posCheck.CheckId = iCheckId;
                    posCheck.GuidId  = Guid.NewGuid();
                    var dValue = chkObject.GetDoubleVal("SUBTOTAL");
                    posCheck.SubTotal = dValue;
                    dValue            = chkObject.GetDoubleVal("TAX");
                    posCheck.Tax      = dValue;
                    dValue            = chkObject.GetDoubleVal("COMPLETETOTAL");
                    posCheck.Total    = dValue;
                    posCheck.LstItems = lstItems;

                    //var strPosCheck = posCheck.Serialize();
                    //Console.WriteLine(strPosCheck);
                    _currentCheck = posCheck;
                    //SendPosCheckInfo(_currentCheck);
                }
            }
            catch //(Exception ex)
            {
                //MessageBox.Show(ex.Message + @" - " + ex.StackTrace);
            }
        }
        public PosEventPayment GetPayment(int iCheckId, int iTenderId, int iPaymentId)
        {
            var depot = new IberDepot();
            var lastPayment = PosEvent.GetPaymentNotFound();

            try
            {
                foreach (IIberObject chkObject in depot.FindObjectFromId(Constants.INTERNAL_CHECKS, iCheckId))
                {
                    foreach (IIberObject objItem in chkObject.GetEnum(Constants.INTERNAL_PAYMENTS))
                    {
                        try
                        {
                            var id = objItem.GetLongVal("ID");
                            var tenderId = objItem.GetLongVal("TENDER_ID");
                            var amount = objItem.GetDoubleVal("AMOUNT");

                            if (id == iPaymentId)
                            {
                                return GetPaymentInfoById(iTenderId, depot, amount);
                            }

                            if (tenderId == iTenderId)
                            {
                                lastPayment = GetPaymentInfoById(iTenderId, depot, amount);
                            }
                        }
                        catch (Exception ex)
                        {
                            Logger.Exception(ex);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Exception(ex);
            }

            return lastPayment;
        }