/// <summary> /// 校验回温时间和烘烤温度不能为空 /// </summary> /// <param name="curDgvr"></param> /// <param name="checkMsg"></param> /// <returns></returns> private bool CheckTime(DataGridViewRow curDgvr, out string checkMsg) { foreach (DataGridViewRow dgvr in dgv_SencondClass.Rows) { if (dgvr.Index == curDgvr.Index) { continue; } if (!(dgvr.Cells["TemperatureMaxTime"].Value == null && dgvr.Cells["TemperatureMinTime"].Value == null)) { if (SqlInput.ChangeNullToInt(dgvr.Cells["TemperatureMaxTime"].Value, 0) >= SqlInput.ChangeNullToInt(curDgvr.Cells["TemperatureMaxTime"].Value, 0) && SqlInput.ChangeNullToInt(dgvr.Cells["TemperatureMinTime"].Value, 0) <= SqlInput.ChangeNullToInt(curDgvr.Cells["TemperatureMaxTime"].Value, 0) || SqlInput.ChangeNullToInt(dgvr.Cells["TemperatureMaxTime"].Value, 0) >= SqlInput.ChangeNullToInt(curDgvr.Cells["TemperatureminTime"].Value, 0) && SqlInput.ChangeNullToInt(dgvr.Cells["TemperatureMinTime"].Value, 0) <= SqlInput.ChangeNullToInt(curDgvr.Cells["TemperatureminTime"].Value, 0)) { checkMsg = "回温时间不能交叉"; return(false); } } // if (!(dgvr.Cells["RoastMaxTemperature"].Value == null && dgvr.Cells["RoastMinTemperature"].Value == null)) // { // if (SqlInput.ChangeNullToInt(dgvr.Cells["RoastMaxTemperature"].Value, 0) >= SqlInput.ChangeNullToInt(curDgvr.Cells["RoastMaxTemperature"].Value, 0) //&& SqlInput.ChangeNullToInt(dgvr.Cells["RoastMinTemperature"].Value, 0) <= SqlInput.ChangeNullToInt(curDgvr.Cells["RoastMaxTemperature"].Value, 0) //|| SqlInput.ChangeNullToInt(dgvr.Cells["RoastMaxTemperature"].Value, 0) >= SqlInput.ChangeNullToInt(curDgvr.Cells["RoastMinTemperature"].Value, 0) //&& SqlInput.ChangeNullToInt(dgvr.Cells["RoastMinTemperature"].Value, 0) <= SqlInput.ChangeNullToInt(curDgvr.Cells["RoastMinTemperature"].Value, 0)) // { // checkMsg = "烘烤温度不能交叉"; // return false; // } // } } checkMsg = "OK"; return(true); }
/// <summary> /// 校验附料盘 /// </summary> /// <returns></returns> private bool CheckFSn(out string result_sn) { result_sn = string.Empty; if (txtMsn.Text == txtFsn.Text) { new PubUtils().ShowNoteNGMsg("附料盘与主料盘不能相同", 1, grade.OrdinaryError); return(false); } string serialnumber = txtFsn.Text; DataTable dtval = Bll_Bllb_StockInfo_tbsi.ValidateSN(serialnumber); if (dtval.Rows.Count == 0) { new PubUtils().ShowNoteNGMsg("料盘编码不在库或数量为0", 1, grade.OrdinaryError); return(false); } if (materialcode != dtval.Rows[0]["MaterialCode"].ToString()) { new PubUtils().ShowNoteNGMsg("主料盘与该料盘的料号不一致", 1, grade.OrdinaryError); return(false); } if (trv_node.Nodes.Find(result_sn, true).Length > 0) { new PubUtils().ShowNoteNGMsg("该料盘编码已存在", 1, grade.OrdinaryError); return(false); } result_sn = dtval.Rows[0]["SerialNumber"].ToString(); dicTrvSn.Add(result_sn, SqlInput.ChangeNullToInt(dtval.Rows[0]["Qty"], 0)); currentQty += SqlInput.ChangeNullToInt(dtval.Rows[0]["Qty"], 0); lblTotal.Text = currentQty.ToString(); return(true); }
public static void InsertOrUpdateWipGroupStatistics(Model_Bllb_groupStatistics_tbgs obj) { //判断记录是否存在 string strSql = string.Format(@"SELECT COUNT(1) FROM T_Bllb_groupStatistics_tbgs WHERE SfcNo='{0}' AND TBTG_ID='{1}'", obj.SfcNo, obj.TBTG_ID); if (SqlInput.ChangeNullToInt(CIT.Wcf.Utils.NMS.GetTableCount(PubUtils.uContext, strSql), 0) == 0)//新增 { strSql = string.Format(@"INSERT INTO T_Bllb_groupStatistics_tbgs(SFCNO,TBTG_ID,PASS_NUM,ERROR_NUM) VALUES('{0}','{1}',{2},{3})", obj.SfcNo, obj.TBTG_ID, obj.PASS_NUM, obj.ERROR_NUM); CIT.Wcf.Utils.NMS.ExecTransql(PubUtils.uContext, strSql); } }
/// <summary> /// 检验主料盘 /// </summary> /// <returns></returns> private bool CheckMSn() { string serialNumber = txtMsn.Text; DataTable dt_MainMaterial = Bll_Bllb_StockInfo_tbsi.ValidateSN(serialNumber); if (dt_MainMaterial.Rows.Count == 0) { new PubUtils().ShowNoteNGMsg("主料号不在库或数量为0", 1, grade.OrdinaryError); return(false); } materialcode = dt_MainMaterial.Rows[0]["MaterialCode"].ToString(); currentQty += SqlInput.ChangeNullToInt(dt_MainMaterial.Rows[0]["QTY"], 0); lblTotal.Text = currentQty.ToString(); return(true); }
/// <summary> /// 校验容器条码规则 /// </summary> /// <param name="ruleName">规则名称</param> /// <param name="ContainerSN">容器SN</param> /// <param name="productCode">容器内产品的产品代码</param> /// <param name="msg"></param> /// <returns></returns> public static bool CheckContainerSNRule(string ruleName, string ContainerSN, string productCode, ref string msg) { string strSql = string.Format(@"SELECT IS_CHECK_SN_LENGTH, SN_LENGTH,IS_CHECK_SAME_STRING,SAME_STRING,SAME_STRING_BEGIN, MATERIAL_FLAG,MATERIAL_LENGTH,MATERIAL_CODE_BEGIN,SN_BEGIN FROM T_Bllb_barcodeRule_tbbr T WHERE T.RULE_NAME ='{0}'", ruleName); DataTable dt_Rule = CIT.Wcf.Utils.NMS.QueryDataTable(PubUtils.uContext, strSql); if (dt_Rule.Rows.Count > 0) { //检验长度 if (SqlInput.ChangeNullToString(dt_Rule.Rows[0]["IS_CHECK_SN_LENGTH"]) == "Y" & SqlInput.ChangeNullToInt(dt_Rule.Rows[0]["SN_LENGTH"], 0) != ContainerSN.Length) { msg = "容器条码长度不正确"; return(false); } //校验固定字符 if (SqlInput.ChangeNullToString(dt_Rule.Rows[0]["IS_CHECK_SAME_STRING"]) == "Y") { string sameString = SqlInput.ChangeNullToString(dt_Rule.Rows[0]["SAME_STRING"]); int length = sameString.Length; int begin = SqlInput.ChangeNullToInt(dt_Rule.Rows[0]["SAME_STRING_BEGIN"], 0) - 1;//数据库保存是从1开始,实际中位置编号是从0开始,故要减1 if (ContainerSN.Substring(begin, length) != sameString) { msg = "容器条码的固定字符不正确"; return(false); } } //校验产品代码 if (SqlInput.ChangeNullToString(dt_Rule.Rows[0]["MATERIAL_FLAG"]) != "0") { int length = SqlInput.ChangeNullToInt(dt_Rule.Rows[0]["MATERIAL_LENGTH"], 0); int m_begin = SqlInput.ChangeNullToInt(dt_Rule.Rows[0]["MATERIAL_CODE_BEGIN"], 0) - 1; int sn_begin = SqlInput.ChangeNullToInt(dt_Rule.Rows[0]["SN_BEGIN"], 0) - 1; if (ContainerSN.Substring(sn_begin, length) != productCode.Substring(m_begin, length)) { msg = "容器条码中的产品代码不正确"; return(false); } } } return(true); }
private void cbo_MaterialCode_SelectedIndexChanged(object sender, EventArgs e) { //cbo_MaterialCode.TextChanged -= cbo_MaterialCode_TextChanged; txt_MaterialDesc.Text = string.Empty; if (cbo_MaterialCode.Text != string.Empty) { DataTable dt_Spec = bll_Material.SelectNameAndSpec(cbo_MaterialCode.Text.Split('*')[0]); if (dt_Spec.Rows.Count == 0) { new PubUtils().ShowNoteNGMsg("未维护该物料基础信息!", 1, grade.OrdinaryError); cbo_PO_SelectedIndexChanged(null, null); return; } else { txt_MaterialDesc.Text = SqlInput.ChangeNullToString(dt_Spec.Rows[0]["Spec"]); txt_MinPackage.Text = SqlInput.ChangeNullToInt(dt_Spec.Rows[0]["PackagingMin"], 1).ToString(); } } //cbo_MaterialCode.TextChanged += cbo_MaterialCode_TextChanged; }
/// <summary> /// 打印外包装标签 /// </summary> /// <param name="SN"></param> /// <returns></returns> public static bool PrintContain_1_Info(string SN, string lableName, ref string msg) { if (SN == string.Empty) { msg = "箱条码不能为空"; return(false); } else if (lableName == string.Empty) { msg = "打印标签不能为空"; return(false); } Model.Model_PackageInfo _obj_PackageInfo = new Model_PackageInfo(); T_Bllb_packageOne_tbpo tbpo = new T_Bllb_packageOne_tbpo(); string strSql = string.Format(@"select isnull(SUM(tbpi.QTY),0) as QTY,sfc.PO,tbpo.CONTAINER_SN_1 AS BOXID, SFC.Product AS PRODUCTCODE,'12个月' as ACTIVE_LENGTH from T_Bllb_packageOne_tbpo as tbpo inner join T_Bllb_productInfo_tbpi as tbpi on tbpo.TBPS_ID=tbpi.TBPS_ID inner join SfcDatProduct sfc on sfc.SfcNo=tbpi.SfcNo where tbpo.CONTAINER_SN_1='{0}' GROUP BY sfc.PO,tbpo.CONTAINER_SN_1,SFC.Product", SN); DataTable dt_qty = NMS.QueryDataTable(PubUtils.uContext, strSql.ToString()); if (dt_qty.Rows.Count == 0) { msg = "条码不是箱条码"; return(false); } _obj_PackageInfo.QTY = SqlInput.ChangeNullToInt(dt_qty.Rows[0]["QTY"], 0).ToString();//容器实装数量 if (_obj_PackageInfo.QTY == "0") { msg = "箱子中没有产品"; return(false); } _obj_PackageInfo.PO = SqlInput.ChangeNullToString(dt_qty.Rows[0]["PO"]); _obj_PackageInfo.PRODUCTCODE = SqlInput.ChangeNullToString(dt_qty.Rows[0]["PRODUCTCODE"]); _obj_PackageInfo.P1 = SqlInput.ChangeNullToString(dt_qty.Rows[0]["PRODUCTCODE"]); _obj_PackageInfo.ACTIVE_LENGTH = "12个月"; _obj_PackageInfo.BEGIN_DATE = DateTime.Now.ToString("yyyyMMdd"); _obj_PackageInfo.END_DATE = DateTime.Now.AddMonths(12).ToString("yyyyMMdd"); _obj_PackageInfo.E1 = DateTime.Now.AddMonths(12).ToString("yyyyMMdd"); _obj_PackageInfo.BOXID = SqlInput.ChangeNullToString(dt_qty.Rows[0]["BOXID"]); if (Bll_Common.GetSysParameter("DZ", "DZ006", ref msg)) { string[] strs = msg.Split('|'); if (strs.Length >= 2) { _obj_PackageInfo.SUPPLIER = strs[0]; _obj_PackageInfo.SUPPLIER_CODE = strs[1]; } else { msg = "在系统参数【单值】中的【DZ006】配置供应商信息"; return(false); } } else { msg = "在系统参数【单值】中的【DZ006】配置供应商信息"; return(false); } if (_obj_PackageInfo.PrintOwn(lableName)) { //标识为已打印外包装标签 strSql = string.Format("update T_Bllb_packageOne_tbpo set PRINT_FLAG='Y' where CONTAINER_SN_1='{0}'", tbpo.CONTAINER_SN_1); NMS.ExecTransql(PubUtils.uContext, strSql); } return(true); }
private void btn_ok_Click(object sender, EventArgs e) { T_Bllb_StorageDoc_tbsd SC = new T_Bllb_StorageDoc_tbsd(); T_Bllb_StorageDocMaterial_tsdm SCD = new T_Bllb_StorageDocMaterial_tsdm(); bool isSucess = false; if (_IsAddOrEdit == false)//新增 { if (txt_DOC_NO.Text != string.Empty) { SC.S_Doc_NO = txt_DOC_NO.Text.Trim();//单据号 } if (cbo_SourceStorage.SelectedValue.ToString() != string.Empty) { SC.Source_Storage = cbo_SourceStorage.SelectedValue.ToString();//原仓库 } if (cbo_TargetStorage.SelectedValue.ToString() != string.Empty) { SC.Target_Storage = cbo_TargetStorage.SelectedValue.ToString();//目的仓库 } if (txt_memo.Text != string.Empty) { SC.Memo = txt_memo.Text.Trim();//备注 } if (cbo_SourceStorage.SelectedValue.ToString() == cbo_TargetStorage.SelectedValue.ToString()) { new PubUtils().ShowNoteNGMsg("原仓库不能跟目的仓库相同", 2, grade.OrdinaryError); return; } lstMaterial.Clear(); foreach (DataGridViewRow row in dgv_MaterialMoveAdd.Rows) { if (!ValiMaterialCode(row)) { return; } SCD.S_Doc_NO = txt_DOC_NO.Text.Trim(); SCD.RowNumber = SqlInput.ChangeNullToInt(row.Cells["RowNumber"].Value, 0); //行号 SCD.MaterialCode = SqlInput.ChangeNullToString(row.Cells["MaterialCode"].Value); //料号 row.Cells["StorageQTY"].Value = Bll_Bllb_StockInfo_tbsi.GetQty(cbo_SourceStorage.SelectedValue.ToString(), SqlInput.ChangeNullToString(row.Cells["MaterialCode"].Value)); SCD.QTY = SqlInput.ChangeNullToInt(row.Cells["StorageQTY"].Value, 0); //库存量 SCD.Plan_Qty = SqlInput.ChangeNullToInt(row.Cells["Plan_Qty"].Value, 0); //计划数量 lstMaterial.Add(SCD); SCD = new T_Bllb_StorageDocMaterial_tsdm(); } if (lstMaterial.Count > 0) { if (Bll_Bllb_StorageDoc_tbsd.InsertDoc(SC)) { isSucess = Bll_Bllb_StorageDocMaterial_tsdm.InsertMaterial(lstMaterial); } } } else//修改 { lstMaterial.Clear(); foreach (DataGridViewRow row in dgv_MaterialMoveAdd.Rows) { if (!ValiMaterialCode(row)) { return; } SCD.S_Doc_NO = txt_DOC_NO.Text.Trim(); SCD.RowNumber = SqlInput.ChangeNullToInt(row.Cells["RowNumber"].Value, 0); //行号 SCD.MaterialCode = SqlInput.ChangeNullToString(row.Cells["MaterialCode"].Value); //料号 row.Cells["StorageQTY"].Value = Bll_Bllb_StockInfo_tbsi.GetQty(cbo_SourceStorage.SelectedValue.ToString(), SqlInput.ChangeNullToString(row.Cells["MaterialCode"].Value)); SCD.QTY = SqlInput.ChangeNullToInt(row.Cells["StorageQTY"].Value, 0); //库存量 SCD.Plan_Qty = SqlInput.ChangeNullToInt(row.Cells["Plan_Qty"].Value, 0); //计划数量 lstMaterial.Add(SCD); SCD = new T_Bllb_StorageDocMaterial_tsdm(); } if (lstMaterial.Count > 0) { string strWhere = string.Format("S_Doc_NO ='{0}'", txt_DOC_NO.Text.Trim()); if (Bll_Bllb_StorageDocMaterial_tsdm.DeleteMaterial(strWhere)) { isSucess = Bll_Bllb_StorageDocMaterial_tsdm.InsertMaterial(lstMaterial); } } } if (isSucess) { new PubUtils().ShowNoteOKMsg("保存成功!"); this.result = DialogResult.OK; this.Close(); } }
private bool ValiMaterialCode(DataGridViewRow row) { if (row.Cells["MaterialCode"].EditedFormattedValue.ToString() == string.Empty) { new PubUtils().ShowNoteNGMsg("料号不能为空", 2, grade.RepeatedError); return(false); } string strSql = string.Format("select * from T_Bllb_StockInfo_tbsi where MaterialCode='{0}'", row.Cells["MaterialCode"].EditedFormattedValue); DataTable dt_MaterialExist = NMS.QueryDataTable(PubUtils.uContext, strSql); if (dt_MaterialExist.Rows.Count == 0) { new PubUtils().ShowNoteNGMsg("料号不存在", 2, grade.OrdinaryError); return(false); } if (_IsAddOrEdit == true && dgv_MaterialMoveAdd.Rows.Count == 1) { return(true); } if (_IsAddOrEdit == false) { string str_Exist = string.Format("select * from T_Bllb_StorageDocMaterial_tsdm where MaterialCode='{0}' and S_Doc_NO='{1}'", row.Cells["MaterialCode"].EditedFormattedValue, txt_DOC_NO.Text.Trim()); DataTable dt_Exist = NMS.QueryDataTable(PubUtils.uContext, str_Exist); if (dt_Exist.Rows.Count > 0) { new PubUtils().ShowNoteNGMsg("单据不能添加重复的料号", 2, grade.OrdinaryError); return(false); } } foreach (DataGridViewRow dgvr in dgv_MaterialMoveAdd.Rows) { if (dgvr.Index == row.Index) { continue; } if (SqlInput.ChangeNullToString(dgvr.Cells["MaterialCode"].EditedFormattedValue) == SqlInput.ChangeNullToString(row.Cells["MaterialCode"].EditedFormattedValue)) { new PubUtils().ShowNoteNGMsg("料号不能重复添加", 2, grade.OrdinaryError); return(false); } } if (row.Cells["StorageQTY"].Value != null) { if (row.Cells["Plan_Qty"].EditedFormattedValue == null) { new PubUtils().ShowNoteNGMsg("计划数量不能为空", 2, grade.OrdinaryError); return(false); } } if (!(row.Cells["Plan_Qty"].Value == null && row.Cells["StorageQTY"].Value == null)) { if (SqlInput.ChangeNullToInt(row.Cells["Plan_Qty"].EditedFormattedValue, 0) > SqlInput.ChangeNullToInt(row.Cells["StorageQTY"].Value, 0)) { new PubUtils().ShowNoteNGMsg("计划数量必须小于库存数量", 2, grade.OrdinaryError); return(false); } } return(true); }
/// <summary> /// 保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_ok_Click(object sender, EventArgs e) { bool isSuccess = false; T_Bllb_SecondClass_tbsc SC = new T_Bllb_SecondClass_tbsc(); lstInsert.Clear(); foreach (DataGridViewRow row in dgv_SencondClass.Rows) { if (!ValidataInput(row)) { return; } if (cbo_Type.SelectedValue.ToString() != string.Empty)//类型 { SC.Type = cbo_Type.Text.ToString(); } if (txt_Class.Text.Trim() != string.Empty)//等级 { SC.Class = txt_Class.Text.Trim(); } if (row.Cells["OrderNum"].Value != null)//序号 { SC.OrderNum = SqlInput.ChangeNullToString(row.Cells["OrderNum"].Value); } if (row.Cells["Condition"].Value != null)//条件 { SC.Condition = SqlInput.ChangeNullToString(row.Cells["Condition"].Value); } if (row.Cells["TemperatureMaxTime"].Value != null)//最大回温时间 { SC.TemperatureMaxTime = SqlInput.ChangeNullToInt(row.Cells["TemperatureMaxTime"].Value, 0); } if (row.Cells["TemperatureMinTime"].Value != null)//最小回温时间 { SC.TemperatureMinTime = SqlInput.ChangeNullToInt(row.Cells["TemperatureMinTime"].Value, 0); } if (row.Cells["ExposeTime"].Value != null)//暴露时间 { SC.ExposeTime = SqlInput.ChangeNullToInt(row.Cells["ExposeTime"].Value, 0); } if (row.Cells["InHouseTime"].Value != null)//冷藏时间 { SC.InHouseTime = SqlInput.ChangeNullToInt(row.Cells["InHouseTime"].Value, 0); } if (row.Cells["SplitTime"].Value != null)//拆分次数 { SC.SplitTime = SqlInput.ChangeNullToString(row.Cells["SplitTime"].Value); } if (row.Cells["RoastMaxTemperature"].Value != null)//最大烘烤温度 { SC.RoastMaxTemperature = SqlInput.ChangeNullToDecimal(row.Cells["RoastMaxTemperature"].Value, 0); } if (row.Cells["RoastMinTemperature"].Value != null)//最小烘烤温度 { SC.RoastMinTemperature = SqlInput.ChangeNullToDecimal(row.Cells["RoastMinTemperature"].Value, 0); } if (row.Cells["RoastTime"].Value != null)//烘烤时间 { SC.RoastTime = SqlInput.ChangeNullToInt(row.Cells["RoastTime"].Value, 0); } if (row.Cells["Remark"].Value != null)//备注 { //SC.Remark = row.Cells["Remark"].Value.ToString(); SC.Remark = SqlInput.ChangeNullToString(row.Cells["Remark"].Value); } lstInsert.Add(SC); SC = new T_Bllb_SecondClass_tbsc(); } if (lstInsert.Count > 0) { isSuccess = T_Bllb_SecondClass_tbsc_DAL.Insert(lstInsert); } if (isSuccess) { new PubUtils().ShowNoteOKMsg("保存成功!"); this.result = DialogResult.OK; this.Close(); } }
private bool ValidataInput(DataGridViewRow row) { string msg = string.Empty; if (txt_Class.Text == string.Empty) { new PubUtils().ShowNoteNGMsg("等级不能为空", 2, grade.RepeatedError); return(false); } string sqlcmd = string.Format("SELECT * FROM T_Bllb_SecondClass_tbsc WHERE Type='{0}' AND Class='{1}'", cbo_Type.Text, txt_Class.Text.Trim()); if (NMS.QueryDataTable(PubUtils.uContext, sqlcmd).Rows.Count > 0) { new PubUtils().ShowNoteNGMsg("该类型的等级已存在", 2, grade.RepeatedError); return(false); } //if (/*row.Cells["TemperatureMaxTime"].Value == null && row.Cells["TemperatureMinTime"].Value == null &&*/ /*row.Cells["ExposeTime"].Value == null && */row.Cells["InHouseTime"].Value == null && row.Cells["SplitTime"].Value == null/* && row.Cells["RoastMaxTemperature"].Value == null && row.Cells["RoastMinTemperature"].Value == null && row.Cells["RoastTime"].Value == null */&& row.Cells["Remark"].Value == null) // continue; if (cbo_Type.SelectedValue.ToString() == "2") { if (!CheckTime(row, out msg)) { MsgBox.Error(msg); return(false); } } if (cbo_Type.SelectedValue.ToString() == "0" || cbo_Type.SelectedValue.ToString() == "1") { if (row.Cells["TemperatureMinTime"].Value == null) { new PubUtils().ShowNoteNGMsg("最小回温时间不能为空", 2, grade.RepeatedError); return(false); } if (row.Cells["TemperatureMaxTime"].Value == null) { new PubUtils().ShowNoteNGMsg("最大回温时间不能为空", 2, grade.RepeatedError); return(false); } } if (cbo_Type.SelectedValue.ToString() == "2") { if (row.Cells["RoastMinTemperature"].Value == null) { new PubUtils().ShowNoteNGMsg("最小烘烤温度不能为空", 2, grade.RepeatedError); return(false); } if (row.Cells["RoastMaxTemperature"].Value == null) { new PubUtils().ShowNoteNGMsg("最大烘烤温度不能为空", 2, grade.RepeatedError); return(false); } if (row.Cells["RoastTime"].Value == null) { new PubUtils().ShowNoteNGMsg("烘烤时间不能为空", 2, grade.RepeatedError); return(false); } if (row.Cells["ExposeTime"].Value == null || SqlInput.ChangeNullToInt(row.Cells["ExposeTime"].Value, 0) == 0) { new PubUtils().ShowNoteNGMsg("暴露时间不能为空", 2, grade.RepeatedError); return(false); } } if ((row.Cells["TemperatureMinTime"].Value != null && row.Cells["TemperatureMaxTime"].Value != null) && SqlInput.ChangeNullToInt(row.Cells["TemperatureMinTime"].Value, 0) >= SqlInput.ChangeNullToInt(row.Cells["TemperatureMaxTime"].Value, 0)) { new PubUtils().ShowNoteNGMsg("最小回温时间必须小于最大回温时间", 2, grade.RepeatedError); return(false); } if ((row.Cells["RoastMinTemperature"].Value != null && row.Cells["RoastMaxTemperature"].Value != null) && SqlInput.ChangeNullToDecimal(row.Cells["RoastMinTemperature"].Value, 0) >= SqlInput.ChangeNullToDecimal(row.Cells["RoastMaxTemperature"].Value, 0)) { new PubUtils().ShowNoteNGMsg("最小烘烤温度必须小于最大烘烤温度", 2, grade.RepeatedError); return(false); } return(true); }
/// <summary> /// 修改 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static bool Update(MdcdatMaterial M) { string strSql = string.Format(@"update MdcdatMaterial set MaterialCode='{0}',MaterialName='{1}',Type='{2}',HouseCode='{3}',HouseCode1='{4}',HouseCode2='{5}',IsMSD='{6}',IsSendCheck='{7}',SecondMaterialClass='{8}',IncomingType='{9}',PackageType='{10}',PackagingMax='{11}',PackagingMin='{12}',ShelfLifeTime='{13}',SafeQty='{14}',Updator='{15}',UpdateTime=getdate() where MaterialCode='{0}'", M.MaterialCode, M.MaterialName, M.Type, M.HouseCode, M.HouseCode1, M.HouseCode2, M.IsMSD, M.IsSendCheck, M.SecondMaterialClass, M.INCOMINGTYPE, M.PackageType, M.PackagingMax, M.PackagingMin, SqlInput.ChangeNullToInt(M.ShelfLifeTime, 0), SqlInput.ChangeNullToInt(M.SafeQty, 0), PubUtils.uContext.UserID); return(NMS.ExecTransql(PubUtils.uContext, strSql)); }
//执行打印 private void Printing() { int MinQty = SqlInput.ChangeNullToInt(txt_MinPackage.Text.Trim(), 0); int TotalQty = SqlInput.ChangeNullToInt(txt_Qty.Text.Trim(), 0); int packageQty = TotalQty / MinQty; int lastQty = TotalQty % MinQty; if (lastQty > 0) { packageQty++; } string snString = string.Empty; string barCodeString = string.Empty; Model.Model_MaterialBarCode bar = new Model.Model_MaterialBarCode(); Dictionary <string, string> dic = new Dictionary <string, string>(); for (int i = 1; i <= packageQty; i++)//循环打印条码 { dic.Clear(); snString = getSN(); if (string.IsNullOrEmpty(snString)) { new PubUtils().ShowNoteNGMsg("获取流水码失败!", 1, grade.SevereError); return; } txtSN.Text = snString; barCodeString = snString + "|" + cbo_MaterialCode.Text.Trim() + "|" + txt_Qty.Text.Trim() + "|" + txt_SUPPLIER_CODE.Text.Trim() + "|" + DateTime.Parse(dtpProductionDate.Text.Trim()).ToString("yyyyMMdd"); bar.SUPPLIER_CODE = txt_SUPPLIER_CODE.Text.Trim(); //供应商代码 dic.Add("SUPPLIER_CODE", bar.SUPPLIER_CODE); bar.MaterialCode = cbo_MaterialCode.Text.Split('*')[0]; //物料代码 dic.Add("MaterialCode", bar.MaterialCode); bar.RowNumber = cbo_MaterialCode.Text.Split('*')[1]; //行号 dic.Add("RowNumber", bar.RowNumber); bar.MaterialDesc = txt_MaterialDesc.Text.Trim(); //型号规格 dic.Add("MaterialDesc", bar.MaterialDesc); bar.QTY = MinQty.ToString(); //数量 if (i == packageQty) { dic.Add("QTY", lastQty.ToString()); } else { dic.Add("QTY", MinQty.ToString()); } bar.BEGIN_DATE = dtpProductionDate.Value.ToString("yyMMdd"); //生产日期 dic.Add("BEGIN_DATE", bar.BEGIN_DATE); bar.PO = cbo_PO.Text.Trim(); //采购订单号 dic.Add("PO", bar.PO + "|" + bar.RowNumber); bar.SN = snString; dic.Add("SN", bar.SN); bar.QRCODE = bar.SUPPLIER_CODE + "|" + bar.MaterialCode + "|" + bar.SN + "|Q" + bar.QTY + "|D" + bar.BEGIN_DATE + "|" + bar.PO + "|" + bar.RowNumber; dic.Add("QRCODE", bar.QRCODE); Common.BLL.Bll_Print.PrintTemplet("来料打印", dic); } Reset(); }
/// <summary> /// 验证输入的资料是否有问题 /// </summary> /// <returns></returns> private bool Validation() { #region 校验输入 if (string.IsNullOrEmpty(txt_MaterialCode.Text.Trim())) { new PubUtils().ShowNoteNGMsg("请输入物料编码!", 1, grade.SevereError); return(false); } if (string.IsNullOrEmpty(txt_MinPackage.Text.Trim())) { new PubUtils().ShowNoteNGMsg("未获取最小包装数!", 1, grade.SevereError); return(false); } if (string.IsNullOrEmpty(txt_Qty.Text.Trim())) { txt_Qty.Focus(); new PubUtils().ShowNoteNGMsg("请输入数量!", 1, grade.SevereError); return(false); } if (txt_PO.Text == string.Empty) { new PubUtils().ShowNoteNGMsg("请选择采购单", 1, grade.SevereError); return(false); } //if (string.IsNullOrEmpty(txtLotNo.Text.Trim())) //{ // new PubUtils().ShowNoteNGMsg("请输入LotNo", 1, grade.SevereError); // return false; //} if (string.IsNullOrEmpty(txt_MPN.Text.Trim())) { new PubUtils().ShowNoteNGMsg("请输入MPN", 1, grade.SevereError); return(false); } int Qty; if (!int.TryParse(txt_Qty.Text.Trim(), out Qty)) { new PubUtils().ShowNoteNGMsg("来料数量为数字", 1, grade.SevereError); return(false); } if (Qty <= 0) { new PubUtils().ShowNoteNGMsg("来料数量为正整数", 1, grade.SevereError); return(false); } if (txt_Qty.Text.Trim().Contains('.')) { new PubUtils().ShowNoteNGMsg("来料数量不能为小数", 1, grade.SevereError); return(false); } if (txt_DateCode.Text.Trim().Length != 8) { new PubUtils().ShowNoteNGMsg("DateCode八位有效", 1, grade.SevereError); return(false); } if (!Regex.IsMatch(txt_DateCode.Text.Trim(), @"(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})(((0[13578]|1[02])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))0229)")) { //new PubUtils().ShowNoteNGMsg("DateCode格式yyyyMMdd", 1, grade.SevereError); MsgBox.Error("DateCode格式yyyyMMdd"); return(false); } string sql_check_mpn = string.Format(@" SELECT LocalMaterialCode , SupplyMaterialCode, Supply, Remark, TBMR_ID FROM[dbo].[T_Bllb_MaterialRelation_Tbmr] {0}", string.Format(" where SupplyMaterialCode='{0}' and LocalMaterialCode='{1}' ", txt_MPN.Text.Trim(), txt_MaterialCode.Text.Trim())); if (NMS.QueryDataTable(PubUtils.uContext, sql_check_mpn).Rows.Count == 0) { new PubUtils().ShowNoteNGMsg("物料关系不存在", 1, grade.SevereError); return(false); } #endregion #region 校验采购单是否关闭、 清点数量 DataTable dt_po = NMS.QueryDataTable(PubUtils.uContext, "select Status,POID from T_Bllb_POMain_tbpm where PO='" + txt_PO.Text.Trim() + "'"); if (SqlInput.ChangeNullToString(dt_po.Rows[0][0]) == "2") { new PubUtils().ShowNoteNGMsg("来料所属采购单已关闭", 1, grade.SevereError); return(false); } else { poid = SqlInput.ChangeNullToString(dt_po.Rows[0]["POID"]); } string strSql = string.Format(@" SELECT PO_DetailID , Quantity , ClearQty FROM dbo.T_Bllb_PODetail_tbpd WHERE PO_DetailID = '{0}'", dgvrSelected.Cells["PO_DetailID"].Value.ToString()); DataTable dt_podetail = NMS.QueryDataTable(PubUtils.uContext, strSql); if (dt_podetail.Rows.Count == 0) { new PubUtils().ShowNoteNGMsg("采购单中不存在此物料", 1, grade.SevereError); return(false); } else { if (SqlInput.ChangeNullToInt(dt_podetail.Rows[0]["Quantity"], 0) < SqlInput.ChangeNullToInt(dt_podetail.Rows[0]["ClearQty"], 0) + SqlInput.ChangeNullToInt(txt_Qty.Text.Trim(), 0)) { //new PubUtils().ShowNoteNGMsg(string.Format("采购订单{0}清点数量将会超过计划数", txt_MaterialCode.Text.Trim()), 1, grade.SevereError); MsgBox.Error(string.Format("采购订单{0}清点数量将会超过计划数", txt_MaterialCode.Text.Trim())); return(false); } po_detailid = dt_podetail.Rows[0][0].ToString(); } #endregion //return false;//测试用 return(true);//正式用 }
//执行打印 private void Printing() { #region 采购清点 string doc_no = string.Empty; //清点单号 string MaterialCode = txt_MaterialCode.Text.Trim(); //料号 int qty = 0; qty = SqlInput.ChangeNullToInt(txt_Qty.Text, 0); //数量 //判断清点单是否已生成,若无则自动生成清点单 DataTable dt_doc = NMS.QueryDataTable(PubUtils.uContext, string.Format("SELECT S_Doc_NO FROM T_Bllb_StorageDoc_tbsd WHERE PO='{0}'and DATEDIFF(DAY,GETDATE(),Create_Time)=0 AND S_Doc_Type='1' AND Close_Flag='N' ORDER BY Create_Time DESC", txt_PO.Text.Trim())); if (dt_doc.Rows.Count == 0) { dt_doc = NMS.QueryDataTable(PubUtils.uContext, "SELECT TOP 1 RIGHT(S_Doc_NO,4)+1 FROM T_Bllb_StorageDoc_tbsd WHERE DATEDIFF(DAY,GETDATE(),Create_Time)=0 AND S_Doc_Type='1' ORDER BY Create_Time DESC"); if (dt_doc.Rows.Count > 0) { doc_no = "QD" + DateTime.Now.ToString("yyMMdd") + SqlInput.ChangeNullToInt(dt_doc.Rows[0][0], 0).ToString("0000"); } else { doc_no = "QD" + DateTime.Now.ToString("yyMMdd") + "0001"; } string sql_qd_insert = string.Format(@"INSERT INTO dbo.T_Bllb_StorageDoc_tbsd ( S_Doc_NO , S_Doc_Type , Create_Time , Creator , PO , POID ) VALUES ( '{0}' , -- S_Doc_NO - nvarchar(50) '1' , -- S_Doc_Type - nvarchar(10) GETDATE() , -- Create_Time - datetime '{1}' , -- Creator - nvarchar(50) '{2}' , -- PO - nvarchar(50) '{3}' -- POID - nvarchar(50) )", doc_no, PubUtils.uContext.UserID, txt_PO.Text.Trim(), poid); NMS.ExecTransql(PubUtils.uContext, sql_qd_insert); } else { doc_no = dt_doc.Rows[0][0].ToString(); } int totalQty = 0; string sql_exist = string.Format(@"SELECT S_Doc_NO,QTY FROM T_Bllb_StorageDocMaterial_tsdm WHERE S_Doc_NO='{0}' and MaterialCode='{1}'", doc_no, txt_MaterialCode.Text.Trim()); //判断清点单中是否已存在某物料 DataTable dt_doc_material = NMS.QueryDataTable(PubUtils.uContext, sql_exist); if (dt_doc_material.Rows.Count == 0) { string sql_insert = string.Format(@"INSERT INTO dbo.T_Bllb_StorageDocMaterial_tsdm ( S_Doc_NO , MaterialCode , QTY , PO_DetailID ) VALUES ( '{0}' , -- S_Doc_NO - nvarchar(50) '{1}' , -- MaterialCode - nvarchar(50) {2} , -- QTY - int '{3}' -- PO_DetailID - nvarchar(50) )", doc_no, MaterialCode, qty, po_detailid); NMS.ExecTransql(PubUtils.uContext, sql_insert); totalQty = qty; } else { string sql_update = string.Format(@"UPDATE T_Bllb_StorageDocMaterial_tsdm SET QTY=QTY+{1} WHERE S_Doc_NO='{0}' and MaterialCode='{2}'", doc_no, qty, txt_MaterialCode.Text.Trim()); NMS.ExecTransql(PubUtils.uContext, sql_update); totalQty = SqlInput.ChangeNullToInt(dt_doc_material.Rows[0]["QTY"].ToString(), 0) + qty; } if (IsSendCheck) { //判断是否存在IQC单据若无,则新增 iqc_no = string.Empty;//IQC检验单号 string sql_iqc_no = string.Format(@" SELECT [IQC_NO] FROM T_Bllb_IQCDoc_tbid WHERE S_DOC_NO = '{0}' AND OVER_FLAG = 'N' AND CREATE_TIME >= CONVERT(CHAR(10), GETDATE(), 120) AND Type = 'IQC' AND MaterialCode='{1}'", doc_no, txt_MaterialCode.Text.Trim()); DataTable dt_IQC = NMS.QueryDataTable(PubUtils.uContext, sql_iqc_no); if (dt_IQC.Rows.Count > 0)//修改送检数量 { iqc_no = dt_IQC.Rows[0][0].ToString(); string sql_iqc_update = string.Format(@"UPDATE T_Bllb_IQCDoc_tbid SET QTY=QTY+{1} WHERE IQC_NO='{0}' AND MaterialCode='{2}'", iqc_no, txt_Qty.Text.Trim(), txt_MaterialCode.Text.Trim()); NMS.ExecTransql(PubUtils.uContext, sql_iqc_update); } else//新增IQC单据 { DataTable dt_iqcwater = NMS.QueryDataTable(PubUtils.uContext, @" SELECT TOP 1 RIGHT(IQC_NO, 4) + 1 FROM T_Bllb_IQCDoc_tbid WHERE CREATE_TIME >= CONVERT(CHAR(10), GETDATE(), 120) AND Type = 'IQC' ORDER BY IQC_NO DESC "); if (dt_iqcwater.Rows.Count > 0) { iqc_no = "IQC" + DateTime.Now.ToString("yyMMdd") + SqlInput.ChangeNullToInt(dt_iqcwater.Rows[0][0], 0).ToString("0000"); } else { iqc_no = "IQC" + DateTime.Now.ToString("yyMMdd") + "0001";//IQC检验单号 } string sql_iql_insert = string.Format(@"INSERT INTO dbo.T_Bllb_IQCDoc_tbid ( IQC_NO , MaterialCode , QTY , CREATE_TIME , S_DOC_NO, PO ) VALUES ( '{0}' , '{1}' , {2} , GETDATE() , '{3}', '{4}' )", iqc_no, MaterialCode, qty, doc_no, txt_PO.Text.Trim()); NMS.ExecTransql(PubUtils.uContext, sql_iql_insert); } } //采购单物料清点数累计 string sql_qd = string.Format(@" UPDATE T_Bllb_PODetail_tbpd SET ClearQty= ISNULL(ClearQty,0)+{2} WHERE PO='{0}' and MaterialCode='{1}'", txt_PO.Text.Trim(), MaterialCode, qty); NMS.ExecTransql(PubUtils.uContext, sql_qd); #endregion int MinQty = SqlInput.ChangeNullToInt(txt_MinPackage.Text.Trim(), 0); int TotalQty = SqlInput.ChangeNullToInt(txt_Qty.Text.Trim(), 0); int packageQty = TotalQty / MinQty; int lastQty = TotalQty % MinQty; if (lastQty > 0) { packageQty++; } string snString = string.Empty; string barCodeString = string.Empty; Model.Model_MaterialBarCode bar = new Model.Model_MaterialBarCode(); Dictionary <string, string> dic = new Dictionary <string, string>(); for (int i = 1; i <= packageQty; i++)//循环打印条码 { dic.Clear(); snString = GetSnNumber(); //getSN(); if (string.IsNullOrEmpty(snString)) { new PubUtils().ShowNoteNGMsg("获取流水码失败!", 1, grade.SevereError); return; } bar.MaterialCode = txt_MaterialCode.Text.Trim();//物料代码 dic.Add("MaterialCode", bar.MaterialCode); if (i == packageQty && lastQty != 0) { bar.QTY = lastQty.ToString();//数量 dic.Add("QTY", lastQty.ToString()); } else { bar.QTY = MinQty.ToString();//数量 dic.Add("QTY", MinQty.ToString()); } bar.BEGIN_DATE = txt_DateCode.Text.Trim(); //生产日期 dic.Add("BEGIN_DATE", bar.BEGIN_DATE); bar.PO = txt_PO.Text.Trim(); //采购订单号 dic.Add("PO", bar.PO); bar.MPN = txt_MPN.Text.Trim(); //MPN dic.Add("MPN", bar.MPN); bar.SN = snString; dic.Add("SN", bar.SN); bar.QRCODE = snString; dic.Add("QRCODE", bar.QRCODE); string sql_detail_insert = string.Format(@" INSERT INTO dbo.T_Bllb_StorageDocDetail_tbsdd ( S_Doc_NO , MaterialCode , QTY , Create_Time , Creator , SerialNumber , PO_DetailID, Lot_No, MPN, DateCode, Version ) VALUES ( '{0}' , -- S_Doc_NO - nvarchar(50) '{1}' , -- MaterialCode - nvarchar(50) {2} , -- QTY - int GETDATE() , -- Create_Time - datetime '{3}' , -- Creator - nvarchar(50) '{4}' , -- SerialNumber - nvarchar(50) '{5}', -- PO_DetailID - nvarchar(50) '{6}', '{7}', '{8}', '{9}' )", doc_no, MaterialCode, bar.QTY, PubUtils.uContext.UserID, bar.QRCODE, po_detailid, txtLotNo.Text.Trim(), txt_MPN.Text.Trim(), txt_DateCode.Text.Trim(), txtVersion.Text.Trim()); NMS.ExecTransql(PubUtils.uContext, sql_detail_insert); string sql_barcode_log = string.Format(@" INSERT INTO dbo.T_Bllb_MaterialLog_tbml ( SerialNumber , CreateTime , OperateType , MaterialCode , QTY , Creator , TBML_ID ) VALUES ( '{0}' , -- SerialNumber - nvarchar(200) GETDATE() , -- CreateTime - datetime '清点' , -- OperateType - nvarchar(50) '{1}' , -- MaterialCode - nvarchar(50) '{2}', -- QTY - int '{3}' , -- Creator - nvarchar(50) '{4}' -- TBML_ID - nvarchar(50) )", bar.QRCODE, txt_MaterialCode.Text.Trim(), bar.QTY, PubUtils.uContext.UserID, Guid.NewGuid().ToString()); NMS.ExecTransql(PubUtils.uContext, sql_barcode_log); if (IsSendCheck) { //保存物料SN到IQC单据中 string sql_sn_iqc = string.Format(@" INSERT INTO T_Bllb_IQCProduct_tbip( TBIP_ID, IQC_NO, SERIAL_NUMBER, QTY) VALUES( '{0}', '{1}', '{2}',{3})", Guid.NewGuid(), iqc_no, bar.QRCODE, bar.QTY ); NMS.ExecTransql(PubUtils.uContext, sql_sn_iqc); } Common.BLL.Bll_Print.PrintTemplet("安费诺来料打印", dic); bar = new Model.Model_MaterialBarCode(); } new PubUtils().ShowNoteOKMsg("打印成功"); ClearControl(); txt_MPN.Focus(); }