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; }
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); }
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; } }
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("未能设置导购员,请重试!"); } }
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); }
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)); }
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)); }