/// <summary> /// 编辑检验状态 /// </summary> /// <param name="djh">单据号</param> /// <param name="remark">备注</param> /// <param name="error">出错时返回错误信息,无错时返回null</param> /// <returns>编辑成功返回True,编辑失败返回False</returns> public bool CheckBill(string djh, string remark, out string error) { error = null; DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext; try { var varData = from a in dataContxt.S_CannibalizeBill where a.DJH == djh select a; if (varData.Count() != 0) { S_CannibalizeBill lnqMarketing = varData.Single(); lnqMarketing.DJZT = "已批准"; lnqMarketing.CWRY = BasicInfo.LoginID; lnqMarketing.Remark = remark; lnqMarketing.CWRQ = ServerTime.Time; dataContxt.SubmitChanges(); } return(true); } catch (Exception ex) { error = ex.Message; return(false); } }
/// <summary> /// 仓管确认 /// </summary> /// <param name="djID">单据ID</param> /// <param name="error">出错时返回错误信息,无错时返回null</param> /// <returns>确认成功返回True,确认失败返回False</returns> public bool AffirmBill(int djID, out string error) { error = null; ISellIn serverSell = ServerModule.ServerModuleFactory.GetServerModule <ISellIn>(); DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext; dataContxt.Connection.Open(); dataContxt.Transaction = dataContxt.Connection.BeginTransaction(); try { var varBill = from a in dataContxt.S_CannibalizeBill where a.ID == djID select a; if (varBill.Count() != 1) { throw new Exception("单据信息为空或者不唯一"); } S_CannibalizeBill tempBillInfo = varBill.Single(); if (tempBillInfo.DJZT == "已确认") { throw new Exception("单据不能重复确认"); } tempBillInfo.DJZT = "已确认"; tempBillInfo.KFRY = BasicInfo.LoginID; tempBillInfo.KFRQ = ServerTime.Time; //操作总成库存状态 if (!serverSell.UpdateProductStock(dataContxt, tempBillInfo.DJH, "调拨", tempBillInfo.OutStoreRoom, tempBillInfo.InStoreRoom, out error)) { return(false); } OpertaionDetailAndStock(dataContxt, tempBillInfo, CE_SubsidiaryOperationType.库房调出); OpertaionDetailAndStock(dataContxt, tempBillInfo, CE_SubsidiaryOperationType.库房调入); dataContxt.SubmitChanges(); dataContxt.Transaction.Commit(); return(true); } catch (Exception ex) { dataContxt.Transaction.Rollback(); error = ex.Message; return(false); } }
private void 库房调拨明细单_Load(object sender, EventArgs e) { S_CannibalizeBill tempBillInfo = new S_CannibalizeBill(); if (m_intDJID != 0) { tempBillInfo = m_serverCannibalize.GetBill(m_intDJID); m_strDJZTFlag = tempBillInfo.DJZT; View_HR_Personnel lnqPersonnel = m_findPersonnel.GetPersonnelInfo(tempBillInfo.LRRY); if (lnqPersonnel.姓名 != BasicInfo.LoginName) { btnSave.Visible = false; cmbInStorage.Enabled = false; cmbOutStorage.Enabled = false; } m_dtMxCK = m_serverCannibalize.GetList(m_intDJID); txtSellID.Text = tempBillInfo.DJH; txtPrice.Text = tempBillInfo.Price.ToString(); txtRemarkAll.Text = tempBillInfo.Remark; cmbInStorage.Text = UniversalFunction.GetStorageName(tempBillInfo.InStoreRoom); cmbOutStorage.Text = UniversalFunction.GetStorageName(tempBillInfo.OutStoreRoom); btnAffirm.Visible = UniversalFunction.CheckStorageAndPersonnel(tempBillInfo.OutStoreRoom); } else { m_strDJZTFlag = "已保存"; btnAffirm.Visible = false; txtSellID.Text = m_billNoControl.GetNewBillNo(); CreateDateTableStyle(); } if (m_strDJZTFlag != "已保存" && m_strDJZTFlag != "") { cmbOutStorage.Enabled = false; cmbInStorage.Enabled = false; if (!UniversalFunction.CheckStorageAndPersonnel(tempBillInfo.OutStoreRoom) == false) { btnSh.Visible = false; } } dgv_Main.DataSource = m_dtMxCK; m_strDJH = txtSellID.Text.Trim(); }
/// <summary> /// 赋值库存信息 /// </summary> /// <param name="dataContext">数据上下文</param> /// <param name="billInfo">单据信息</param> /// <param name="listSingle">明细信息</param> /// <param name="operationType">操作类型</param> /// <returns>返回库存信息对象</returns> S_Stock AssignStockInfo(DepotManagementDataContext dataContext, S_CannibalizeBill billInfo, S_CannibalizeList listSingle, CE_SubsidiaryOperationType operationType) { S_Stock tempLnqStock = new S_Stock(); tempLnqStock.GoodsID = Convert.ToInt32(listSingle.GoodsID); tempLnqStock.BatchNo = listSingle.BatchNo; tempLnqStock.ExistCount = (decimal)listSingle.Count; tempLnqStock.Date = ServerTime.Time; tempLnqStock.Provider = listSingle.Provider; tempLnqStock.UnitPrice = (decimal)listSingle.UnitPrice; tempLnqStock.Price = tempLnqStock.UnitPrice * tempLnqStock.ExistCount; if (operationType == CE_SubsidiaryOperationType.库房调出) { tempLnqStock.StorageID = billInfo.OutStoreRoom; } else if (operationType == CE_SubsidiaryOperationType.库房调入) { tempLnqStock.StorageID = billInfo.InStoreRoom; } else { throw new Exception("业务类型错误"); } QueryCondition_Store store = new QueryCondition_Store(); store.BatchNo = tempLnqStock.BatchNo; store.GoodsID = tempLnqStock.GoodsID; store.StorageID = billInfo.OutStoreRoom; store.Provider = tempLnqStock.Provider; S_Stock stockInfo = UniversalFunction.GetStockInfo(dataContext, store); tempLnqStock.GoodsStatus = stockInfo.GoodsStatus; tempLnqStock.InputPerson = BasicInfo.LoginID; return(tempLnqStock); }
/// <summary> /// 根据单据信息操作账务信息与库存信息 /// </summary> /// <param name="dataContext">数据上下文</param> /// <param name="bill">单据信息</param> /// <param name="operationType">操作类型</param> void OpertaionDetailAndStock(DepotManagementDataContext dataContext, S_CannibalizeBill bill, CE_SubsidiaryOperationType operationType) { IFinancialDetailManagement serverDetail = ServerModule.ServerModuleFactory.GetServerModule <IFinancialDetailManagement>(); var result = from r in dataContext.S_CannibalizeList where r.DJ_ID == bill.ID select r; foreach (var item in result) { S_FetchGoodsDetailBill detailInfo = AssignDetailInfo(dataContext, bill, item, operationType); S_Stock stockInfo = AssignStockInfo(dataContext, bill, item, operationType); if (detailInfo == null || stockInfo == null) { throw new Exception("获取账务信息或者库存信息失败"); } serverDetail.ProcessFetchGoodsDetail(dataContext, detailInfo, stockInfo); } }
/// <summary> /// 变更单据状态(检测) /// </summary> /// <param name="djID">单据ID</param> /// <param name="remark">备注</param> /// <param name="error">出错时返回错误信息,无错时返回null</param> /// <returns>变更成功返回True,变更失败返回False</returns> public bool QualityBill(int djID, string remark, out string error) { error = null; DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext; try { var varData = from a in dataContxt.S_CannibalizeBill where a.ID == djID select a; if (varData.Count() == 0) { error = "无记录"; } else { S_CannibalizeBill lnqMarkBill = varData.Single(); lnqMarkBill.Checker = BasicInfo.LoginID; lnqMarkBill.DJZT = "已检测"; lnqMarkBill.Remark = remark; lnqMarkBill.CheckTime = ServerTime.Time; dataContxt.SubmitChanges(); } return(true); } catch (Exception ex) { error = ex.Message; return(false); } }
/// <summary> /// 赋值账务信息 /// </summary> /// <param name="dataContext">数据上下文</param> /// <param name="billInfo">单据信息</param> /// <param name="listSingle">明细信息</param> /// <param name="operationType">操作类型</param> /// <returns>返回账务信息</returns> S_FetchGoodsDetailBill AssignDetailInfo(DepotManagementDataContext dataContext, S_CannibalizeBill billInfo, S_CannibalizeList listSingle, CE_SubsidiaryOperationType operationType) { S_FetchGoodsDetailBill lnqOutDepot = new S_FetchGoodsDetailBill(); bool flag = false; if (operationType == CE_SubsidiaryOperationType.库房调出) { flag = true; } else if (operationType == CE_SubsidiaryOperationType.库房调入) { flag = false; } else { throw new Exception("业务类型错误"); } lnqOutDepot.ID = Guid.NewGuid(); lnqOutDepot.FetchBIllID = billInfo.DJH; lnqOutDepot.BillTime = ServerTime.Time; lnqOutDepot.GoodsID = (int)listSingle.GoodsID; lnqOutDepot.Provider = listSingle.Provider; lnqOutDepot.BatchNo = listSingle.BatchNo; lnqOutDepot.FetchCount = flag ? listSingle.Count : -listSingle.Count; lnqOutDepot.UnitPrice = (decimal)listSingle.UnitPrice; lnqOutDepot.Price = flag ? (decimal)listSingle.Price : -(decimal)listSingle.Price; lnqOutDepot.Using = flag ? "仓库调拨单:调出" : "仓库调拨:调入"; lnqOutDepot.Department = UniversalFunction.GetStorageName(dataContext, flag ? billInfo.InStoreRoom : billInfo.OutStoreRoom); lnqOutDepot.FillInPersonnel = UniversalFunction.GetPersonnelInfo(dataContext, billInfo.LRRY).姓名; lnqOutDepot.DepartDirector = UniversalFunction.GetPersonnelInfo(dataContext, billInfo.SHRY).姓名; lnqOutDepot.DepotManager = BasicInfo.LoginName; lnqOutDepot.OperationType = flag ? (int)CE_SubsidiaryOperationType.库房调出 : (int)CE_SubsidiaryOperationType.库房调入; lnqOutDepot.Remark = billInfo.Remark; lnqOutDepot.StorageID = flag ? billInfo.OutStoreRoom : billInfo.InStoreRoom; lnqOutDepot.FillInDate = billInfo.LRRQ; return(lnqOutDepot); }
/// <summary> /// 保存单据数据(如果单据信息ID为0则添加数据,否则更新数据) /// </summary> /// <param name="billList">单据明细</param> /// <param name="billInfo">单据信息</param> public void SaveBill(DataTable billList, S_CannibalizeBill billInfo) { DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext; dataContxt.Connection.Open(); dataContxt.Transaction = dataContxt.Connection.BeginTransaction(); try { int intDJID = 0; if (billInfo.ID == 0)//添加 { S_CannibalizeBill lnqBill = new S_CannibalizeBill(); lnqBill.DJH = billInfo.DJH; lnqBill.LRRY = billInfo.LRRY; lnqBill.LRRQ = billInfo.LRRQ; lnqBill.DJZT = "已保存"; lnqBill.Remark = billInfo.Remark; lnqBill.Price = billInfo.Price; lnqBill.OutStoreRoom = billInfo.OutStoreRoom; lnqBill.InStoreRoom = billInfo.InStoreRoom; dataContxt.S_CannibalizeBill.InsertOnSubmit(lnqBill); dataContxt.SubmitChanges(); var varData = from a in dataContxt.S_CannibalizeBill where a.DJH == billInfo.DJH select a; if (varData.Count() == 1) { intDJID = varData.Single().ID; } else { throw new Exception("数据为空或者不唯一"); } } else //更新 { var varData = from a in dataContxt.S_CannibalizeBill where a.ID == billInfo.ID select a; if (varData.Count() != 0) { S_CannibalizeBill lnqBill = varData.Single(); lnqBill.LRRY = billInfo.LRRY; lnqBill.LRRQ = billInfo.LRRQ; lnqBill.Price = billInfo.Price; lnqBill.DJZT = "已保存"; lnqBill.SHRQ = null; lnqBill.SHRY = null; lnqBill.CWRQ = null; lnqBill.CWRY = null; lnqBill.KFRQ = null; lnqBill.KFRY = null; intDJID = billInfo.ID; } } List <S_CannibalizeList> lisList = new List <S_CannibalizeList>(); for (int i = 0; i < billList.Rows.Count; i++) { S_CannibalizeList lnqList = new S_CannibalizeList(); lnqList.GoodsID = Convert.ToInt32(billList.Rows[i]["GoodsID"].ToString()); lnqList.BatchNo = billList.Rows[i]["BatchNo"].ToString(); lnqList.UnitPrice = Convert.ToDecimal(billList.Rows[i]["UnitPrice"]); lnqList.Count = Convert.ToDecimal(billList.Rows[i]["Count"]); lnqList.Price = Convert.ToDecimal(billList.Rows[i]["Price"]); lnqList.Remark = billList.Rows[i]["Remark"].ToString(); lnqList.Provider = billList.Rows[i]["Provider"].ToString(); if (billList.Rows[i]["RepairStatus"] != null && billList.Rows[i]["RepairStatus"].ToString() != "") { lnqList.RepairStatus = billList.Rows[i]["RepairStatus"].ToString() == "1" ? true : false; } lisList.Add(lnqList); } SaveBillList(dataContxt, lisList, intDJID, billInfo.DJH); dataContxt.SubmitChanges(); dataContxt.Transaction.Commit(); } catch (Exception ex) { dataContxt.Transaction.Rollback(); throw new Exception(ex.Message); } }