/// <summary> /// 插入红冲入库和红冲入库明细 /// </summary> /// <param name="model"></param> /// <param name="modelList"></param> /// <returns></returns> public static bool InsertStorageInRed(StorageInRedModel model, List<StorageInRedDetailModel> modelList, Hashtable htExtAttr, out int IndexIDentity) { IndexIDentity = 0; //获取登陆用户信息 UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"]; //设置公司代码 model.CompanyCD = userInfo.CompanyCD; //定义返回变量 bool isSucc = false; /* * 定义日志内容变量 * 增删改相关的日志,需要输出操作日志,该类型日志插入到数据库 * 其他的 如出现异常时,需要输出系统日志,该类型日志保存到日志文件 */ //获取公司代码 string companyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD; //执行删除操作 try { //执行更新 isSucc = StorageInRedDBHelper.InsertStorageInRed(model, modelList, out IndexIDentity, htExtAttr); } catch (Exception ex) { //输出日志 WriteSystemLog(userInfo, ex); } //定义变量 string remark; //成功时 if (isSucc) { //设置操作成功标识 remark = ConstUtil.LOG_PROCESS_SUCCESS; } else { //设置操作成功标识 remark = ConstUtil.LOG_PROCESS_FAILED; } //操作日志 LogInfoModel logModel = InitLogInfo(model.InNo); //涉及关键元素 这个需要根据每个页面具体设置,本页面暂时设置为空 logModel.Element = ConstUtil.LOG_PROCESS_INSERT; //设置操作成功标识 logModel.Remark = remark; //登陆日志 LogDBHelper.InsertLog(logModel); return isSucc; }
/// <summary> /// 获取入库单列表 /// </summary> /// <param name="companycd"></param> /// <returns></returns> public static DataTable GetStorageInList(StorageInRedModel model, string InType) { string sql = string.Empty; switch (InType) { case "1": { sql = "select ID,'采购入库单' as FromType,InNo,Title,CountTotal,ISNULL(CONVERT(VARCHAR(10),CreateDate,21),'') AS CreateDate from officedba.StorageInPurchase where CompanyCD='" + model.CompanyCD + "' and BillStatus=2"; } break; case "2": { sql = "select ID,'生产完工入库单' as FromType,InNo,Title,CountTotal,ISNULL(CONVERT(VARCHAR(10),CreateDate,21),'') AS CreateDate from officedba.StorageInProcess where CompanyCD='" + model.CompanyCD + "' and BillStatus=2"; } break; case "3": { sql = "select ID,'其他入库单' as FromType,InNo,Title,CountTotal,ISNULL(CONVERT(VARCHAR(10),CreateDate,21),'') AS CreateDate from officedba.StorageInOther where CompanyCD='" + model.CompanyCD + "' and BillStatus=2"; } break; default: break; } SqlCommand comm = new SqlCommand(); //添加公司代码参数 if (!string.IsNullOrEmpty(model.InNo)) { sql += " and InNo like '%'+ @InNo +'%'"; comm.Parameters.Add(SqlHelper.GetParameterFromString("@InNo", model.InNo)); } if (!string.IsNullOrEmpty(model.Title)) { sql += " and Title like '%'+ @Title +'%'"; comm.Parameters.Add(SqlHelper.GetParameterFromString("@Title", model.Title)); } comm.CommandText = sql; return SqlHelper.ExecuteSearch(comm); }
public static bool CancelCloseBill(StorageInRedModel model) { StringBuilder sql = new StringBuilder(); sql.AppendLine(" UPDATE officedba.StorageInRed SET"); sql.AppendLine(" Closer = NULL,"); sql.AppendLine(" CloseDate = NULL,"); sql.AppendLine(" BillStatus = 2,"); sql.AppendLine(" ModifiedUserID = @ModifiedUserID,"); sql.AppendLine(" ModifiedDate = getdate()"); sql.AppendLine(" Where CompanyCD=@CompanyCD and ID=@ID"); SqlCommand comm = new SqlCommand(); comm.CommandText = sql.ToString(); comm.Parameters.Add(SqlHelper.GetParameterFromString("@ModifiedUserID", model.ModifiedUserID)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@CompanyCD", model.CompanyCD)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@ID", model.ID)); return SqlHelper.ExecuteTransWithCommand(comm); }
public static bool ConfirmBill(StorageInRedModel model) { ArrayList lstConfirm = new ArrayList(); StringBuilder sql = new StringBuilder(); sql.AppendLine(" UPDATE officedba.StorageInRed SET"); sql.AppendLine(" Confirmor = @Confirmor,"); sql.AppendLine(" confirmDate = getdate(),"); sql.AppendLine(" BillStatus = 2,"); sql.AppendLine(" ModifiedUserID = @ModifiedUserID,"); sql.AppendLine(" ModifiedDate = getdate()"); sql.AppendLine(" Where CompanyCD=@CompanyCD and ID=@ID"); SqlCommand comm = new SqlCommand(); comm.CommandText = sql.ToString(); comm.Parameters.Add(SqlHelper.GetParameterFromString("@Confirmor", model.Confirmor)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@ModifiedUserID", model.ModifiedUserID)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@CompanyCD", model.CompanyCD)); comm.Parameters.Add(SqlHelper.GetParameterFromString("@ID", model.ID)); lstConfirm.Add(comm); List<StorageInRedDetailModel> modelList = new List<StorageInRedDetailModel>(); string sqlSele = "select a.CompanyCD,a.ProductID,a.StorageID,a.BatchNo,a.InNo,a.UnitPrice,convert(varchar(10),b.EnterDate,23) HappenDate," + " a.ProductCount,a.Remark from officedba.StorageInRedDetail a " + " left join officedba.StorageInRed b on b.InNo = a.InNo and a.CompanyCD = b.CompanyCD " + " where a.CompanyCD='" + model.CompanyCD + "' and a.InNo=(select InNo from officedba.StorageInRed where ID=" + model.ID + ")"; DataTable dt = SqlHelper.ExecuteSql(sqlSele); if (dt != null && dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { StorageInRedDetailModel modelDetail = new StorageInRedDetailModel(); StorageAccountModel StorageAccountM = new StorageAccountModel(); if (dt.Rows[i]["ProductID"].ToString() != "") { modelDetail.ProductID = dt.Rows[i]["ProductID"].ToString(); StorageAccountM.ProductID = Convert.ToInt32(dt.Rows[i]["ProductID"].ToString()); } if (dt.Rows[i]["StorageID"].ToString() != "") { modelDetail.StorageID = dt.Rows[i]["StorageID"].ToString(); StorageAccountM.StorageID = Convert.ToInt32(dt.Rows[i]["StorageID"].ToString()); } if (dt.Rows[i]["ProductCount"].ToString() != "") { modelDetail.ProductCount = dt.Rows[i]["ProductCount"].ToString(); StorageAccountM.ProductCount = Convert.ToDecimal(dt.Rows[i]["ProductCount"].ToString()); StorageAccountM.HappenCount = Convert.ToDecimal(dt.Rows[i]["ProductCount"].ToString()); } StorageAccountM.CompanyCD = dt.Rows[i]["CompanyCD"].ToString(); StorageAccountM.BillType = 6; if (dt.Rows[i]["BatchNo"].ToString() != "") { StorageAccountM.BatchNo = dt.Rows[i]["BatchNo"].ToString(); modelDetail.BatchNo = dt.Rows[i]["BatchNo"].ToString(); } modelList.Add(modelDetail); StorageAccountM.BillNo = dt.Rows[i]["InNo"].ToString(); StorageAccountM.Price = Convert.ToDecimal(dt.Rows[i]["UnitPrice"].ToString()); StorageAccountM.HappenDate = Convert.ToDateTime(dt.Rows[i]["HappenDate"].ToString()); StorageAccountM.Creator = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).EmployeeID; StorageAccountM.PageUrl = "../Office/StorageManager/StorageInRedAdd.aspx"; StorageAccountM.ReMark = dt.Rows[i]["Remark"].ToString(); SqlCommand commSA = new SqlCommand(); commSA = StorageAccountDBHelper.InsertStorageAccountCommand(StorageAccountM, "1"); lstConfirm.Add(commSA); } } if (modelList != null && modelList.Count > 0)//明细不为空的时候 { for (int i = 0; i < modelList.Count; i++) { SqlCommand commPD = updateStorageProduct(modelList[i].ProductID, modelList[i].StorageID, modelList[i].ProductCount, model.CompanyCD, modelList[i].BatchNo); lstConfirm.Add(commPD); } } foreach (SqlCommand cmd in GetInFromBillInfo(model.CompanyCD, model.ID)) { lstConfirm.Add(cmd); } return SqlHelper.ExecuteTransWithArrayList(lstConfirm); }
/// <summary> /// 保存时基本信息参数设置 /// </summary> /// <param name="comm"></param> /// <param name="model"></param> private static void SetSaveParameter(SqlCommand comm, StorageInRedModel model) { if (!string.IsNullOrEmpty(model.ID)) { comm.Parameters.Add(SqlHelper.GetParameterFromString("@ID ", model.ID));//自动生成 } comm.Parameters.Add(SqlHelper.GetParameterFromString("@Creator ", model.Creator));//制单人 comm.Parameters.Add(SqlHelper.GetParameterFromString("@CompanyCD ", model.CompanyCD));//公司编码 comm.Parameters.Add(SqlHelper.GetParameterFromString("@InNo ", model.InNo));//入库单编号 comm.Parameters.Add(SqlHelper.GetParameterFromString("@DeptID ", model.DeptID));//入库部门 comm.Parameters.Add(SqlHelper.GetParameterFromString("@Title ", model.Title));//主题 comm.Parameters.Add(SqlHelper.GetParameterFromString("@BillStatus ", model.BillStatus));//单据状态 comm.Parameters.Add(SqlHelper.GetParameterFromString("@Executor ", model.Executor));//入库人 comm.Parameters.Add(SqlHelper.GetParameterFromString("@EnterDate ", model.EnterDate));//入库时间 comm.Parameters.Add(SqlHelper.GetParameterFromString("@TotalPrice ", model.TotalPrice));//入库金额合计 comm.Parameters.Add(SqlHelper.GetParameterFromString("@CountTotal ", model.CountTotal));//入库数量合计 comm.Parameters.Add(SqlHelper.GetParameterFromString("@Summary ", model.Summary));//摘要 comm.Parameters.Add(SqlHelper.GetParameterFromString("@Remark ", model.Remark));//备注 //comm.Parameters.Add(SqlHelper.GetParameterFromString("@ConfirmDate ", model.ConfirmDate));//确认日期 //comm.Parameters.Add(SqlHelper.GetParameterFromString("@ModifiedDate ", "getdate()"));//最后更新日期 comm.Parameters.Add(SqlHelper.GetParameterFromString("@ModifiedUserID ", model.ModifiedUserID));//最后更新用户ID(对应操作用户表中的UserID) comm.Parameters.Add(SqlHelper.GetParameterFromString("@FromType ", model.FromType));// comm.Parameters.Add(SqlHelper.GetParameterFromString("@FromBillID ", model.FromBillID));// comm.Parameters.Add(SqlHelper.GetParameterFromString("@ReasonType ", model.ReasonType));//ReasonType comm.Parameters.Add(SqlHelper.GetParameterFromString("@CanViewUser ", model.CanViewUser));//可查看人ID comm.Parameters.Add(SqlHelper.GetParameterFromString("@CanViewUserName ", model.CanViewUserName));//可查看人Name }
/// <summary> /// 更新红冲入库及红冲入库明细 /// </summary> /// <param name="model"></param> /// <param name="modelList"></param> /// <returns></returns> public static bool UpdateStorageInRed(StorageInRedModel model, List<StorageInRedDetailModel> modelList, Hashtable htExtAttr) { StringBuilder strSql = new StringBuilder(); strSql.Append("update officedba.StorageInRed set "); strSql.Append("CompanyCD=@CompanyCD,"); strSql.Append("InNo=@InNo,"); strSql.Append("Title=@Title,"); strSql.Append("FromType=@FromType,"); strSql.Append("FromBillID=@FromBillID,"); strSql.Append("ReasonType=@ReasonType,"); strSql.Append("Executor=@Executor,"); strSql.Append("EnterDate=@EnterDate,"); strSql.Append("TotalPrice=@TotalPrice,"); strSql.Append("CountTotal=@CountTotal,"); strSql.Append("Summary=@Summary,"); strSql.Append("Remark=@Remark,"); strSql.Append("CanViewUser=@CanViewUser,"); strSql.Append("CanViewUserName=@CanViewUserName,"); strSql.Append("ModifiedDate=getdate(),"); strSql.Append("ModifiedUserID=@ModifiedUserID"); strSql.Append(" where ID=@ID "); SqlCommand comm = new SqlCommand(strSql.ToString()); SetSaveParameter(comm, model); ArrayList lstUpdate = new ArrayList(); lstUpdate.Add(comm);//数组加入插入基表的command //先删掉明细表中对应单据的所有数据 string delDetail = "delete from officedba.StorageInRedDetail where CompanyCD='" + model.CompanyCD + "' and InNo='" + model.InNo + "'"; SqlCommand commdel = new SqlCommand(delDetail); lstUpdate.Add(commdel); #region 拓展属性 SqlCommand cmd = new SqlCommand(); GetExtAttrCmd(model, htExtAttr, cmd); if (htExtAttr.Count > 0) lstUpdate.Add(cmd); #endregion if (modelList != null && modelList.Count > 0)//明细不为空的时候 { StringBuilder strSqlDetail = new StringBuilder(); strSqlDetail.Append("insert into officedba.StorageInRedDetail("); strSqlDetail.Append("InNo,ProductID,StorageID,UnitPrice,ProductCount,TotalPrice,Remark,FromType,FromLineNo,ModifiedDate,ModifiedUserID,CompanyCD,SortNo,UsedUnitID,UsedUnitCount,UsedPrice,ExRate,BatchNo)"); strSqlDetail.Append(" values ("); strSqlDetail.Append("@InNo,@ProductID,@StorageID,@UnitPrice,@ProductCount,@TotalPrice,@Remark,@FromType,@FromLineNo,getdate(),@ModifiedUserID,@CompanyCD,@SortNo,@UsedUnitID,@UsedUnitCount,@UsedPrice,@ExRate,@BatchNo)"); strSqlDetail.Append(";select @@IDENTITY"); for (int i = 0; i < modelList.Count; i++) { SqlCommand commDetail = new SqlCommand(); commDetail.CommandText = strSqlDetail.ToString(); EditInRedDetailInfo(commDetail, modelList[i]); lstUpdate.Add(commDetail);//循环加入数组(重新获取页面上明细数据) //SqlCommand commPD = updateStorageProduct(modelList[i].ProductID, modelList[i].StorageID, modelList[i].ProductCount, model, false); //lstUpdate.Add(commPD); } } return SqlHelper.ExecuteTransWithArrayList(lstUpdate); }
public static DataTable GetStorageInRedTableBycondition(string BatchNo,StorageInRedModel model, string timeStart, string timeEnd, string orderby) { return StorageInRedDBHelper.GetStorageInRedTableBycondition(BatchNo,model, timeStart, timeEnd, orderby); }
protected void LoadPrintInfo() { PrintParameterSettingModel model = new PrintParameterSettingModel(); model.CompanyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD; model.BillTypeFlag = int.Parse(ConstUtil.BILL_TYPEFLAG_STORAGE); model.PrintTypeFlag = ConstUtil.PRINTBILL_TYPEFLAG_INRED; StorageInRedModel InRedM_ = new StorageInRedModel(); InRedM_.CompanyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD; InRedM_.ID = this.BillID.ToString(); #region 初始化 取基本信息及明细信息的字段以及对应的标题 /*此处需注意在模板设置表里的字段和取基本信息的字段是否一致*/ string[,] aBase; string[,] aDetail; if (GetIsDisplayPrice() != "none") { aBase = new string[,] { { "{ExtField1}", "ExtField1"}, { "{ExtField2}", "ExtField2"}, { "{ExtField3}", "ExtField3"}, { "{ExtField4}", "ExtField4"}, { "{ExtField5}", "ExtField5"}, { "{ExtField6}", "ExtField6"}, { "{ExtField7}", "ExtField7"}, { "{ExtField8}", "ExtField8"}, { "{ExtField9}", "ExtField9"}, { "{ExtField10}", "ExtField10"}, { "入库单编号", "InNo"}, { "入库单主题", "Title"}, { "源单类型", "FromType" }, { "原始入库单", "FromInNo" }, { "原始入库人", "FromExecutor"}, { "原始入库时间", "FromEnterDate"}, { "原始入库部门", "DeptName"}, { "入库人", "ExecutorName"}, { "入库时间", "EnterDate"}, { "入库原因", "ReasonTypeName"}, { "原始摘要", "FromSummary"}, { "摘要", "Summary"}, { "批次", "BatchNo"}, { "数量合计", "CountTotal"}, { "金额合计", "A_TotalPrice"}, { "制单人", "CreatorName"}, { "制单日期", "CreateDate"}, { "确认人", "ConfirmorName"}, { "确认日期", "ConfirmDate"}, { "结单人", "CloserName"}, { "结单日期", "CloseDate"}, { "最后更新人", "ModifiedUserName"}, { "最后更新日期", "ModifiedDate"}, { "单据状态", "BillStatus"}, { "备注", "Remark"}, }; if (HiddenMoreUnit.Value == "true") { aDetail = new string[,] { { "序号", "SortNo"}, { "物品编号", "ProductNo"}, { "物品名称", "ProductName" }, { "规格", "Specification" }, { "基本单位", "UnitID"}, { "单位", "UsedUnitName"}, //++ { "仓库", "StorageName"}, { "原始入库量", "FromBillCount"}, { "基本数量", "ProductCount"}, { "数量", "UsedUnitCount"}, //++ { "红冲单价", "UnitPrice"}, { "红冲金额", "B_TotalPrice"}, }; } else { aDetail = new string[,] { { "序号", "SortNo"}, { "物品编号", "ProductNo"}, { "物品名称", "ProductName" }, { "规格", "Specification" }, { "单位", "UnitID"}, { "仓库", "StorageName"}, { "原始入库量", "FromBillCount"}, { "红冲数量", "ProductCount"}, { "红冲单价", "UnitPrice"}, { "红冲金额", "B_TotalPrice"}, }; } } else { aBase = new string[,] { { "{ExtField1}", "ExtField1"}, { "{ExtField2}", "ExtField2"}, { "{ExtField3}", "ExtField3"}, { "{ExtField4}", "ExtField4"}, { "{ExtField5}", "ExtField5"}, { "{ExtField6}", "ExtField6"}, { "{ExtField7}", "ExtField7"}, { "{ExtField8}", "ExtField8"}, { "{ExtField9}", "ExtField9"}, { "{ExtField10}", "ExtField10"}, { "入库单编号", "InNo"}, { "入库单主题", "Title"}, { "源单类型", "FromType" }, { "原始入库单", "FromInNo" }, { "原始入库人", "FromExecutor"}, { "原始入库时间", "FromEnterDate"}, { "原始入库部门", "DeptName"}, { "入库人", "ExecutorName"}, { "入库时间", "EnterDate"}, { "入库原因", "ReasonTypeName"}, { "原始摘要", "FromSummary"}, { "摘要", "Summary"}, { "批次", "BatchNo"}, { "数量合计", "CountTotal"}, { "制单人", "CreatorName"}, { "制单日期", "CreateDate"}, { "确认人", "ConfirmorName"}, { "确认日期", "ConfirmDate"}, { "结单人", "CloserName"}, { "结单日期", "CloseDate"}, { "最后更新人", "ModifiedUserName"}, { "最后更新日期", "ModifiedDate"}, { "单据状态", "BillStatus"}, { "备注", "Remark"}, }; if (HiddenMoreUnit.Value == "true") { aDetail = new string[,] { { "序号", "SortNo"}, { "物品编号", "ProductNo"}, { "物品名称", "ProductName" }, { "规格", "Specification" }, { "基本单位", "UnitID"}, { "单位", "UsedUnitName"}, //++ { "仓库", "StorageName"}, { "原始入库量", "FromBillCount"}, { "基本数量", "ProductCount"}, { "数量", "UsedUnitCount"}, //++ }; } else { aDetail = new string[,] { { "序号", "SortNo"}, { "物品编号", "ProductNo"}, { "物品名称", "ProductName" }, { "规格", "Specification" }, { "单位", "UnitID"}, { "仓库", "StorageName"}, { "原始入库量", "FromBillCount"}, { "红冲数量", "ProductCount"}, }; } } #endregion #region 1.扩展属性 int countExt = 0; DataTable dtExtTable = XBase.Business.Office.SupplyChain.TableExtFieldsBus.GetAllList(((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD, "", "officedba.StorageInRed"); if (dtExtTable.Rows.Count > 0) { for (int i = 0; i < dtExtTable.Rows.Count; i++) { for (int x = 0; x < (aBase.Length / 2) - 15; x++) { if (x == i) { aBase[x, 0] = dtExtTable.Rows[i]["EFDesc"].ToString(); countExt++; } } } } #endregion #region 2.所设的打印模板设置 DataTable dbPrint = XBase.Business.Common.PrintParameterSettingBus.GetPrintParameterSettingInfo(model); DataTable dtDetail = StorageInRedBus.GetStorageInRedDetailInfo(InRedM_.ID, InRedM_.CompanyCD); DataTable dtMain = StorageInRedBus.GetStorageInRedInfo(InRedM_.ID, InRedM_.CompanyCD); string strBaseFields = ""; string strDetailFields = ""; if (dbPrint.Rows.Count > 0) { #region 设置过打印模板设置时 直接取出表里设置的值 isSeted.Value = "1"; strBaseFields = dbPrint.Rows[0]["BaseFields"].ToString(); strDetailFields = dbPrint.Rows[0]["DetailFields"].ToString(); #endregion } else { #region 未设置过打印模板设置 默认显示所有的 isSeted.Value = "0"; /*未设置过打印模板设置时,默认显示的字段 基本信息字段*/ for (int m = 10; m < aBase.Length / 2; m++) { strBaseFields = strBaseFields + aBase[m, 1] + "|"; } /*未设置过打印模板设置时,默认显示的字段 基本信息字段+扩展信息字段*/ if (countExt > 0) { for (int i = 0; i < countExt; i++) { strBaseFields = strBaseFields + "ExtField" + (i + 1) + "|"; } } /*未设置过打印模板设置时,默认显示的字段 明细信息字段*/ for (int n = 0; n < aDetail.Length / 2; n++) { strDetailFields = strDetailFields + aDetail[n, 1] + "|"; } #endregion /*两种都可以*/ } #endregion #region 3.输出主表信息 if (!string.IsNullOrEmpty(strBaseFields)) { tableBase.InnerHtml = WritePrintPageTable("红冲入库单", strBaseFields.TrimEnd('|'), strDetailFields.TrimEnd('|'), aBase, aDetail, dtMain, dtDetail, true); } #endregion #region 4.输出明细信息 if (!string.IsNullOrEmpty(strDetailFields)) { tableDetail.InnerHtml = WritePrintPageTable("红冲入库单", strBaseFields.TrimEnd('|'), strDetailFields.TrimEnd('|'), aBase, aDetail, dtMain, dtDetail, false); } #endregion }
/// <summary> /// 获取红冲入库详细信息(加载页面的时候) /// </summary> /// <returns>DataTable</returns> public static DataTable GetStorageInRedDetailInfo(StorageInRedModel model) { //a->officedba.StorageInRed //b->officedba.StorageInRedDetail //l->officedba.SellBackDetail StringBuilder sql = new StringBuilder(); sql.AppendLine("SELECT DISTINCT "); sql.AppendLine("a.ID ,a.CanViewUser,a.CanViewUserName,a.ExtField1,a.ExtField2,a.ExtField3,a.ExtField4,a.ExtField5,a.ExtField6,a.ExtField6,a.ExtField7,a.ExtField8,a.ExtField9,a.ExtField10 "); sql.AppendLine(",a.CompanyCD "); sql.AppendLine(",a.InNo "); sql.AppendLine(",a.FromType "); sql.AppendLine(",a.FromBillID "); sql.AppendLine(",a.ReasonType "); sql.AppendLine(",case a.FromType "); sql.AppendLine("when '1' then (select bb.InNo from officedba.StorageInPurchase bb where bb.id=a.FrombillID) "); sql.AppendLine("when '2' then (select cc.InNo from officedba.StorageInProcess cc where cc.id=a.FrombillID) "); sql.AppendLine("when '3' then (select dd.InNo from officedba.StorageInOther dd where dd.id=a.FrombillID) "); sql.AppendLine("end FromInNo "); sql.AppendLine(",case a.FromType "); sql.AppendLine("when '1' then (select CONVERT(VARCHAR(10),bb.EnterDate, 21) from officedba.StorageInPurchase bb where bb.id=a.FrombillID) "); sql.AppendLine("when '2' then (select CONVERT(VARCHAR(10),cc.EnterDate, 21) from officedba.StorageInProcess cc where cc.id=a.FrombillID) "); sql.AppendLine("when '3' then (select CONVERT(VARCHAR(10),dd.EnterDate, 21) from officedba.StorageInOther dd where dd.id=a.FrombillID) "); sql.AppendLine("end FromEnterDate "); sql.AppendLine(",case a.FromType "); sql.AppendLine("when '1' then (select ee.EmployeeName from officedba.StorageInPurchase bb left join officedba.EmployeeInfo ee on bb.Executor=ee.ID where bb.id=a.FrombillID) "); sql.AppendLine("when '2' then (select ee.EmployeeName from officedba.StorageInProcess cc left join officedba.EmployeeInfo ee on cc.Executor=ee.ID where cc.id=a.FrombillID) "); sql.AppendLine("when '3' then (select ee.EmployeeName from officedba.StorageInOther dd left join officedba.EmployeeInfo ee on dd.Executor=ee.ID where dd.id=a.FrombillID) "); sql.AppendLine("end FromExecutor "); sql.AppendLine(",case a.FromType "); sql.AppendLine("when '1' then (select bb.ProductCount from officedba.StorageInPurchaseDetail bb left join officedba.StorageInPurchase ee on bb.InNo=ee.InNo and bb.SortNo=b.FromLineNo where ee.id=a.FrombillID)"); sql.AppendLine("when '2' then (select bb.ProductCount from officedba.StorageInProcessDetail bb left join officedba.StorageInProcess ee on bb.InNo=ee.InNo and bb.SortNo=b.FromLineNo where ee.ID=a.FrombillID)"); sql.AppendLine("when '3' then (select bb.ProductCount from officedba.StorageInOtherDetail bb left join officedba.StorageInOther ee on ee.InNo=bb.InNo and bb.SortNo=b.FromLineNo where ee.id=a.FrombillID) "); sql.AppendLine("end FromBillCount "); sql.AppendLine(",case a.FromType "); sql.AppendLine("when '1' then (select ISNULL(bb.Summary,'') from officedba.StorageInPurchase bb where bb.id=a.FrombillID) "); sql.AppendLine("when '2' then (select ISNULL(cc.Summary,'') from officedba.StorageInProcess cc where cc.id=a.FrombillID) "); sql.AppendLine("when '3' then (select ISNULL(dd.Summary,'') from officedba.StorageInOther dd where dd.id=a.FrombillID) "); sql.AppendLine("end FromSummary "); sql.AppendLine(",a.Title "); sql.AppendLine(",a.DeptID "); sql.AppendLine(",j.DeptName "); sql.AppendLine(",a.Executor "); sql.AppendLine(",ISNULL(f.EmployeeName,'') as ExecutorName "); sql.AppendLine(",case when a.EnterDate Is NULL then '' else CONVERT(VARCHAR(10),a.EnterDate, 21) end AS EnterDate "); sql.AppendLine(",a.BillStatus "); sql.AppendLine(",ISNULL(a.Summary,'') as Summary "); sql.AppendLine(",ISNULL(a.TotalPrice,'0') as A_TotalPrice "); sql.AppendLine(",ISNULL(a.CountTotal,'0') as CountTotal "); sql.AppendLine(",a.Creator "); sql.AppendLine(",ISNULL(g.EmployeeName,'') as CreatorName "); sql.AppendLine(",case when a.CreateDate Is NULL then '' else CONVERT(VARCHAR(10),a.CreateDate, 21) end AS CreateDate "); sql.AppendLine(",a.Confirmor "); sql.AppendLine(",ISNULL(h.EmployeeName,'') as ConfirmorName "); sql.AppendLine(",case when a.ConfirmDate Is NULL then '' else CONVERT(VARCHAR(10),a.ConfirmDate, 21) end AS ConfirmDate "); sql.AppendLine(",a.Closer "); sql.AppendLine(",ISNULL(i.EmployeeName,'') as CloserName "); sql.AppendLine(",case when a.CloseDate Is NULL then '' else CONVERT(VARCHAR(10),a.CloseDate, 21) end AS CloseDate "); sql.AppendLine(",case when a.ModifiedDate Is NULL then '' else CONVERT(VARCHAR(10),a.ModifiedDate, 21) end AS ModifiedDate "); sql.AppendLine(",a.ModifiedUserID "); sql.AppendLine(",a.ModifiedUserID as ModifiedUserName "); sql.AppendLine(",ISNULL(a.Remark,'') as Remark "); sql.AppendLine(",b.ID as DetailID "); sql.AppendLine(",b.ProductID "); sql.AppendLine(",c.ProdNo as ProductNo "); sql.AppendLine(",c.ProductName "); sql.AppendLine(",ISNULL(c.MinusIs,0) as MinusIs"); sql.AppendLine(",c.Specification,c.IsBatchNo "); sql.AppendLine(",q.CodeName as UnitID "); sql.AppendLine(",isnull(b.UnitPrice,0) as UnitPrice "); sql.AppendLine(",b.StorageID "); sql.AppendLine(",b.TotalPrice as B_TotalPrice "); sql.AppendLine(",b.FromType "); sql.AppendLine(",b.FromBillID "); sql.AppendLine(",b.FromLineNo "); sql.AppendLine(",b.SortNo "); sql.AppendLine(",b.UsedUnitID "); sql.AppendLine(",b.UsedUnitCount "); sql.AppendLine(",isnull(b.UsedPrice,0)UsedPrice "); sql.AppendLine(",b.ExRate "); sql.AppendLine(",b.BatchNo "); sql.AppendLine(",b.Remark as DetaiRemark "); sql.AppendLine(",b.ProductCount "); sql.AppendLine(" ,ISNULL(s.ProductCount,0)+ISNULL(s.RoadCount,0)+ISNULL(s.InCount,0)-ISNULL(s.OrderCount,0)-ISNULL(s.OutCount,0) as UseCount "); sql.AppendLine("FROM officedba.StorageInRed a "); sql.AppendLine("left join officedba.StorageInRedDetail b "); sql.AppendLine("on a.InNo=b.InNo and a.CompanyCD=b.CompanyCD "); sql.AppendLine("left join officedba.ProductInfo c on c.ID=b.ProductID "); sql.AppendLine("left join officedba.EmployeeInfo f on a.Executor=f.ID "); sql.AppendLine("left join officedba.EmployeeInfo g on a.Creator=g.ID "); sql.AppendLine("left join officedba.EmployeeInfo h on a.Confirmor=h.ID "); sql.AppendLine("left join officedba.EmployeeInfo i on a.Closer=i.ID "); sql.AppendLine("left join officedba.DeptInfo j on a.DeptID=j.ID "); sql.AppendLine("left join officedba.CodeUnitType q on q.ID=c.UnitID "); sql.AppendLine("left join officedba.StorageProduct s on s.CompanyCD=a.CompanyCD and s.StorageID=b.StorageID and b.ProductID=s.ProductID and s.BatchNo = b.BatchNo "); sql.AppendLine("left join (select w.UserID,x.EmployeeName from officedba.UserInfo w ,officedba.EmployeeInfo x where w.EmployeeID =x.ID) m "); sql.AppendLine("on a.ModifiedUserID=m.UserID "); sql.AppendLine(" where b.CompanyCD='" + model.CompanyCD + "' and a.id=" + model.ID); return SqlHelper.ExecuteSql(sql.ToString()); }
/// <summary> /// 扩展属性保存操作 /// </summary> /// <returns></returns> private static void GetExtAttrCmd(StorageInRedModel model, Hashtable htExtAttr, SqlCommand cmd) { try { string strSql = string.Empty; strSql = "UPDATE officedba.StorageInRed set "; foreach (DictionaryEntry de in htExtAttr)// fileht为一个Hashtable实例 { strSql += de.Key.ToString().Trim() + "=@" + de.Key.ToString().Trim() + ","; cmd.Parameters.AddWithValue("@" + de.Key.ToString().Trim(), de.Value.ToString().Trim()); } int iLength = strSql.Length - 1; strSql = strSql.Substring(0, iLength); strSql += " where CompanyCD = @CompanyCD AND InNo = @InNo"; cmd.Parameters.AddWithValue("@CompanyCD", model.CompanyCD); cmd.Parameters.AddWithValue("@InNo", model.InNo); cmd.CommandText = strSql; } catch (Exception) { } }
public static string ISBigUseCountWhenCant(StorageInRedModel model) { return StorageInRedDBHelper.ISBigUseCountWhenCant(model); }
/// <summary> /// 获取红冲入库详细信息(加载页面的时候) /// </summary> /// <returns>DataTable</returns> public static DataTable GetStorageInRedDetailInfo(StorageInRedModel model) { return StorageInRedDBHelper.GetStorageInRedDetailInfo(model); }
/// <summary> /// 获取入库单列表 /// </summary> /// <param name="companycd"></param> /// <returns></returns> public static DataTable GetStorageInList(StorageInRedModel model, string InType) { return StorageInRedDBHelper.GetStorageInList(model, InType); }
public static bool CancelCloseBill(StorageInRedModel model) { //获取登陆用户信息 UserInfoUtil userInfo = (UserInfoUtil)SessionUtil.Session["UserInfo"]; //设置公司代码 model.CompanyCD = userInfo.CompanyCD; //定义返回变量 bool isSucc = false; /* * 定义日志内容变量 * 增删改相关的日志,需要输出操作日志,该类型日志插入到数据库 * 其他的 如出现异常时,需要输出系统日志,该类型日志保存到日志文件 */ //获取公司代码 string companyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD; //执行删除操作 try { //执行更新 isSucc = StorageInRedDBHelper.CancelCloseBill(model); } catch (Exception ex) { //输出日志 WriteSystemLog(userInfo, ex); } //定义变量 string remark; //成功时 if (isSucc) { //设置操作成功标识 remark = ConstUtil.LOG_PROCESS_SUCCESS; } else { //设置操作成功标识 remark = ConstUtil.LOG_PROCESS_FAILED; } //操作日志 LogInfoModel logModel = InitLogInfo(model.ID); //涉及关键元素 这个需要根据每个页面具体设置,本页面暂时设置为空 logModel.Element = "取消结单"; //设置操作成功标识 logModel.Remark = remark; //登陆日志 LogDBHelper.InsertLog(logModel); return isSucc; }
/// <summary> /// 查找出当前单据中明细,所有不允许的负库存的物品,然后判断是否出库数量大于负库存 /// </summary> /// <param name="model">CompanyCD,ID</param> /// <returns>string:行号数组|对应行号的可用库存</returns> public static string ISBigUseCountWhenCant(StorageInRedModel model) { string batchsql = "SELECT A.BatchNo FROM officedba.StorageInRedDetail A LEFT OUTER JOIN officedba.StorageInRed B on A.InNo=B.InNo AND A.CompanyCD=B.CompanyCD where A.CompanyCD='" + model.CompanyCD + "' and B.ID=" + model.ID + ""; DataTable dtbatch = SqlHelper.ExecuteSql(batchsql.ToString()); string RowNumList = string.Empty;//有状况的明细行号 string UseCountList = string.Empty;//有状况的明细对应的可有库存 if (dtbatch.Rows.Count > 0) { for (int i = 0; i < dtbatch.Rows.Count; i++) { StringBuilder sql = new StringBuilder(); sql.AppendLine("select b.ID,a.ProductID,a.StorageID,a.ProductCount "); sql.AppendLine(",ISNULL(d.MinusIs,0) as MinusIs "); sql.AppendLine(",ISNULL(c.ProductCount,0) as UseCount "); sql.AppendLine(" from officedba.StorageInRedDetail a "); sql.AppendLine("left join officedba.StorageInRed b on a.InNo=b.InNo "); sql.AppendLine("left join officedba.StorageProduct c on a.StorageID=c.StorageID and a.ProductID=c.ProductID "); //AND a.BatchNo=c.BatchNo if (dtbatch.Rows[i]["BatchNo"].ToString().Trim() != "") sql.AppendLine(" AND a.BatchNo=c.BatchNo "); sql.AppendLine("left join officedba.ProductInfo d on d.ID=a.ProductID "); sql.AppendLine(" where a.CompanyCD='" + model.CompanyCD + "' and b.ID=" + model.ID + " and ISNULL(d.MinusIS,0)='0' "); if (dtbatch.Rows[i]["BatchNo"].ToString().Trim() != "") sql.AppendLine(" AND c.BatchNo='" + dtbatch.Rows[i]["BatchNo"].ToString().Trim() + "' "); else sql.AppendLine(" AND (c.BatchNo is null or c.BatchNo='') "); DataTable dt = SqlHelper.ExecuteSql(sql.ToString()); if (dt.Rows.Count > 0) { if (decimal.Parse(dt.Rows[0]["ProductCount"].ToString()) > decimal.Parse(dt.Rows[0]["UseCount"].ToString())) { if (RowNumList == "" || RowNumList == string.Empty) { RowNumList = (i + 1).ToString(); UseCountList = dt.Rows[i]["UseCount"].ToString(); } else { RowNumList += "," + (i + 1).ToString(); UseCountList += "," + dt.Rows[i]["UseCount"].ToString(); } } } } } if (RowNumList == "" || RowNumList == string.Empty) { return ""; } else { return RowNumList + "|" + UseCountList; } #region 作废SQL //StringBuilder sql = new StringBuilder(); //sql.AppendLine("select b.FromType,b.ID,a.ProductID,a.StorageID "); //if (((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsMoreUnit == true) //{ // sql.AppendLine(",a.UsedUnitCount ProductCount "); //} //else //{ // sql.AppendLine(",a.ProductCount "); //} //sql.AppendLine(",ISNULL(d.MinusIs,0) as MinusIs "); //sql.AppendLine(",ISNULL(c.ProductCount,0)+ISNULL(c.RoadCount,0)+ISNULL(c.InCount,0)-ISNULL(c.OrderCount,0)-ISNULL(c.OutCount,0) as UseCount "); //sql.AppendLine(" from officedba.StorageInRedDetail a "); //sql.AppendLine("left join officedba.StorageInRed b on a.InNo=b.InNo "); //sql.AppendLine("left join officedba.StorageProduct c on a.StorageID=c.StorageID and a.ProductID=c.ProductID "); //sql.AppendLine("left join officedba.ProductInfo d on d.ID=a.ProductID "); //sql.AppendLine(" where a.CompanyCD='" + model.CompanyCD + "' and b.ID=" + model.ID + " and ISNULL(d.MinusIS,0)='0'"); #endregion }
/// <summary> /// 查询红冲入库单 /// </summary> /// <returns>DataTable</returns> public static DataTable GetStorageInRedTableBycondition(string BatchNo,StorageInRedModel model, string timeStart, string timeEnd, int pageIndex, int pageCount, string ord, ref int TotalCount) { //列表:入库单编号、入库单主题、源单类型、原始入库单、入库部门、人库人、入库时间、红冲数量、红冲金额、摘要、单据状态。 string CanUser = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).EmployeeID.ToString(); StringBuilder sql = new StringBuilder(); sql.AppendLine("select DISTINCT x.*,ISNULL(l.DeptName,'') as DeptName,ISNULL(m.EmployeeName,'') as ExecutorName from "); sql.AppendLine("(select a.ID "); sql.AppendLine(",ISNULL(c.CodeName,'') as CodeName"); sql.AppendLine(",ISNULL(a.InNo,'') AS InNo "); sql.AppendLine(",ISNULL(a.Title,'') AS Title "); sql.AppendLine(",ISNULL(a.CountTotal,'0') AS CountTotal "); sql.AppendLine(",ISNULL(a.TotalPrice,'0') AS TotalPrice "); sql.AppendLine(",ISNULL(a.Summary,'') AS Summary "); sql.AppendLine(",case a.billStatus when '1' then '制单' when '2' then '执行' when '3' then '变更' when '4' then '手工结单' when '5' then '自动结单' else '' end as BillStatusName "); sql.AppendLine(",case a.FromType when '1' then '采购入库单' when '2' then '生产完工入库单' when '3' then '其他入库单' end FromType "); sql.AppendLine(",case a.fromtype "); sql.AppendLine("when '1' then (select distinct b.InNO from officedba.StorageInPurchase b where b.id=a.frombillID) "); sql.AppendLine("when '2' then (select distinct c.InNO from officedba.StorageInProcess c where c.id=a.frombillID) "); sql.AppendLine("when '3' then (select distinct d.InNO from officedba.StorageInOther d where d.id=a.frombillID) "); sql.AppendLine("end FromInNo, "); sql.AppendLine("case a.fromtype "); sql.AppendLine("when '1' then (select distinct ISNULL(b.DeptID,'') from officedba.StorageInPurchase b where b.id=a.frombillID) "); sql.AppendLine("when '2' then (select distinct ISNULL(c.DeptID,'') from officedba.StorageInProcess c where c.id=a.frombillID) "); sql.AppendLine("when '3' then (select distinct ISNULL(d.DeptID,'') from officedba.StorageInOther d where d.id=a.frombillID) "); sql.AppendLine("end DeptID, "); sql.AppendLine("a.Executor, "); sql.AppendLine("case when a.EnterDate Is NULL then '' else CONVERT(VARCHAR(10),a.EnterDate, 21) end as EnterDate"); //sql.AppendLine("case a.fromtype "); //sql.AppendLine("when '1' then (select distinct case when b.EnterDate Is NULL then '' else CONVERT(VARCHAR(10),b.EnterDate, 21) end from officedba.StorageInPurchase b where b.id=a.frombillID) "); //sql.AppendLine("when '2' then (select distinct case when c.EnterDate Is NULL then '' else CONVERT(VARCHAR(10),c.EnterDate, 21) end from officedba.StorageInProcess c where c.id=a.frombillID) "); //sql.AppendLine("when '3' then (select distinct case when d.EnterDate Is NULL then '' else CONVERT(VARCHAR(10),d.EnterDate, 21) end from officedba.StorageInOther d where d.id=a.frombillID) "); //sql.AppendLine("end EnterDate "); sql.AppendLine(" from officedba.StorageInRed a "); sql.AppendLine(" left join officedba.CodeReasonType as c on a.ReasonType=c.ID"); sql.AppendLine(" left join officedba.StorageInRedDetail as d on d.InNo=a.InNo "); sql.AppendLine(" where a.CompanyCD=@CompanyCD AND (CHARINDEX('," + CanUser + ",',','+a.CanViewUser+',')>0 OR a.CanViewUser='' or a.CanViewUser is null OR a.Creator=" + CanUser + ")"); //查询条件:入库单编号、入库单主题、源单类型(选择)、原始入库单(选择)、入库部门、入库人(选择)、入库时间(日期段,日期控件)、单据状态(下拉列表) SqlCommand comm = new SqlCommand(); //添加公司代码参数 comm.Parameters.Add(SqlHelper.GetParameterFromString("@CompanyCD", model.CompanyCD)); if (!string.IsNullOrEmpty(BatchNo)) { sql.AppendLine(" and d.BatchNo like '%'+ @BatchNo +'%' "); comm.Parameters.Add(SqlHelper.GetParameterFromString("@BatchNo", BatchNo)); } if (!string.IsNullOrEmpty(model.InNo)) { sql.AppendLine(" and a.InNo like '%'+ @InNo +'%' "); comm.Parameters.Add(SqlHelper.GetParameterFromString("@InNo", model.InNo)); } if (!string.IsNullOrEmpty(model.Title)) { sql.AppendLine(" and a.Title like '%'+ @Title +'%'"); comm.Parameters.Add(SqlHelper.GetParameterFromString("@Title", model.Title)); } if (!string.IsNullOrEmpty(model.FromBillID)) { sql.AppendLine(" and a.FromBillID = @FromBillID"); comm.Parameters.Add(SqlHelper.GetParameterFromString("@FromBillID", model.FromBillID)); } if (!string.IsNullOrEmpty(model.FromType)) { sql.AppendLine(" and a.FromType = @FromType"); comm.Parameters.Add(SqlHelper.GetParameterFromString("@FromType", model.FromType)); } if (!string.IsNullOrEmpty(model.DeptID)) { sql.AppendLine(" and a.DeptID = @DeptID"); comm.Parameters.Add(SqlHelper.GetParameterFromString("@DeptID", model.DeptID)); } if (!string.IsNullOrEmpty(model.Executor)) { sql.AppendLine(" and a.Executor = @Executor"); comm.Parameters.Add(SqlHelper.GetParameterFromString("@Executor", model.Executor)); } if (!string.IsNullOrEmpty(model.ReasonType)) { sql.AppendLine(" and a.ReasonType = @ReasonType"); comm.Parameters.Add(SqlHelper.GetParameterFromString("@ReasonType", model.ReasonType)); } if (!string.IsNullOrEmpty(timeStart)) { sql.AppendLine(" and a.EnterDate>=@timeStart"); comm.Parameters.Add(SqlHelper.GetParameterFromString("@timeStart", timeStart)); } if (!string.IsNullOrEmpty(timeEnd)) { sql.AppendLine(" and a.EnterDate<=@timeEnd"); comm.Parameters.Add(SqlHelper.GetParameterFromString("@timeEnd", timeEnd)); } if (!string.IsNullOrEmpty(model.BillStatus)) { sql.AppendLine(" and a.BillStatus=@BillStatus"); comm.Parameters.Add(SqlHelper.GetParameterFromString("@BillStatus", model.BillStatus)); } if (!string.IsNullOrEmpty(model.EFIndex) && !string.IsNullOrEmpty(model.EFDesc)) { sql.AppendLine(" and a.ExtField" + model.EFIndex + " LIKE @EFDesc"); comm.Parameters.Add(SqlHelper.GetParameterFromString("@EFDesc", "%" + model.EFDesc + "%")); } sql.AppendLine(") x "); sql.AppendLine("left join officedba.DeptInfo l on l.ID=x.DeptID "); sql.AppendLine("left join officedba.EmployeeInfo m on m.ID=x.Executor"); comm.CommandText = sql.ToString(); return SqlHelper.PagerWithCommand(comm, pageIndex, pageCount, ord, ref TotalCount); }
/// <summary> /// 查找出当前单据中明细,所有允许的负库存的物品,然后判断是否出库数量大于负库存 /// </summary> /// <param name="model">CompanyCD,ID</param> /// <returns>string:行号数组|对应行号的可用库存</returns> public static string ISBigUseCountWhenCan(StorageInRedModel model) { string RowNumList = string.Empty;//有状况的明细行号 string UseCountList = string.Empty;//有状况的明细对应的可有库存 StringBuilder sql = new StringBuilder(); sql.AppendLine("select b.FromType,b.ID,a.ProductID,a.StorageID,a.ProductCount "); sql.AppendLine(",ISNULL(d.MinusIs,0) as MinusIs "); sql.AppendLine(",ISNULL(c.ProductCount,0)+ISNULL(c.RoadCount,0)+ISNULL(c.InCount,0)-ISNULL(c.OrderCount,0)-ISNULL(c.OutCount,0) as UseCount "); sql.AppendLine(" from officedba.StorageInRedDetail a "); sql.AppendLine("left join officedba.StorageInRed b on a.InNo=b.InNo "); sql.AppendLine("left join officedba.StorageProduct c on a.StorageID=c.StorageID and a.ProductID=c.ProductID "); sql.AppendLine("left join officedba.ProductInfo d on d.ID=a.ProductID "); sql.AppendLine(" where a.CompanyCD='" + model.CompanyCD + "' and b.ID=" + model.ID + " and ISNULL(d.MinusIS,0)='1'"); DataTable dt = SqlHelper.ExecuteSql(sql.ToString()); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { if (decimal.Parse(dt.Rows[i]["ProductCount"].ToString()) > decimal.Parse(dt.Rows[i]["UseCount"].ToString())) { if (RowNumList == "" || RowNumList == string.Empty) { RowNumList = (i + 1).ToString(); UseCountList = dt.Rows[i]["UseCount"].ToString(); } else { RowNumList += "," + (i + 1).ToString(); UseCountList += "," + dt.Rows[i]["UseCount"].ToString(); } } } } if (RowNumList == "" || RowNumList == string.Empty) { return ""; } else { return RowNumList + "|" + UseCountList; } }
/// <summary> /// 插入红冲入库和红冲入库明细 /// </summary> /// <param name="model"></param> /// <param name="modelList"></param> /// <returns></returns> public static bool InsertStorageInRed(StorageInRedModel model, List<StorageInRedDetailModel> modelList, out int IndexIDentity, Hashtable htExtAttr) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into officedba.StorageInRed("); strSql.Append("CompanyCD,InNo,Title,FromType,FromBillID,ReasonType,DeptID,Executor,EnterDate,TotalPrice,CountTotal,Summary,Remark,Creator,CreateDate,BillStatus,ModifiedDate,ModifiedUserID,CanViewUser,CanViewUserName)"); strSql.Append(" values ("); strSql.Append("@CompanyCD,@InNo,@Title,@FromType,@FromBillID,@ReasonType,@DeptID,@Executor,@EnterDate,@TotalPrice,@CountTotal,@Summary,@Remark,@Creator,getdate(),@BillStatus,getdate(),@ModifiedUserID,@CanViewUser,@CanViewUserName)"); strSql.AppendLine("set @IndexID = @@IDENTITY"); SqlCommand comm = new SqlCommand(); comm.CommandText = strSql.ToString(); SqlParameter IndexID = new SqlParameter("@IndexID", SqlDbType.Int); IndexID.Direction = ParameterDirection.Output; comm.Parameters.Add(IndexID); SetSaveParameter(comm, model); ArrayList lstInsert = new ArrayList(); lstInsert.Add(comm);//数组加入插入基表的command #region 拓展属性 SqlCommand cmd = new SqlCommand(); GetExtAttrCmd(model, htExtAttr, cmd); if (htExtAttr.Count > 0) lstInsert.Add(cmd); #endregion if (modelList != null && modelList.Count > 0)//明细为空的时候 { //插入红冲入库明细 StringBuilder strSqlDetail = new StringBuilder(); strSqlDetail.Append("insert into officedba.StorageInRedDetail("); strSqlDetail.Append("InNo,ProductID,StorageID,UnitPrice,ProductCount,TotalPrice,Remark,FromType,FromBillID,FromLineNo,ModifiedDate,ModifiedUserID,CompanyCD,SortNo,UsedUnitID,UsedUnitCount,UsedPrice,ExRate,BatchNo)"); strSqlDetail.Append(" values ("); strSqlDetail.Append("@InNo,@ProductID,@StorageID,@UnitPrice,@ProductCount,@TotalPrice,@Remark,@FromType,@FromBillID,@FromLineNo,getdate(),@ModifiedUserID,@CompanyCD,@SortNo,@UsedUnitID,@UsedUnitCount,@UsedPrice,@ExRate,@BatchNo)"); strSqlDetail.Append(";select @@IDENTITY"); for (int i = 0; i < modelList.Count; i++) { ////更新减少分仓存量表中的现有存量和可用数量 //#region 更新减少分仓存量表中的现有存量和可用数量 //SqlCommand commPD = updateStorageProduct(int.Parse(modelList[i].ProductID), int.Parse(modelList[i].StorageID), decimal.Parse(modelList[i].ProductCount), model, false); //lstInsert.Add(commPD); //#endregion SqlCommand commDetail = new SqlCommand(); commDetail.CommandText = strSqlDetail.ToString(); EditInRedDetailInfo(commDetail, modelList[i]); lstInsert.Add(commDetail);//循环加入数组(重新获取页面上明细数据) } } bool result = SqlHelper.ExecuteTransWithArrayList(lstInsert); if (result) { IndexIDentity = int.Parse(((SqlCommand)lstInsert[0]).Parameters["@IndexID"].Value.ToString()); } else { IndexIDentity = 0; } return result; }
protected void btnImport_Click(object sender, ImageClickEventArgs e) { StorageInRedModel model = new StorageInRedModel(); model.CompanyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD; string EnterDateStart = string.Empty; string EnterDateEnd = string.Empty; model.InNo = txtInNo.Value; model.Title = txtTitle.Value; model.ReasonType = ddlReasonType.SelectedValue; if (hidFromBillID.Value == "undefined") { hidFromBillID.Value = ""; } model.FromBillID = hidFromBillID.Value; model.DeptID = txtDeptID.Value; model.BillStatus = sltBillStatus.Value; model.Executor = txtExecutorID.Value; model.FromType = sltFromType.Value; EnterDateStart = txtEnterDateStart.Value; EnterDateEnd = txtEnterDateEnd.Value; string BatchNo = txtBatchNo.Value; string orderBy = txtorderBy.Value; if (!string.IsNullOrEmpty(orderBy)) { if (orderBy.Split('_')[1] == "a") { orderBy = orderBy.Split('_')[0] + " asc"; } else { orderBy = orderBy.Split('_')[0] + " desc"; } } DataTable dt = StorageInRedBus.GetStorageInRedTableBycondition(BatchNo,model, EnterDateStart, EnterDateEnd, orderBy); if (((UserInfoUtil)SessionUtil.Session["UserInfo"]).IsDisplayPrice) { OutputToExecl.ExportToTableFormat(this, dt, new string[] { "单据编号", "单据主题", "源单类型", "源单编号", "入库部门", "入库人", "入库时间", "入库原因", "红冲数量", "红冲金额", "摘要", "单据状态" }, new string[] { "InNo", "Title", "FromType", "FromInNo", "DeptName", "ExecutorName", "EnterDate", "CodeName", "CountTotal", "TotalPrice", "Summary", "BillStatusName" }, "红冲入库列表"); } else { OutputToExecl.ExportToTableFormat(this, dt, new string[] { "单据编号", "单据主题", "源单类型", "源单编号", "入库部门", "入库人", "入库时间", "入库原因", "红冲数量", "摘要", "单据状态" }, new string[] { "InNo", "Title", "FromType", "FromInNo", "DeptName", "ExecutorName", "EnterDate", "CodeName", "CountTotal", "Summary", "BillStatusName" }, "红冲入库列表"); } }
/// <summary> /// 查询其他入库单 /// </summary> /// <returns>DataTable</returns> public static DataTable GetStorageInRedTableBycondition(string BatchNo,StorageInRedModel model, string timeStart, string timeEnd, int pageIndex, int pageCount, string ord, ref int TotalCount) { return StorageInRedDBHelper.GetStorageInRedTableBycondition(BatchNo,model, timeStart, timeEnd, pageIndex, pageCount, ord, ref TotalCount); }