bool IsInput(Business_WarehouseInPut_InPutDetail detail) { string error = ""; if (detail.GoodsCount == 0) { return(true); } DepotManagementDataContext ctx = CommentParameter.DepotDataContext; Business_WarehouseInPut_RequisitionDetail requistionDetail = new Business_WarehouseInPut_RequisitionDetail(); var varData = from a in ctx.Business_WarehouseInPut_RequisitionDetail where a.BillNo == detail.BillRelate && a.GoodsID == detail.GoodsID && a.BatchNo == detail.BatchNo && a.Provider == detail.Provider select a; if (varData.Count() == 0) { varData = from a in ctx.Business_WarehouseInPut_RequisitionDetail where a.BillNo == detail.BillRelate && a.GoodsID == detail.GoodsID && a.Provider == detail.Provider select a; if (varData.Count() == 0) { return(false); } } requistionDetail = varData.First(); if (requistionDetail.IsCheck) { //string strSql = " IF not (object_id('tempdb.dbo.#tempTable1') is null) " + // " drop table tempdb.dbo.#tempTable1; " + // " Create Table #tempTable1 (BillNo varchar(50)); " + // " exec dbo.Business_GetReferenceBillNo_Backwards '判定报告','"+ requistionDetail.BillNo +"', "+ // requistionDetail.GoodsID +", '"+ requistionDetail.BatchNo +"', '"+ requistionDetail.Provider +"'" + // " select * from tempdb.dbo.#tempTable1"; Hashtable hsTable = new Hashtable(); hsTable.Add("@BillType", CE_BillTypeEnum.检验报告.ToString()); hsTable.Add("@BillNo", requistionDetail.BillNo); hsTable.Add("@GoodsID", requistionDetail.GoodsID); hsTable.Add("@BatchNo", requistionDetail.BatchNo); hsTable.Add("@Provider", requistionDetail.Provider); DataTable tempTable = GlobalObject.DatabaseServer.QueryInfoPro("Business_GetReferenceBillNo_Backwards_Incipit", hsTable, out error); if (tempTable == null || tempTable.Rows.Count == 0) { hsTable = new Hashtable(); hsTable.Add("@BillType", CE_BillTypeEnum.判定报告.ToString()); hsTable.Add("@BillNo", requistionDetail.BillNo); hsTable.Add("@GoodsID", requistionDetail.GoodsID); hsTable.Add("@BatchNo", requistionDetail.BatchNo); hsTable.Add("@Provider", requistionDetail.Provider); tempTable = GlobalObject.DatabaseServer.QueryInfoPro("Business_GetReferenceBillNo_Backwards_Incipit", hsTable, out error); if (tempTable == null || tempTable.Rows.Count == 0) { return(false); } } } return(true); }
/// <summary> /// 保存业务信息 /// </summary> /// <param name="billInfo">业务总单信息</param> /// <param name="detailInfo">业务明细信息</param> public void SaveInfo(Business_WarehouseInPut_Requisition billInfo, List <View_Business_WarehouseInPut_RequisitionDetail> detailInfo) { DepotManagementDataContext ctx = CommentParameter.DepotDataContext; ctx.Connection.Open(); ctx.Transaction = ctx.Connection.BeginTransaction(); try { var varData = from a in ctx.Business_WarehouseInPut_Requisition where a.BillNo == billInfo.BillNo select a; if (varData.Count() == 1) { Business_WarehouseInPut_Requisition lnqBill = varData.Single(); lnqBill.ApplyingDepartment = billInfo.ApplyingDepartment; lnqBill.BillType = billInfo.BillType; lnqBill.BillTypeDetail = billInfo.BillTypeDetail; lnqBill.IsConfirmArrival = billInfo.IsConfirmArrival; lnqBill.Remark = billInfo.Remark; } else if (varData.Count() == 0) { ctx.Business_WarehouseInPut_Requisition.InsertOnSubmit(billInfo); } else { throw new Exception("单据数据不唯一"); } var varDetail = from a in ctx.Business_WarehouseInPut_RequisitionDetail where a.BillNo == billInfo.BillNo select a; ctx.Business_WarehouseInPut_RequisitionDetail.DeleteAllOnSubmit(varDetail); ctx.SubmitChanges(); foreach (View_Business_WarehouseInPut_RequisitionDetail item in detailInfo) { Business_WarehouseInPut_RequisitionDetail lnqDetail = new Business_WarehouseInPut_RequisitionDetail(); lnqDetail.BatchNo = item.批次号; lnqDetail.BillNo = billInfo.BillNo; lnqDetail.BillRelate = item.关联业务; lnqDetail.GoodsCount = item.数量; lnqDetail.GoodsID = item.物品ID; lnqDetail.IsCheck = item.检验报告; lnqDetail.Provider = item.供应商; lnqDetail.Remark = item.备注; ctx.Business_WarehouseInPut_RequisitionDetail.InsertOnSubmit(lnqDetail); } ctx.SubmitChanges(); ctx.Transaction.Commit(); } catch (Exception ex) { ctx.Transaction.Rollback(); throw new Exception(ex.Message); } }