public ReturnType RemoveStockInOut(string stockinoutCode) { try { using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { /*List<StockInOut> list = alading.StockInOut.Where(p => p.StockInOutID == stockinoutID).ToList();*/ List <StockInOut> list = alading.StockInOut.Where(p => p.InOutCode == stockinoutCode).ToList(); if (list.Count == 0) { return(ReturnType.NotExisted); } else { StockInOut sy = list.First(); alading.DeleteObject(sy); alading.SaveChanges(); return(ReturnType.Success); } } } catch (SqlException sex) { return(ReturnType.ConnFailed); } catch (System.Exception ex) { return(ReturnType.OthersError); } }
private void SaveButton_Click(object sender, EventArgs e) { try { StockInOut stockInOut = new StockInOut(); Transactions transactions = new Transactions(); DateTime today = DateTime.Today; stockInOut.ItemId = Convert.ToInt32(itemComboBox.SelectedValue.ToString()); stockInOut.Quantity = Convert.ToInt32(stockInQuantityTextBox.Text); stockInOut.StockId = 1; stockInOut.Status = null; stockInOut.Date = today.ToString("dd/MM/yyyy"); _availq = Update(transactions) + stockInOut.Quantity; transactions.AvailableQuantity = _availq; bool isAdded = Add(stockInOut); if (isAdded) { MessageBox.Show("Stock In successfully"); } else { MessageBox.Show("Error"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void Add(StockInOut stockInOut) { foreach (DataGridViewRow rows in dataGridView1.Rows) { Transactions transactions = new Transactions(); DateTime today = DateTime.Today; stockInOut.ItemId = Convert.ToInt32(rows.Cells["ItemId"].Value); stockInOut.Quantity = Convert.ToInt32(rows.Cells["Quantity"].Value); stockInOut.StockId = 2; stockInOut.Date = today.ToString("dd/MM/yyyy"); _availq = Convert.ToInt32(rows.Cells["Avail"].Value) - stockInOut.Quantity; transactions.AvailableQuantity = _availq; if (stockInOut.ItemId > 0) { string connectionString = @"server=DESKTOP-412B1P8\SQLEXPRESS; database=StockManagement; integrated security=true"; SqlConnection con = new SqlConnection(connectionString); string query = @"INSERT INTO StockInOut VALUES('" + stockInOut.ItemId + "','" + stockInOut.Quantity + "','" + stockInOut.StockId + "','" + stockInOut.Date + "','" + stockInOut.Status + "') UPDATE Transactions SET AvailableQuantity = '" + _availq + "' WHERE ItemId = '" + stockInOut.ItemId + "' "; SqlCommand command = new SqlCommand(query, con); con.Open(); bool isAdded = command.ExecuteNonQuery() > 0; con.Close(); } } }
public ReturnType AddStockInOut(StockInOut stockinout) { try { using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { alading.AddToStockInOut(stockinout); 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); } }
private void itemComboBox_SelectedIndexChanged(object sender, EventArgs e) { _itemId = Convert.ToInt32(itemComboBox.SelectedValue.ToString()); StockInOut stockInOut = new StockInOut(); if (itemComboBox.SelectedIndex > 0) { reorderLabel.Text = OrderLevelCheck(stockInOut).ToString(); availableQuantityLabel.Text = availLevelCheck(stockInOut).ToString(); } }
private int OrderLevelCheck(StockInOut stockInOut) { Int32 reorder = 0; string connectionString = @"server=DESKTOP-412B1P8\SQLEXPRESS; database=StockManagement; integrated security=true"; SqlConnection con = new SqlConnection(connectionString); string query = @"SELECT ReorderLevel FROM Items WHERE Id = '" + _itemId + "' "; SqlCommand command = new SqlCommand(query, con); con.Open(); reorder = (int)command.ExecuteScalar(); con.Close(); return(reorder); }
private int availLevelCheck(StockInOut stockInOut) { Int32 avail = 0; string connectionString = @"server=DESKTOP-412B1P8\SQLEXPRESS; database=StockManagement; integrated security=true"; SqlConnection con = new SqlConnection(connectionString); string query = @"SELECT AvailableQuantity FROM Transactions WHERE ItemId = '" + _itemId + "' "; SqlCommand command = new SqlCommand(query, con); con.Open(); avail = (int)command.ExecuteScalar(); con.Close(); return(avail); }
private void LostButton_Click(object sender, EventArgs e) { try { StockInOut stockInOut = new StockInOut(); stockInOut.Status = 3.ToString(); Add(stockInOut); dataGridView1.DataSource = null; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public ReturnType RemoveInOutAndDetails(string inOutCode) { System.Data.Common.DbTransaction tran = null; using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { try { alading.Connection.Open(); tran = alading.Connection.BeginTransaction(); List <StockInOut> list = alading.StockInOut.Where(p => p.InOutCode == inOutCode).ToList(); if (list.Count == 0) { return(ReturnType.NotExisted); } else { StockInOut sy = list.First(); foreach (StockDetail sd in alading.StockDetail.Where(c => c.InOutCode == inOutCode)) { alading.DeleteObject(sd); } alading.DeleteObject(sy); alading.SaveChanges(); } alading.SaveChanges(); tran.Commit(); return(ReturnType.Success); } catch (SqlException sex) { return(ReturnType.ConnFailed); } 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(); } } } }
private bool Add(StockInOut stockInOut) { string connectionString = @"server=DESKTOP-412B1P8\SQLEXPRESS; database=StockManagement; integrated security=true"; SqlConnection con = new SqlConnection(connectionString); string query = @"INSERT INTO StockInOut VALUES('" + stockInOut.ItemId + "','" + stockInOut.Quantity + "','" + stockInOut.StockId + "','" + stockInOut.Date + "','" + stockInOut.Status + "') UPDATE Transactions SET AvailableQuantity = '" + _availq + "' WHERE ItemId = '" + _itemId + "' "; SqlCommand command = new SqlCommand(query, con); con.Open(); bool isAdded = command.ExecuteNonQuery() > 0; con.Close(); return(isAdded); }
public ReturnType UpdateStockInOut(string stockinoutCode, StockInOut stockinout) { try { using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { /*var result = alading.StockInOut.Where(p => p.StockInOutID == stockinoutID).ToList();*/ var result = alading.StockInOut.Where(p => p.InOutCode == stockinoutCode).ToList(); if (result.Count == 0) { return(ReturnType.NotExisted); } StockInOut ob = result.First(); ob.InOutCode = stockinout.InOutCode; ob.InOutTime = stockinout.InOutTime; ob.OperatorCode = stockinout.OperatorCode; ob.OperatorName = stockinout.OperatorName; ob.InOutType = stockinout.InOutType; ob.TradeOrderCode = stockinout.TradeOrderCode; ob.DiscountFee = stockinout.DiscountFee; ob.DueFee = stockinout.DueFee; ob.InOutStatus = stockinout.InOutStatus; ob.IsSettled = stockinout.IsSettled; if (alading.SaveChanges() == 1) { return(ReturnType.Success); } else { return(ReturnType.OthersError); } } } catch (SqlException sex) { return(ReturnType.ConnFailed); } catch (System.Exception ex) { return(ReturnType.OthersError); } }
public static ReturnType UpdateStockInOut(string stockinoutCode, StockInOut stockinout) { return(DataProviderClass.Instance().UpdateStockInOut(stockinoutCode, stockinout)); }
public static ReturnType AddStockInOut(StockInOut stockinout) { return(DataProviderClass.Instance().AddStockInOut(stockinout)); }
public static ReturnType AddInOutAndDetails(StockInOut stockInOut, PayCharge payChage, List <StockDetail> sdList, List <StockHouseProduct> shpList, List <View_StockItemProduct> vsipList) { return(DataProviderClass.Instance().AddInOutAndDetails(stockInOut, payChage, sdList, shpList, vsipList)); }
/// <summary> /// 初始化入库,将outer_id相同的商品作为同种商品处理,将成功的商品 /// 从失败列表failedViewItemList里删除,并更新成功商品的IsAssociate为TRUE /// </summary> /// <param name="ViewItemlist"></param> private void InPutStock(List <ViewShopItemInherit> vItemlist, DoWorkEventArgs e) { if (vItemlist == null || vItemlist.Count == 0) { return; } //存放需要更新和关联的商品iid,outer_id Dictionary <string, string> itemOuterIdDic = new Dictionary <string, string>(); //去除outer_id相同的商品 List <ViewShopItemInherit> ViewItemlist = vItemlist.Distinct(new ShopItemComparer()).ToList(); /*查找与数据库重复的商品,将其从入库列表中跳过*/ List <string> dRepeatedOuterIdList = StockItemService.GetWhereInOuterIds(vItemlist.Select(v => v.outer_id).Distinct().ToList()); ViewItemlist = ViewItemlist.SkipWhile(v => dRepeatedOuterIdList.Contains(v.outer_id)).ToList(); /*将跳过入库的商品信息加进itemOuterIdDic中*/ foreach (string outer_id in dRepeatedOuterIdList) { //失败列表删除与当前商品outer_id相同的所有商品 inPutFailedViewItemList.RemoveAll(v => v.outer_id == outer_id); //查找所有outer_id下的商品iid并加入iidlist中 vItemlist.FindAll(v => v.outer_id == outer_id).ForEach(a => itemOuterIdDic.Add(a.iid, a.outer_id)); } if (ViewItemlist.Count > 0) { //获取cid下的所有属性值 List <View_ItemPropValue> viewPropValueList = ItemPropValueService.GetView_ItemPropValueList(ViewItemlist.First().cid, "-1", "-1"); /*销售属性是否有必填项*/ bool salePropHasMust = false; if (viewPropValueList.Where(v => v.is_sale_prop && v.must).ToList().Count > 0) { salePropHasMust = true; } //获取该类目下所有销售属性Id List <string> salePidList = viewPropValueList.Where(v => v.is_sale_prop).Select(v => v.pid).Distinct().ToList(); /*StockInOut*/ StockInOut stockIntOut = new StockInOut(); #region 赋值stockInOut stockIntOut.AmountTax = 0; stockIntOut.DiscountFee = 0; stockIntOut.DueFee = 0; stockIntOut.FreightCode = string.Empty; stockIntOut.FreightCompany = string.Empty; stockIntOut.IncomeTime = DateTime.Now; stockIntOut.InOutCode = System.Guid.NewGuid().ToString(); stockIntOut.InOutStatus = (int)InOutStatus.AllReach; stockIntOut.InOutTime = DateTime.Now; stockIntOut.InOutType = (int)InOutType.InitInput; stockIntOut.IsSettled = true; /*操作人*/ stockIntOut.OperatorCode = string.Empty; stockIntOut.OperatorName = string.Empty; stockIntOut.PayTerm = 0; stockIntOut.PayThisTime = 0; stockIntOut.PayType = (int)PayType.OTHER; /*模糊查询字段*/ stockIntOut.SearchText = string.Empty; stockIntOut.TradeOrderCode = string.Empty; stockIntOut.TransportCode = string.Empty; #endregion //进度报告暂存值 int temp = 0; #region for循环入库 for (int j = 0; j < ViewItemlist.Count; j++) { if (workerInput.CancellationPending) { e.Cancel = true; break; } ViewShopItemInherit viewItem = ViewItemlist[j]; StockItem stock = new StockItem(); stock.HasSaleProps = !string.IsNullOrEmpty(viewItem.skus); #region 赋值StockItem stock.Name = viewItem.title; stock.SimpleName = viewItem.title; stock.OuterID = viewItem.outer_id; stock.TotalQuantity = (double)viewItem.TotalQuantity;//总数量,默认值 stock.ProductID = viewItem.product_id; stock.CatName = viewItem.name ?? string.Empty; stock.Cid = viewItem.cid ?? string.Empty; stock.Created = DateTime.Now; stock.InputPids = viewItem.input_pids ?? string.Empty; stock.InputStr = viewItem.input_str ?? string.Empty; stock.IsConsignment = false; stock.KeyProps = viewItem.KeyProps ?? string.Empty; stock.Modified = DateTime.Now; stock.NotKeyProps = viewItem.NotKeyProps ?? string.Empty; stock.PicUrl = viewItem.pic_url ?? string.Empty; stock.Property_Alias = viewItem.property_alias ?? string.Empty; stock.Props = viewItem.props ?? string.Empty; stock.SaleProps = viewItem.StockProps ?? string.Empty; /*库存类目*/ stock.StockCatName = viewItem.StockCatName; stock.StockCid = viewItem.StockCid; stock.StockItemCode = System.Guid.NewGuid().ToString(); stock.StockItemDesc = viewItem.desc ?? string.Empty; stock.StockItemImgs = viewItem.item_imgs ?? string.Empty; stock.StockItemRemark = Constants.INIT_FROM_TOP; stock.StockItemType = (int)Alading.Core.Enum.StockItemType.FinishGoods; stock.UnitCode = viewItem.UnitCode; //单位 /*空值字段*/ stock.SearchText = string.Empty; stock.Specification = string.Empty; stock.Model = string.Empty; stock.Tax = string.Empty; stock.TaxName = string.Empty; stock.StockProps = string.Empty;//自定义属性 stock.StockCheckUrl = string.Empty; /*辅助字段*/ stock.IsSelected = false; #endregion List <StockProduct> stockProductList = new List <StockProduct>(); List <StockDetail> stockDetailList = new List <StockDetail>(); List <StockHouseProduct> stockHouseProductList = new List <StockHouseProduct>(); int stockTotalQuantity = 0; if (!string.IsNullOrEmpty(viewItem.props)) { List <Taobao.Entity.Sku> skuList = new List <Taobao.Entity.Sku>(); SortedDictionary <string, List <string> > propValueDic = new SortedDictionary <string, List <string> >(); #region 照;分割,同时去掉空白项,每一项是一个pid:vid,值放进字典propValueDic里 List <string> propsList = viewItem.props.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList(); foreach (string pv in propsList) { string[] pvArr = pv.Split(new Char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (pvArr.Length == 2) { if (!propValueDic.Keys.Contains(pvArr[0])) { List <string> vidlist = new List <string>(); vidlist.Add(pvArr[1]); propValueDic.Add(pvArr[0], vidlist); } else { propValueDic[pvArr[0]].Add(pvArr[1]); } } } #endregion /*销售属性有两个,根据条件组合Sku*/ if (salePidList.Count == 2) { //保存有值的销售属性个数 int salePropValueCount = 0; //将props里存在值的属性串的pid放进列表itemPidlist List <string> itemPidList = propValueDic.Keys.ToList(); //求itemPidList与salePropIdList的交集,结果的个数表示销售属性选择的个数 salePropValueCount = itemPidList.Intersect(salePidList).ToList().Count; #region 如果销售属性包含必选项但填写项数不为2,或者不包含必选项但选择项个数为1时,组合SKU //用于存放两组vid列表 SortedList <string, List <string> > saleValueList = new SortedList <string, List <string> >(); if ((salePropHasMust && salePropValueCount != 2) || !salePropHasMust && salePropValueCount == 1) { #region 查询属性值放进saleValueList for (int i = 0; i < 2; i++) { string pid = salePidList[i]; /*如果商该品选择了此销售属性,则把其值加进字典里*/ if (propValueDic.Keys.Contains(pid)) { saleValueList.Add(pid, propValueDic[pid]); } /*该商品没有选则此销售属性,则把此属性下的所有属性值加进字典*/ else { List <string> vidlist = new List <string>(); viewPropValueList.Where(v => v.is_sale_prop && v.pid == pid).Select(v => v.vid).Distinct().ToList().ForEach(a => vidlist.Add(a)); saleValueList.Add(pid, vidlist); } } #endregion #region 组合Sku,加进skuList if (saleValueList.Count == 2) { foreach (string vid0 in saleValueList.Values[0]) { foreach (string vid1 in saleValueList.Values[1]) { Taobao.Entity.Sku sku = new Taobao.Entity.Sku(); sku.SkuProps = string.Format("{0}:{1};{2}:{3}", saleValueList.Keys[0], vid0, saleValueList.Keys[1], vid1); sku.Quantity = 0; sku.Price = "0"; /*sku.OuterId在这里不编码,最后统一编码*/ skuList.Add(sku); } } } #endregion } #endregion } Alading.Taobao.Entity.Extend.Skus skus = JsonConvert.DeserializeObject <Alading.Taobao.Entity.Extend.Skus>(viewItem.skus); if (skus != null && skus.Sku != null) { skuList.AddRange(skus.Sku); } if (skuList.Count == 0) { Taobao.Entity.Sku sku = new Taobao.Entity.Sku(); sku.SkuProps = string.Empty; sku.Price = viewItem.price; sku.Quantity = (int)stock.TotalQuantity; /*sku.OuterId在这里不编码,最后统一编码*/ skuList.Add(sku); } //根据SkuProps去重 skuList = skuList.Distinct(new SkuComparer()).ToList(); for (int i = 0; i < skuList.Count; i++) { Alading.Taobao.Entity.Sku sku = skuList[i]; StockProduct product = new StockProduct(); #region 赋值StockProduct product.LastStockPrice = product.AvgStockPrice = 0; product.CommissionPrice = 0; product.MaxSkuPrice = 0; product.MinSkuPrice = 0; product.OccupiedQuantity = 0; product.OuterID = stock.OuterID; product.SkuQuantity = sku.Quantity; //重新计算库存总量 stockTotalQuantity += sku.Quantity; product.SkuPrice = product.MarketPrice = sku.Price == null ? 0 : double.Parse(sku.Price); //由于sku.OuterId是不允许编辑的,所有系统编码不会有重复 product.SkuOuterID = string.Format("{0}-{1}", product.OuterID, i + 1); product.SkuProps = sku.SkuProps; //分割属性查找 #region 翻译销售属性组合 List <string> skuPropsList = product.SkuProps.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList(); string propstr = string.Empty; //每个PV值都为pid:vid格式 foreach (string pv in skuPropsList) { string[] pvArr = pv.Split(new Char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (pvArr.Length == 2) { View_ItemPropValue viewProp = viewPropValueList.SingleOrDefault(vv => vv.pid == pvArr[0] && vv.vid == pvArr[1]); if (viewProp != null) { //重新命名销售属性,如:1627207:28341:黑色;1627207:3232481:棕色 if (!string.IsNullOrEmpty(viewItem.property_alias) && viewItem.property_alias.Contains(pv)) { List <string> propertyAliasList = viewItem.property_alias.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList(); foreach (string propertyAlias in propertyAliasList) { if (propertyAlias.Contains(pv)) { propstr += string.Format("{0}:{1};", viewProp.prop_name, propertyAlias.Substring(propertyAlias.LastIndexOf(':') + 1)); break; } } } else { propstr += string.Format("{0}:{1};", viewProp.prop_name, viewProp.name_alias); } } } } propstr = propstr.TrimEnd(';'); if (string.IsNullOrEmpty(propstr)) { product.SkuProps_Str = string.Empty; } else { /*重新分割,按默认排序进行排序*/ skuPropsList = propstr.Split(new Char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToList(); skuPropsList.Sort(); foreach (string property in skuPropsList) { product.SkuProps_Str += string.Format("{0};", property); } product.SkuProps_Str = product.SkuProps_Str.TrimEnd(';'); } #endregion product.ProductStatus = 0;// product.HighestNum = 0; product.IsUsingWarn = false; product.LowestNum = 0; product.PropsAlias = string.Empty; product.StockProductRemark = Constants.INIT_FROM_TOP; product.WarningCount = 0; product.WholeSalePrice = 0; product.ProductTimeStamp = new byte[] { }; #endregion /*加入product列表*/ stockProductList.Add(product); StockDetail stockDetail = new StockDetail(); #region 赋值StockDetail stockDetail.DetailRemark = string.Empty; stockDetail.DetailType = (int)DetailType.InitInput; stockDetail.DurabilityDate = DateTime.Now; /*仓库名称*/ stockDetail.HouseName = viewItem.StockHouseName; stockDetail.LayoutName = viewItem.StockLayoutName; stockDetail.StockHouseCode = viewItem.StockHouseCode; stockDetail.StockLayOutCode = viewItem.StockLayoutCode; stockDetail.InOutCode = stockIntOut.InOutCode; stockDetail.Price = float.Parse(product.SkuPrice.ToString()); stockDetail.ProductSkuOuterId = product.SkuOuterID; stockDetail.Quantity = product.SkuQuantity; /*搜索字段*/ stockDetail.SearchText = string.Empty; stockDetail.StockDetailCode = System.Guid.NewGuid().ToString(); stockDetail.Tax = string.Empty; stockDetail.TotalFee = float.Parse((product.SkuPrice * stockDetail.Quantity).ToString()); #endregion /*加入stockDetail列表*/ stockDetailList.Add(stockDetail); StockHouseProduct houseProduct = new StockHouseProduct(); #region 赋值StockHouseProduct houseProduct.HouseCode = viewItem.StockHouseCode; houseProduct.HouseName = viewItem.StockHouseName; houseProduct.HouseProductCode = System.Guid.NewGuid().ToString(); houseProduct.LayoutCode = viewItem.StockLayoutCode; houseProduct.LayoutName = viewItem.StockLayoutName; houseProduct.Num = product.SkuQuantity; houseProduct.SkuOuterID = product.SkuOuterID; #endregion stockHouseProductList.Add(houseProduct); } } //库存总量重新赋值 stock.TotalQuantity = stockTotalQuantity; if (StockItemService.InitInput(stock, stockProductList, stockDetailList, stockHouseProductList) == ReturnType.Success) { StockInOutService.AddStockInOut(stockIntOut); //成功一个,失败列表删除与当前商品outer_id相同的所有商品 inPutFailedViewItemList.RemoveAll(v => v.outer_id == viewItem.outer_id); //查找所有outer_id下的商品iid并加入iidlist中 vItemlist.FindAll(v => v.outer_id == viewItem.outer_id).ForEach(a => itemOuterIdDic.Add(a.iid, a.outer_id)); } //进度报告 if (workerInput != null) { int propgress = (int)((float)(j + 1) / ViewItemlist.Count * 100); if (propgress > temp) { workerInput.ReportProgress(propgress, null); } temp = propgress; } } //for #endregion } // if (ViewItemlist.Count>0) /*更新入库成功商品的Outer_id及IsAssociate*/ if (itemOuterIdDic.Count > 0) { ItemService.UpdateItemsOuterId(itemOuterIdDic, true); } }
public ReturnType UpdateStockInOut(StockInOut stockinout) { try { using (AladingEntities alading = new AladingEntities(AppSettings.GetConnectionString())) { /*StockInOut result = alading.StockInOut.Where(p => p.StockInOutID == stockinout.StockInOutID).FirstOrDefault();*/ StockInOut result = alading.StockInOut.Where(p => p.InOutCode == stockinout.InOutCode).FirstOrDefault(); if (result == null) { return(ReturnType.NotExisted); } #region Using Attach() Function Update,Default USE; alading.Attach(result); alading.ApplyPropertyChanges("StockInOut", stockinout); #endregion #region Using All Items Replace To Update ,Default UnUse /* * * result.InOutCode = stockinout.InOutCode; * * result.InOutTime = stockinout.InOutTime; * * result.OperatorCode = stockinout.OperatorCode; * * result.OperatorName = stockinout.OperatorName; * * result.InOutType = stockinout.InOutType; * * result.TradeOrderCode = stockinout.TradeOrderCode; * * result.DiscountFee = stockinout.DiscountFee; * * result.DueFee = stockinout.DueFee; * * result.InOutStatus = stockinout.InOutStatus; * * result.IsSettled = stockinout.IsSettled; * */ #endregion if (alading.SaveChanges() == 1) { return(ReturnType.Success); } else { return(ReturnType.OthersError); } } } catch (SqlException sex) { return(ReturnType.ConnFailed); } catch (Exception ex) { return(ReturnType.OthersError); } }
/// <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(); } } } }