/// <summary> /// 最终判定 /// </summary> /// <param name="delivery">CVT检验报告信息</param> /// <param name="error">出错时返回错误信息,无错时返回null</param> /// <returns>操作成功返回True ,操作失败返回False</returns> public bool FinalJudgeBill(P_DeliveryInspection delivery, out string error) { error = null; DepotManagementDataContext dataContext = CommentParameter.DepotDataContext; dataContext.Connection.Open(); dataContext.Transaction = dataContext.Connection.BeginTransaction(); try { ProductListServer serverProductList = new ProductListServer(); var varData = from a in dataContext.P_DeliveryInspection where a.DJH == delivery.DJH select a; if (varData.Count() != 1) { error = "数据为空或者不唯一"; return(false); } else { P_DeliveryInspection lnqUpdate = varData.Single(); lnqUpdate.FinalVerdict = delivery.FinalVerdict; lnqUpdate.FinalDate = ServerTime.Time; lnqUpdate.FinalPersonnel = BasicInfo.LoginName; lnqUpdate.DJZT = "已完成"; lnqUpdate.Remark = delivery.Remark; //不合格处理情况 if (lnqUpdate.FinalVerdict == "不合格") { //删除产品业务表中的记录 var varMarketingDate = from a in dataContext.ProductsCodes where a.DJH == lnqUpdate.AssociatedBillNo && a.ProductCode == lnqUpdate.ProductCode select a; dataContext.ProductsCodes.DeleteAllOnSubmit(varMarketingDate); //获得单据ID和产品ID int intProductID = serverProductList.GetProductGoodsID(lnqUpdate.ProductType, 0, false); int intDJID = 0; var varBillDate = from a in dataContext.S_MarketingBill where a.DJH == lnqUpdate.AssociatedBillNo select a; if (varBillDate.Count() != 1) { error = "数据不唯一或者为空"; return(false); } else { intDJID = varBillDate.Single().ID; } //修改营销业务明细表中的记录的数量数据 var varListDate = from a in dataContext.S_MarketingList where a.DJ_ID == intDJID && a.CPID == intProductID.ToString() select a; if (varListDate.Count() != 1) { error = "数据不唯一或者为空"; return(false); } else { S_MarketingList lnqList = varListDate.Single(); lnqList.Count = lnqList.Count - 1; } } dataContext.SubmitChanges(); //修改营销业务单据状态 if (!UpdateMarketingBill(dataContext, delivery.AssociatedBillNo, out error)) { return(false); } } dataContext.Transaction.Commit(); return(true); } catch (Exception ex) { dataContext.Transaction.Rollback(); error = ex.Message; return(false); } }
/// <summary> /// 插入营销出库业务 /// </summary> /// <param name="contxt">数据上下文</param> /// <param name="threePacket">三包外售后返修单信息</param> /// <param name="dtListOfStorageID">库房信息</param> /// <param name="listTable">明细信息</param> /// <param name="error">出错时返回错误信息,无错时返回null</param> /// <returns>插入成功返回True,插入失败返回False</returns> bool InsertYXCK(DepotManagementDataContext contxt, YX_ThreePacketsOfTheRepairBill threePacket, DataTable dtListOfStorageID, DataTable listTable, out string error) { error = null; int intDJID = 0; SellIn serverSellIn = new SellIn(); try { if (dtListOfStorageID == null || dtListOfStorageID.Rows.Count == 0) { return(true); } else { for (int k = 0; k < dtListOfStorageID.Rows.Count; k++) { string strBillID = m_serverAssignBill.AssignNewNo(serverSellIn, CE_BillTypeEnum.营销出库单.ToString()); S_MarketingBill lnqMarketingBill = new S_MarketingBill(); lnqMarketingBill.AffirmDate = ServerTime.Time; lnqMarketingBill.Date = Convert.ToDateTime(threePacket.FoundDate); lnqMarketingBill.DJH = strBillID; lnqMarketingBill.DJZT_FLAG = "已确认"; lnqMarketingBill.KFRY = BasicInfo.LoginID; string strDepartment = m_serverDepartment.GetDeptInfoFromPersonnelInfo(threePacket.FoundPersonnel).Rows[0]["DepartmentCode"].ToString(); lnqMarketingBill.LRKS = strDepartment; lnqMarketingBill.LRRY = UniversalFunction.GetPersonnelCode(threePacket.FoundPersonnel); lnqMarketingBill.SHRY = m_serverPersonnel.GetFuzzyDeptDirector(strDepartment).ToList()[0].工号.ToString(); lnqMarketingBill.ShDate = ServerTime.Time; lnqMarketingBill.ObjectDept = "QT"; lnqMarketingBill.Remark = "由三包外返修处理单【" + threePacket.Bill_ID + "】自动生成"; lnqMarketingBill.StorageID = dtListOfStorageID.Rows[k][0].ToString(); lnqMarketingBill.YWFS = "三包外返修出库"; lnqMarketingBill.YWLX = "出库"; contxt.S_MarketingBill.InsertOnSubmit(lnqMarketingBill); contxt.SubmitChanges(); var varID = from a in contxt.S_MarketingBill where a.DJH == lnqMarketingBill.DJH select a; if (varID.Count() != 1) { error = "数据不唯一或者为空"; return(false); } else { intDJID = varID.Single().ID; } for (int i = 0; i < listTable.Rows.Count; i++) { if (Convert.ToBoolean(listTable.Rows[i]["是否为客户责任"]) && listTable.Rows[i][13].ToString().Trim() == dtListOfStorageID.Rows[k][0].ToString().Trim()) { var varStock = from a in contxt.S_Stock where a.StorageID == dtListOfStorageID.Rows[k][0].ToString() && a.GoodsID == Convert.ToInt32(listTable.Rows[i]["物品ID"]) && a.BatchNo == listTable.Rows[i]["批次号"].ToString() && a.Provider == listTable.Rows[i][14].ToString() select a; if (varStock.Count() != 1) { error = "库存信息不唯一或者为空"; return(false); } else { if (varStock.Single().GoodsStatus == 3) { error = "【" + varStock.Single().GoodsCode + "】 【" + varStock.Single().GoodsName + "】 【" + varStock.Single().Spec + "】【" + listTable.Rows[i]["批次号"].ToString() + "】物品库存状态为“隔离”不允许出库"; return(false); } } S_MarketingList lnqMarketingList = new S_MarketingList(); lnqMarketingList.BatchNo = listTable.Rows[i]["批次号"].ToString(); lnqMarketingList.Count = Convert.ToDecimal(listTable.Rows[i]["领用数量"]); lnqMarketingList.CPID = listTable.Rows[i]["物品ID"].ToString(); lnqMarketingList.DJ_ID = intDJID; lnqMarketingList.ReMark = listTable.Rows[i]["备注"].ToString(); lnqMarketingList.Price = Math.Round(Convert.ToDecimal(listTable.Rows[i]["单价"]) * Convert.ToDecimal(listTable.Rows[i]["领用数量"]), 2); lnqMarketingList.Provider = listTable.Rows[i][14].ToString(); lnqMarketingList.UnitPrice = Convert.ToDecimal(listTable.Rows[i]["单价"]); contxt.S_MarketingList.InsertOnSubmit(lnqMarketingList); } } contxt.SubmitChanges(); serverSellIn.OperationDetailAndStock_Out(contxt, lnqMarketingBill); contxt.SubmitChanges(); } } return(true); } catch (Exception ex) { error = ex.Message; return(false); } }