public DateTime RefundAll(int reason, string paySn, decimal amount, string uid, string apicodes, string newOrderSn, string newCustomOrderSn, DateTime createdt) { var order = SaleOrdersService.CurrentRepository.Entities.FirstOrDefault(o => o.CompanyId == CompanyId && o.CustomOrderSn == paySn && o.StoreId == StoreId && o.State == 0); var newOrder = new SaleOrders() { StoreId = order.StoreId, //门店id MachineSN = order.MachineSN, //pos机号 PaySN = newOrderSn, //订单流水号 CustomOrderSn = newCustomOrderSn, //订单流水号 ReFundOrderCustomOrderSn = order.CustomOrderSn, //原订单流水号 TotalAmount = -order.TotalAmount, //优惠后金额 PreferentialPrice = order.PreferentialPrice, //优惠金额 ApiCode = apicodes, //支付方式 CreateUID = uid, //收银员工号 ReturnOrderUID = uid, ReturnDT = createdt, CreateDT = createdt, CompanyId = order.CompanyId, ProductCount = -order.ProductCount, Reason = reason, Type = 3, State = 1, MemberId = order.MemberId, ActivityId = order.ActivityId, Salesman = order.Salesman, Receive = -order.Receive, IsTest = IsSalesclerkTest, OrderDiscount = order.OrderDiscount, InInventory = 0, IsProcess = false }; var saleOrdersDetails = SaleDetailService.FindList(o => o.PaySN == order.PaySN).ToList(); foreach (var item in saleOrdersDetails) { SaleDetail _saleDetail = new SaleDetail() { PaySN = newOrderSn, ProductCode = item.ProductCode, AveragePrice = item.AveragePrice,//均价 CompanyId = CompanyId, Total = -item.Total, Barcode = item.Barcode, //商品条码 PurchaseNumber = -item.PurchaseNumber, //销售数量 BuyPrice = item.BuyPrice, //系统进价 SysPrice = item.SysPrice, //系统售价 ActualPrice = item.ActualPrice, //销售价 Title = item.Title, ScanBarcode = item.ScanBarcode, SalesClassifyId = item.SalesClassifyId,//销售分类id }; SaleDetailService.CurrentRepository.Add(_saleDetail, false); } SaleOrdersService.CurrentRepository.Add(newOrder); return(createdt); }