/// <summary> /// 保存单据明细信息 /// </summary> /// <param name="dataContxt">LINQ数据上下文</param> /// <param name="lstDetail">添加的表</param> /// <param name="djID">添加的行</param> /// <param name="billNo">单据号</param> public void SaveBillList(DepotManagementDataContext dataContxt, List <S_CannibalizeList> lstDetail, int djID, string billNo) { IProductCodeServer serverProductCode = ServerModuleFactory.GetServerModule <IProductCodeServer>(); try { List <S_CannibalizeList> lisList = new List <S_CannibalizeList>(); if (lstDetail.Count == 0) { return; } DeleteList(dataContxt, djID); foreach (S_CannibalizeList item in lstDetail) { S_CannibalizeList lnqList = new S_CannibalizeList(); lnqList.DJ_ID = djID; lnqList.GoodsID = item.GoodsID; lnqList.BatchNo = item.BatchNo; lnqList.UnitPrice = item.UnitPrice; lnqList.Count = item.Count; lnqList.Price = item.Price; lnqList.Remark = item.Remark; lnqList.Provider = item.Provider; if (item.RepairStatus != null && item.RepairStatus.ToString() != "") { lnqList.RepairStatus = item.RepairStatus; } lisList.Add(lnqList); } dataContxt.S_CannibalizeList.InsertAllOnSubmit(lisList); } catch (Exception ex) { throw new Exception(ex.Message); } }
/// <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> /// 赋值库存信息 /// </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> /// 保存单据数据(如果单据信息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); } }