public void ProcessRequest(HttpContext context) { //清空之前数据 context.Response.Clear(); //检测是否含有session if (context.Session.Count < 5) { //跳转 context.Response.Redirect("/Account/Login", true); //停止加载后续内容 context.Response.End(); //直接返回 return; } //执行基类的方法 if (!base.CheckIsLogin(context)) { return; } //用户传入的批量卡序号、订单序号 string lotId = context.Request["lid"]; string orderId = context.Request["oid"]; //检测传入的批量卡序号 if (!string.IsNullOrEmpty(lotId)) { //数据适配器获取订单信息 using (var da = new t_sample_lot_cardTableAdapter()) using (var tab = da.GetDataByLotId(lotId)) { //检测是否含有数据 if (tab.Rows.Count > 0) { //首行 orderId = tab.Rows[0]["order_id"].ToString(); //待返回的订单信息表内容 string strOrderInfo = CreateLotCardInfoTable(tab); //写入数据到浏览器 context.Response.Write(strOrderInfo); } } } //检测订单序号 if (string.IsNullOrEmpty(orderId)) { return; } //数据适配器获取订单信息 using (var da = new t_sample_orderTableAdapter()) using (var tab = da.GetDataByOrderId(orderId)) { //待返回的订单信息表内容 string strOrderInfo = CreateOrderInfoTable(tab); //写入数据到浏览器 context.Response.Write(strOrderInfo); } }
protected void cvOrderId_ServerValidate(object source, ServerValidateEventArgs args) { //默认不存在该部门 args.IsValid = false; //检测输入的订单序号是否存在 using (var da = new t_sample_orderTableAdapter()) using (var tab = da.GetDataByOrderId(args.Value)) { args.IsValid = tab.Rows.Count > 0; } }
public void ProcessRequest(HttpContext context) { //清空之前数据 context.Response.Clear(); //检测是否含有session if (context.Session.Count < 5) { //跳转 context.Response.Redirect("/Account/Login", true); //停止加载后续内容 context.Response.End(); //直接返回 return; } //执行基类的方法 if (!base.CheckIsLogin(context)) { return; } //当前使用的查询参数类型 var parField = ParameterField.None; //用户传入的样板编号 string productNum = context.Request["pnum"]; string custName = string.Empty; string custNum = string.Empty; string remark = string.Empty; string dCustName = string.Empty; string dOrderId = string.Empty; string dOrderNum = string.Empty; string dProductNum = string.Empty; string dCustNum = string.Empty; //检测样板编号 if (productNum != null && productNum.Length > 0) { //查询字段类型为样板编号 parField = ParameterField.ProductNum; //设置参数值 productNum = "%" + productNum.Trim().Replace("*", "%") + "%"; } else { //用户传入的客户名称 custName = context.Request["cname"]; if (custName != null && custName.Length > 0) { //查询字段类型为客户名称 parField = ParameterField.CustName; //设置参数值 custName = "%" + custName.Trim().Replace("*", "%") + "%"; } else { //用户传入的客户料号 custNum = context.Request["cnum"]; if (custNum != null && custNum.Length > 0) { //查询字段类型为客户料号 parField = ParameterField.CustNum; //设置参数值 custNum = "%" + custNum.Trim().Replace("*", "%") + "%"; } else { //用户传入的备注 remark = context.Request["remark"]; if (remark != null && remark.Length > 0) { //查询字段类型为备注 parField = ParameterField.Remark; //设置参数值 remark = "%" + remark.Trim().Replace("*", "%") + "%"; } else { //用户传入的送货单中的客户名称 dCustName = context.Request["dcname"]; if (dCustName != null && dCustName.Length > 0) { //查询字段类型为送货单中的客户名称 parField = ParameterField.DeliverySampleCustName; //设置参数值 dCustName = "%" + dCustName.Trim().Replace("*", "%") + "%"; } else { //用户传入的送货单中的订单序号 dOrderId = context.Request["doid"]; if (dOrderId != null && dOrderId.Length > 0) { //查询字段类型为送货单中的订单序号 parField = ParameterField.DeliverySampleOrderId; //设置参数值 dOrderId = dOrderId.Trim(); } else { //用户传入的送货单中的订单编号 dOrderNum = context.Request["donum"]; if (dOrderNum != null && dOrderNum.Length > 0) { //查询字段类型为送货单中的订单编号 parField = ParameterField.DeliverySampleOrderNum; //设置参数值 dOrderNum = "%" + dOrderNum.Trim().Replace("*", "%") + "%"; } else { //用户传入的送货单中的样板编号 dProductNum = context.Request["dpnum"]; if (dProductNum != null && dProductNum.Length > 0) { //查询字段类型为送货单中的样板编号 parField = ParameterField.DeliverySampleProductNum; //设置参数值 dProductNum = "%" + dProductNum.Trim().Replace("*", "%") + "%"; } else { //用户传入的送货单中的客户料号 dCustNum = context.Request["dcnum"]; if (dCustNum != null && dCustNum.Length > 0) { //查询字段类型为送货单中的客户料号 parField = ParameterField.DeliverySampleCustNum; //设置参数值 dCustNum = "%" + dCustNum.Trim().Replace("*", "%") + "%"; } } } } } } } } } //当前未使用特定的三种字段类型之一进行查询则不输出值直接退出 if (parField == ParameterField.None) { return; } //待输出到浏览器的数据 string strResult = string.Empty; //检测查询类型 switch (parField) { //使用样板编号进行查询 case ParameterField.ProductNum: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<SampleOrderLiItem>(); //获取数据 var tab = da.GetDataLikeProductNum(productNum); //获取单据数据 AddOrderListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new SampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //客户名称 case ParameterField.CustName: //数据适配器 using (var da = new t_pmc_custTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<CustNameLiItem>(); //先当作客户代码来查询 var tab = da.GetDataLikeCustId(custName); if (tab.Rows.Count == 0) { //当作客户名称来查询 tab = da.GetDataLikeCustName(custName); } //获取单据数据 AddCustNameListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new CustNameLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //客户料号 case ParameterField.CustNum: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<SampleOrderLiItem>(); //获取数据 var tab = da.GetDataLikeCustNum(custNum); //写入泛型对象 AddOrderListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new SampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //备注 case ParameterField.Remark: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<RemarkLiItem>(); //获取数据 var tab = da.GetDataLikeProductNum(productNum); //写入泛型对象 AddRemarkListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new RemarkLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //送货单中的客户名称 case ParameterField.DeliverySampleCustName: //数据适配器 using (var da = new t_pmc_custTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<DeliverySampleCustNameLiItem>(); //先当作客户代码来查询 var tab = da.GetDataLikeCustId(dCustName); if (tab.Rows.Count == 0) { //当作客户名称来查询 tab = da.GetDataLikeCustName(dCustName); } //写入泛型对象 AddDeliveryCustNameListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new DeliverySampleCustNameLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //送货单中的订单序号 case ParameterField.DeliverySampleOrderId: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<DeliverySampleOrderLiItem>(); //获取数据 var tab = da.GetDataByOrderId(dOrderId); //写入泛型对象 AddDeliveryOrderListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new DeliverySampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //送货单中的订单编号 case ParameterField.DeliverySampleOrderNum: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<DeliverySampleOrderLiItem>(); //获取数据 var tab = da.GetBalanceDataLikeOrderNum(dOrderNum); //写入泛型对象 AddDeliveryOrderListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new DeliverySampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //送货单中的样板编号 case ParameterField.DeliverySampleProductNum: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<DeliverySampleOrderLiItem>(); //获取数据 var tab = da.GetBalanceDataLikeProductNum(dProductNum); //写入泛型对象 AddDeliveryOrderListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new DeliverySampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //送货单中的客户料号 case ParameterField.DeliverySampleCustNum: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<DeliverySampleOrderLiItem>(); //获取数据 var tab = da.GetBalanceDataLikeCustNum(dCustNum); //写入泛型对象 AddDeliveryOrderListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new DeliverySampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; } //加入ul头尾 strResult = "<ul>\n" + strResult + "</ul>\n"; //写入数据 context.Response.Write(strResult); }
protected void cvProductNum_ServerValidate(object source, ServerValidateEventArgs args) { //默认检测不能通过 args.IsValid = false; //当前对象 var cv = ((CustomValidator)source); //取得索引号 var i = cv.ID.Substring(cv.ID.Length - 1, 1); //找到当前行的交货数量和备品数量 var txtPcsQty = (TextBox)tabDataListSon.FindControl("txtPcsQty" + i); var txtFocPcsQty = (TextBox)tabDataListSon.FindControl("txtFocPcsQty" + i); //取得数量 int iPcsQty; if (!int.TryParse(txtPcsQty.Text, out iPcsQty)) { iPcsQty = 0; } int iFocPcsQty; if (!int.TryParse(txtFocPcsQty.Text, out iFocPcsQty)) { iFocPcsQty = 0; } //取得的输入的样板编号 string userProductNum = args.Value.ToUpper(); //如果出数为0则直接通过 if (iPcsQty + iFocPcsQty <= 0) { args.IsValid = true; return; } else if (userProductNum.Trim().Length <= 0) { cv.ToolTip = "有交货数量样板编号必填"; return; } //订单序号文本框 var txtOrderId = (TextBox)tabDataListSon.FindControl("txtOrderId" + i); //是否找到订单序号文本框 if (txtOrderId == null) { cv.ToolTip = "未找到订单序号文本框"; return; } //通过订单序号获取订单中样板编号 using (var da = new t_sample_orderTableAdapter()) { //当前订单序号的数据 var tab = da.GetDataByOrderId(txtOrderId.Text); if (tab.Rows.Count <= 0) { cv.ToolTip = "未找到指定的订单"; return; } //首行数据 var row = (DataSetSampleOrderMgr.t_sample_orderRow)tab.Rows[0]; //检测有无找到样板编号 if (string.IsNullOrWhiteSpace(row.product_num)) { cv.ToolTip = "当前订单无样板编号"; return; } //取得的订单样板编号 string orderProductNum = row.product_num.ToUpper(); //修改错误文本内容 cv.ToolTip = string.Format("与订单样板编号\"{0}\"只能版本不同", orderProductNum); //小于两个字符不检测 if (orderProductNum.Length < 2) { args.IsValid = true; } else if (userProductNum.Length >= 2) { //检测是否能通过 args.IsValid = orderProductNum.Remove(orderProductNum.Length - 2) == userProductNum.Remove(userProductNum.Length - 2); } } }
protected void cvOrderId_ServerValidate(object source, ServerValidateEventArgs args) { //默认检测不能通过 args.IsValid = false; //当前对象 var cv = ((CustomValidator)source); //取得索引号 var i = cv.ID.Substring(cv.ID.Length - 1, 1); //找到当前行的交货数量和备品数量 var txtPcsQty = (TextBox)tabDataListSon.FindControl("txtPcsQty" + i); var txtFocPcsQty = (TextBox)tabDataListSon.FindControl("txtFocPcsQty" + i); //取得数量 int iPcsQty; if (!int.TryParse(txtPcsQty.Text, out iPcsQty)) { iPcsQty = 0; } int iFocPcsQty; if (!int.TryParse(txtFocPcsQty.Text, out iFocPcsQty)) { iFocPcsQty = 0; } //取得的输入的样板编号订单序号 string userOrderId = args.Value.ToUpper(); //如果出数为0则直接通过 if (iPcsQty + iFocPcsQty <= 0) { args.IsValid = true; return; } else if (userOrderId.Trim().Length <= 0) { cv.ToolTip = "有交货数量订单序号必填"; return; } //检测输入是否正确 if (!Regex.IsMatch(userOrderId, @"^S[A-Z][1-9]\d{0,4}$")) { cv.ToolTip = "必须S开头加单个字母再加最多5位整数"; return; } //通过订单序号获取订单中样板编号 using (var da = new t_sample_orderTableAdapter()) { //当前订单序号的数据 var tab = da.GetDataByOrderId(userOrderId); if (tab.Rows.Count <= 0) { cv.ToolTip = "订单不存在"; return; } } //允许通过 args.IsValid = true; }
protected void fvOrderMgrAdd_ItemInserting(object sender, FormViewInsertEventArgs e) { //默认取消请求 e.Cancel = true; //检测是否含有session if (Session.Count < 5) { //跳转 Response.Redirect("/Account/Login", true); //停止加载后续内容 Response.End(); //直接返回 return; } //当前用户所在部门 string procName = Session["proc_name"].ToString(); //当前角色id Int16 roleId = Convert.ToInt16(Session["role_id"]); //检测是否有权限 if (procName != mustProcName || roleId < 0 || roleId > 4) { throw new Exception("您没有添加记录权限!"); } //当前订单id文本框 var tb = (TextBox)fvOrderMgrAdd.FindControl("txtOrderId"); if (tb != null) { //检测id号是否存在 using (var da = new t_sample_orderTableAdapter()) using (var tab = da.GetDataByOrderId(tb.Text)) { //订单序号存在提示错误 if (tab.Rows.Count > 0) { throw new Exception("样板订单序号已经存在!"); } } } //样板编号 object obj = e.Values["product_num"]; if (obj == null) { e.Values["product_num"] = string.Empty; } //pnl面积 decimal pnlArea = 0m; obj = e.Values["pnl_length"]; object obj2 = e.Values["pnl_width"]; decimal dPnlLength; decimal dPnlWidth; if (obj != null && obj2 != null && decimal.TryParse(obj.ToString(), out dPnlLength) && decimal.TryParse(obj2.ToString(), out dPnlWidth) ) { pnlArea = Math.Round(dPnlLength * dPnlWidth / 1000000, 5); } //订单pcs数 int orderPcsQty = Convert.ToInt32(e.Values["order_pcs_qty"]); //订单开料pnl数 int totalPnlQty = 0; obj = e.Values["total_pnl_qty"]; int iTotalPnlQty; if (obj != null && int.TryParse(obj.ToString(), out iTotalPnlQty)) { totalPnlQty = iTotalPnlQty; } //pnl含pcs数 int pnlCountPcs = 0; obj = e.Values["pnl_count_pcs"]; int iPnlCountPcs; if (obj != null && int.TryParse(obj.ToString(), out iPnlCountPcs) && iPnlCountPcs > 0) { pnlCountPcs = iPnlCountPcs; } //pcs面积 decimal pcsArea = pnlCountPcs == 0 ? 0m : Math.Round(pnlArea / pnlCountPcs, 5); //已交货数 int outPcsQty = Convert.ToInt32(e.Values["out_pcs_qty"]); //仓存数 int stockPcsQty = 0; obj = e.Values["total_pnl_qty"]; int iStockPcsQty; if (obj != null && int.TryParse(obj.ToString(), out iStockPcsQty) && iStockPcsQty > 0) { stockPcsQty = iStockPcsQty; } //FPC单价 decimal unitPriceFpc = 0m; obj = e.Values["unit_price_fpc"]; decimal dUnitPriceFpc; if (obj != null && decimal.TryParse(obj.ToString(), out dUnitPriceFpc) && dUnitPriceFpc > 0) { unitPriceFpc = dUnitPriceFpc; } //SMT单价 decimal unitPriceSmt = 0m; obj = e.Values["unit_price_smt"]; decimal dUnitPriceSmt; if (obj != null && decimal.TryParse(obj.ToString(), out dUnitPriceSmt) && dUnitPriceSmt > 0) { unitPriceSmt = dUnitPriceSmt; } //总开料pcs数 int totalPcsQty = totalPnlQty * pnlCountPcs; //设置各需要计算的列的值 e.Values["pnl_area"] = pnlArea; e.Values["pnl_count_pcs"] = pnlCountPcs; e.Values["order_pcs_area"] = pcsArea * orderPcsQty; e.Values["total_pnl_area"] = pnlArea * totalPnlQty; e.Values["total_pcs_qty"] = totalPnlQty * pnlCountPcs; e.Values["out_pcs_area"] = pcsArea * outPcsQty; e.Values["balance_pcs_qty"] = orderPcsQty - outPcsQty; e.Values["balance_pcs_area"] = pcsArea * (orderPcsQty - outPcsQty); e.Values["fpc_smt_total_amount"] = (unitPriceFpc + unitPriceSmt) * orderPcsQty; e.Values["cover_membrane"] = Math.Ceiling(1.02 * totalPnlQty); e.Values["feeding_rate"] = totalPcsQty == 0 ? 0m : Math.Round(1.0m * (orderPcsQty - stockPcsQty) / totalPcsQty, 5); //设置录入员姓名和时间 e.Values["add_person"] = Session["user_name"].ToString(); e.Values["add_time"] = DateTime.Now; e.Values["last_change_time"] = DateTime.Now; //做单条添加 e.Cancel = false; }
/// <summary> /// 根据输入的样板lot卡格式来保存多条数据到数据库 /// </summary> /// <param name="e">传入的带有数据的事件参数</param> /// <param name="orderPnlQty">订单开料数量</param> /// <param name="lotPnlQty">样板lot卡每lot数量</param> /// <returns></returns> internal static bool InsertSampleLotCardRecord(FormViewInsertEventArgs e, int orderPnlQty, int lotPnlQty) { //当前用户输入的样板lot卡号 string strInput = e.Values["lot_id"].ToString().Trim().Replace("-", "-").Replace("—", "-"); //检测是否只输入了一个样板lot卡号 string[] strLotIds = strInput.Split(new string[] { "--" }, StringSplitOptions.None); //检测是否正确样板lot卡号并转换 if (!ydOperateSampleLotCard.IsSampleLotCardId(ref strLotIds[0])) { //返回失败 throw new Exception("您输入了一个不合格的样板lot卡号 " + strLotIds[0] + " !"); } //样板编号 string productNum = string.Empty; //获取订单中的样板编号 using (var da = new t_sample_orderTableAdapter()) using (var tab = da.GetDataByOrderId(e.Values["order_id"].ToString())) { //检测有数据 if (tab.Rows.Count > 0) { //首行 var row = (DataSetSampleOrderMgr.t_sample_orderRow)tab.Rows[0]; //获取样板编号 productNum = row.product_num; } } //检测是否获取到样板编号 if (string.IsNullOrWhiteSpace(productNum)) { throw new Exception("未从样板订单中获取到样板编号!"); } //保存数据到部门样板lot卡记录中的sql添加语句 string sqlstr = "INSERT INTO [t_dept_lot_card_balance](" + "[prev_dept_name],[dept_name],[lot_id],[product_num],[pnl_qty],[pcs_qty]," + "[remark],[add_person],[add_time],[last_change_time]" + ") VALUES (" + "@prevDeptName,@deptName,@lotId,@productNum,@pnlQty,@pcsQty," + "@remark,@addPerson,@addTime,@lastChangeTime" + ")"; //数据适配器 //当前数据库连接 //当前更新语句对象 using (var da = new t_sample_lot_cardTableAdapter()) using (var conn = da.Connection) using (var cmd = da.Adapter.InsertCommand) using (var cmdDept = new SqlCommand(sqlstr, conn)) { //打开数据库连接 conn.Open(); //开启事务 using (var tran = conn.BeginTransaction()) { //设置事务 da.Transaction = tran; cmdDept.Transaction = tran; //试运行 try { //按照单条添加 if (strLotIds.Length == 1) { //当前输入的样板lot卡号 string lotId = e.Values["lot_id"].ToString().Trim(); //保存一条记录到数据库 if (!InsertOneSampleRecord(cmd, cmdDept, productNum, lotId, lotPnlQty, e)) { //失败就直接返回 return false; } } else { //写入样板lot卡后剩余待写入数量 int balancePnlQty = orderPnlQty; //检测结束样板lot卡号 if (strLotIds[1].Length == 0) { //使用最大编号作为结束样板lot卡号 strLotIds[1] = int.MaxValue.ToString(); } else { //正则检测 string strReg = @"^[1-9]\d{0,4}$"; //检测是否正确样板lot卡号 if (!Regex.IsMatch(strLotIds[1], strReg)) { //非数字返回失败 throw new Exception("您输入了一个不合格的样板lot卡号 " + strLotIds[1] + " !"); } } //样板lot卡中的年份月份和数字索引号 string strYear = strLotIds[0].Substring(0, 6); int iLotIdStart = int.Parse(strLotIds[0].Substring(6)); int iLotIdEnd = int.Parse(strLotIds[1]); //检测起始和结束样板lot卡号,让起始样板lot卡号最小 if (iLotIdStart > iLotIdEnd) { int i = iLotIdStart; iLotIdStart = iLotIdEnd; iLotIdEnd = i; } //循环设置样板lot卡号执行保存 for (int i = iLotIdStart; i <= iLotIdEnd; i++) { //检测当前应该写入的pnl数量 if (balancePnlQty < lotPnlQty) { lotPnlQty = balancePnlQty; } //当前要添加的样板lot卡号 string lotId = strYear + i.ToString(); //保存一条记录到数据库 if (!InsertOneSampleRecord(cmd, cmdDept, productNum, lotId, lotPnlQty, e)) { //失败就直接返回 return false; } else { //当前剩余数量 balancePnlQty -= lotPnlQty; //检测剩余数量小于或等于0则退出循环 if (balancePnlQty <= 0) { break; } } } } //提交事务 tran.Commit(); //返回成功 return true; } catch (Exception ex) { //回滚事务 tran.Rollback(); //非数字返回失败 throw new Exception(ex.Message); } } } }
public void ProcessRequest(HttpContext context) { //清空之前数据 context.Response.Clear(); //检测是否含有session if (context.Session.Count < 5) { //跳转 context.Response.Redirect("/Account/Login", true); //停止加载后续内容 context.Response.End(); //直接返回 return; } //执行基类的方法 if (!base.CheckIsLogin(context)) { return; } //当前使用的查询参数类型 var parField = ParameterField.None; //用户传入的样板编号 string productNum = context.Request["pnum"]; string custName = string.Empty; string custNum = string.Empty; string remark = string.Empty; string dCustName = string.Empty; string dOrderId = string.Empty; string dOrderNum = string.Empty; string dProductNum = string.Empty; string dCustNum = string.Empty; string dSpecification = string.Empty; string dBatchNum = string.Empty; //检测样板编号 if (productNum != null && productNum.Length > 0) { //查询字段类型为样板编号 parField = ParameterField.ProductNum; //设置参数值 productNum = "%" + productNum.Trim().Replace("*", "%") + "%"; ////检测第二个字符是否P或者S //if (productNum.Length > 3) //{ // //取得前缀 // string prefix = string.Empty; // //如果第一个字符为小数点转换为P- // if (productNum.StartsWith(".")) // { // prefix = "P-"; // productNum = productNum.Substring(1); // } // else if (productNum.Substring(0, 2) == "P-" || productNum.Substring(0, 2) == "F-") // { // prefix = productNum.Substring(0, 2); // productNum = productNum.Substring(2); // } // if (productNum.Substring(1, 1) != "P" && productNum.Substring(1, 1) != "S") // { // //样板编号自动加入2PI // prefix += "2PI"; // } // productNum = prefix + productNum; //} } else { //用户传入的客户名称 custName = context.Request["cname"]; if (custName != null && custName.Length > 0) { //查询字段类型为客户名称 parField = ParameterField.CustName; //设置参数值 custName = "%" + custName.Trim().Replace("*", "%") + "%"; } else { //用户传入的客户料号 custNum = context.Request["cnum"]; if (custNum != null && custNum.Length > 0) { //查询字段类型为客户料号 parField = ParameterField.CustNum; //设置参数值 custNum = "%" + custNum.Trim().Replace("*", "%") + "%"; } else { //用户传入的备注 remark = context.Request["remark"]; if (remark != null && remark.Length > 0) { //查询字段类型为备注 parField = ParameterField.Remark; //设置参数值 remark = "%" + remark.Trim().Replace("*", "%") + "%"; } else { //用户传入的送货单中的客户名称 dCustName = context.Request["dcname"]; if (dCustName != null && dCustName.Length > 0) { //查询字段类型为送货单中的客户名称 parField = ParameterField.DeliverySampleCustName; //设置参数值 dCustName = "%" + dCustName.Trim().Replace("*", "%") + "%"; } else { //用户传入的送货单中的订单序号 dOrderId = context.Request["doid"]; if (dOrderId != null && dOrderId.Length > 0) { //查询字段类型为送货单中的订单序号 parField = ParameterField.DeliverySampleOrderId; //设置参数值 dOrderId = dOrderId.Trim(); } else { //用户传入的送货单中的样板编号 dProductNum = context.Request["dpnum"]; if (dProductNum != null && dProductNum.Length > 0) { //查询字段类型为送货单中的样板编号 parField = ParameterField.DeliverySampleProductNum; //设置参数值 dProductNum = "%" + dProductNum.Trim().Replace("*", "%") + "%"; } else { //用户传入的送货单中的客户料号 dCustNum = context.Request["dcnum"]; if (dCustNum != null && dCustNum.Length > 0) { //查询字段类型为送货单中的客户料号 parField = ParameterField.DeliverySampleCustNum; //设置参数值 dCustNum = "%" + dCustNum.Trim().Replace("*", "%") + "%"; } else { //用户传入的送货单中的订单编号 dOrderNum = context.Request["donum"]; if (dOrderNum != null && dOrderNum.Length > 0) { //查询字段类型为送货单中的订单编号 parField = ParameterField.DeliverySampleOrderNum; //设置参数值 dOrderNum = "%" + dOrderNum.Trim().Replace("*", "%") + "%"; } else { //用户传入的送货单中的规格 dSpecification = context.Request["dspecifi"]; if (dSpecification != null && dSpecification.Length > 0) { //查询字段类型为送货单中的规格 parField = ParameterField.DeliverySampleSpecification; //设置参数值 dSpecification = "%" + dSpecification.Trim().Replace("*", "%") + "%"; } else { //用户传入的送货单中的批号 dBatchNum = context.Request["dbatch"]; if (dBatchNum != null && dBatchNum.Length > 0) { //查询字段类型为送货单中的批号 parField = ParameterField.DeliverySampleBatchNum; //设置参数值 dBatchNum = "%" + dBatchNum.Trim().Replace("*", "%") + "%"; } } } } } } } } } } } //当前未使用特定的三种字段类型之一进行查询则不输出值直接退出 if (parField == ParameterField.None) { return; } //用户传入的送货单类型 string billType = context.Request["btype"]; byte iBillType = 0; //检测送货单类型 if (billType == null || billType.Length == 0 || !byte.TryParse(billType, out iBillType) || iBillType < 0 || iBillType > 3) { if (parField == ParameterField.DeliverySampleCustName || parField == ParameterField.DeliverySampleCustNum || parField == ParameterField.DeliverySampleOrderId || parField == ParameterField.DeliverySampleOrderNum || parField == ParameterField.DeliverySampleProductNum || parField == ParameterField.DeliverySampleSpecification || parField == ParameterField.DeliverySampleBatchNum ) { context.Response.Write("未提供送货单类型参数或者参数错误!"); return; } } //待输出到浏览器的数据 string strResult = string.Empty; //检测查询类型 switch (parField) { //使用样板编号进行查询 case ParameterField.ProductNum: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<SampleOrderLiItem>(); //获取数据 var tab = da.GetDataLikeProductNum(productNum); //获取单据数据 AddOrderListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new SampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //客户名称 case ParameterField.CustName: //数据适配器 using (var da = new t_pmc_custTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<CustNameLiItem>(); //先当作客户代码来查询 var tab = da.GetDataLikeCustId(custName); if (tab.Rows.Count == 0) { //当作客户名称来查询 tab = da.GetDataLikeCustName(custName); } //获取单据数据 AddCustNameListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new CustNameLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //客户料号 case ParameterField.CustNum: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<SampleOrderLiItem>(); //获取数据 var tab = da.GetDataLikeCustNum(custNum); //写入泛型对象 AddOrderListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new SampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //备注 case ParameterField.Remark: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<RemarkLiItem>(); //获取数据 var tab = da.GetDataLikeProductNum(productNum); //写入泛型对象 AddRemarkListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new RemarkLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //送货单中的客户名称 case ParameterField.DeliverySampleCustName: //数据适配器 using (var da = new t_pmc_custTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<DeliverySampleCustNameLiItem>(); //先当作客户代码来查询 var tab = da.GetDataLikeCustId(dCustName); if (tab.Rows.Count == 0) { //当作客户名称来查询 tab = da.GetDataLikeCustName(dCustName); } //写入泛型对象 AddDeliveryCustNameListItem(tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new DeliverySampleCustNameLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //送货单中的订单序号 case ParameterField.DeliverySampleOrderId: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<DeliverySampleOrderLiItem>(); //获取数据 var tab = da.GetDataByOrderId(dOrderId); //写入泛型对象 AddDeliveryOrderListItem(iBillType, tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new DeliverySampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //送货单中的订单编号 case ParameterField.DeliverySampleOrderNum: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<DeliverySampleOrderLiItem>(); //获取数据 var tab = da.GetBalanceDataLikeOrderNum(dOrderNum); //写入泛型对象 AddDeliveryOrderListItem(iBillType, tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new DeliverySampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //送货单中的样板编号 case ParameterField.DeliverySampleProductNum: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<DeliverySampleOrderLiItem>(); //获取数据 var tab = da.GetBalanceDataLikeProductNum(dProductNum); //写入泛型对象 AddDeliveryOrderListItem(iBillType, tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new DeliverySampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //送货单中的客户料号 case ParameterField.DeliverySampleCustNum: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<DeliverySampleOrderLiItem>(); //获取数据 var tab = da.GetBalanceDataLikeCustNum(dCustNum); //写入泛型对象 AddDeliveryOrderListItem(iBillType, tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new DeliverySampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //样板送货单中的规格 case ParameterField.DeliverySampleSpecification: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<DeliverySampleOrderLiItem>(); //获取数据 var tab = da.GetBalanceDataLikeSpecification(dSpecification); //写入泛型对象 AddDeliveryOrderListItem(iBillType, tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new DeliverySampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; //样板送货单中的批号 case ParameterField.DeliverySampleBatchNum: //数据适配器 using (var da = new t_sample_orderTableAdapter()) { //将查询到的结果保存到泛型变量中 var l = new List<DeliverySampleOrderLiItem>(); //获取数据 var tab = da.GetBalanceDataLikeBatchNum(dBatchNum); //写入泛型对象 AddDeliveryOrderListItem(iBillType, tab, ref l); //如果在客户清单中查询到数据 if (l.Count > 0) { //将泛型变量各项目放入数组 var itms = new DeliverySampleOrderLiItem[l.Count]; //复制泛型变量的内容到数组 l.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } break; } //加入ul头尾 strResult = "<ul>\n" + strResult + "</ul>\n"; //写入数据 context.Response.Write(strResult); }
protected void fvLotCardMgrSupplementAdd_ItemInserting(object sender, FormViewInsertEventArgs e) { //取消原本的添加请求 e.Cancel = true; //检测是否含有session if (Session.Count < 5) { //跳转 Response.Redirect("/Account/Login", true); //停止加载后续内容 Response.End(); //直接返回 return; } //当前用户所在部门 string deptName = Session["dept_name"].ToString(); //当前角色id Int16 roleId = Convert.ToInt16(Session["role_id"]); //检测是否有权限 if (deptName != mustDeptName || roleId < 0 || (roleId > 4 && roleId != 6)) { throw new Exception("您没有添加记录权限!"); } //获取用户提供的订单序号的订单开料数量 int orderPnlQty; using (var da = new t_sample_orderTableAdapter()) using (var tab = da.GetDataByOrderId(e.Values["order_id"].ToString())) { //第一行数据 var row = (DataSetSampleOrderMgr.t_sample_orderRow)tab.Rows[0]; //获取开料数量 orderPnlQty = 0;// row.total_pnl_qty; } //pnl数量文本框 var tb = (TextBox)fvLotCardMgrSupplementAdd.FindControl("txtPnlQty"); //每lot数量 Int16 lotPnlQty = Int16.Parse(tb.Text); //每lot数量不能大于订单数量 if (lotPnlQty > orderPnlQty) { //重新设置每lot数量 lotPnlQty = (Int16)orderPnlQty; tb.Text = lotPnlQty.ToString(); } //设置录入员姓名和时间 e.Values["add_person"] = Session["user_name"].ToString(); e.Values["add_time"] = DateTime.Now; e.Values["last_change_time"] = DateTime.Now; //根据输入的lot卡id执行添加数据 if (ydOperateSampleLotCard.InsertSampleLotCardRecord(e, orderPnlQty, lotPnlQty)) { //调用过程执行跳转 fvLotCardMgrSupplementAdd_ItemInserted(null, null); } }
protected void fvSampleOrderMgrAdd_ItemInserting(object sender, FormViewInsertEventArgs e) { //默认取消请求 e.Cancel = true; //检测是否含有session if (Session.Count < 5) { //跳转 Response.Redirect("/Account/Login", true); //停止加载后续内容 Response.End(); //直接返回 return; } //当前用户所在部门 string deptName = Session["dept_name"].ToString(); //当前角色id Int16 roleId = Convert.ToInt16(Session["role_id"]); //检测是否有权限 if (deptName != mustDeptName || (roleId != 0 && roleId != 1 && roleId != 6)) { throw new Exception("您没有添加记录权限!"); } //当前订单id文本框 var tb = (TextBox)fvSampleOrderMgrAdd.FindControl("txtOrderId"); if (tb != null) { //检测id号是否存在 using (var da = new t_sample_orderTableAdapter()) using (var tab = da.GetDataByOrderId(tb.Text)) { //订单序号存在提示错误 if (tab.Rows.Count > 0) { throw new Exception("订单序号已经存在!"); } } } //pcs面积 decimal pcsArea; var obj = e.Values["pcs_area"]; if (obj == null || !decimal.TryParse(obj.ToString(), out pcsArea)) { e.Values["pcs_area"] = 0m; } //设置录入员姓名和时间 e.Values["add_person"] = Session["user_name"].ToString(); e.Values["add_time"] = DateTime.Now; e.Values["last_change_time"] = DateTime.Now; //做单条添加 e.Cancel = false; }