//***************************************************************************** //do it later do it later do it later //***************************************************************************** /// <summary> /// 保存检测单数据 /// </summary> /// <param name="checkBillModel">检测单实例</param> /// <param name="detailModelList">检测单明细实例列表</param> /// <param name="isReNew">是否进行过初始化,如果进行过,则保存时,先删除旧数据。0否1是</param> /// <returns></returns> public string SavelData(BCheckBillData checkBillModel, List<BCheckDetailData> detailModelList,string isReNew) { SqlTransaction trans = null; BCheckDetailBB checkDetailBB = new BCheckDetailBB(this.connection); SCommBB commBB = new SCommBB(this.connection); try { if (this.transaction == null) { trans = this.connection.BeginTransaction("TranSave"); checkBillBB.Transaction = trans; checkDetailBB.Transaction = trans; commBB.Transaction = trans; } else { checkBillBB.Transaction = this.transaction; checkDetailBB.Transaction = this.transaction; commBB.Transaction = this.transaction; } string strBillNo = ""; if (isReNew == "1")//进行过初始化,则先删掉旧数据 { string strSQL = " delete from BCheckDetail where checkBillId='" + checkBillModel.id + "'"; commBB.Query(strSQL); } strBillNo = checkBillModel.checkBillNo; if (strBillNo == "")//新增 { checkBillModel.checkBillNo = checkBillBB.GetCurrentInBillNoByPreBillNo(); strBillNo = checkBillModel.checkBillNo; //保存检测单主数据 int mainId = checkBillBB.AddRecord(checkBillModel); checkBillModel.id = mainId; //保存检测单明细数据 foreach (BCheckDetailData model in detailModelList) { if (model.openBoxNum != 0 && model.checkNum != 0) { model.checkBillId = mainId; checkDetailBB.AddRecord(model); } } } else//修改 { //修改检测单主数据 checkBillBB.ModifyRecord(checkBillModel); //明细 foreach (BCheckDetailData model in detailModelList) { if (model.id > 0 && model.checkBillId > 0)//修改 且未删除的明细 { checkDetailBB.ModifyRecord(model); } else if (model.id > 0 && model.checkBillId == -1)//修改时,被删了。需从数据库删除 { checkDetailBB.DeleteRecord(model.id); } else if (model.id == 0)//本次新增的检测明细项目 { if (model.openBoxNum != 0 && model.checkNum != 0) { model.checkBillId = checkBillModel.id; checkDetailBB.AddRecord(model); } } } } if (transaction == null) trans.Commit(); return strBillNo; } catch (Exception ex) { if (transaction == null) trans.Rollback("TranSave"); throw new Exception(ex.Message); } finally { checkDetailBB.Dispose(); commBB.Dispose(); } }