public ReturnType AddStockDetail(StockDetail stockdetail) { try { using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { alading.AddToStockDetail(stockdetail); if (alading.SaveChanges() == 1) { return(ReturnType.Success); } else { return(ReturnType.PropertyExisted); } } } catch (SqlException sex) { return(ReturnType.ConnFailed); } catch (Exception ex) { return(ReturnType.OthersError); } }
public ReturnType AddInOutAndDetails(StockInOut stockInOut, PayCharge payChage, List <StockDetail> sdList, List <StockHouseProduct> shpList, List <View_StockItemProduct> vsipList) { System.Data.Common.DbTransaction tran = null; using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { try { alading.Connection.Open(); tran = alading.Connection.BeginTransaction(); alading.AddToPayCharge(payChage); alading.AddToStockInOut(stockInOut); foreach (StockDetail sd in sdList) { alading.AddToStockDetail(sd); } foreach (StockHouseProduct shp in shpList) { StockHouseProduct tmpshp = alading.StockHouseProduct.FirstOrDefault(c => c.HouseProductCode == shp.HouseProductCode); if (tmpshp != null) { tmpshp.Num = shp.Num; } else { alading.AddToStockHouseProduct(shp); } } foreach (View_StockItemProduct vsip in vsipList) { StockItem stockItem = alading.StockItem.FirstOrDefault(s => s.OuterID == vsip.OuterID); StockProduct stockProduct = alading.StockProduct.FirstOrDefault(s => s.SkuOuterID == vsip.SkuOuterID); stockItem.TotalQuantity = Math.Round(vsip.TotalQuantity, 3); stockProduct.SkuQuantity = vsip.SkuQuantity; stockProduct.LastStockPrice = vsip.LastStockPrice; stockProduct.AvgStockPrice = vsip.AvgStockPrice; } alading.SaveChanges(); tran.Commit(); return(ReturnType.Success); } catch (System.Exception ex) { if (tran != null) { tran.Rollback(); } return(ReturnType.SaveFailed); } finally { if (alading != null && alading.Connection.State != System.Data.ConnectionState.Closed) { alading.Connection.Close(); } } } }
public ReturnType AddStockInOutDetail(List <Alading.Entity.StockInOut> stockInOutList, List <StockDetail> stockDetailList) { try { using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { StockInOut stock = alading.StockInOut.FirstOrDefault(i => i.InOutCode == stockInOutList[0].InOutCode); if (stock == null) { return(ReturnType.PropertyExisted); } foreach (StockInOut stockinout in stockInOutList) { alading.AddToStockInOut(stockinout); } foreach (StockDetail stockDetail in stockDetailList) { StockHouseProduct stockProduct = alading.StockHouseProduct.FirstOrDefault(i => i.SkuOuterID == stockDetail.ProductSkuOuterId && i.HouseCode == stockDetail.StockHouseCode && i.LayoutCode == stockDetail.StockLayOutCode); if (stockProduct != null) { if (stockDetail.DetailType == (int)DetailType.AllocateIn) { stockProduct.Num += stockDetail.Quantity; } else if (stockDetail.DetailType == (int)DetailType.AllocateOut) { stockProduct.Num -= stockDetail.Quantity; } } else { //从一个仓库调拨到另一个仓库中,此仓库没有此product StockHouseProduct newProduct = new StockHouseProduct(); newProduct.HouseName = stockDetail.HouseName; newProduct.HouseCode = stockDetail.StockHouseCode; newProduct.HouseProductCode = Guid.NewGuid().ToString(); newProduct.LayoutCode = stockDetail.StockLayOutCode; newProduct.LayoutName = stockDetail.LayoutName; newProduct.Num = stockDetail.Quantity; newProduct.SkuOuterID = stockDetail.ProductSkuOuterId; alading.AddToStockHouseProduct(newProduct); } alading.AddToStockDetail(stockDetail); } alading.SaveChanges(); return(ReturnType.Success); } } catch (Exception ex) { return(ReturnType.OthersError); } }
public ReturnType InitInput(StockItem stockItem, List <StockProduct> stockProductList, List <StockDetail> stockDetailList, List <StockHouseProduct> houseProductList) { System.Data.Common.DbTransaction tran = null; using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { try { alading.Connection.Open(); tran = alading.Connection.BeginTransaction(); alading.AddToStockItem(stockItem); foreach (StockProduct sp in stockProductList) { alading.AddToStockProduct(sp); } foreach (StockDetail sd in stockDetailList) { alading.AddToStockDetail(sd); } foreach (StockHouseProduct sh in houseProductList) { alading.AddToStockHouseProduct(sh); } alading.SaveChanges(); tran.Commit(); return(ReturnType.Success); } catch (System.Exception ex) { if (tran != null) { tran.Rollback(); } return(ReturnType.SaveFailed); } finally { if (alading != null && alading.Connection.State != System.Data.ConnectionState.Closed) { alading.Connection.Close(); } } } }
public ReturnType AddStockDetail(List <StockDetail> stockdetailList) { try { using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { foreach (StockDetail stockdetail in stockdetailList) { alading.AddToStockDetail(stockdetail); } alading.SaveChanges(); return(ReturnType.Success); } } catch (SqlException sex) { return(ReturnType.ConnFailed); } catch (Exception ex) { return(ReturnType.OthersError); } }
public ReturnType UpdateTradeRefund(List <TradeRefund> tradeRefundList, List <StockProduct> stockProductList, List <StockHouseProduct> houseProList , List <StockInOut> stockInOutList, List <StockDetail> stockDetailList, PayCharge payCharge, List <string> refundIdList , List <string> outerSkuIdList, List <string> outerIdList) { try { using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { /*更新TradeRefund*/ var refundResult = alading.TradeRefund.Where(BuildWhereInExpression <TradeRefund, string>(v => v.refund_id, refundIdList)); if (refundResult == null) { return(ReturnType.NotExisted); } foreach (TradeRefund tradeRefund in tradeRefundList)//需要更新的新数据 { TradeRefund oldRefund = refundResult.Where(c => c.refund_id == tradeRefund.refund_id).FirstOrDefault(); //TradeRefundCopydata(oldRefund, tradeRefund); oldRefund.IsRecieved = tradeRefund.IsRecieved; oldRefund.LocalPrivyC = tradeRefund.LocalPrivyC; } /*更新StockProduct 和 StockItem*/ var stockProductResult = alading.StockProduct.Where(BuildWhereInExpression <StockProduct, string>(v => v.SkuOuterID, outerSkuIdList)); var stockItemResult = alading.StockItem.Where(BuildWhereInExpression <StockItem, string>(v => v.OuterID, outerIdList)); if (stockProductResult == null || stockItemResult == null) { return(ReturnType.NotExisted); } foreach (StockProduct stockProduct in stockProductList) { //获取StockProduct的原始数据 StockProduct oldStockProduct = stockProductResult.Where(c => c.SkuOuterID == stockProduct.SkuOuterID).FirstOrDefault(); //获取StockItem的原始数据 StockItem oldStockItem = stockItemResult.Where(c => c.OuterID == stockProduct.OuterID).FirstOrDefault(); if (oldStockProduct != null && oldStockItem != null) { //获取StockProduct的相关原始数据的商品数量 oldStockProduct.SkuQuantity = oldStockProduct.SkuQuantity + stockProduct.SkuQuantity; //获取oldStockItem的相关原始数据的商品数量 oldStockItem.TotalQuantity = oldStockItem.TotalQuantity + stockProduct.SkuQuantity; } else { return(ReturnType.NotExisted); } } /*添加或更新StockHouseProduct*/ var stockHouseProResult = alading.StockHouseProduct.Where(BuildWhereInExpression <StockHouseProduct, string>(v => v.SkuOuterID, outerSkuIdList)); foreach (StockHouseProduct stockHousePro in houseProList) { StockHouseProduct oldPro = stockHouseProResult.Where(c => c.SkuOuterID == stockHousePro.SkuOuterID && c.HouseCode == stockHousePro.HouseCode && c.LayoutCode == stockHousePro.LayoutCode).FirstOrDefault(); if (oldPro != null) { oldPro.Num += stockHousePro.Num; } else { stockHousePro.HouseProductCode = Guid.NewGuid().ToString(); alading.AddToStockHouseProduct(stockHousePro); } } /*添加StockInOut*/ foreach (StockInOut stockInOut in stockInOutList) { alading.AddToStockInOut(stockInOut); } /*添加StockDetail*/ foreach (StockDetail stockDetail in stockDetailList) { alading.AddToStockDetail(stockDetail); } alading.AddToPayCharge(payCharge); alading.SaveChanges(); return(ReturnType.Success); } } catch (SqlException sex) { return(ReturnType.ConnFailed); } catch (Exception ex) { return(ReturnType.OthersError); } }
public ReturnType AddStockCheckAndDetails(StockCheck stockCheck, List <StockCheckDetail> CheckDetails) { try { using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { alading.AddToStockCheck(stockCheck); foreach (StockCheckDetail detail in CheckDetails) { alading.AddToStockCheckDetail(detail); #region StockInOut Alading.Entity.StockInOut stockInOut = new Alading.Entity.StockInOut(); stockInOut.AmountTax = 0; stockInOut.DiscountFee = 0; stockInOut.DueFee = 0; stockInOut.FreightCode = string.Empty; stockInOut.FreightCompany = string.Empty; stockInOut.InOutCode = Guid.NewGuid().ToString(); stockInOut.InOutTime = DateTime.Now; if (detail.ProfitType == (int)ProfitType.PROFIT) { stockInOut.InOutType = (int)InOutType.ProfitIn; } else { stockInOut.InOutType = (int)InOutType.LossOut; } stockInOut.TradeOrderCode = string.Empty; stockInOut.OperatorCode = stockCheck.OperatorCode; stockInOut.OperatorName = string.Empty; stockInOut.PayType = (int)PayType.CASH; stockInOut.IsSettled = true; stockInOut.PayTerm = 0; stockInOut.IncomeTime = DateTime.MinValue; stockInOut.PayThisTime = 0; #endregion #region StockDetail StockDetail stockDetailOut = new StockDetail(); stockDetailOut.ProductSkuOuterId = detail.SkuOuterID; stockDetailOut.DetailRemark = string.Empty; stockDetailOut.DetailType = (int)DetailType.AllocateOut; stockDetailOut.DurabilityDate = DateTime.Now; stockDetailOut.InOutCode = stockInOut.InOutCode; stockDetailOut.Price = 0; stockDetailOut.Quantity = detail.CheckQuantity; stockDetailOut.StockDetailCode = Guid.NewGuid().ToString(); stockDetailOut.StockHouseCode = stockCheck.StockHouseCode; stockDetailOut.StockLayOutCode = detail.LayoutCode; stockDetailOut.Tax = string.Empty; stockDetailOut.TotalFee = 0; #endregion StockProduct product = alading.StockProduct.FirstOrDefault(i => i.SkuOuterID == detail.SkuOuterID); if (product != null) { product.SkuQuantity = detail.Quantity;//归档 } alading.AddToStockInOut(stockInOut); alading.AddToStockDetail(stockDetailOut); } alading.SaveChanges(); return(ReturnType.Success); } } catch (Exception ex) { throw ex; } }
public ReturnType UpdateStock(List <StockProduct> stockProductList, List <StockHouseProduct> stockHouseProList, List <StockInOut> stockInOutList , List <StockDetail> stockDetailList, PayCharge payCharge, List <string> outerSkuIdList, List <string> outerIdList)//zxl { try { using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { #region 更新StockProduct 和 StockItem var stockProductResult = alading.StockProduct.Where(BuildWhereInExpression <StockProduct, string>(v => v.SkuOuterID, outerSkuIdList)); var stockItemResult = alading.StockItem.Where(BuildWhereInExpression <StockItem, string>(v => v.OuterID, outerIdList)); if (stockProductResult == null || stockItemResult == null) { return(ReturnType.NotExisted); } foreach (StockProduct stockProduct in stockProductList) { //获取StockProduct的原始数据 StockProduct oldStockProduct = stockProductResult.Where(c => c.SkuOuterID == stockProduct.SkuOuterID).FirstOrDefault(); //获取StockItem的原始数据 StockItem oldStockItem = stockItemResult.Where(c => c.OuterID == stockProduct.OuterID).FirstOrDefault(); //获取StockProduct的相关原始数据的商品数量 oldStockProduct.SkuQuantity += stockProduct.SkuQuantity; //获取oldStockItem的相关原始数据的商品数量 oldStockItem.TotalQuantity += stockProduct.SkuQuantity; } #endregion #region 添加或更新StockHouseProduct var stockHouseProResult = alading.StockHouseProduct.Where(BuildWhereInExpression <StockHouseProduct, string>(v => v.SkuOuterID, outerSkuIdList)); foreach (StockHouseProduct stockHousePro in stockHouseProList) { StockHouseProduct oldPro = stockHouseProResult.Where(c => c.SkuOuterID == stockHousePro.SkuOuterID && c.HouseCode == stockHousePro.HouseCode && c.LayoutCode == stockHousePro.LayoutCode).FirstOrDefault(); if (oldPro != null) { oldPro.Num += stockHousePro.Num; } else { stockHousePro.HouseProductCode = Guid.NewGuid().ToString(); alading.AddToStockHouseProduct(stockHousePro); } } #endregion #region 添加StockInOut foreach (StockInOut stockInOut in stockInOutList) { alading.AddToStockInOut(stockInOut); } #endregion #region 添加StockDetail foreach (StockDetail stockDetail in stockDetailList) { alading.AddToStockDetail(stockDetail); } #endregion #region 添加PayCharge alading.AddToPayCharge(payCharge); #endregion alading.SaveChanges(); return(ReturnType.Success); } } catch (SqlException sex) { return(ReturnType.ConnFailed); } catch (Exception ex) { return(ReturnType.OthersError); } }
public ReturnType Check(int num, List <StockDetail> stockDetailList, StockDetail checkDetail, StockCheckDetail stockCheckDetail) { System.Data.Common.DbTransaction tran = null; using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { try { alading.Connection.Open(); tran = alading.Connection.BeginTransaction(); StockProduct stockProduct = alading.StockProduct.FirstOrDefault(c => c.SkuOuterID == checkDetail.ProductSkuOuterId); StockItem stockItem = alading.StockItem.FirstOrDefault(c => c.OuterID == stockProduct.OuterID); StockHouseProduct stockHouseProduct = alading.StockHouseProduct.FirstOrDefault(c => c.HouseCode == checkDetail.StockHouseCode && c.LayoutCode == checkDetail.StockLayOutCode && c.SkuOuterID == checkDetail.ProductSkuOuterId); /*修改相关数量,若报溢则加,报损则减*/ stockProduct.SkuQuantity += num; stockItem.TotalQuantity += num; if (stockHouseProduct != null) { stockHouseProduct.Num += num; } else { stockHouseProduct = new StockHouseProduct(); stockHouseProduct.HouseCode = checkDetail.StockHouseCode; stockHouseProduct.HouseName = checkDetail.HouseName; stockHouseProduct.HouseProductCode = System.Guid.NewGuid().ToString(); stockHouseProduct.LayoutCode = checkDetail.StockLayOutCode; stockHouseProduct.LayoutName = checkDetail.LayoutName; stockHouseProduct.Num = num; stockHouseProduct.SkuOuterID = checkDetail.ProductSkuOuterId; alading.AddToStockHouseProduct(stockHouseProduct); } /*将出入库详情添加到历史表中并在StockDetail表中删除该数据*/ foreach (StockDetail stockDetail in stockDetailList) { HistoryStockDetail hisStockDetail = new HistoryStockDetail(); hisStockDetail.DetailRemark = stockDetail.DetailRemark; hisStockDetail.DetailType = stockDetail.DetailType; hisStockDetail.DurabilityDate = stockDetail.DurabilityDate; hisStockDetail.HistoryStockDetailCode = stockDetail.StockDetailCode; hisStockDetail.HouseName = stockDetail.HouseName; hisStockDetail.InOutCode = stockDetail.InOutCode; hisStockDetail.LayoutName = stockDetail.LayoutName; hisStockDetail.Price = stockDetail.Price; hisStockDetail.ProductSkuOuterId = stockDetail.ProductSkuOuterId; hisStockDetail.Quantity = stockDetail.Quantity; hisStockDetail.SearchText = stockDetail.SearchText; hisStockDetail.StockHouseCode = stockDetail.StockHouseCode; hisStockDetail.StockLayOutCode = stockDetail.StockLayOutCode; hisStockDetail.Tax = stockDetail.Tax; hisStockDetail.TotalFee = stockDetail.TotalFee; alading.AddToHistoryStockDetail(hisStockDetail); StockDetail temp = alading.StockDetail.FirstOrDefault(c => c.StockDetailCode == stockDetail.StockDetailCode); if (temp != null) { alading.DeleteObject(temp); } } /*将盘点生成的入库详情加入StockDetail表中,做为初始数据*/ alading.AddToStockDetail(checkDetail); alading.AddToStockCheckDetail(stockCheckDetail); alading.SaveChanges(); tran.Commit(); return(ReturnType.Success); } catch (System.Exception ex) { if (tran != null) { tran.Rollback(); } return(ReturnType.SaveFailed); } finally { if (alading != null && alading.Connection.State != System.Data.ConnectionState.Closed) { alading.Connection.Close(); } } } }
/// <summary> /// 标记为配货并出库 /// </summary> /// <param name="houseProductList">数量即为出库数量</param> /// <param name="customtid">交易的唯一标识</param> /// <returns></returns> public ReturnType AllocationAndOutput(List <StockHouseProduct> houseProductList, string customtid) { System.Data.Common.DbTransaction tran = null; using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { try { alading.Connection.Open(); tran = alading.Connection.BeginTransaction(); StockInOut stockInOut = new StockInOut(); stockInOut.InOutCode = System.Guid.NewGuid().ToString();//GUID?? foreach (StockHouseProduct shp in houseProductList) { StockProduct stockProduct = alading.StockProduct.FirstOrDefault(c => c.SkuOuterID == shp.SkuOuterID); stockProduct.SkuQuantity -= shp.Num; StockItem item = alading.StockItem.FirstOrDefault(c => c.OuterID == stockProduct.OuterID); item.TotalQuantity -= shp.Num; StockHouseProduct stockHouseProduct = alading.StockHouseProduct.FirstOrDefault(c => c.SkuOuterID == shp.SkuOuterID && c.HouseCode == shp.HouseCode && c.LayoutCode == shp.LayoutCode); stockHouseProduct.Num -= shp.Num; #region StockDetail StockDetail stockDetail = new StockDetail(); stockDetail.DetailRemark = "销售自动出库"; stockDetail.DetailType = (int)DetailType.TaobaoSaleOut; stockDetail.DurabilityDate = DateTime.Now; stockDetail.HouseName = stockHouseProduct.HouseName; stockDetail.InOutCode = stockInOut.InOutCode;////////// stockDetail.LayoutName = stockHouseProduct.LayoutCode; stockDetail.Price = float.Parse(stockProduct.SkuPrice.ToString()); stockDetail.ProductSkuOuterId = stockProduct.SkuOuterID; stockDetail.Quantity = shp.Num; //出库数量 stockDetail.SearchText = string.Empty; //搜索字段 stockDetail.StockDetailCode = System.Guid.NewGuid().ToString(); // stockDetail.StockHouseCode = stockHouseProduct.HouseCode; stockDetail.StockLayOutCode = stockHouseProduct.LayoutCode; stockDetail.Tax = item.Tax;//税率 stockDetail.TotalFee = float.Parse((stockProduct.SkuPrice * shp.Num).ToString()); alading.AddToStockDetail(stockDetail); #endregion stockInOut.DiscountFee += stockDetail.TotalFee;//这么算可对? } Trade trade = alading.Trade.FirstOrDefault(c => c.CustomTid == customtid); trade.LocalStatus = LocalTradeStatus.AssortedNotSent; stockInOut.AmountTax = 0.0f; //税率怎么算? stockInOut.DueFee = stockInOut.DiscountFee; //?? stockInOut.FreightCode = string.Empty; stockInOut.FreightCompany = string.Empty; stockInOut.HouseCodeIn = string.Empty; stockInOut.HouseCodeOut = string.Empty; stockInOut.HouseNameIn = string.Empty; stockInOut.HouseNameOut = string.Empty; stockInOut.IncomeTime = DateTime.Now; stockInOut.InOutStatus = (int)InOutStatus.AllSend; stockInOut.InOutTime = DateTime.Now; stockInOut.InOutType = (int)InOutType.SaleOut; stockInOut.IsSettled = true; stockInOut.OperatorCode = string.Empty; //操作人编码??? stockInOut.OperatorName = string.Empty; //操作人姓名?? stockInOut.PayTerm = 0;; stockInOut.PayThisTime = stockInOut.DueFee; stockInOut.PayType = (int)PayType.ALIPAY; stockInOut.SearchText = string.Empty;//搜索字段 stockInOut.TradeOrderCode = trade.CustomTid; stockInOut.TransportCode = string.Empty; alading.AddToStockInOut(stockInOut); alading.SaveChanges(); tran.Commit(); return(ReturnType.Success); } catch (System.Exception ex) { if (tran != null) { tran.Rollback(); } return(ReturnType.SaveFailed); } finally { if (alading != null && alading.Connection.State != System.Data.ConnectionState.Closed) { alading.Connection.Close(); } } } }