/// <summary> /// 提交检测单 /// </summary> /// <param name="checkBillModel">检测单实例</param> /// <returns></returns> public void CommitData(BCheckBillData checkBillModel) { SqlTransaction trans = null; LCheckDetailBB lCheckDetailBB = new LCheckDetailBB(); BCheckDetailBB checkDetailBB = new BCheckDetailBB(); SCommBB commBB = new SCommBB(this.connection); try { if (this.transaction == null) { trans = this.connection.BeginTransaction("TranCommit"); checkBillBB.Transaction = trans; commBB.Transaction = trans; } else { checkBillBB.Transaction = this.transaction; commBB.Transaction = this.transaction; } DataSet dsCheckDetail = new DataSet(); DataSet dsMaterialCheckDetail = new DataSet(); DataSet dsArriveDetail = new DataSet(); string strSql = ""; DataRow[] myDataRowArray = null; //获取物料对应的检测项 dsMaterialCheckDetail = lCheckDetailBB.GetList("materialNo='" + checkBillModel.materialNo + "'"); //获取检测单对应到货单信息 strSql = "select id,num from BArriveDetail where arriveBillNo='" + checkBillModel.arriveBillNo + "' and financeBillNo='" + checkBillModel.financeBillNo + "' and materialNo='" + checkBillModel.materialNo + "'"; dsArriveDetail = commBB.Query(strSql); //提交检测单 this.checkBillBB.ModifyRecord(checkBillModel); //获取检测单下的所有检测明细 dsCheckDetail = checkDetailBB.GetVList("checkBillId=" + checkBillModel.id); foreach (DataRow row in dsCheckDetail.Tables[0].Rows) { if (Convert.ToBoolean(row["isAddupCheck"]))//检测明细是累计检测项 { strSql = "update dbo.LCheckDetail set arrivedAmount=0 where id=" + row["checkDetailId"].ToString(); commBB.Query(strSql); continue; } //当前物料存在累计检测项,当前没有检测,累计到货数量 myDataRowArray = dsMaterialCheckDetail.Tables[0].Select("id=" + row["checkDetailId"].ToString() + " and isAddupCheck=1"); if (myDataRowArray.Length > 0) { strSql = "update dbo.LCheckDetail set arrivedAmount=isnull(arrivedAmount,0)+" + dsArriveDetail.Tables[0].Rows[0]["num"].ToString() + " where id=" + row["checkDetailId"].ToString(); commBB.Query(strSql); } } if (transaction == null) trans.Commit(); } catch (Exception ex) { if (transaction == null) trans.Rollback("TranCommit"); throw new Exception(ex.Message); } finally { lCheckDetailBB.Dispose(); checkDetailBB.Dispose(); commBB.Dispose(); } }