/// <summary> /// 保存 /// </summary> /// <param name="paramHead">单头UIModel</param> /// <param name="paramDetailList">明细UIModel列表</param> /// <returns></returns> public bool SaveDetailDS(PurchaseForecastOrderQueryUIModel paramHead, SkyCarBindingList <PurchaseForecastOrderQueryDetailUIModel, MDLPIS_PurchaseForecastOrderDetail> paramDetailList) { var funcName = "SaveDetailDS"; LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null); //服务端检查 if (!ServerCheck(paramHead, paramDetailList)) { LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #region 事务,多数据表操作 try { DBManager.BeginTransaction(DBCONFIG.Coeus); #region 保存单头 //将UIModel转为TBModel var argsHead = paramHead.ToTBModelForSaveAndDelete <MDLPIS_PurchaseForecastOrder>(); //判断主键是否被赋值 if (string.IsNullOrEmpty(paramHead.PFO_ID)) { argsHead.PFO_No = BLLCom.GetCoeusDocumentNo(DocumentTypeEnums.Code.PFO); } //执行保存 if (!_bll.Save(argsHead)) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0000, new object[] { "保存[XX]信息失败!" }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 保存明细 //执行保存 if (!_bll.UnitySave(paramDetailList)) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0000, new object[] { "保存[XX]信息失败!" }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion //将最新数据回写给DetailDS CopyModel(argsHead, paramHead); DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0000, new object[] { "保存失败,失败原因:" + ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ex.Message, "", null); return(false); } #endregion return(true); }
/// <summary> /// 服务端检查 /// </summary> /// <param name="paramModel">UIModel</param> /// <returns></returns> private bool ServerCheck(PurchaseForecastOrderQueryUIModel paramModel, SkyCarBindingList <PurchaseForecastOrderQueryDetailUIModel, MDLPIS_PurchaseForecastOrderDetail> paramDetailList) { return(true); }