/// <summary> /// 更改单据状态 /// </summary> /// <param name="inBill">变更单信息</param> /// <param name="error">出错时返回错误信息,无错时返回null</param> /// <returns>更改成功返回True,更改失败返回False</returns> public bool UpdateBill(S_TechnologyChangeBill inBill, out string error) { error = null; try { DepotManagementDataContext dataContext = CommentParameter.DepotDataContext; var varData = from a in dataContext.S_TechnologyChangeBill where a.DJH == inBill.DJH select a; if (varData.Count() != 1) { error = "单据不唯一或者为空"; return(false); } else { S_TechnologyChangeBill lnqBill = varData.Single(); switch (inBill.DJZT) { case "等待批准": lnqBill.PZRQ = ServerTime.Time; lnqBill.PZRY = BasicInfo.LoginName; lnqBill.DJZT = "单据已完成"; if (!UpdateBOMDate(dataContext, lnqBill, out error)) { return(false); } break; case "新建单据": lnqBill.DJZT = "新建单据"; break; default: break; } dataContext.SubmitChanges(); } return(true); } catch (Exception ex) { error = ex.Message; return(false); } }
/// <summary> /// 删除单据 /// </summary> /// <param name="djh">单据号</param> /// <param name="error">出错时返回错误信息,无错时返回null</param> /// <returns>删除成功返回True,删除失败返回False</returns> public bool DeleteBill(string djh, out string error) { error = null; try { DepotManagementDataContext dataContext = CommentParameter.DepotDataContext; var varData = from a in dataContext.S_TechnologyChangeBill where a.DJH == djh select a; if (varData.Count() != 1) { error = "数据不唯一或者为空"; return(false); } else { if (varData.Single().DJZT == "单据已完成") { error = "不能删除已完成的单据"; return(false); } S_TechnologyChangeBill lnqbill = varData.Single(); //lnqbill.DJZT = "已报废"; dataContext.S_TechnologyChangeBill.DeleteOnSubmit(varData.Single()); } dataContext.SubmitChanges(); return(true); } catch (Exception ex) { error = ex.Message; return(false); } }
/// <summary> /// 对BOM表中数据进行变更 /// </summary> /// <param name="context">数据上下文</param> /// <param name="inBill">变更单信息</param> /// <param name="error">出错时返回错误信息,无错时返回null</param> /// <returns>变更成功返回True,变更失败返回False</returns> public bool UpdateBOMDate(DepotManagementDataContext context, S_TechnologyChangeBill inBill, out string error) { error = null; try { BASE_BomStruct lnqBomStruct = new BASE_BomStruct(); BASE_BomPartsLibrary lnqLibrary = new BASE_BomPartsLibrary(); switch (inBill.ChangeMode) { case "新增": if (inBill.NewGoodsID != null) { var varBomPartsLibrary = from a in context.BASE_BomPartsLibrary where a.GoodsID == Convert.ToInt32(inBill.NewGoodsID) select a; if (varBomPartsLibrary.Count() == 0) { lnqLibrary.CreateDate = ServerTime.Time; lnqLibrary.CreatePersonnel = UniversalFunction.GetPersonnelCode(inBill.SQRY); lnqLibrary.GoodsID = Convert.ToInt32(inBill.NewGoodsID); lnqLibrary.Material = "未知"; lnqLibrary.PartType = "产品"; lnqLibrary.PivotalPart = "A"; lnqLibrary.Remark = "由技术变更单【" + inBill.DJH + "】生成"; lnqLibrary.Version = inBill.NewVersion; context.BASE_BomPartsLibrary.InsertOnSubmit(lnqLibrary); } else if (varBomPartsLibrary.Count() == 1) { lnqLibrary = varBomPartsLibrary.Single(); lnqLibrary.Version = inBill.NewVersion; lnqLibrary.CreateDate = ServerTime.Time; lnqLibrary.CreatePersonnel = UniversalFunction.GetPersonnelCode(inBill.SQRY); } } if (inBill.NewParentID != null && inBill.NewGoodsID != null) { lnqBomStruct.CreateDate = ServerTime.Time; lnqBomStruct.CreatePersonnel = UniversalFunction.GetPersonnelCode(inBill.SQRY); lnqBomStruct.GoodsID = Convert.ToInt32(inBill.NewGoodsID); lnqBomStruct.ParentID = Convert.ToInt32(inBill.NewParentID); lnqBomStruct.SysVersion = 1; lnqBomStruct.Usage = Convert.ToDecimal(inBill.NewCounts); context.BASE_BomStruct.InsertOnSubmit(lnqBomStruct); } break; case "修改": #region //if (inBill.NewGoodsID != null) //{ // var varBomPartsLibrary = from a in context.BASE_BomPartsLibrary // where a.GoodsID == Convert.ToInt32(inBill.NewGoodsID) // select a; // if (varBomPartsLibrary.Count() != 1) // { // error = "新零件在零件库中不存在"; // return false; // } // else // { // lnqLibrary = varBomPartsLibrary.Single(); // lnqLibrary.Version = inBill.NewVersion; // } //} //if (inBill.OldParentID != null // && inBill.NewParentID != null // && inBill.OldGoodsID != null // && inBill.NewGoodsID != null) //{ // var varBomStruct = from a in context.BASE_BomStruct // where a.ParentID == Convert.ToInt32(inBill.OldParentID) // && a.GoodsID == Convert.ToInt32(inBill.OldGoodsID) // select a; // if (varBomStruct.Count() != 1) // { // error = "BOM结构表中不存在此记录"; // return false; // } // else // { // lnqBomStruct = varBomStruct.Single(); // lnqBomStruct.CreateDate = ServerTime.Time; // lnqBomStruct.CreatePersonnel = UniversalFunction.GetPersonnelCode(inBill.SQRY); // lnqBomStruct.GoodsID = Convert.ToInt32(inBill.NewGoodsID); // lnqBomStruct.ParentID = Convert.ToInt32(inBill.NewParentID); // lnqBomStruct.SysVersion = lnqBomStruct.SysVersion + Convert.ToDecimal( 0.01); // lnqBomStruct.Usage = Convert.ToDecimal(inBill.NewCounts); // } //} #endregion break; case "删除": if (inBill.OldParentID == null) { var varStruct = from a in context.BASE_BomStruct where a.GoodsID == Convert.ToInt32(inBill.OldGoodsID) select a; context.BASE_BomStruct.DeleteAllOnSubmit(varStruct); var varLibrary = from a in context.BASE_BomPartsLibrary where a.GoodsID == Convert.ToInt32(inBill.OldGoodsID) select a; context.BASE_BomPartsLibrary.DeleteAllOnSubmit(varLibrary); } else { var varStruct = from a in context.BASE_BomStruct where a.ParentID == Convert.ToInt32(inBill.OldParentID) && a.GoodsID == Convert.ToInt32(inBill.OldGoodsID) select a; if (varStruct.Count() != 1) { error = "BOM结构表中不存在此记录"; return(false); } else { lnqBomStruct = varStruct.Single(); context.BASE_BomStruct.DeleteOnSubmit(lnqBomStruct); } } break; default: break; } return(true); } catch (Exception ex) { error = ex.Message; return(false); } }
/// <summary> /// 提交单据 /// </summary> /// <param name="inBill">变更单信息</param> /// <param name="error">出错时返回错误信息,无错时返回null</param> /// <returns>操作成功返回True,操作失败返回False</returns> public bool SubmitBill(S_TechnologyChangeBill inBill, out string error) { error = null; try { DepotManagementDataContext dataContext = CommentParameter.DepotDataContext; var varData = from a in dataContext.S_TechnologyChangeBill where a.DJH == inBill.DJH select a; S_TechnologyChangeBill lnqBill = null; if (varData.Count() > 1) { error = "单据不唯一"; return(false); } else if (varData.Count() == 0) { lnqBill = new S_TechnologyChangeBill(); lnqBill.DJH = inBill.DJH; lnqBill.DJZT = "等待批准"; lnqBill.ChangeMode = inBill.ChangeMode; lnqBill.ChangeReason = inBill.ChangeReason; lnqBill.NewParentID = inBill.NewParentID; lnqBill.NewGoodsID = inBill.NewGoodsID; lnqBill.NewVersion = inBill.NewVersion; lnqBill.NewCounts = inBill.NewCounts; lnqBill.OldParentID = inBill.OldParentID; lnqBill.OldGoodsID = inBill.OldGoodsID; lnqBill.OldCounts = inBill.OldCounts; lnqBill.OldVersion = inBill.OldVersion; lnqBill.SQRQ = ServerTime.Time; lnqBill.SQRY = BasicInfo.LoginName; lnqBill.FileCode = inBill.FileCode; lnqBill.FileMessage = inBill.FileMessage; dataContext.S_TechnologyChangeBill.InsertOnSubmit(lnqBill); } else if (varData.Count() == 1) { lnqBill = varData.Single(); lnqBill.DJH = inBill.DJH; lnqBill.DJZT = "等待批准"; lnqBill.ChangeMode = inBill.ChangeMode; lnqBill.ChangeReason = inBill.ChangeReason; lnqBill.NewParentID = inBill.NewParentID; lnqBill.NewGoodsID = inBill.NewGoodsID; lnqBill.NewVersion = inBill.NewVersion; lnqBill.NewCounts = inBill.NewCounts; lnqBill.OldParentID = inBill.OldParentID; lnqBill.OldGoodsID = inBill.OldGoodsID; lnqBill.OldCounts = inBill.OldCounts; lnqBill.OldVersion = inBill.OldVersion; lnqBill.SQRQ = ServerTime.Time; lnqBill.SQRY = BasicInfo.LoginName; lnqBill.FileCode = inBill.FileCode; lnqBill.FileMessage = inBill.FileMessage; } dataContext.SubmitChanges(); return(true); } catch (Exception ex) { error = ex.Message; return(false); } }