Example #1
0
        public object NoNeedPaySave([FromBody] RefundRequest requestParams)
        {
            var orderChangeRefund = OrderChangeFactory.Factory(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.Mode, requestParams.DeviceSn);

            return(orderChangeRefund.SaveRecord(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.Reason, requestParams.Amount, requestParams.Amount, null, requestParams.DeviceSn));
            //return null;
        }
Example #2
0
 public object ClearRefundOrChangeInfo([FromBody] ChangeRefundRequest requestParams)
 {
     OrderChangeFactory.Disposable(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.Mode, requestParams.DeviceSn);
     //var orderChangeRefund = OrderChangeFactory.Factory(requestParams.StoreId, requestParams.MachineSn, requestParams.CompanyId, requestParams.Mode);
     //orderChangeRefund.Clear();
     return(null);
 }
Example #3
0
 public object SetOldCustomerOrderSn([FromBody] SetOldCustomerOrderSnRequset requestParams)
 {
     try
     {
         var orderChangeRefund = OrderChangeFactory.Factory(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.Mode, requestParams.DeviceSn);
         var result            = orderChangeRefund.SetOldOrderSN(requestParams.OldCustomerOrderSN, requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.DeviceSn);
         return(result);
     }
     catch (PosException)
     {
         throw;
     }
 }
Example #4
0
        public SaleManInfo SetSaleMan([FromBody] SetSaleManRequest requestParams)
        {
            switch (requestParams.Source)
            {
            case 0:
            {
                var shoppingcart = ShoppingCartFactory.Factory(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.DeviceSn);
                var result       = shoppingcart.SetSaleMan(requestParams.SaleMan);
                ShoppingCartFactory.ResetCache(shoppingcart, requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.DeviceSn);
                return(result);
            }

            case 1:
            case 2:
            {
                var orderChangeRefund = OrderChangeFactory.Factory(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.Mode, requestParams.DeviceSn);
                var result            = orderChangeRefund.SetSaleMan(requestParams.SaleMan, requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.DeviceSn);
                return(result);
            }

            default:
                throw new PosException("未能设置导购员,请重试!");
            }
        }
Example #5
0
        public object Pay([FromBody] PayRequest requestParams)
        {
            if (requestParams == null || requestParams.Payway == null || requestParams.Payway.Count() == 0)
            {
                throw new PosException("未知支付方式!");
            }
            string key = string.Format("{0}-{1}-{2}-{3}", requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.DeviceSn);

            lock (lockobjforadd)
            {
                if (!lockobjs.ContainsKey(key))
                {
                    lockobjs = lockobjs.ToList().Concat(new List <KeyValuePair <string, object> >()
                    {
                        new KeyValuePair <string, object>(key, new object())
                    }).ToDictionary(o => o.Key, o => o.Value);
                }
            }
            var    dict    = lockobjs;//防止并发
            var    lockkv  = dict.First(o => o.Key == key);
            object lockobj = new object();

            if (!lockkv.Equals(default(KeyValuePair <string, object>)) && lockkv.Value != null)
            {
                lockobj = lockkv.Value;
            }

            DateTime createDt = DateTime.Now;

            lock (lockobj)
            {
                switch (requestParams.Mode)
                {
                case PayAction.RefundAll:    //退单
                    return(DoPay(requestParams.CID, requestParams.StoreId, requestParams.MachineSn, requestParams.DeviceSn, Guid.NewGuid().ToString("N"), requestParams, createDt, (o) =>
                    {
                        OrderChangeRefundSale.RefundAll(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.Reason, requestParams.OldOrderSn, requestParams.OrderAmount, requestParams.DeviceSn, o, createDt);
                    }));

                case PayAction.Refund:    //退货
                    var orderRefund = OrderChangeFactory.Factory(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, AfterSaleMode.Refunding, requestParams.DeviceSn);
                    return(DoPay(requestParams.CID, requestParams.StoreId, requestParams.MachineSn, requestParams.DeviceSn, orderRefund.PaySn, requestParams, createDt, (o) =>
                    {
                        orderRefund.SaveRecord(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.Reason, requestParams.OrderAmount, requestParams.Receivable, o, requestParams.DeviceSn);
                    }));

                case PayAction.Change:    //换货支付
                    var orderChange = OrderChangeFactory.Factory(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, AfterSaleMode.Changing, requestParams.DeviceSn);
                    return(DoPay(requestParams.CID, requestParams.StoreId, requestParams.MachineSn, requestParams.DeviceSn, orderChange.PaySn, requestParams, createDt, (o) =>
                    {
                        orderChange.SaveRecord(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.Reason, requestParams.OrderAmount, requestParams.Receivable, o, requestParams.DeviceSn);
                    }));

                case PayAction.Sale:    //销售支付

                    var shoppingcart = ShoppingCartFactory.Factory(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.DeviceSn);
                    var orderList    = shoppingcart.GetOrdeList();
                    if (orderList == null || orderList.Count() == 0)
                    {
                        throw new PosException("该商品已结算,遇到网络异常,请手动按 Q 清空购物车!");
                    }
                    try
                    {
                        return(DoPay(requestParams.CID, requestParams.StoreId, requestParams.MachineSn, requestParams.DeviceSn, shoppingcart.OrderSN, requestParams, createDt, (o) =>
                        {
                            shoppingcart.Record(o.ApiCodes, requestParams.OrderAmount, requestParams.Receivable, requestParams.DeviceSn, createDt);
                        }));
                    }
                    catch (Exception ex)
                    {
                        throw;
                    }
                }
            }
            return(createDt);
        }
Example #6
0
        public object RemoveRefundOrChangeInfo([FromBody] ChangeRefundRequest requestParams)
        {
            var orderChangeRefund = OrderChangeFactory.Factory(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.Mode, requestParams.DeviceSn);

            return(orderChangeRefund.Remove(requestParams.Barcode, requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.RecordId, requestParams.ProductType));
        }
Example #7
0
        public object AddRefundOrChangeInfo([FromBody] ChangeRefundRequest requestParams)
        {
            var orderChangeRefund = OrderChangeFactory.Factory(requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.Mode, requestParams.DeviceSn);

            return(orderChangeRefund.Add(requestParams.Barcode, requestParams.StoreId, requestParams.MachineSn, requestParams.CID, requestParams.Status));
        }