/// <summary> /// 插入数据记录 /// </summary> ///<param name="model">实体类</param> /// <returns>插入数据是否成功:true成功,false不成功</returns> public static bool Insert(SubStorageAccountModel model) { ArrayList sqlList = new ArrayList(); SqlCommand cmd = SubStorageAccountDBHelper.InsertCommand(model); sqlList.Add(cmd); if (SqlHelper.ExecuteTransWithArrayList(sqlList)) { int i = 0; if (int.TryParse(cmd.Parameters["@IndexID"].Value.ToString(), out i)) { model.ID = i; } return true; } else { return false; } }
public static bool RunSubDeliverySendIn(SubDeliverySend model) { #region 读取配送单明细 StringBuilder sbSql = new StringBuilder(); sbSql.Append("SELECT sdsd.SendNo,sdsd.ProductID,sdsd.SendPrice,sdsd.SendCount,pi1.IsBatchNo FROM officedba.SubDeliverySendDetail sdsd "); sbSql.Append(" LEFT JOIN officedba.ProductInfo pi1 ON pi1.ID=sdsd.ProductID "); sbSql.Append(" where sdsd.CompanyCD=@CompanyCD AND sdsd.SendNo=@SendNo"); SqlParameter[] Paras = { new SqlParameter("@CompanyCD",SqlDbType.VarChar), new SqlParameter("@SendNo",SqlDbType.VarChar)}; Paras[0].Value = model.CompanyCD; Paras[1].Value = model.SendNo; DataTable dtDetail = SqlHelper.ExecuteSql(sbSql.ToString(), Paras); ArrayList SqlList = new ArrayList(); int id = 0; decimal count = 0m; /*实时判断明细是否存在*/ if (dtDetail != null && dtDetail.Rows.Count > 0) { #region 更新配送单信息 StringBuilder sbMainSql = new StringBuilder(); sbMainSql.Append("UPDATE officedba.SubDeliverySend SET InUserID=@InUserID , InDate=@InDate ,BusiStatus=@BusiStatus "); sbMainSql.Append(" where ID=@ID"); SqlParameter[] MainParas = { new SqlParameter("@InUserID",SqlDbType.Int), new SqlParameter("@InDate",SqlDbType.DateTime), new SqlParameter("@BusiStatus",SqlDbType.VarChar), new SqlParameter("@ID",SqlDbType.Int)}; MainParas[0].Value = model.InUserID; MainParas[1].Value = model.InDate; MainParas[2].Value = model.BusiStatus; MainParas[3].Value = model.ID; SqlCommand SqlMainCmd = new SqlCommand() { CommandText = sbMainSql.ToString() }; SqlMainCmd.Parameters.AddRange(MainParas); SqlList.Add(SqlMainCmd); #endregion foreach (DataRow row in dtDetail.Rows) { string BatchNo = ""; #region 添加门店库存流水帐 if (row["IsBatchNo"].ToString() == "1") { BatchNo = model.BatchNo; } SubStorageAccountModel aModel = new SubStorageAccountModel(); aModel.BatchNo = BatchNo; aModel.BillNo = row["SendNo"].ToString(); aModel.BillType = 2; aModel.CompanyCD = model.CompanyCD; aModel.Creator = model.Creator; aModel.DeptID = model.ApplyDeptID; aModel.HappenDate = DateTime.Now; if (int.TryParse(row["ProductID"].ToString(), out id)) { aModel.ProductID = id; } if (decimal.TryParse(row["SendPrice"].ToString(), out count)) { aModel.Price = count; } if (decimal.TryParse(row["SendCount"].ToString(), out count)) { aModel.HappenCount = count; } aModel.PageUrl = model.Remark; SqlList.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel)); #endregion SqlList.Add(XBase.Data.Office.LogisticsDistributionManager.StorageProductQueryDBHelper.UpdateProductCount(model.CompanyCD , row["ProductID"].ToString(), model.ApplyDeptID.ToString(), BatchNo, count)); } return SqlHelper.ExecuteTransWithArrayList(SqlList); } else return false; #endregion }
public static bool RukuSubSellBack(SubSellBackModel model, string DetailBackCount, string DetailStorageID, string DetailProductID, string DetailUnitPrice, string DetailBatchNo, string length) { #region 入库单据 ArrayList listADD = new ArrayList(); bool result = false; StringBuilder strSql = new StringBuilder(); if (model.PayedTotal != model.WairPayTotal) { strSql.AppendLine("update officedba.SubSellBack set "); strSql.AppendLine(" InUserID=@InUserID"); strSql.AppendLine(" ,InDate=@InDate"); strSql.AppendLine(" ,BillStatus=@BillStatus"); strSql.AppendLine(" ,BusiStatus=@BusiStatus"); strSql.AppendLine(" ,PayedTotal=@PayedTotal"); strSql.AppendLine(" ,WairPayTotal=@WairPayTotal"); strSql.AppendLine(" where"); strSql.AppendLine(" CompanyCD=@CompanyCD"); strSql.AppendLine(" and ID=@ID"); SqlCommand comm = new SqlCommand(); comm.Parameters.Add(SqlHelper.GetParameter("@InUserID", model.InUserID)); comm.Parameters.Add(SqlHelper.GetParameter("@InDate", model.InDate == null ? SqlDateTime.Null : SqlDateTime.Parse(model.InDate.ToString()))); comm.Parameters.Add(SqlHelper.GetParameter("@BillStatus", model.BillStatus)); comm.Parameters.Add(SqlHelper.GetParameter("@BusiStatus", model.BusiStatus)); comm.Parameters.Add(SqlHelper.GetParameter("@PayedTotal", model.PayedTotal)); comm.Parameters.Add(SqlHelper.GetParameter("@WairPayTotal", model.WairPayTotal)); comm.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD)); comm.Parameters.Add(SqlHelper.GetParameter("@ID", model.ID)); comm.CommandText = strSql.ToString(); listADD.Add(comm); } else { strSql.AppendLine("update officedba.SubSellBack set "); strSql.AppendLine(" InUserID=@InUserID"); strSql.AppendLine(" ,InDate=@InDate"); strSql.AppendLine(" ,Closer=@Closer"); strSql.AppendLine(" ,CloseDate=getdate()"); strSql.AppendLine(" ,BillStatus=@BillStatus"); strSql.AppendLine(" ,BusiStatus=@BusiStatus"); strSql.AppendLine(" ,PayedTotal=@PayedTotal"); strSql.AppendLine(" ,WairPayTotal=@WairPayTotal"); strSql.AppendLine(" where"); strSql.AppendLine(" CompanyCD=@CompanyCD"); strSql.AppendLine(" and ID=@ID"); SqlCommand comm = new SqlCommand(); comm.Parameters.Add(SqlHelper.GetParameter("@InUserID", model.InUserID)); comm.Parameters.Add(SqlHelper.GetParameter("@InDate", model.InDate == null ? SqlDateTime.Null : SqlDateTime.Parse(model.InDate.ToString()))); comm.Parameters.Add(SqlHelper.GetParameter("@Closer", model.Closer)); comm.Parameters.Add(SqlHelper.GetParameter("@BillStatus", model.BillStatus)); comm.Parameters.Add(SqlHelper.GetParameter("@BusiStatus", model.BusiStatus)); comm.Parameters.Add(SqlHelper.GetParameter("@PayedTotal", model.PayedTotal)); comm.Parameters.Add(SqlHelper.GetParameter("@WairPayTotal", model.WairPayTotal)); comm.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", model.CompanyCD)); comm.Parameters.Add(SqlHelper.GetParameter("@ID", model.ID)); comm.CommandText = strSql.ToString(); listADD.Add(comm); } #endregion #region 入库时回写响应模块的退货数量 try { int id = 0; decimal count = 0m; if (model.SendMode == "1") {//分店发货,更新分店的存量表中的现有存量,增加相应物品的退货数量 int lengs = Convert.ToInt32(length); if (lengs > 0) { string[] BackCount = DetailBackCount.Split(','); string[] ProductID = DetailProductID.Split(','); string[] UnitPrice = DetailUnitPrice.Split(','); string[] BatchNo = DetailBatchNo.Split(','); for (int i = 0; i < lengs; i++) { #region 添加门店库存流水帐 SubStorageAccountModel aModel = new SubStorageAccountModel(); aModel.BatchNo = BatchNo[i]; aModel.BillNo = model.BackNo; aModel.BillType = 4; aModel.CompanyCD = model.CompanyCD; aModel.Creator = model.Closer; aModel.DeptID = model.DeptID; aModel.HappenDate = DateTime.Now; if (int.TryParse(ProductID[i], out id)) { aModel.ProductID = id; } if (decimal.TryParse(UnitPrice[i], out count)) { aModel.Price = count; } if (decimal.TryParse(BackCount[i], out count)) { aModel.HappenCount = count; } aModel.PageUrl = model.Remark; listADD.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel)); #endregion // 更新库存 listADD.Add(XBase.Data.Office.LogisticsDistributionManager.StorageProductQueryDBHelper.UpdateProductCount(model.CompanyCD , ProductID[i], model.DeptID.ToString(), BatchNo[i], count)); } } } else {//总部发货,更新总部的分仓存量表中的现有存量,增加相应物品的退货数量 int lengs = Convert.ToInt32(length); if (lengs > 0) { string[] BackCount = DetailBackCount.Split(','); string[] StorageID = DetailStorageID.Split(','); string[] ProductID = DetailProductID.Split(','); string[] UnitPrice = DetailUnitPrice.Split(','); string[] BatchNo = DetailBatchNo.Split(','); for (int i = 0; i < lengs; i++) { #region 添加库存流水帐 XBase.Model.Office.StorageManager.StorageAccountModel sModel = new XBase.Model.Office.StorageManager.StorageAccountModel(); sModel.BatchNo = BatchNo[i]; sModel.BillNo = model.BackNo; sModel.BillType = 22; sModel.CompanyCD = model.CompanyCD; sModel.Creator = model.Closer; if (int.TryParse(StorageID[i], out id)) { sModel.StorageID = id; } if (int.TryParse(ProductID[i], out id)) { sModel.ProductID = id; } if (decimal.TryParse(UnitPrice[i], out count)) { sModel.Price = count; } if (decimal.TryParse(BackCount[i], out count)) { sModel.HappenCount = count; } sModel.HappenDate = DateTime.Now; sModel.PageUrl = model.Remark; listADD.Add(XBase.Data.Office.StorageManager.StorageAccountDBHelper.InsertStorageAccountCommand(sModel, "0")); #endregion // 更新库存 listADD.Add(XBase.Data.Office.StorageManager.StorageSearchDBHelper.UpdateProductCount(model.CompanyCD, ProductID[i], StorageID[i], BatchNo[i], count)); } } } if (SqlHelper.ExecuteTransWithArrayList(listADD)) { result = true; } return result; } catch (Exception ex) { throw ex; } #endregion }
public static bool RunSubDeliveryTransIn(SubDeliveryTrans model) { ArrayList SqlList = new ArrayList(); #region 更新调拨单 StringBuilder strSql = new StringBuilder(); strSql.Append("update officedba.SubDeliveryTrans set "); strSql.Append("BusiStatus=@BusiStatus,"); strSql.Append("InUserID=@InUserID,"); strSql.Append("InDate=@InDate"); strSql.Append(" where ID=@ID "); SqlParameter[] parameters = { new SqlParameter("@ID", SqlDbType.Int,4), new SqlParameter("@BusiStatus", SqlDbType.Char,1), new SqlParameter("@InUserID", SqlDbType.Int,4), new SqlParameter("@InDate", SqlDbType.DateTime)}; parameters[0].Value = model.ID; parameters[1].Value = model.BusiStatus; parameters[2].Value = model.InUserID; parameters[3].Value = model.InDate; #endregion SqlCommand sqlMainCmd = new SqlCommand() { CommandText = strSql.ToString() }; sqlMainCmd.Parameters.AddRange(parameters); SqlList.Add(sqlMainCmd); #region 实时读取明细信息 StringBuilder sbDetailSql = new StringBuilder(); sbDetailSql.Append(" SELECT ProductID,TransCount,BatchNo,TransPrice FROM officedba.SubDeliveryTransDetail "); sbDetailSql.Append(" WHERE CompanyCD=@CompanyCD AND TransNo=@TransNo"); SqlParameter[] DetailParas = { new SqlParameter("@CompanyCD",SqlDbType.VarChar), new SqlParameter("@TransNo",SqlDbType.VarChar)}; DetailParas[0].Value = model.CompanyCD; DetailParas[1].Value = model.TransNo; DataTable dtDetails = SqlHelper.ExecuteSql(sbDetailSql.ToString(), DetailParas); #endregion int id = 0; decimal count = 0m; if (dtDetails != null && dtDetails.Rows.Count > 0) { foreach (DataRow row in dtDetails.Rows) { #region 添加门店库存流水帐 SubStorageAccountModel aModel = new SubStorageAccountModel(); aModel.BatchNo = row["BatchNo"].ToString().Trim(); aModel.BillNo = model.TransNo; aModel.BillType = 6; aModel.CompanyCD = model.CompanyCD; aModel.Creator = model.Creator; aModel.DeptID = model.InDeptID; aModel.HappenDate = DateTime.Now; if (int.TryParse(row["ProductID"].ToString(), out id)) { aModel.ProductID = id; } if (decimal.TryParse(row["TransPrice"].ToString(), out count)) { aModel.Price = count; } if (decimal.TryParse(row["TransCount"].ToString(), out count)) { aModel.HappenCount = count; } aModel.PageUrl = model.Remark; SqlList.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel)); #endregion SqlList.Add(XBase.Data.Office.LogisticsDistributionManager.StorageProductQueryDBHelper.UpdateProductCount(model.CompanyCD , row["ProductID"].ToString(), model.InDeptID.ToString(), row["BatchNo"].ToString(), count)); } return SqlHelper.ExecuteTransWithArrayList(SqlList); } else return false; }
public static bool SubDeliveryBackOut(SubDeliveryBack model) { StringBuilder sbSql = new StringBuilder(); sbSql.Append("SELECT * FROM officedba.SubDeliveryBackDetail "); sbSql.Append(" WHERE CompanyCD=@CompanyCD and BackNo=@BackNo"); SqlParameter[] paras = { new SqlParameter("@CompanyCD",SqlDbType.VarChar), new SqlParameter("@BackNo",SqlDbType.VarChar)}; paras[0].Value = model.CompanyCD; paras[1].Value = model.BackNo; DataTable dtBack = SqlHelper.ExecuteSql(sbSql.ToString(), paras); ArrayList SqlList = new ArrayList(); if (dtBack != null && dtBack.Rows.Count > 0) { #region 更新单据 StringBuilder sbMainSql = new StringBuilder(); sbMainSql.Append("UPDATE officedba.SubDeliveryBack SET OutUserID=@OutUserID,OutDate=@OutDate,BusiStatus=@BusiStatus "); sbMainSql.Append(" WHERE ID=@ID "); SqlParameter[] MainParas = { new SqlParameter("@OutUserID",SqlDbType.Int), new SqlParameter("@OutDate",SqlDbType.DateTime), new SqlParameter("@BusiStatus",SqlDbType.VarChar), new SqlParameter("@ID",SqlDbType.Int) }; MainParas[0].Value = model.OutUserID; MainParas[1].Value = model.OutDate; MainParas[2].Value = model.BusiStatus; MainParas[3].Value = model.ID; SqlCommand sqlMainCmd = new SqlCommand() { CommandText = sbMainSql.ToString() }; sqlMainCmd.Parameters.AddRange(MainParas); SqlList.Add(sqlMainCmd); #endregion int id = 0; decimal count = 0m; foreach (DataRow row in dtBack.Rows) { #region 添加门店库存流水帐 SubStorageAccountModel aModel = new SubStorageAccountModel(); aModel.BatchNo = row["SendBatchNo"].ToString(); aModel.BillNo = model.BackNo; aModel.BillType = 7; aModel.CompanyCD = model.CompanyCD; aModel.Creator = model.Creator; aModel.DeptID = model.ApplyDeptID; aModel.HappenDate = DateTime.Now; if (int.TryParse(row["ProductID"].ToString(), out id)) { aModel.ProductID = id; } if (decimal.TryParse(row["BackPrice"].ToString(), out count)) { aModel.Price = count; } if (decimal.TryParse(row["BackCount"].ToString(), out count)) { aModel.HappenCount = -count; } aModel.PageUrl = model.Remark; SqlList.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel)); #endregion // 更新库存 SqlList.Add(XBase.Data.Office.LogisticsDistributionManager.StorageProductQueryDBHelper.UpdateProductCount(model.CompanyCD , row["ProductID"].ToString(), model.ApplyDeptID.ToString(), row["SendBatchNo"].ToString(), -count)); } bool res = SqlHelper.ExecuteTransWithArrayList(SqlList); return res; } else return false; }
/// <summary> /// 设置新增和修改的参数数组的值 /// </summary> /// <param name="parameters">参数数组</param> /// <param name="model">实体类</param> /// <returns>返回参数数组</returns> private static SqlParameter[] SetInsertAndUpdateParametersValue(SqlParameter[] parameters, SubStorageAccountModel model) { if (!model.ID.HasValue) parameters[m_iDCol].Value = System.DBNull.Value; else parameters[m_iDCol].Value = model.ID; // ID,自动生成 parameters[m_companyCDCol].Value = model.CompanyCD; // 公司编码 if (!model.DeptID.HasValue) parameters[m_deptIDCol].Value = System.DBNull.Value; else parameters[m_deptIDCol].Value = model.DeptID; // 分店ID if (!model.BillType.HasValue) parameters[m_billTypeCol].Value = System.DBNull.Value; else parameters[m_billTypeCol].Value = model.BillType; // 单据类型 if (!model.ProductID.HasValue) parameters[m_productIDCol].Value = System.DBNull.Value; else parameters[m_productIDCol].Value = model.ProductID; // 物品ID parameters[m_batchNoCol].Value = model.BatchNo; // 批次 parameters[m_billNoCol].Value = model.BillNo; // 单据编号 if (!model.HappenDate.HasValue) parameters[m_happenDateCol].Value = System.DBNull.Value; else parameters[m_happenDateCol].Value = model.HappenDate; // 出入库时间 if (!model.HappenCount.HasValue) parameters[m_happenCountCol].Value = System.DBNull.Value; else parameters[m_happenCountCol].Value = model.HappenCount; // 出入库数量 if (!model.ProductCount.HasValue) parameters[m_productCountCol].Value = System.DBNull.Value; else parameters[m_productCountCol].Value = model.ProductCount; // 现有存量 if (!model.Creator.HasValue) parameters[m_creatorCol].Value = System.DBNull.Value; else parameters[m_creatorCol].Value = model.Creator; // 业务操作人(取当前登录人的ID) parameters[m_pageUrlCol].Value = model.PageUrl; // 页面链接地址 if (!model.Price.HasValue) parameters[m_priceCol].Value = System.DBNull.Value; else parameters[m_priceCol].Value = model.Price; // 单价 parameters[m_remarkCol].Value = model.Remark; // 备注 return parameters; }
/// <summary> /// 修改数据记录 /// </summary> /// <param name="model">实体类</param> /// <returns>修改数据是否成功:true成功,false不成功</returns> public static bool Update(SubStorageAccountModel model) { bool returnValue = false; // 返回值 // SQL语句 StringBuilder sqlSentence = new StringBuilder(C_UPDATE); // 参数设置 SqlParameter[] parameters = SetInsertAndUpdateParameters(); parameters = SetInsertAndUpdateParametersValue(parameters, model); //执行SQL returnValue = SqlHelper.ExecuteTransSql(sqlSentence.ToString(), parameters) > 0; return returnValue; }
/// <summary> /// 修改数据记录 /// </summary> /// <param name="model">实体类</param> /// <returns>修改操作的执行命令</returns> public static SqlCommand UpdateCommand(SubStorageAccountModel model) { // SQL语句 SqlCommand comm = new SqlCommand(); comm.CommandText = C_UPDATE; // 参数设置 SqlParameter[] parameters = SetInsertAndUpdateParameters(); parameters = SetInsertAndUpdateParametersValue(parameters, model); comm.Parameters.AddRange(parameters); return comm; }
/// <summary> /// 插入操作的执行命令(并且获得现有库存量) /// </summary> /// <param name="model">实体类</param> /// <returns>插入操作的执行命令</returns> public static SqlCommand GetCountAndInsertCommand(SubStorageAccountModel model) { DataTable dt = GetSubProductCount(model.CompanyCD, model.ProductID.Value.ToString(), model.DeptID.Value.ToString(), model.BatchNo); decimal count = 0m; model.ProductCount = model.HappenCount; if (dt.Rows.Count > 0 && decimal.TryParse(dt.Rows[0]["ProductCount"].ToString(), out count)) { model.ProductCount = count + (model.ProductCount.HasValue ? model.ProductCount.Value : 0); } model.HappenCount = Math.Abs(model.HappenCount.HasValue ? model.HappenCount.Value : 0); return InsertCommand(model); }
/// <summary> /// 插入操作的执行命令 /// </summary> /// <param name="model">实体类</param> /// <returns>插入操作的执行命令</returns> public static SqlCommand InsertCommand(SubStorageAccountModel model) { // SQL语句 SqlCommand comm = new SqlCommand(); comm.CommandText = C_INSERT + " SET @IndexID = @@IDENTITY "; // 参数设置 SqlParameter[] parameters = SetInsertAndUpdateParameters(); parameters = SetInsertAndUpdateParametersValue(parameters, model); comm.Parameters.AddRange(parameters); SqlParameter IndexID = new SqlParameter("@IndexID", SqlDbType.Int); IndexID.Direction = ParameterDirection.Output; comm.Parameters.Add(IndexID); return comm; }
/// <summary> /// 列表界面查询方法 /// </summary> /// <param name="pageIndex">当前页</param> /// <param name="pageCount">每页记录数</param> /// <param name="orderBy">排序方法</param> /// <param name="TotalCount">总记录数</param> /// <param name="model">实体类</param> /// <returns></returns> public static DataTable SelectListData(int pageIndex, int pageCount, string orderBy, ref int TotalCount , SubStorageAccountModel model) { SqlCommand comm = new SqlCommand(); StringBuilder sql = new StringBuilder(C_SELECT_ALL); sql.Append(" WHERE 1=1 "); comm.CommandText = sql.ToString(); return SqlHelper.PagerWithCommand(comm, pageIndex, pageCount, orderBy, ref TotalCount); }
/// <summary> /// 列表界面查询方法 /// </summary> /// <param name="pageIndex">当前页</param> /// <param name="pageCount">每页记录数</param> /// <param name="orderBy">排序方法</param> /// <param name="TotalCount">总记录数</param> /// <param name="model">实体类</param> /// <returns></returns> public static DataTable SelectListData(int pageIndex, int pageCount, string orderBy, ref int TotalCount , SubStorageAccountModel model) { return SubStorageAccountDBHelper.SelectListData(pageIndex, pageCount, orderBy, ref TotalCount, model); }
/// <summary> /// 修改数据记录 /// </summary> ///<param name="model">实体类</param> /// <returns>修改数据是否成功:true成功,false不成功</returns> public static bool Update(SubStorageAccountModel model) { return SubStorageAccountDBHelper.Update(model); }
public static bool ConfirmSubStorageIn(SubStorageInModel Model, string DetailProductID, string DetailSendCount, string DetailUnitPrice, string DetailBatchNo, string length) { #region 确认门店库存单中信息 ArrayList listADD = new ArrayList(); bool result = false; StringBuilder strSql = new StringBuilder(); strSql.AppendLine("update officedba.SubStorageIn set "); strSql.AppendLine(" Confirmor=@Confirmor"); strSql.AppendLine(" ,BillStatus=5"); strSql.AppendLine(" ,ConfirmDate=getdate()"); strSql.AppendLine(" where"); strSql.AppendLine(" CompanyCD=@CompanyCD"); strSql.AppendLine(" and ID=@ID"); SqlCommand comm = new SqlCommand(); comm.Parameters.Add(SqlHelper.GetParameter("@Confirmor", Model.Confirmor)); comm.Parameters.Add(SqlHelper.GetParameter("@CompanyCD", Model.CompanyCD)); comm.Parameters.Add(SqlHelper.GetParameter("@ID", Model.ID)); comm.CommandText = strSql.ToString(); listADD.Add(comm); #endregion #region 确认时插入物流配送中的分店存量表 try { int lengs = Convert.ToInt32(length); int id = 0; decimal count = 0m; if (lengs > 0) { string[] ProductID = DetailProductID.Split(','); string[] SendCount = DetailSendCount.Split(','); string[] UnitPrice = DetailUnitPrice.Split(','); string[] BatchNo = DetailBatchNo.Split(','); for (int i = 0; i < lengs; i++) { #region 添加门店库存流水帐 SubStorageAccountModel aModel = new SubStorageAccountModel(); aModel.BatchNo = BatchNo[i]; aModel.BillNo = Model.InNo; aModel.BillType = 1; aModel.CompanyCD = Model.CompanyCD; aModel.Creator = Model.Confirmor; aModel.DeptID = Model.DeptID; aModel.HappenDate = DateTime.Now; if (int.TryParse(ProductID[i], out id)) { aModel.ProductID = id; } if (decimal.TryParse(UnitPrice[i], out count)) { aModel.Price = count; } if (decimal.TryParse(SendCount[i], out count)) { aModel.HappenCount = count; } aModel.PageUrl = Model.Remark; listADD.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel)); #endregion // 更新分店存量表 listADD.Add(StorageProductQueryDBHelper.UpdateProductCount(Model.CompanyCD , ProductID[i], Model.DeptID.ToString(), BatchNo[i], count)); } } if (SqlHelper.ExecuteTransWithArrayList(listADD)) { //ID = comm.Parameters["@ID"].Value.ToString(); result = true; } return result; } catch (Exception ex) { throw ex; } #endregion }
/// <summary> /// 批量导入数据 /// </summary> /// <param name="dt">数据集</param> /// <param name="userInfo">登录信息</param> /// <returns></returns> public static bool ImportData(DataTable dt, UserInfoUtil userInfo) { ArrayList list = new ArrayList(); string temp = ""; decimal count = 0m; Dictionary<string, Product> dicProduct = new Dictionary<string, Product>(); Dictionary<string, int> dicDept = new Dictionary<string, int>(); foreach (DataRow dr in dt.Rows) { #region 添加门店库存流水帐 SubStorageAccountModel aModel = new SubStorageAccountModel(); aModel.BillNo = ""; aModel.BillType = 8; aModel.CompanyCD = userInfo.CompanyCD; aModel.Creator = userInfo.EmployeeID; aModel.HappenDate = DateTime.Now; aModel.Price = 0; temp = dr["物品编号"].ToString().Trim(); if (!dicProduct.ContainsKey(temp)) {// 物品编号 foreach (DataRow item in GetProductIDWithProdNo(userInfo.CompanyCD, temp).Rows) { Product p = new Product(); p.id = int.Parse(item["ID"].ToString()); p.isBatchNo = item["IsBatchNo"].ToString() == "1"; dicProduct.Add(temp, p); } } aModel.BatchNo = dicProduct[temp].isBatchNo ? dr["批次"].ToString() : ""; aModel.ProductID = dicProduct[temp].id; temp = dr["分店名称"].ToString().Trim(); if (!dicDept.ContainsKey(temp)) {// 分店名称 foreach (DataRow item in GetDeptIDWithDeptName(userInfo.CompanyCD, temp).Rows) { dicDept.Add(temp, int.Parse(item["ID"].ToString())); } } aModel.DeptID = dicDept[temp]; if (decimal.TryParse(dr["现有存量"].ToString(), out count)) { aModel.HappenCount = count; } list.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel)); #endregion // 更新分店存量表 list.Add(StorageProductQueryDBHelper.UpdateProductCount(userInfo.CompanyCD , aModel.ProductID.ToString(), aModel.DeptID.ToString(), aModel.BatchNo, count)); } return SqlHelper.ExecuteTransWithArrayList(list); }
/// <summary> /// 确认 /// </summary> /// <param name="SubSellOrderM"></param> /// <param name="SubSellOrderDetailMList"></param> /// <returns></returns> public static bool ConfirmOutSubSellOrder(SubSellOrderModel SubSellOrderM, List<SubSellOrderDetailModel> SubSellOrderDetailMList) { try { ArrayList lstConfirm = new ArrayList(); UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"]; int id = 0; decimal count = 0m; if (SubSellOrderM.SendMode == "1") {//分店发货 //确认时,更新分店存量表 foreach (SubSellOrderDetailModel SubSellOrderDetailM in SubSellOrderDetailMList) { #region 添加门店库存流水帐 SubStorageAccountModel aModel = new SubStorageAccountModel(); aModel.BatchNo = SubSellOrderDetailM.BatchNo; aModel.BillNo = SubSellOrderM.OrderNo; aModel.BillType = 3; aModel.CompanyCD = SubSellOrderDetailM.CompanyCD; aModel.PageUrl = ""; if (int.TryParse(SubSellOrderM.Creator, out id)) { aModel.Creator = id; } if (int.TryParse(SubSellOrderM.DeptID, out id)) { aModel.DeptID = id; } aModel.HappenDate = DateTime.Now; if (int.TryParse(SubSellOrderDetailM.ProductID, out id)) { aModel.ProductID = id; } if (decimal.TryParse(SubSellOrderDetailM.UnitPrice, out count)) { aModel.Price = count; } if (decimal.TryParse(SubSellOrderDetailM.ProductCount, out count)) { aModel.HappenCount = -count; } aModel.PageUrl = SubSellOrderM.Remark; lstConfirm.Add(XBase.Data.Office.SubStoreManager.SubStorageAccountDBHelper.GetCountAndInsertCommand(aModel)); #endregion lstConfirm.Add(XBase.Data.Office.LogisticsDistributionManager.StorageProductQueryDBHelper.UpdateProductCount(userInfo.CompanyCD , SubSellOrderDetailM.ProductID, SubSellOrderM.DeptID, SubSellOrderDetailM.BatchNo, -count)); } } else if (SubSellOrderM.SendMode == "2") {//总部发货 //确认时更新分仓存量表 foreach (SubSellOrderDetailModel SubSellOrderDetailM in SubSellOrderDetailMList) { #region 添加库存流水帐 XBase.Model.Office.StorageManager.StorageAccountModel sModel = new XBase.Model.Office.StorageManager.StorageAccountModel(); sModel.BatchNo = SubSellOrderDetailM.BatchNo; sModel.BillNo = SubSellOrderM.OrderNo; sModel.BillType = 21; sModel.CompanyCD = SubSellOrderDetailM.CompanyCD; if (int.TryParse(SubSellOrderDetailM.StorageID, out id)) { sModel.StorageID = id; } if (int.TryParse(SubSellOrderM.Creator, out id)) { sModel.Creator = id; } if (int.TryParse(SubSellOrderDetailM.ProductID, out id)) { sModel.ProductID = id; } if (decimal.TryParse(SubSellOrderDetailM.UnitPrice, out count)) { sModel.Price = count; } if (decimal.TryParse(SubSellOrderDetailM.ProductCount, out count)) { sModel.HappenCount = count; } sModel.HappenDate = DateTime.Now; sModel.PageUrl = SubSellOrderM.Remark; lstConfirm.Add(XBase.Data.Office.StorageManager.StorageAccountDBHelper.InsertStorageAccountCommand(sModel, "1")); #endregion // 更新库存 lstConfirm.Add(XBase.Data.Office.StorageManager.StorageSearchDBHelper.UpdateProductCount(userInfo.CompanyCD , SubSellOrderDetailM.ProductID, SubSellOrderDetailM.StorageID , SubSellOrderDetailM.BatchNo, -count)); } } //更新发货信息和安装信息 lstConfirm.Add(SubSellOrderDBHelper.ConfirmOutSubSellOrder(SubSellOrderM)); //获取登陆用户信息 //UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"]; //定义返回变量 bool isSucc = false; /* * 定义日志内容变量 * 增删改相关的日志,需要输出操作日志,该类型日志插入到数据库 * 其他的 如出现异常时,需要输出系统日志,该类型日志保存到日志文件 */ //执行插入操作 try { isSucc = SqlHelper.ExecuteTransWithArrayList(lstConfirm); } catch (Exception ex) { //输出日志 WriteSystemLog(userInfo, ex); } //定义变量 string remark; //成功时 if (isSucc) { //设置操作成功标识 remark = ConstUtil.LOG_PROCESS_SUCCESS; } else { //设置操作成功标识 remark = ConstUtil.LOG_PROCESS_FAILED; } LogInfoModel logModel = InitLogInfo(SubSellOrderM.OrderNo); //涉及关键元素 这个需要根据每个页面具体设置,本页面暂时设置为空 logModel.Element = ConstUtil.LOG_PROCESS_OUT; //设置操作成功标识 logModel.Remark = remark; //登陆日志 LogDBHelper.InsertLog(logModel); return isSucc; } catch (Exception ex) { throw ex; } }