/// <summary> /// 初始化【详情】Tab内控件 /// </summary> private void InitializeDetailTabControls() { #region 初始化下拉框 //用户名 _userList = CacheDAX.Get(CacheDAX.ConfigDataKey.SystemUser) as List <MDLSM_User>; mcbUserName.DisplayMember = SystemTableColumnEnums.SM_User.Code.User_Name; mcbUserName.ValueMember = SystemTableColumnEnums.SM_User.Code.User_ID; mcbUserName.DataSource = _userList; #endregion //初始化用户菜单明细List _userMenuAuthoritiyList = new SkyCarBindingList <UserMenuAuthorityUIModel, MDLSM_UserMenuAuthority>(); //开始监控用户菜单明细List变化 _userMenuAuthoritiyList.StartMonitChanges(); //初始化用户菜单明细动作List _userActionAuthoritiyList = new SkyCarBindingList <UserActionAuthorityUIModel, MDLSM_UserActionAuthority>(); //开始监控用户菜单明细动作List变化 _userActionAuthoritiyList.StartMonitChanges(); //初始化用户作业授权List _userJobAuthoritiyList = new SkyCarBindingList <UserJobAuthorityUIModel, MDLSM_UserJobAuthority>(); //开始监控用户作业授权List变化 _userJobAuthoritiyList.StartMonitChanges(); //初始化树形控件 InitializeMenuActionTreeView(); InitializeUserJobTreeView(); }
/// <summary> /// 初始化【列表】Tab内控件 /// </summary> private void InitializeListTabControls() { #region 查询条件初始化 //第三方编码 txtWhere_SI_ThirdNo.Clear(); //原厂编码 txtWhere_SI_OEMNo.Clear(); //配件条码 txtWhere_SI_Barcode.Clear(); //配件名称 mcbWhere_SI_Name.Clear(); #endregion #region 初始化下拉框 //配件名称 _autoPartsNameList = CacheDAX.Get(CacheDAX.ConfigDataKey.AutoPartsName) as List <MDLBS_AutoPartsName>; mcbWhere_SI_Name.DisplayMember = SystemTableColumnEnums.BS_AutoPartsName.Code.APN_Name; mcbWhere_SI_Name.ValueMember = SystemTableColumnEnums.BS_AutoPartsName.Code.APN_ID; mcbWhere_SI_Name.DataSource = _autoPartsNameList; #endregion #region grid初始化 _detailGridDS = new SkyCarBindingList <AutoPartsShareInventoryManagerUIModel, MDLPIS_ShareInventory>(); gdGrid.DataSource = _detailGridDS; gdGrid.DataBind(); _detailGridDS.StartMonitChanges(); #endregion }
/// <summary> /// 获取最新的用户作业授权进行绑定 /// </summary> private void SetUserJobInfo() { #region 获取最新的用户作业授权进行绑定 if (string.IsNullOrEmpty(mcbUserName.SelectedValue)) { return; } _isCanAfterCheckOfJob = false; //用户ID string userId = mcbUserName.SelectedValue; //用户拥有权限的作业List List <UserJobAuthorityUIModel> resultUserJobList = new List <UserJobAuthorityUIModel>(); _bll.QueryForList(SQLID.SM_UserMenuManager_SQL05, new MDLSM_UserJobAuthority() { WHERE_UJA_User_ID = userId, }, resultUserJobList); foreach (TreeNode loopJobNode in tvUserJob.Nodes) { if (loopJobNode == null) { continue; } if (resultUserJobList.Any(p => p.BJ_ID == loopJobNode.Tag.ToString())) { loopJobNode.Checked = true; } else { loopJobNode.Checked = false; } } _isCanAfterCheckOfJob = true; //用户作业授权数据源 _userJobAuthoritiyList = new SkyCarBindingList <UserJobAuthorityUIModel, MDLSM_UserJobAuthority>(); _bll.CopyModelList(resultUserJobList, _userJobAuthoritiyList); //开始监控用户作业授权List变化 _userJobAuthoritiyList.StartMonitChanges(); #endregion }
/// <summary> /// 获取最新的用户组织进行绑定 /// </summary> private void SetUserOrgInfo() { #region 获取最新的用户组织进行绑定 if (string.IsNullOrEmpty(txtUser_ID.Text.Trim())) { return; } _isCanAfterCheck = false; //用户ID string userId = txtUser_ID.Text.Trim(); //获取用户组织信息 List <MDLSM_UserOrg> resultUserOrgList = new List <MDLSM_UserOrg>(); _bll.QueryForList <MDLSM_UserOrg, MDLSM_UserOrg>(new MDLSM_UserOrg() { WHERE_UO_IsValid = true, WHERE_UO_User_ID = userId }, resultUserOrgList); if (resultUserOrgList.Count > 0) { foreach (TreeNode loopUserOrgNode in tvOrg.Nodes) { if (loopUserOrgNode == null) { continue; } bool isSaveUserOrg = resultUserOrgList.Any(p => p.UO_Org_ID == loopUserOrgNode.Tag?.ToString() && p.UO_User_ID == txtUser_ID.Text.Trim()); loopUserOrgNode.Checked = isSaveUserOrg; } } _isCanAfterCheck = true; //用户组织数据源 _userOrgList = new SkyCarBindingList <UserOrgUIModel, MDLSM_UserOrg>(); _bll.CopyModelList(resultUserOrgList, _userOrgList); //开始监控用户组织List变化 _userOrgList.StartMonitChanges(); #endregion }
/// <summary> /// 初始化【详情】Tab内控件 /// </summary> private void InitializeDetailTabControls() { //单号 txtPFO_No.Clear(); //供应商名称 txtPFO_SUPP_Name.Clear(); //来源类型 cbPFO_SourceTypeName.Items.Clear(); //订单总额 txtPFO_TotalAmount.Clear(); //单据状态 cbPFO_StatusName.Items.Clear(); //有效 ckPFO_IsValid.Checked = true; ckPFO_IsValid.CheckState = System.Windows.Forms.CheckState.Checked; //创建人 txtPFO_CreatedBy.Text = LoginInfoDAX.UserName; //创建时间 dtPFO_CreatedTime.Value = DateTime.Now; //修改人 txtPFO_UpdatedBy.Text = LoginInfoDAX.UserName; //修改时间 dtPFO_UpdatedTime.Value = DateTime.Now; //采购预测订单ID txtPFO_ID.Clear(); //组织ID txtPFO_Org_ID.Clear(); txtPFO_Org_ID.Text = LoginInfoDAX.OrgID; //供应商ID txtPFO_SUPP_ID.Clear(); //来源类型编码 txtPFO_SourceTypeCode.Clear(); //单据状态编码 txtPFO_StatusCode.Clear(); //版本号 txtPFO_VersionNo.Clear(); //给 单号 设置焦点 lblPFO_No.Focus(); //清空[明细]Grid _detailGridDS = new SkyCarBindingList <PurchaseForecastOrderQueryDetailUIModel, MDLPIS_PurchaseForecastOrderDetail>(); gdDetail.DataSource = _detailGridDS; gdDetail.DataBind(); }
/// <summary> /// 初始化【详情】Tab内控件 /// </summary> private void InitializeDetailTabControls() { //仓库名称 txtWH_Name.Clear(); //仓库编号 txtWH_No.Clear(); //组织ID txtOrgName.Clear(); txtOrgName.Text = LoginInfoDAX.OrgShortName; //仓库地址 txtWH_Address.Clear(); //仓库描述 txtWH_Description.Clear(); //有效 ckWH_IsValid.Checked = true; ckWH_IsValid.CheckState = CheckState.Checked; //创建人 txtWH_CreatedBy.Text = LoginInfoDAX.UserName; //创建时间 dtWH_CreatedTime.Value = BLLCom.GetCurStdDatetime(); //修改人 txtWH_UpdatedBy.Text = LoginInfoDAX.UserName; //修改时间 dtWH_UpdatedTime.Value = BLLCom.GetCurStdDatetime(); //仓库ID txtWH_ID.Clear(); //版本号 txtWH_VersionNo.Clear(); //给 仓库名称 设置焦点 lblWH_Name.Focus(); #region 仓位管理 _warehouseBinList = new SkyCarBindingList<WarehouseBinManagerUIModel, MDLPIS_WarehouseBin>(); gdGridWarehouseBin.DataSource = _warehouseBinList; gdGridWarehouseBin.DataBind(); _warehouseBinList.StartMonitChanges(); #endregion }
/// <summary> /// 获取最新的用户菜单明细授权和用户菜单明细动作授权进行绑定 /// </summary> private void SetUserMenuAndActionInfo() { #region 获取最新的用户菜单明细授权和用户菜单明细动作授权进行绑定 if (string.IsNullOrEmpty(mcbUserName.SelectedValue)) { return; } _isCanAfterCheckOfMenu = false; //用户ID string userId = mcbUserName.SelectedValue; //用户拥有权限的菜单List List <MDLSM_Menu> resultUserMenuList = new List <MDLSM_Menu>(); //用户的菜单授权List List <UserMenuAuthorityUIModel> resultUserMenuAuthoritiyList = new List <UserMenuAuthorityUIModel>(); //用户的菜单动作授权List List <UserActionAuthorityUIModel> resultUserActionAuthoritiyList = new List <UserActionAuthorityUIModel>(); //查询用户在当前组织下所有授权的菜单 _bll.QueryForList(SQLID.SM_UserMenuManager_SQL04, new MDLSM_UserMenuAuthority() { WHERE_UMA_User_ID = userId, WHERE_UMA_Org_ID = LoginInfoDAX.OrgID }, resultUserMenuList); //查询用户在当前组织下所有授权的菜单明细 _bll.QueryForList(SQLID.SM_UserMenuManager_SQL01, new MDLSM_UserMenuAuthority() { WHERE_UMA_User_ID = userId, WHERE_UMA_Org_ID = LoginInfoDAX.OrgID }, resultUserMenuAuthoritiyList); //查询用户在当前组织下所有授权的菜单动作 _bll.QueryForList(SQLID.SM_UserMenuManager_SQL03, new MDLSM_UserActionAuthority() { WHERE_UAA_User_ID = userId, WHERE_UAA_Org_ID = LoginInfoDAX.OrgID }, resultUserActionAuthoritiyList); foreach (TreeNode loopMenuNode in tvUserMenuAction.Nodes) { if (loopMenuNode == null) { continue; } //勾选的菜单明细节点的数量 int menuDetailNodeCount = 0; foreach (TreeNode loopMenuDetailNode in loopMenuNode.Nodes) { if (loopMenuDetailNode == null || loopMenuDetailNode.Tag == null) { continue; } if (resultUserMenuAuthoritiyList.Any(p => p.UMA_MenuD_ID == loopMenuDetailNode.Tag.ToString())) { loopMenuDetailNode.Checked = true; menuDetailNodeCount++; //勾选的菜单动作的节点数 int menuDetailActionCount = 0; foreach (TreeNode loopActionNode in loopMenuDetailNode.Nodes) { if (loopActionNode == null || loopActionNode.Tag == null) { continue; } if (resultUserActionAuthoritiyList.Any(p => p.UAA_MenuD_ID == loopMenuDetailNode.Tag.ToString() && p.UAA_Action_ID == loopActionNode.Tag.ToString())) { loopActionNode.Checked = true; menuDetailActionCount++; } else { loopActionNode.Checked = false; } } //如果菜单明细下的菜单动作节点都勾选,则该菜单明细勾选 if (menuDetailActionCount == loopMenuDetailNode.Nodes.Count) { loopMenuDetailNode.Checked = true; } else { loopMenuDetailNode.Checked = false; } } else { loopMenuDetailNode.Checked = false; foreach (TreeNode loopActionNode in loopMenuDetailNode.Nodes) { if (resultUserActionAuthoritiyList.Any(p => p.UAA_MenuD_ID == loopMenuDetailNode.Tag.ToString() && p.UAA_Action_ID == loopActionNode.Tag.ToString())) { loopActionNode.Checked = true; } else { loopActionNode.Checked = false; } } } } //如果菜单下的菜单明细节点都勾选,则该菜单勾选 if (menuDetailNodeCount == loopMenuNode.Nodes.Count) { loopMenuNode.Checked = true; } else { loopMenuNode.Checked = false; } } _isCanAfterCheckOfMenu = true; //用户菜单明细授权数据源 _userMenuAuthoritiyList = new SkyCarBindingList <UserMenuAuthorityUIModel, MDLSM_UserMenuAuthority>(); _bll.CopyModelList(resultUserMenuAuthoritiyList, _userMenuAuthoritiyList); //开始监控用户菜单明细授权List变化 _userMenuAuthoritiyList.StartMonitChanges(); //用户菜单明细动作授权数据源 _userActionAuthoritiyList = new SkyCarBindingList <UserActionAuthorityUIModel, MDLSM_UserActionAuthority>(); _bll.CopyModelList(resultUserActionAuthoritiyList, _userActionAuthoritiyList); //开始监控用户菜单明细动作List变化 _userActionAuthoritiyList.StartMonitChanges(); #endregion }
/// <summary> /// 保存用户菜单和动作授权信息 /// </summary> /// <param name="paramUserId">用户ID</param> /// <param name="paramUserMenuAuthoritiyList">用户菜单授权列表</param> /// <param name="paramUserActionAuthoritiyList">用户菜单动作授权列表</param> /// <param name="paramUserJobAuthoritiyList">用户作业授权列表</param> /// <returns></returns> public bool SaveUserMenu(string paramUserId, SkyCarBindingList <UserMenuAuthorityUIModel, MDLSM_UserMenuAuthority> paramUserMenuAuthoritiyList, SkyCarBindingList <UserActionAuthorityUIModel, MDLSM_UserActionAuthority> paramUserActionAuthoritiyList, SkyCarBindingList <UserJobAuthorityUIModel, MDLSM_UserJobAuthority> paramUserJobAuthoritiyList) { if (string.IsNullOrEmpty(paramUserId)) { //没有获取到用户ID,保存失败 ResultMsg = MsgHelp.GetMsg(MsgCode.W_0024, new object[] { SystemTableColumnEnums.SM_User.Name.User_ID, SystemActionEnum.Name.SAVE }); return(false); } #region 准备数据 #region 用户菜单授权 if (paramUserMenuAuthoritiyList != null) { //新增用户菜单授权 if (paramUserMenuAuthoritiyList.InsertList != null && paramUserMenuAuthoritiyList.InsertList.Count > 0) { foreach (var loopUserMenuAuthoritiy in paramUserMenuAuthoritiyList.InsertList) { loopUserMenuAuthoritiy.UMA_User_ID = paramUserId; loopUserMenuAuthoritiy.UMA_CreatedBy = LoginInfoDAX.UserName; loopUserMenuAuthoritiy.UMA_CreatedTime = BLLCom.GetCurStdDatetime(); loopUserMenuAuthoritiy.UMA_UpdatedBy = LoginInfoDAX.UserName; loopUserMenuAuthoritiy.UMA_UpdatedTime = BLLCom.GetCurStdDatetime(); } } //删除用户菜单授权 if (paramUserMenuAuthoritiyList.DeleteList != null && paramUserMenuAuthoritiyList.DeleteList.Count > 0) { foreach (var loopUserMenuAuthoritiy in paramUserMenuAuthoritiyList.DeleteList) { loopUserMenuAuthoritiy.WHERE_UMA_ID = loopUserMenuAuthoritiy.UMA_ID; } } } #endregion #region 用户菜单动作授权 if (paramUserActionAuthoritiyList != null) { //新增用户菜单动作授权 if (paramUserActionAuthoritiyList.InsertList != null && paramUserActionAuthoritiyList.InsertList.Count > 0) { foreach (var loopUserActionAuthoritiy in paramUserActionAuthoritiyList.InsertList) { loopUserActionAuthoritiy.UAA_User_ID = paramUserId; loopUserActionAuthoritiy.UAA_CreatedBy = LoginInfoDAX.UserName; loopUserActionAuthoritiy.UAA_CreatedTime = BLLCom.GetCurStdDatetime(); loopUserActionAuthoritiy.UAA_UpdatedBy = LoginInfoDAX.UserName; loopUserActionAuthoritiy.UAA_UpdatedTime = BLLCom.GetCurStdDatetime(); } } //删除用户菜单动作授权 if (paramUserActionAuthoritiyList.DeleteList != null && paramUserActionAuthoritiyList.DeleteList.Count > 0) { foreach (var loopUserActionAuthoritiy in paramUserActionAuthoritiyList.DeleteList) { loopUserActionAuthoritiy.WHERE_UAA_ID = loopUserActionAuthoritiy.UAA_ID; } } } #endregion #region 用户作业授权 //新增用户菜单动作授权 if (paramUserJobAuthoritiyList.InsertList != null) { foreach (var loopUserJobAuthoritiy in paramUserJobAuthoritiyList.InsertList) { loopUserJobAuthoritiy.UJA_User_ID = paramUserId; } } //删除用户菜单动作授权 if (paramUserJobAuthoritiyList.DeleteList != null) { foreach (var loopUserJobAuthoritiy in paramUserJobAuthoritiyList.DeleteList) { loopUserJobAuthoritiy.WHERE_UJA_ID = loopUserJobAuthoritiy.UJA_ID; } } #endregion #endregion #region 带事务的保存 try { DBManager.BeginTransaction(DBCONFIG.Coeus); if (paramUserMenuAuthoritiyList != null) { #region 新增[用户菜单授权] if (paramUserMenuAuthoritiyList.InsertList != null && paramUserMenuAuthoritiyList.InsertList.Count > 0) { bool saveUserMenuAuthority = _bll.InsertByList <UserMenuAuthorityUIModel, MDLSM_UserMenuAuthority>( paramUserMenuAuthoritiyList.InsertList); if (!saveUserMenuAuthority) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.NEW + SystemTableEnums.Name.SM_UserMenuAuthority }); return(false); } } #endregion #region 除[用户菜单授权] if (paramUserMenuAuthoritiyList.DeleteList != null && paramUserMenuAuthoritiyList.DeleteList.Count > 0) { bool saveUserMenuAuthority = _bll.DeleteByList <UserMenuAuthorityUIModel, MDLSM_UserMenuAuthority>( paramUserMenuAuthoritiyList.DeleteList); if (!saveUserMenuAuthority) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.DELETE + SystemTableEnums.Name.SM_UserMenuAuthority }); return(false); } } #endregion } if (paramUserActionAuthoritiyList != null) { #region 新增[用户菜单动作授权] if (paramUserActionAuthoritiyList.InsertList != null && paramUserActionAuthoritiyList.InsertList.Count > 0) { bool saveUserActionAuthority = _bll.InsertByList <UserActionAuthorityUIModel, MDLSM_UserActionAuthority>(paramUserActionAuthoritiyList.InsertList); if (!saveUserActionAuthority) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.NEW + SystemTableEnums.Name.SM_UserActionAuthority }); return(false); } } #endregion #region 除[用户菜单动作授权] if (paramUserActionAuthoritiyList.DeleteList != null && paramUserActionAuthoritiyList.DeleteList.Count > 0) { bool saveUserActionAuthority = _bll.DeleteByList <UserActionAuthorityUIModel, MDLSM_UserActionAuthority>(paramUserActionAuthoritiyList.DeleteList); if (!saveUserActionAuthority) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.DELETE + SystemTableEnums.Name.SM_UserActionAuthority }); return(false); } } #endregion #region 保存[用户作业授权] bool saveUserJobAuthorityResult = _bll.UnitySave(paramUserJobAuthoritiyList); if (!saveUserJobAuthorityResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.SM_UserJobAuthority }); return(false); } #endregion } DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, MethodBase.GetCurrentMethod().ToString(), ex.Message, "", null); return(false); } #endregion return(true); }
/// <summary> /// 保存 /// </summary> /// <param name="paramHead">单头UIModel</param> /// <param name="paramDetailList">明细UIModel列表</param> /// <returns></returns> public bool SaveDetailDS(PurchaseReturnManagerUIModel paramHead, SkyCarBindingList <StockOutBillManagerDetailUIModel, MDLPIS_StockOutBillDetail> 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 准备数据 #region 单头 //将UIModel转为TBModel var argsHead = paramHead.ToTBModelForSaveAndDelete <MDLPIS_StockOutBill>(); //判断主键是否被赋值 if (string.IsNullOrEmpty(paramHead.SOB_ID)) { argsHead.SOB_ID = Guid.NewGuid().ToString(); //单号 argsHead.SOB_No = BLLCom.GetCoeusDocumentNo(DocumentTypeEnums.Code.SOB); argsHead.SOB_CreatedBy = LoginInfoDAX.UserName; argsHead.SOB_CreatedTime = BLLCom.GetCurStdDatetime(); } argsHead.SOB_UpdatedBy = LoginInfoDAX.UserName; argsHead.SOB_UpdatedTime = BLLCom.GetCurStdDatetime(); #endregion #region 明细 //添加的明细 if (paramDetailList != null && paramDetailList.InsertList != null && paramDetailList.InsertList.Count > 0) { foreach (var loopDetailItem in paramDetailList.InsertList) { loopDetailItem.SOBD_SOB_ID = argsHead.SOB_ID ?? argsHead.WHERE_SOB_ID; loopDetailItem.SOBD_SOB_No = argsHead.SOB_No; loopDetailItem.SOBD_CreatedBy = LoginInfoDAX.UserName; loopDetailItem.SOBD_CreatedTime = BLLCom.GetCurStdDatetime(); loopDetailItem.SOBD_UpdatedBy = LoginInfoDAX.UserName; loopDetailItem.SOBD_UpdatedTime = BLLCom.GetCurStdDatetime(); } } #endregion #endregion #region 带事务的保存 try { DBManager.BeginTransaction(DBCONFIG.Coeus); #region 保存单头 //执行保存 var saveStockOutBillResult = _bll.Save(argsHead, argsHead.SOB_ID); if (!saveStockOutBillResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.PIS_StockOutBill }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 保存明细 //执行保存 var saveStockOutDetailResult = _bll.UnitySave(paramDetailList); if (!saveStockOutDetailResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.PIS_StockOutBillDetail }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ex.Message, "", null); return(false); } #endregion //将最新数据回写给DetailDS CopyModel(argsHead, paramHead); //更新明细版本号 if (paramDetailList != null) { if (paramDetailList.InsertList != null) { foreach (var loopInsertDetail in paramDetailList.InsertList) { //新增时版本号为1 loopInsertDetail.SOBD_VersionNo = 1; } } foreach (var loopUpdateDetail in paramDetailList.UpdateList) { //更新时版本号加1 loopUpdateDetail.SOBD_VersionNo = loopUpdateDetail.SOBD_VersionNo + 1; } } return(true); }
/// <summary> /// 服务端检查 /// </summary> /// <param name="paramModelList">UIModel</param> /// <returns></returns> private bool ServerCheck(SkyCarBindingList <AutoPartsShareInventoryManagerUIModel, MDLPIS_ShareInventory> paramModelList) { return(true); }
/// <summary> /// 计算入库总金额 /// </summary> /// <param name="paramStockOutBill">入库单</param> /// <param name="paramStockOutBillDetailList">入库单明细列表</param> /// <returns></returns> private decimal CalculateStockOutAmount(MDLPIS_StockOutBill paramStockOutBill, SkyCarBindingList <StockOutBillManagerDetailUIModel, MDLPIS_StockOutBillDetail> paramStockOutBillDetailList) { if (paramStockOutBill == null || string.IsNullOrEmpty(paramStockOutBill.WHERE_SOB_ID)) { return(0); } if (paramStockOutBillDetailList == null || paramStockOutBillDetailList.Count == 0) { return(0); } #region 计算入库总金额 decimal totalStockOutAmount = 0; foreach (var loopStockOutBillDetail in paramStockOutBillDetailList) { if (string.IsNullOrEmpty(loopStockOutBillDetail.SOBD_Barcode) || string.IsNullOrEmpty(loopStockOutBillDetail.SOBD_BatchNo)) { continue; } totalStockOutAmount += (loopStockOutBillDetail.SOBD_Amount ?? 0); } #endregion return(totalStockOutAmount); }
/// <summary> /// 反审核 /// </summary> /// <param name="paramHead">UIModel</param> /// <param name="paramDetailList">出库单明细列表</param> /// <returns></returns> public bool UnApproveDetailDS(StockOutBillManagerUIModel paramHead, SkyCarBindingList <StockOutBillManagerDetailUIModel, MDLPIS_StockOutBillDetail> paramDetailList) { var funcName = "UnApproveDetailDS"; LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null); #region 验证 if (paramHead == null || string.IsNullOrEmpty(paramHead.SOB_ID) || string.IsNullOrEmpty(paramHead.SOB_No)) { //没有获取到出库单,反审核失败 ResultMsg = MsgHelp.GetMsg(MsgCode.W_0024, new object[] { SystemTableEnums.Name.PIS_StockOutBill, SystemActionEnum.Name.UNAPPROVE }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 准备数据 #region 变量定义 //待更新的[出库单] var updateStockOutBill = paramHead.ToTBModelForSaveAndDelete <MDLPIS_StockOutBill>(); //待删除的[应收单] MDLFM_AccountReceivableBill deleteAccountReceivableBill = new MDLFM_AccountReceivableBill(); //待删除的[应收单明细]列表 List <MDLFM_AccountReceivableBillDetail> deleteAccountReceivableBillDetailList = new List <MDLFM_AccountReceivableBillDetail>(); //待新增的[库存异动日志]列表 List <MDLPIS_InventoryTransLog> newInventoryTransLogList = new List <MDLPIS_InventoryTransLog>(); //待更新的[库存]列表 List <MDLPIS_Inventory> updateInventoryList = new List <MDLPIS_Inventory>(); #endregion #region 更新[出库单] //将出库单[审核状态]更新为[待审核],[单据状态]更新为[已生成] updateStockOutBill.SOB_VersionNo++; updateStockOutBill.SOB_ApprovalStatusCode = ApprovalStatusEnum.Code.DSH; updateStockOutBill.SOB_ApprovalStatusName = ApprovalStatusEnum.Name.DSH; updateStockOutBill.SOB_UpdatedBy = LoginInfoDAX.UserName; updateStockOutBill.SOB_UpdatedTime = BLLCom.GetCurStdDatetime(); //updateStockOutBill.SOB_StatusCode = StockOutBillStatusEnum.Code.YSC; //updateStockOutBill.SOB_StatusName = StockOutBillStatusEnum.Name.YSC; #endregion #region 获取待删除的[应收单] _bll.QueryForObject <MDLFM_AccountReceivableBill, MDLFM_AccountReceivableBill>(new MDLFM_AccountReceivableBill { WHERE_ARB_SrcBillNo = updateStockOutBill.SOB_No, WHERE_ARB_IsValid = true }, deleteAccountReceivableBill); deleteAccountReceivableBill.WHERE_ARB_ID = deleteAccountReceivableBill.ARB_ID; #endregion #region 获取待删除的[应收单明细]列表 if (!string.IsNullOrEmpty(deleteAccountReceivableBill.ARB_ID)) { _bll.QueryForList <MDLFM_AccountReceivableBillDetail, MDLFM_AccountReceivableBillDetail>(new MDLFM_AccountReceivableBillDetail { WHERE_ARBD_ARB_ID = deleteAccountReceivableBill.ARB_ID, WHERE_ARBD_SrcBillNo = updateStockOutBill.SOB_No, WHERE_ARBD_IsValid = true }, deleteAccountReceivableBillDetailList); } foreach (var loopAccountReceivableBillDetail in deleteAccountReceivableBillDetailList) { if (string.IsNullOrEmpty(loopAccountReceivableBillDetail.ARBD_ID)) { continue; } loopAccountReceivableBillDetail.WHERE_ARBD_ID = loopAccountReceivableBillDetail.ARBD_ID; } #endregion #region 获取待更新的[库存]列表,生成[库存异动日志] foreach (var loopDetail in paramDetailList) { //待更新的[库存] MDLPIS_Inventory updateInventory = new MDLPIS_Inventory(); _bll.QueryForObject <MDLPIS_Inventory, MDLPIS_Inventory>(new MDLPIS_Inventory { WHERE_INV_Org_ID = updateStockOutBill.SOB_Org_ID, WHERE_INV_WH_ID = loopDetail.SOBD_WH_ID, WHERE_INV_WHB_ID = loopDetail.SOBD_WHB_ID, WHERE_INV_Barcode = loopDetail.SOBD_Barcode, WHERE_INV_BatchNo = loopDetail.SOBD_BatchNo, WHERE_INV_IsValid = true }, updateInventory); if (!string.IsNullOrEmpty(updateInventory.INV_ID) && !string.IsNullOrEmpty(updateInventory.INV_Barcode) && !string.IsNullOrEmpty(updateInventory.INV_BatchNo)) { //[反审核]时,恢复[审核]时出库的配件数量 updateInventory.INV_Qty += loopDetail.SOBD_Qty; updateInventory.INV_UpdatedBy = LoginInfoDAX.UserName; updateInventory.INV_UpdatedTime = BLLCom.GetCurStdDatetime(); updateInventory.WHERE_INV_ID = updateInventory.INV_ID; updateInventory.WHERE_INV_VersionNo = updateInventory.INV_VersionNo; } updateInventoryList.Add(updateInventory); //生成[库存异动日志] newInventoryTransLogList.Add(GenerateInventoryTransLogOfUnApprove(updateStockOutBill, loopDetail, updateInventory)); } #endregion #endregion #region 带事务的保存和删除 try { DBManager.BeginTransaction(DBCONFIG.Coeus); #region 更新[出库单] bool updateStockOutBillResult = _bll.Save(updateStockOutBill); if (!updateStockOutBillResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.PIS_StockOutBill }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 除[应收单] if (!string.IsNullOrEmpty(deleteAccountReceivableBill.ARB_ID)) { var deleteAccountReceivableBillResult = _bll.Delete <MDLFM_AccountReceivableBill>(deleteAccountReceivableBill); if (!deleteAccountReceivableBillResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.DELETE + SystemTableEnums.Name.FM_AccountReceivableBill }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 除[应收单明细] if (deleteAccountReceivableBillDetailList.Count > 0) { var deleteAccountReceivableBillDetailResult = _bll.DeleteByList <MDLFM_AccountReceivableBillDetail, MDLFM_AccountReceivableBillDetail>(deleteAccountReceivableBillDetailList); if (!deleteAccountReceivableBillDetailResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.DELETE + SystemTableEnums.Name.FM_AccountReceivableBillDetail }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 更新[库存] foreach (var loopInventory in updateInventoryList) { bool saveInventoryResult = _bll.Save(loopInventory); if (!saveInventoryResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.PIS_Inventory }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 新增[库存异动日志] if (newInventoryTransLogList.Count > 0) { bool insertInventoryTransLogResult = _bll.InsertByList <MDLPIS_InventoryTransLog, MDLPIS_InventoryTransLog>(newInventoryTransLogList); if (!insertInventoryTransLogResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.NEW + SystemTableEnums.Name.PIS_InventoryTransLog }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.UNAPPROVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ex.Message, "", null); return(false); } #endregion //将最新数据回写给DetailDS CopyModel(updateStockOutBill, paramHead); return(true); }
/// <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="paramHead">单头</param> /// <param name="paramDetailList">明细列表</param> /// <returns></returns> public bool ApproveDetailDS(SalesTemplateManagerUIModel paramHead, SkyCarBindingList <SalesTemplateDetailUIModel, MDLSD_SalesTemplateDetail> paramDetailList) { var funcName = "ApproveDetailDS"; LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null); if (paramHead == null) { //没有获取到销售模板,审核失败 ResultMsg = MsgHelp.GetMsg(MsgCode.W_0024, new object[] { SystemTableEnums.Name.SD_SalesTemplate, SystemActionEnum.Name.APPROVE }); return(false); } #region 准备数据 #region 更新[主动销售模板] //更新主动销售模板[审核状态]为[已审核] paramHead.SasT_ApprovalStatusName = ApprovalStatusEnum.Name.YSH; paramHead.SasT_ApprovalStatusCode = ApprovalStatusEnum.Code.YSH; paramHead.SasT_UpdatedBy = LoginInfoDAX.UserName; paramHead.SasT_UpdatedTime = BLLCom.GetCurStdDatetime(); //将UIModel转为TBModel var updateHead = paramHead.ToTBModelForSaveAndDelete <MDLSD_SalesTemplate>(); #endregion #endregion #region 带事务的保存 try { DBManager.BeginTransaction(DBCONFIG.Coeus); #region 保存[主动销售模板] bool updateSalesTemplate = _bll.Save(updateHead); if (!updateSalesTemplate) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.UPDATE + SystemTableEnums.Name.SD_SalesTemplate }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 保存[主动销售模板明细] var saveSalesTemplateDetailResult = _bll.UnitySave(paramDetailList); if (!saveSalesTemplateDetailResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.SD_SalesTemplateDetail }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.APPROVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion //将最新数据回写给DetailDS CopyModel(updateHead, paramHead); //更新版本号 foreach (var loopDetail in paramDetailList) { if (string.IsNullOrEmpty(loopDetail.SasTD_ID)) { loopDetail.SasTD_VersionNo = 1; } else { loopDetail.SasTD_VersionNo = loopDetail.SasTD_VersionNo + 1; } } return(true); }
/// <summary> /// 保存 /// </summary> /// <param name="paramHead">单头</param> /// <param name="paramDetailList">明细列表</param> /// <param name="paramDistributePathList">下发路径</param> /// <returns></returns> public bool SaveDetailDs(SalesTemplateManagerUIModel paramHead, SkyCarBindingList <SalesTemplateDetailUIModel, MDLSD_SalesTemplateDetail> paramDetailList, SkyCarBindingList <DistributePathUIModel, MDLSD_DistributePath> paramDistributePathList) { var funcName = "SaveDetailDS"; LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null); //服务端检查 if (!ServerCheck(paramHead)) { LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #region 准备数据 #region 定义变量 //待新增的目的组织的[销售模板]列表 List <MDLSD_SalesTemplate> insertSalesTmpListOfDistributeOrg = new List <MDLSD_SalesTemplate>(); //待新增的目的组织的[销售模板明细]列表 List <MDLSD_SalesTemplateDetail> insertSalesTmpDetailListOfDistributeOrg = new List <MDLSD_SalesTemplateDetail>(); //待删除的目的组织的[销售模板]列表 List <MDLSD_SalesTemplate> deleteSalesTmpListOfDistributeOrg = new List <MDLSD_SalesTemplate>(); //待删除的目的组织的[销售模板明细]列表 List <MDLSD_SalesTemplateDetail> deleteSalesTmpDetailListOfDistributeOrg = new List <MDLSD_SalesTemplateDetail>(); #endregion #region 保存[销售模板] //将UIModel转为TBModel var argsHead = paramHead.ToTBModelForSaveAndDelete <MDLSD_SalesTemplate>(); //判断主键是否被赋值 if (string.IsNullOrEmpty(paramHead.SasT_ID)) { argsHead.SasT_ID = Guid.NewGuid().ToString(); argsHead.SasT_CreatedBy = LoginInfoDAX.UserName; argsHead.SasT_CreatedTime = BLLCom.GetCurStdDatetime(); } argsHead.SasT_UpdatedBy = LoginInfoDAX.UserName; argsHead.SasT_UpdatedTime = BLLCom.GetCurStdDatetime(); #endregion #region 保存[销售模板明细] //添加的明细 if (paramDetailList != null && paramDetailList.InsertList != null && paramDetailList.InsertList.Count > 0) { foreach (var loopSalesOrderDetail in paramDetailList.InsertList) { //赋值销售模板ID loopSalesOrderDetail.SasTD_SasT_ID = argsHead.SasT_ID ?? argsHead.WHERE_SasT_ID; loopSalesOrderDetail.SasTD_CreatedBy = LoginInfoDAX.UserName; loopSalesOrderDetail.SasTD_CreatedTime = BLLCom.GetCurStdDatetime(); loopSalesOrderDetail.SasTD_UpdatedBy = LoginInfoDAX.UserName; loopSalesOrderDetail.SasTD_UpdatedTime = BLLCom.GetCurStdDatetime(); } } #endregion #region 发或取消下发销售模板 if (paramDistributePathList != null) { //下发销售模板:新增目的组织下的[销售模板]和[销售模板明细]列表 if (paramDistributePathList.InsertList != null && paramDistributePathList.InsertList.Count > 0) { foreach (var loopDistributePath in paramDistributePathList.InsertList) { #region 发路径 //赋值销售模板ID loopDistributePath.DP_SendDataID = !string.IsNullOrEmpty(argsHead.SasT_ID) ? argsHead.SasT_ID : argsHead.WHERE_SasT_ID; loopDistributePath.DP_CreatedBy = LoginInfoDAX.UserName; loopDistributePath.DP_CreatedTime = BLLCom.GetCurStdDatetime(); loopDistributePath.DP_UpdatedBy = LoginInfoDAX.UserName; loopDistributePath.DP_UpdatedTime = BLLCom.GetCurStdDatetime(); #endregion #region 目的组织下的[销售模板]列表 MDLSD_SalesTemplate insertSalesTemplate = new MDLSD_SalesTemplate(); _bll.CopyModel(argsHead, insertSalesTemplate); insertSalesTemplate.SasT_ID = Guid.NewGuid().ToString(); insertSalesTemplate.SasT_Org_ID = loopDistributePath.DP_Org_ID_To; insertSalesTemplate.SasT_CreatedBy = LoginInfoDAX.UserName; insertSalesTemplate.SasT_CreatedTime = BLLCom.GetCurStdDatetime(); insertSalesTemplate.SasT_UpdatedBy = LoginInfoDAX.UserName; insertSalesTemplate.SasT_UpdatedTime = BLLCom.GetCurStdDatetime(); insertSalesTmpListOfDistributeOrg.Add(insertSalesTemplate); #endregion #region 目的组织下的[销售模板明细]列表 if (paramDetailList != null) { foreach (var loopSalesTemplateDetail in paramDetailList) { MDLSD_SalesTemplateDetail inserSalesTemplateDetail = new MDLSD_SalesTemplateDetail(); _bll.CopyModel(loopSalesTemplateDetail, inserSalesTemplateDetail); inserSalesTemplateDetail.SasTD_ID = Guid.NewGuid().ToString(); inserSalesTemplateDetail.SasTD_SasT_ID = insertSalesTemplate.SasT_ID; inserSalesTemplateDetail.SasTD_CreatedBy = LoginInfoDAX.UserName; inserSalesTemplateDetail.SasTD_CreatedTime = BLLCom.GetCurStdDatetime(); inserSalesTemplateDetail.SasTD_UpdatedBy = LoginInfoDAX.UserName; inserSalesTemplateDetail.SasTD_UpdatedTime = BLLCom.GetCurStdDatetime(); insertSalesTmpDetailListOfDistributeOrg.Add(inserSalesTemplateDetail); } } #endregion } } //取消下发销售模板:删除目的组织下的[销售模板]和[销售模板明细]列表 if (paramDistributePathList.DeleteList != null && paramDistributePathList.DeleteList.Count > 0) { foreach (var loopDistributePath in paramDistributePathList.DeleteList) { if (string.IsNullOrEmpty(loopDistributePath.DP_ID) || string.IsNullOrEmpty(loopDistributePath.DP_Org_ID_To)) { continue; } #region 目的组织下的[销售模板] //查询目的组织下的[销售模板] var deleteSalesTemplate = _bll.QueryForObject <MDLSD_SalesTemplate>(SQLID.SD_SalesTemplate_SQL03, new SalesTemplateManagerQCModel { WHERE_SasT_Name = argsHead.SasT_Name, WHERE_DP_SendDataID = !string.IsNullOrEmpty(argsHead.SasT_ID) ? argsHead.SasT_ID : argsHead.WHERE_SasT_ID, WHERE_DP_Org_ID_From = argsHead.SasT_Org_ID, WHERE_DP_Org_ID_To = loopDistributePath.DP_Org_ID_To }); if (deleteSalesTemplate == null || string.IsNullOrEmpty(deleteSalesTemplate.SasT_ID)) { continue; } deleteSalesTemplate.WHERE_SasT_ID = deleteSalesTemplate.SasT_ID; deleteSalesTmpListOfDistributeOrg.Add(deleteSalesTemplate); #endregion #region 目的组织下的[销售模板明细]列表 List <MDLSD_SalesTemplateDetail> tempSalesTemplateDetailList = new List <MDLSD_SalesTemplateDetail>(); _bll.QueryForList <MDLSD_SalesTemplateDetail, MDLSD_SalesTemplateDetail>(new MDLSD_SalesTemplateDetail { WHERE_SasTD_SasT_ID = deleteSalesTemplate.SasT_ID, WHERE_SasTD_IsValid = true }, tempSalesTemplateDetailList); tempSalesTemplateDetailList.ForEach(x => x.WHERE_SasTD_ID = x.SasTD_ID); deleteSalesTmpDetailListOfDistributeOrg.AddRange(tempSalesTemplateDetailList); #endregion } } } #endregion #endregion #region 带事务的保存 try { DBManager.BeginTransaction(DBCONFIG.Coeus); #region 保存[销售模板] //执行保存 if (!_bll.Save(argsHead, argsHead.SasT_ID)) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.SD_SalesTemplate }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 保存[销售模板明细] if (paramDetailList != null) { //执行保存 if (!_bll.UnitySave(paramDetailList)) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.SD_SalesTemplateDetail }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 保存[下发路径] if (paramDistributePathList != null) { //执行保存 if (!_bll.UnitySave(paramDistributePathList)) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.SD_DistributePath }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 新增目的组织下的[销售模板] if (insertSalesTmpListOfDistributeOrg.Count > 0) { var insertSalesTmpListOfDistributeOrgResult = _bll.InsertByList <MDLSD_SalesTemplate, MDLSD_SalesTemplate>(insertSalesTmpListOfDistributeOrg); if (!insertSalesTmpListOfDistributeOrgResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.DELIVER + SystemTableEnums.Name.SD_SalesTemplate }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 新增目的组织下的[销售模板明细] if (insertSalesTmpDetailListOfDistributeOrg.Count > 0) { var insertSalesTmpListOfDistributeOrgResult = _bll.InsertByList <MDLSD_SalesTemplateDetail, MDLSD_SalesTemplateDetail>(insertSalesTmpDetailListOfDistributeOrg); if (!insertSalesTmpListOfDistributeOrgResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.DELIVER + SystemTableEnums.Name.SD_SalesTemplate }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 除目的组织下的[销售模板] if (deleteSalesTmpListOfDistributeOrg.Count > 0) { var deleteSalesTmpListOfDistributeOrgResult = _bll.DeleteByList <MDLSD_SalesTemplate, MDLSD_SalesTemplate>(deleteSalesTmpListOfDistributeOrg); if (!deleteSalesTmpListOfDistributeOrgResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.CANCELDELIVER + SystemTableEnums.Name.SD_SalesTemplate }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 除目的组织下的[销售模板明细] if (deleteSalesTmpDetailListOfDistributeOrg.Count > 0) { var deleteSalesTmpDetailListOfDistributeOrgResult = _bll.DeleteByList <MDLSD_SalesTemplateDetail, MDLSD_SalesTemplateDetail>(deleteSalesTmpDetailListOfDistributeOrg); if (!deleteSalesTmpDetailListOfDistributeOrgResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.CANCELDELIVER + SystemTableEnums.Name.SD_SalesTemplate }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ex.Message, "", null); return(false); } #endregion //将最新数据回写给DetailDS CopyModel(argsHead, paramHead); //更新销售模板明细版本号 if (paramDetailList != null) { if (paramDetailList.InsertList != null) { foreach (var loopInsertDetail in paramDetailList.InsertList) { //新增时版本号为1 loopInsertDetail.SasTD_VersionNo = 1; } } foreach (var loopUpdateDetail in paramDetailList.UpdateList) { //更新时版本号加1 loopUpdateDetail.SasTD_VersionNo = loopUpdateDetail.SasTD_VersionNo + 1; } } //更新下发路径版本号 if (paramDistributePathList != null) { if (paramDistributePathList.InsertList != null) { foreach (var loopInsertDetail in paramDistributePathList.InsertList) { //新增时版本号为1 loopInsertDetail.DP_VersionNo = 1; } } foreach (var loopUpdateDetail in paramDistributePathList.UpdateList) { //更新时版本号加1 loopUpdateDetail.DP_VersionNo = loopUpdateDetail.DP_VersionNo + 1; } } return(true); }
/// <summary> /// 服务端检查 /// </summary> /// <param name="paramHead"></param> /// <param name="paramDetailModel"></param> /// <returns></returns> private bool ServerCheck(ReceiptBillManagerUIModel paramHead, SkyCarBindingList <ReceiptBillManagerDetailUIModel, MDLFM_ReceiptBillDetail> paramDetailModel) { return(true); }
/// <summary> /// 保存 /// </summary> /// <param name="paramHead">UIModel</param> /// <returns></returns> public bool SaveDetailDS(WarehouseManagerUIModel paramHead, SkyCarBindingList <WarehouseBinManagerUIModel, MDLPIS_WarehouseBin> paramWarehouseBinList) { //服务端检查 if (!ServerCheck(paramHead)) { return(false); } #region 准备数据 #region 仓库 //将UIModel转为TBModel var argsWarehouse = paramHead.ToTBModelForSaveAndDelete <MDLPIS_Warehouse>(); //判断主键是否被赋值 if (string.IsNullOrEmpty(paramHead.WH_ID)) { argsWarehouse.WH_ID = Guid.NewGuid().ToString(); argsWarehouse.WH_CreatedBy = LoginInfoDAX.UserName; argsWarehouse.WH_CreatedTime = BLLCom.GetCurStdDatetime(); } argsWarehouse.WH_UpdatedBy = LoginInfoDAX.UserName; argsWarehouse.WH_UpdatedTime = BLLCom.GetCurStdDatetime(); #endregion #region 仓位 //添加的仓位 if (paramWarehouseBinList != null && paramWarehouseBinList.InsertList != null && paramWarehouseBinList.InsertList.Count > 0) { foreach (var loopDetailItem in paramWarehouseBinList.InsertList) { loopDetailItem.WHB_WH_ID = argsWarehouse.WH_ID ?? argsWarehouse.WHERE_WH_ID; loopDetailItem.WHB_CreatedBy = LoginInfoDAX.UserName; loopDetailItem.WHB_CreatedTime = BLLCom.GetCurStdDatetime(); loopDetailItem.WHB_UpdatedBy = LoginInfoDAX.UserName; loopDetailItem.WHB_UpdatedTime = BLLCom.GetCurStdDatetime(); } } #endregion #endregion #region 带事务的保存 try { DBManager.BeginTransaction(DBCONFIG.Coeus); #region 保存仓库 var saveWarehouseResult = _bll.Save(argsWarehouse, argsWarehouse.WH_ID); if (!saveWarehouseResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.PIS_Warehouse }); return(false); } #endregion #region 保存仓位 var saveWarehouseBinResult = _bll.UnitySave(paramWarehouseBinList); if (!saveWarehouseBinResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.PIS_WarehouseBin }); return(false); } #endregion DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); //保存[仓库]信息发生异常 ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, MethodBase.GetCurrentMethod().ToString(), ex.Message, "", null); return(false); } //将最新数据回写给DetailDS CopyModel(argsWarehouse, paramHead); #endregion #region 刷新缓存 //刷新仓库缓存 var resultWarehouseList = CacheDAX.Get(CacheDAX.ConfigDataKey.Warehouse) as List <MDLPIS_Warehouse>; List <MDLPIS_Warehouse> newWarehouseList = new List <MDLPIS_Warehouse>(); if (resultWarehouseList != null) { newWarehouseList = resultWarehouseList; if (resultWarehouseList.All(x => x.WH_ID != argsWarehouse.WH_ID && x.WH_Name != argsWarehouse.WH_Name)) { newWarehouseList.Add(argsWarehouse); CacheDAX.Add(CacheDAX.ConfigDataKey.Warehouse, newWarehouseList, true); } } else { newWarehouseList.Add(argsWarehouse); CacheDAX.Add(CacheDAX.ConfigDataKey.Warehouse, newWarehouseList, true); } //刷新仓位缓存 if (paramWarehouseBinList == null) { return(true); } var resultWarehouseBinList = CacheDAX.Get(CacheDAX.ConfigDataKey.WarehouseBin) as List <MDLPIS_WarehouseBin>; List <MDLPIS_WarehouseBin> newWarehouseBinList = new List <MDLPIS_WarehouseBin>(); if (resultWarehouseBinList != null) { newWarehouseBinList = resultWarehouseBinList; if (paramWarehouseBinList.InsertList != null && paramWarehouseBinList.InsertList.Count > 0) { foreach (var loopInsertBin in paramWarehouseBinList.InsertList) { if (resultWarehouseBinList.All(x => x.WHB_ID != loopInsertBin.WHB_ID && x.WHB_Name != loopInsertBin.WHB_Name)) { var tempWarehouseBin = new MDLPIS_WarehouseBin(); _bll.CopyModel(loopInsertBin, tempWarehouseBin); newWarehouseBinList.Add(tempWarehouseBin); CacheDAX.Add(CacheDAX.ConfigDataKey.WarehouseBin, newWarehouseBinList, true); } } } if (paramWarehouseBinList.DeleteList != null && paramWarehouseBinList.DeleteList.Count > 0) { //待移除的仓位 List <MDLPIS_WarehouseBin> removeWarehouseBinList = new List <MDLPIS_WarehouseBin>(); foreach (var loopWarehouseBin in newWarehouseBinList) { var deleteWarehouseBin = paramWarehouseBinList.DeleteList.FirstOrDefault(x => x.WHB_ID == loopWarehouseBin.WHB_ID); if (deleteWarehouseBin != null) { removeWarehouseBinList.Add(loopWarehouseBin); } } foreach (var loopWarehouseBin in removeWarehouseBinList) { newWarehouseBinList.Remove(loopWarehouseBin); } } } else { var tempWarehouseBinList = new List <MDLPIS_WarehouseBin>(); _bll.CopyModelList(paramWarehouseBinList.InsertList, tempWarehouseBinList); newWarehouseBinList.AddRange(tempWarehouseBinList); CacheDAX.Add(CacheDAX.ConfigDataKey.WarehouseBin, newWarehouseBinList, true); } #endregion return(true); }
/// <summary> /// 保存 /// </summary> /// <param name="paramHead"></param> /// <param name="paramDetailList"></param> /// <param name="paramPictureNameAndPath"></param> /// <returns></returns> public bool SaveDetailDS(ReceiptBillManagerUIModel paramHead, SkyCarBindingList <ReceiptBillManagerDetailUIModel, MDLFM_ReceiptBillDetail> paramDetailList, Dictionary <string, string> paramPictureNameAndPath) { var funcName = "SaveDetailDS"; LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null); //服务端检查 if (!ServerCheck(paramHead, paramDetailList)) { return(false); } #region 准备数据 #region 单头 //将UIModel转为TBModel var argsHead = paramHead.ToTBModelForSaveAndDelete <MDLFM_ReceiptBill>(); //判断主键是否被赋值 if (string.IsNullOrEmpty(paramHead.RB_ID)) { argsHead.RB_ID = Guid.NewGuid().ToString(); //单号 argsHead.RB_No = BLLCom.GetCoeusDocumentNo(DocumentTypeEnums.Code.RB); argsHead.RB_CreatedBy = LoginInfoDAX.UserName; argsHead.RB_CreatedTime = BLLCom.GetCurStdDatetime(); } argsHead.RB_UpdatedBy = LoginInfoDAX.UserName; argsHead.RB_UpdatedTime = BLLCom.GetCurStdDatetime(); #endregion #region 明细 //添加的明细 if (paramDetailList != null && paramDetailList.InsertList != null && paramDetailList.InsertList.Count > 0) { foreach (var loopDetailItem in paramDetailList) { loopDetailItem.RBD_RB_ID = argsHead.RB_ID ?? argsHead.WHERE_RB_ID; loopDetailItem.RBD_RB_No = argsHead.RB_No; loopDetailItem.RBD_CreatedBy = LoginInfoDAX.UserName; loopDetailItem.RBD_CreatedTime = BLLCom.GetCurStdDatetime(); loopDetailItem.RBD_UpdatedBy = LoginInfoDAX.UserName; loopDetailItem.RBD_UpdatedTime = BLLCom.GetCurStdDatetime(); } } #endregion #region 图片 foreach (var loopPicture in paramPictureNameAndPath) { if (string.IsNullOrEmpty(loopPicture.Key) || string.IsNullOrEmpty(loopPicture.Value)) { continue; } #region 将图片保存到本地以及上传文件服务器 string fileNetUrl = string.Empty; bool savePictureResult = BLLCom.SaveFileByFileName(loopPicture.Value, loopPicture.Key, ref fileNetUrl); if (!savePictureResult) { ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + MsgParam.IMAGE }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion //截取上传图片返回值中的文件名称 int fileNameStartIndex = fileNetUrl.IndexOf("FileName=", StringComparison.Ordinal) + 1; int fileNameEndIndex = fileNameStartIndex + "FileName=".Length; int length = fileNetUrl.Length; //文件名称 string tempFileName = fileNetUrl.Substring(fileNameEndIndex - 1, length - (fileNameEndIndex - 1)); //给各个图片赋值 if (loopPicture.Key == argsHead.RB_CertificatePic) { argsHead.RB_CertificatePic = tempFileName; } } #endregion #endregion #region 带事务的保存 try { DBManager.BeginTransaction(DBCONFIG.Coeus); #region 保存单头 //执行保存 if (!_bll.Save(argsHead, argsHead.RB_ID)) { DBManager.RollBackTransaction(DBCONFIG.Coeus); foreach (var loopPicture in paramPictureNameAndPath) { if (string.IsNullOrEmpty(loopPicture.Key) || string.IsNullOrEmpty(loopPicture.Value)) { continue; } //保存失败,删除本地以及文件服务器上的图片 var outMsg = string.Empty; BLLCom.DeleteFileByFileName(loopPicture.Key, ref outMsg); } ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.FM_ReceiptBill }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 保存明细 //执行保存 if (!_bll.UnitySave(paramDetailList)) { DBManager.RollBackTransaction(DBCONFIG.Coeus); foreach (var loopPicture in paramPictureNameAndPath) { if (string.IsNullOrEmpty(loopPicture.Key) || string.IsNullOrEmpty(loopPicture.Value)) { continue; } //保存失败,删除本地以及文件服务器上的图片 var outMsg = string.Empty; BLLCom.DeleteFileByFileName(loopPicture.Key, ref outMsg); } ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.FM_ReceiptBillDetail }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); foreach (var loopPicture in paramPictureNameAndPath) { if (string.IsNullOrEmpty(loopPicture.Key) || string.IsNullOrEmpty(loopPicture.Value)) { continue; } //保存失败,删除本地以及文件服务器上的图片 var outMsg = string.Empty; BLLCom.DeleteFileByFileName(loopPicture.Key, ref outMsg); } ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ex.Message, "", null); return(false); } #endregion //将最新数据回写给DetailDS CopyModel(argsHead, paramHead); //更新明细版本号 if (paramDetailList != null) { if (paramDetailList.InsertList != null) { foreach (var loopInsertDetail in paramDetailList.InsertList) { //新增时版本号为1 loopInsertDetail.RBD_VersionNo = 1; } } foreach (var loopUpdateDetail in paramDetailList.UpdateList) { //更新时版本号加1 loopUpdateDetail.RBD_VersionNo = loopUpdateDetail.RBD_VersionNo + 1; } } foreach (var loopPicture in paramPictureNameAndPath) { if (string.IsNullOrEmpty(loopPicture.Key) || string.IsNullOrEmpty(loopPicture.Value)) { continue; } //保存成功,删除临时保存的图片 if (File.Exists(loopPicture.Value)) { File.Delete(loopPicture.Value); } } return(true); }
/// <summary> /// 审核 /// </summary> /// <param name="paramHead">UIModel</param> /// <param name="paramDetailList">明细UIModel</param> /// <returns></returns> public bool ApproveDetailDS(ReceiptBillManagerUIModel paramHead, SkyCarBindingList <ReceiptBillManagerDetailUIModel, MDLFM_ReceiptBillDetail> paramDetailList) { var funcName = "ApproveDetailDS"; LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null); if (paramHead == null || string.IsNullOrEmpty(paramHead.RB_ID) || string.IsNullOrEmpty(paramHead.RB_No)) { //没有获取到收款单,审核失败 ResultMsg = MsgHelp.GetMsg(MsgCode.W_0024, new object[] { SystemTableEnums.Name.FM_ReceiptBill, SystemActionEnum.Name.APPROVE }); return(false); } var receiptBillManagerDetailList = paramDetailList.Where(x => x.RBD_SourceTypeName == ReceiptBillDetailSourceTypeEnum.Name.SGSK); if (receiptBillManagerDetailList.Count() != paramDetailList.Count() || receiptBillManagerDetailList.Count() == 0) { //收款单不为手工收款,不能审核 ResultMsg = MsgHelp.GetMsg(MsgCode.E_0017, new object[] { SystemTableEnums.Name.FM_ReceiptBill + MsgParam.NO + MsgParam.BE + PayBillDetailSourceTypeEnum.Name.SGFK, SystemActionEnum.Name.APPROVE }); return(false); } #region 定义变量 //待更新的[收款单] MDLFM_ReceiptBill updateReceiptBill = paramHead.ToTBModelForSaveAndDelete <MDLFM_ReceiptBill>(); //待更新[收款单明细] List <MDLFM_ReceiptBillDetail> updateReceiptBillDetailList = new List <MDLFM_ReceiptBillDetail>(); //待新增对应的[应收单] List <MDLFM_AccountReceivableBill> addAccountReceivableBillList = new List <MDLFM_AccountReceivableBill>(); //待新增对应的[应收单明细] List <MDLFM_AccountReceivableBillDetail> addAccountReceivableBillDetailList = new List <MDLFM_AccountReceivableBillDetail>(); //待更新的[钱包] MDLEWM_Wallet updateWallet = new MDLEWM_Wallet(); //待新增的[钱包异动] MDLEWM_WalletTrans addWalletTrans = new MDLEWM_WalletTrans(); #endregion #region 准备数据 if (paramDetailList[0].RBD_SourceTypeName == ReceiptBillDetailSourceTypeEnum.Name.SGSK) { #region 新增[应收单]和[应收单明细] foreach (var loopDetail in paramDetailList) { #region 新增[应收单] MDLFM_AccountReceivableBill accountReceivableBill = new MDLFM_AccountReceivableBill { ARB_ID = System.Guid.NewGuid().ToString(), ARB_No = BLLCom.GetCoeusDocumentNo(DocumentTypeEnums.Code.ARB), ARB_BillDirectCode = BillDirectionEnum.Code.PLUS, ARB_BillDirectName = BillDirectionEnum.Name.PLUS, ARB_SourceTypeCode = AccountReceivableBillSourceTypeEnum.Code.SGCJ, ARB_SourceTypeName = AccountReceivableBillSourceTypeEnum.Name.SGCJ, ARB_Org_ID = LoginInfoDAX.OrgID, ARB_Org_Name = LoginInfoDAX.OrgShortName, ARB_PayObjectTypeCode = paramHead.RB_PayObjectTypeCode, ARB_PayObjectTypeName = paramHead.RB_PayObjectTypeName, ARB_PayObjectID = paramHead.RB_PayObjectID, ARB_PayObjectName = paramHead.RB_PayObjectName, ARB_AccountReceivableAmount = loopDetail.RBD_ReceiveAmount, ARB_ReceivedAmount = loopDetail.RBD_ReceiveAmount, ARB_UnReceiveAmount = 0, ARB_BusinessStatusName = AccountReceivableBillStatusEnum.Name.YWC, ARB_BusinessStatusCode = AccountReceivableBillStatusEnum.Code.YWC, ARB_ApprovalStatusName = ApprovalStatusEnum.Name.YSH, ARB_ApprovalStatusCode = ApprovalStatusEnum.Code.YSH, ARB_IsValid = true, ARB_CreatedBy = LoginInfoDAX.UserName, ARB_CreatedTime = BLLCom.GetCurStdDatetime(), ARB_UpdatedBy = LoginInfoDAX.UserName, ARB_UpdatedTime = BLLCom.GetCurStdDatetime(), }; addAccountReceivableBillList.Add(accountReceivableBill); //回写付款单的来源的单号 loopDetail.RBD_SrcBillNo = accountReceivableBill.ARB_No; #endregion #region 新增[应收单明细] MDLFM_AccountReceivableBillDetail accountPayableBillDetail = new MDLFM_AccountReceivableBillDetail { ARBD_ID = Guid.NewGuid().ToString(), ARBD_ARB_ID = accountReceivableBill.ARB_ID, ARBD_IsMinusDetail = false, ARBD_Org_ID = accountReceivableBill.ARB_Org_ID, ARBD_Org_Name = accountReceivableBill.ARB_Org_Name, ARBD_AccountReceivableAmount = loopDetail.RBD_ReceiveAmount, ARBD_ReceivedAmount = loopDetail.RBD_ReceiveAmount, ARBD_UnReceiveAmount = 0, ARBD_BusinessStatusName = accountReceivableBill.ARB_BusinessStatusName, ARBD_BusinessStatusCode = accountReceivableBill.ARB_BusinessStatusCode, ARBD_ApprovalStatusName = accountReceivableBill.ARB_ApprovalStatusName, ARBD_ApprovalStatusCode = accountReceivableBill.ARB_ApprovalStatusCode, ARBD_IsValid = true, ARBD_CreatedBy = LoginInfoDAX.UserName, ARBD_CreatedTime = BLLCom.GetCurStdDatetime(), ARBD_UpdatedBy = LoginInfoDAX.UserName, ARBD_UpdatedTime = BLLCom.GetCurStdDatetime(), }; addAccountReceivableBillDetailList.Add(accountPayableBillDetail); #endregion } #endregion } #region 收款单 //更新收款单[业务状态]为{已完成},[审核状态]为{已审核} updateReceiptBill.RB_ApprovalStatusName = ApprovalStatusEnum.Name.YSH; updateReceiptBill.RB_ApprovalStatusCode = ApprovalStatusEnum.Code.YSH; updateReceiptBill.RB_BusinessStatusName = ReceiptBillStatusEnum.Name.YWC; updateReceiptBill.RB_BusinessStatusCode = ReceiptBillStatusEnum.Code.YWC; updateReceiptBill.RB_UpdatedBy = LoginInfoDAX.UserName; updateReceiptBill.RB_UpdatedTime = BLLCom.GetCurStdDatetime(); #endregion #region 更新[付款单明细]数据 _bll.CopyModelList <ReceiptBillManagerDetailUIModel, MDLFM_ReceiptBillDetail>(paramDetailList, updateReceiptBillDetailList); foreach (var loopPayBillDetaill in updateReceiptBillDetailList) { loopPayBillDetaill.WHERE_RBD_ID = loopPayBillDetaill.RBD_ID; loopPayBillDetaill.WHERE_RBD_VersionNo = loopPayBillDetaill.RBD_VersionNo; loopPayBillDetaill.RBD_VersionNo++; } #endregion #region 更新[钱包余额]和新增[钱包异动] if (paramHead.RB_ReceiveTypeName == TradeTypeEnum.Name.WALLET) { #region 更新[钱包] updateWallet.WHERE_Wal_ID = paramHead.Wal_ID; updateWallet.WHERE_Wal_VersionNo = paramHead.Wal_VersionNo; updateWallet.Wal_AvailableBalance = paramHead.Wal_AvailableBalance - paramHead.RB_ReceiveTotalAmount; paramHead.Wal_AvailableBalance = updateWallet.Wal_AvailableBalance ?? 0; #endregion #region 新增[钱包异动] addWalletTrans.WalT_ID = System.Guid.NewGuid().ToString(); addWalletTrans.WalT_Org_ID = LoginInfoDAX.OrgID; addWalletTrans.WalT_Org_Name = LoginInfoDAX.OrgShortName; addWalletTrans.WalT_Wal_ID = paramHead.Wal_ID; addWalletTrans.WalT_Wal_No = paramHead.Wal_No; addWalletTrans.WalT_Time = BLLCom.GetCurStdDatetime(); addWalletTrans.WalT_TypeCode = WalTransTypeEnum.Code.XF; addWalletTrans.WalT_TypeName = WalTransTypeEnum.Name.XF; addWalletTrans.WalT_Amount = -paramHead.RB_ReceiveTotalAmount; addWalletTrans.WalT_BillNo = paramHead.RB_No; addWalletTrans.WalT_IsValid = true; addWalletTrans.WalT_CreatedBy = LoginInfoDAX.UserName; addWalletTrans.WalT_CreatedTime = BLLCom.GetCurStdDatetime(); addWalletTrans.WalT_UpdatedBy = LoginInfoDAX.UserName; addWalletTrans.WalT_UpdatedTime = BLLCom.GetCurStdDatetime(); #endregion } #endregion #endregion #region 带事务的保存 try { DBManager.BeginTransaction(DBCONFIG.Coeus); #region 更新[收款单] bool updateReceiptBillResult = _bll.Save(updateReceiptBill); if (!updateReceiptBillResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.FM_ReceiptBill }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 更新[收款单明细] foreach (var loopReceiptBillDetail in updateReceiptBillDetailList) { bool updateDetailResult = _bll.Update(loopReceiptBillDetail); if (!updateDetailResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.APPROVE + SystemTableEnums.Name.FM_ReceiptBillDetail }); return(false); } } #endregion #region 新增[应收单] bool addAccountReceivableBillResult = _bll.InsertByList <MDLFM_AccountReceivableBill, MDLFM_AccountReceivableBill>(addAccountReceivableBillList); if (!addAccountReceivableBillResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.ADD + SystemTableEnums.Name.FM_AccountReceivableBill }); return(false); } #endregion #region 新增[应付单明细] bool addAccountReceivableBillDetailResult = _bll.InsertByList <MDLFM_AccountReceivableBillDetail, MDLFM_AccountReceivableBillDetail>(addAccountReceivableBillDetailList); if (!addAccountReceivableBillDetailResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.ADD + SystemTableEnums.Name.FM_AccountReceivableBillDetail }); return(false); } #endregion #region 更新[钱包余额]和新增[钱包异动] if (paramHead.RB_ReceiveTypeName == TradeTypeEnum.Name.WALLET) { #region 更新[钱包余额] bool updateWalletResult = _bll.Save(updateWallet); if (!updateWalletResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.UPDATE + SystemTableEnums.Name.EWM_Wallet }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 新增[钱包异动] bool addWalletTransResult = _bll.Insert <MDLEWM_WalletTrans>(addWalletTrans); if (!addWalletTransResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.ADD + SystemTableEnums.Name.EWM_WalletTrans }); return(false); } #endregion } #endregion DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.APPROVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, MethodBase.GetCurrentMethod().ToString(), ex.Message, "", null); return(false); } #endregion //将最新数据回写给DetailDS CopyModel(updateReceiptBill, paramHead); return(true); }
/// <summary> /// 服务端检查 /// </summary> /// <param name="paramModel"></param> /// <param name="paramDetailList"></param> /// <returns></returns> private bool ServerCheck(PayBillManagerUIModel paramModel, SkyCarBindingList <PayBillManagerDetailUIModel, MDLFM_PayBillDetail> paramDetailList) { return(true); }
/// <summary> /// 审核 /// </summary> /// <param name="paramHead">UIModel</param> /// <param name="paramDetailList">出库单明细列表</param> /// <returns></returns> public bool ApproveDetailDS(PurchaseReturnManagerUIModel paramHead, SkyCarBindingList <StockOutBillManagerDetailUIModel, MDLPIS_StockOutBillDetail> paramDetailList) { var funcName = "ApproveDetailDS"; LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null); #region 验证 if (paramHead == null || string.IsNullOrEmpty(paramHead.SOB_ID) || string.IsNullOrEmpty(paramHead.SOB_No)) { //没有获取到出库单,审核失败 ResultMsg = MsgHelp.GetMsg(MsgCode.W_0024, new object[] { SystemTableEnums.Name.PIS_StockOutBill, SystemActionEnum.Name.APPROVE }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 准备数据 #region 变量定义 //待更新的出库单 MDLPIS_StockOutBill updateStockOutBill = paramHead.ToTBModelForSaveAndDelete <MDLPIS_StockOutBill>(); //待新增的[应付单] MDLFM_AccountPayableBill newAccountPayableBill = new MDLFM_AccountPayableBill(); //待新增的[应付单明细]列表 List <MDLFM_AccountPayableBillDetail> newAccountPayableBillDetailList = new List <MDLFM_AccountPayableBillDetail>(); //待更新的[库存]列表 List <MDLPIS_Inventory> updateInventoryList = new List <MDLPIS_Inventory>(); //待新增的[库存异动日志]列表 List <MDLPIS_InventoryTransLog> newInventoryTransLogList = new List <MDLPIS_InventoryTransLog>(); #endregion //计算出库金额 decimal totalStockOutAmount = CalculateStockOutAmount(updateStockOutBill, paramDetailList); #region 创建[应付单]的场合 if (updateStockOutBill.SOB_SourceTypeName == StockOutBillSourceTypeEnum.Name.THCK) { //应付单 newAccountPayableBill.APB_ID = Guid.NewGuid().ToString(); newAccountPayableBill.APB_No = BLLCom.GetCoeusDocumentNo(DocumentTypeEnums.Code.APB); newAccountPayableBill.APB_BillDirectCode = BillDirectionEnum.Code.MINUS; newAccountPayableBill.APB_BillDirectName = BillDirectionEnum.Name.MINUS; newAccountPayableBill.APB_SourceTypeCode = AccountPayableBillSourceTypeEnum.Code.CKYF; newAccountPayableBill.APB_SourceTypeName = AccountPayableBillSourceTypeEnum.Name.CKYF; newAccountPayableBill.APB_SourceBillNo = updateStockOutBill.SOB_No; newAccountPayableBill.APB_Org_ID = LoginInfoDAX.OrgID; newAccountPayableBill.APB_Org_Name = LoginInfoDAX.OrgShortName; newAccountPayableBill.APB_ReceiveObjectTypeCode = AmountTransObjectTypeEnum.Code.AUTOPARTSSUPPLIER; newAccountPayableBill.APB_ReceiveObjectTypeName = AmountTransObjectTypeEnum.Name.AUTOPARTSSUPPLIER; newAccountPayableBill.APB_ReceiveObjectID = paramHead.SOB_SUPP_ID; newAccountPayableBill.APB_ReceiveObjectName = paramHead.SOB_SUPP_Name; newAccountPayableBill.APB_AccountPayableAmount = -totalStockOutAmount; newAccountPayableBill.APB_PaidAmount = 0; newAccountPayableBill.APB_UnpaidAmount = -totalStockOutAmount; newAccountPayableBill.APB_BusinessStatusCode = AccountPayableBillStatusEnum.Code.ZXZ; newAccountPayableBill.APB_BusinessStatusName = AccountPayableBillStatusEnum.Name.ZXZ; newAccountPayableBill.APB_ApprovalStatusCode = ApprovalStatusEnum.Code.YSH; newAccountPayableBill.APB_ApprovalStatusName = ApprovalStatusEnum.Name.YSH; newAccountPayableBill.APB_IsValid = true; newAccountPayableBill.APB_CreatedBy = LoginInfoDAX.UserName; newAccountPayableBill.APB_CreatedTime = BLLCom.GetCurStdDatetime(); newAccountPayableBill.APB_UpdatedBy = LoginInfoDAX.UserName; newAccountPayableBill.APB_UpdatedTime = BLLCom.GetCurStdDatetime(); } #endregion #region 更新[出库单] //将出库单审核状态更新为[已审核],单据状态更新为[已完成] updateStockOutBill.SOB_VersionNo++; updateStockOutBill.SOB_ApprovalStatusCode = ApprovalStatusEnum.Code.YSH; updateStockOutBill.SOB_ApprovalStatusName = ApprovalStatusEnum.Name.YSH; updateStockOutBill.SOB_UpdatedBy = LoginInfoDAX.UserName; updateStockOutBill.SOB_UpdatedTime = BLLCom.GetCurStdDatetime(); //updateStockOutBill.SOB_StatusCode = StockOutBillStatusEnum.Code.YWC; //updateStockOutBill.SOB_StatusName = StockOutBillStatusEnum.Name.YWC; #endregion #region 遍历[出库单明细]列表,创建[应付单明细]和[应收单明细],创建或更新[库存],创建[库存异动日志] foreach (var loopStockOutBillDetail in paramDetailList) { if (string.IsNullOrEmpty(loopStockOutBillDetail.SOBD_Barcode) || string.IsNullOrEmpty(loopStockOutBillDetail.SOBD_BatchNo)) { continue; } if (updateStockOutBill.SOB_SourceTypeName == StockOutBillSourceTypeEnum.Name.THCK) { //出库明细 loopStockOutBillDetail.WHERE_SOBD_ID = loopStockOutBillDetail.SOBD_ID; loopStockOutBillDetail.WHERE_SOBD_VersionNo = loopStockOutBillDetail.SOBD_VersionNo; #region 应付单明细 MDLFM_AccountPayableBillDetail newAccountPayableBillDetail = new MDLFM_AccountPayableBillDetail { APBD_ID = Guid.NewGuid().ToString(), APBD_APB_ID = newAccountPayableBill.APB_ID, APBD_IsMinusDetail = false, APBD_SourceBillNo = updateStockOutBill.SOB_No, APBD_SourceBillDetailID = loopStockOutBillDetail.SOBD_ID, APBD_Org_ID = newAccountPayableBill.APB_Org_ID, APBD_Org_Name = newAccountPayableBill.APB_Org_Name, APBD_AccountPayableAmount = -loopStockOutBillDetail.SOBD_Amount, APBD_PaidAmount = 0, APBD_UnpaidAmount = -loopStockOutBillDetail.SOBD_Amount, APBD_BusinessStatusCode = newAccountPayableBill.APB_BusinessStatusCode, APBD_BusinessStatusName = newAccountPayableBill.APB_BusinessStatusName, APBD_ApprovalStatusCode = newAccountPayableBill.APB_ApprovalStatusCode, APBD_ApprovalStatusName = newAccountPayableBill.APB_ApprovalStatusName, APBD_IsValid = true, APBD_CreatedBy = LoginInfoDAX.UserName, APBD_CreatedTime = BLLCom.GetCurStdDatetime(), APBD_UpdatedBy = LoginInfoDAX.UserName, APBD_UpdatedTime = BLLCom.GetCurStdDatetime() }; newAccountPayableBillDetailList.Add(newAccountPayableBillDetail); #endregion #region 库存和库存异动日志 //在[出库单明细]列表中第一次出现的配件[库存]信息 MDLPIS_Inventory inventoryExists = null; foreach (var loopInventory in updateInventoryList) { if (loopInventory.INV_Barcode == loopStockOutBillDetail.SOBD_Barcode && loopInventory.INV_BatchNo == loopStockOutBillDetail.SOBD_BatchNo) { inventoryExists = loopInventory; break; } } if (inventoryExists != null) { if (inventoryExists.INV_Qty < loopStockOutBillDetail.SOBD_Qty) { //配件:loopStockOutBillDetail.SOBD_Name(条形码:loopStockOutBillDetail.SOBD_Barcode)的库存不足,审核失败 ResultMsg = MsgHelp.GetMsg(MsgCode.E_0030, new object[] { loopStockOutBillDetail.SOBD_Name, loopStockOutBillDetail.SOBD_Barcode, MsgParam.SHORTAGE, SystemActionEnum.Name.APPROVE }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } //[出库单明细]列表中已遍历过该配件,累减数量 inventoryExists.INV_Qty -= loopStockOutBillDetail.SOBD_Qty; //生成[库存异动日志] newInventoryTransLogList.Add(GenerateInventoryTransLogOfApprove(updateStockOutBill, loopStockOutBillDetail, inventoryExists)); } else { //[出库单明细]列表中第一次出现该配件 //查询该配件是否在[库存]中存在 MDLPIS_Inventory resultInventory = new MDLPIS_Inventory(); _bll.QueryForObject <MDLPIS_Inventory, MDLPIS_Inventory>(new MDLPIS_Inventory { WHERE_INV_Org_ID = updateStockOutBill.SOB_Org_ID, WHERE_INV_Barcode = loopStockOutBillDetail.SOBD_Barcode, WHERE_INV_BatchNo = loopStockOutBillDetail.SOBD_BatchNo, WHERE_INV_WH_ID = loopStockOutBillDetail.SOBD_WH_ID, WHERE_INV_IsValid = true }, resultInventory); //[库存]中不存在该配件 if (string.IsNullOrEmpty(resultInventory.INV_ID)) { //配件:loopStockOutBillDetail.SOBD_Name(条形码:loopStockOutBillDetail.SOBD_Barcode)的库存不存在,审核失败 ResultMsg = MsgHelp.GetMsg(MsgCode.E_0030, new object[] { loopStockOutBillDetail.SOBD_Name, loopStockOutBillDetail.SOBD_Barcode, MsgParam.NOTEXIST, SystemActionEnum.Name.APPROVE }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } if (resultInventory.INV_Qty < loopStockOutBillDetail.SOBD_Qty) { //配件:loopStockOutBillDetail.SOBD_Name(条形码:loopStockOutBillDetail.SOBD_Barcode)的库存不足,审核失败 ResultMsg = MsgHelp.GetMsg(MsgCode.E_0030, new object[] { loopStockOutBillDetail.SOBD_Name, loopStockOutBillDetail.SOBD_Barcode, MsgParam.SHORTAGE, SystemActionEnum.Name.APPROVE }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } //[库存]中存在该配件 //更新[库存]中该配件的数量 resultInventory.INV_Qty -= loopStockOutBillDetail.SOBD_Qty; resultInventory.INV_UpdatedBy = LoginInfoDAX.UserName; resultInventory.INV_UpdatedTime = BLLCom.GetCurStdDatetime(); resultInventory.WHERE_INV_ID = resultInventory.INV_ID; resultInventory.WHERE_INV_VersionNo = resultInventory.INV_VersionNo; updateInventoryList.Add(resultInventory); //生成[库存异动日志] newInventoryTransLogList.Add(GenerateInventoryTransLogOfApprove(updateStockOutBill, loopStockOutBillDetail, resultInventory)); } #endregion } } #endregion #endregion #region 带事务的新增和保存 try { DBManager.BeginTransaction(DBCONFIG.Coeus); #region 新增[应付单] if (!string.IsNullOrEmpty(newAccountPayableBill.APB_ID)) { bool insertAccountPayableBillResult = _bll.Insert(newAccountPayableBill); if (!insertAccountPayableBillResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.NEW + SystemTableEnums.Name.FM_AccountPayableBill }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 新增[应付单明细] if (newAccountPayableBillDetailList.Count > 0) { bool insertAccountPayableBillDetailResult = _bll.InsertByList <MDLFM_AccountPayableBillDetail, MDLFM_AccountPayableBillDetail>(newAccountPayableBillDetailList); if (!insertAccountPayableBillDetailResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.NEW + SystemTableEnums.Name.FM_AccountPayableBillDetail }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 保存[出库单] bool updateStockOutBillResult = _bll.Save(updateStockOutBill); if (!updateStockOutBillResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.UPDATE + SystemTableEnums.Name.PIS_StockOutBill }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 保存[出库单明细] var updateDetailList = new List <MDLPIS_StockOutBillDetail>(); //将当前DetailGridDS转换为指定类型的TBModelList paramDetailList.ToTBModelListForUpdateAndDelete <MDLPIS_StockOutBillDetail>(updateDetailList); foreach (var loopStockoutBillDetail in updateDetailList) { bool saveStockOutBillDetailResult = _bll.Save(loopStockoutBillDetail); if (!saveStockOutBillDetailResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.PIS_StockOutBillDetail }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 更新[库存] foreach (var loopInventory in updateInventoryList) { bool saveInventoryResult = _bll.Save(loopInventory); if (!saveInventoryResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.PIS_Inventory }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 新增[库存异动日志] if (newInventoryTransLogList.Count > 0) { bool insertInventoryTransLogResult = _bll.InsertByList <MDLPIS_InventoryTransLog, MDLPIS_InventoryTransLog>(newInventoryTransLogList); if (!insertInventoryTransLogResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.NEW + SystemTableEnums.Name.PIS_InventoryTransLog }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.APPROVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion //将最新数据回写给DetailDS CopyModel(updateStockOutBill, paramHead); //更新明细版本号 foreach (var loopInsertDetail in paramDetailList.InsertList) { //新增时版本号为1 loopInsertDetail.SOBD_VersionNo = 1; } foreach (var loopUpdateDetail in paramDetailList.UpdateList) { //更新时版本号加1 loopUpdateDetail.SOBD_VersionNo = loopUpdateDetail.SOBD_VersionNo + 1; } return(true); }
/// <summary> /// 保存 /// </summary> /// <param name="paramHead">UIModel</param> /// <param name="paramDetailList">销售订单明细列表</param> /// <returns></returns> public bool SaveDetailDs(SalesReturnOrderManagerUIModel paramHead, SkyCarBindingList <SalesOrderDetailUIModel, MDLSD_SalesOrderDetail> paramDetailList) { var funcName = "SaveDetailDS"; LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null); //服务端检查 if (!ServerCheck(paramHead)) { LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #region 准备数据 //待更新的[配件档案]列表 List <MDLBS_AutoPartsArchive> updateAutoPartsArchiveList = new List <MDLBS_AutoPartsArchive>(); #region 单头 //将UIModel转为TBModel var argsHead = paramHead.ToTBModelForSaveAndDelete <MDLSD_SalesOrder>(); //判断主键是否被赋值 if (string.IsNullOrEmpty(paramHead.SO_ID)) { argsHead.SO_ID = Guid.NewGuid().ToString(); //单号 argsHead.SO_No = BLLCom.GetCoeusDocumentNo(DocumentTypeEnums.Code.SO); argsHead.SO_CreatedBy = LoginInfoDAX.UserName; argsHead.SO_CreatedTime = BLLCom.GetCurStdDatetime(); } argsHead.SO_UpdatedBy = LoginInfoDAX.UserName; argsHead.SO_UpdatedTime = BLLCom.GetCurStdDatetime(); #endregion #region 明细 //添加的明细 if (paramDetailList != null && paramDetailList.InsertList != null && paramDetailList.InsertList.Count > 0) { foreach (var loopSalesOrderDetail in paramDetailList.InsertList) { //赋值销售订单ID loopSalesOrderDetail.SOD_SO_ID = argsHead.SO_ID ?? argsHead.WHERE_SO_ID; //如果[计价基准可改]为true if (loopSalesOrderDetail.SOD_SalePriceRateIsChangeable ?? false) { //回写配件档案[条码和名称唯一] //待更新的配件档案 MDLBS_AutoPartsArchive updateAutoPartsArchive = new MDLBS_AutoPartsArchive(); _bll.QueryForObject <MDLBS_AutoPartsArchive, MDLBS_AutoPartsArchive>(new MDLBS_AutoPartsArchive { WHERE_APA_IsValid = true, WHERE_APA_Barcode = loopSalesOrderDetail.SOD_Barcode, WHERE_APA_Name = loopSalesOrderDetail.SOD_Name }, updateAutoPartsArchive); if (!string.IsNullOrEmpty(updateAutoPartsArchive.APA_ID)) { updateAutoPartsArchive.WHERE_APA_ID = updateAutoPartsArchive.APA_ID; updateAutoPartsArchive.WHERE_APA_VersionNo = updateAutoPartsArchive.APA_VersionNo; updateAutoPartsArchive.APA_VersionNo++; updateAutoPartsArchive.APA_SalePriceRate = loopSalesOrderDetail.SOD_SalePriceRate; updateAutoPartsArchive.APA_UpdatedBy = LoginInfoDAX.UserName; updateAutoPartsArchive.APA_UpdatedTime = BLLCom.GetCurStdDatetime(); updateAutoPartsArchiveList.Add(updateAutoPartsArchive); } } } } #endregion #endregion #region 带事务的保存 try { DBManager.BeginTransaction(DBCONFIG.Coeus); #region 保存单头 //执行保存 if (!_bll.Save(argsHead, argsHead.SO_ID)) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.SD_SalesOrder }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 保存明细 if (paramDetailList != null) { //执行保存 bool saveDetailResult = _bll.UnitySave(paramDetailList); if (!saveDetailResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.SD_SalesOrderDetail }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion #region 更新[配件档案]列表 foreach (var loopAutoPartsArchive in updateAutoPartsArchiveList) { bool updateAutoPartsArchiveResult = _bll.Update(loopAutoPartsArchive); if (!updateAutoPartsArchiveResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.UPDATE + SystemTableEnums.Name.BS_AutoPartsArchive }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } } #endregion DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ex.Message, "", null); return(false); } #endregion //将最新数据回写给DetailDS _bll.CopyModel(argsHead, paramHead); //更新明细版本号 if (paramDetailList != null) { if (paramDetailList.InsertList != null) { foreach (var loopInsertDetail in paramDetailList.InsertList) { //新增时版本号为1 loopInsertDetail.SOD_VersionNo = 1; } } foreach (var loopUpdateDetail in paramDetailList.UpdateList) { //更新时版本号加1 loopUpdateDetail.SOD_VersionNo = loopUpdateDetail.SOD_VersionNo + 1; } } return(true); }
/// <summary> /// 初始化【详情】Tab内控件 /// </summary> private void InitializeDetailTabControls() { #region 工具生成 //姓名 txtUser_Name.Clear(); //工号 txtUser_EMPNO.Clear(); //身份证号码 txtUser_IDNo.Clear(); //性别 cbUser_Sex.Items.Clear(); //地址 txtUser_Address.Clear(); //电话号码 txtUser_PhoneNo.Clear(); //是否允许微信认证 ckUser_IsAllowWechatCertificate.Checked = true; ckUser_IsAllowWechatCertificate.CheckState = CheckState.Checked; //是否已微信认证 ckUser_IsWechatCertified.Checked = false; ckUser_IsWechatCertified.CheckState = CheckState.Unchecked; //打印标题前缀 txtUser_PrintTitlePrefix.Clear(); //有效 ckUser_IsValid.Checked = true; ckUser_IsValid.CheckState = CheckState.Checked; //创建人 txtUser_CreatedBy.Text = LoginInfoDAX.UserName; //创建时间 dtUser_CreatedTime.Value = BLLCom.GetCurStdDatetime(); //修改人 txtUser_UpdatedBy.Text = LoginInfoDAX.UserName; //修改时间 dtUser_UpdatedTime.Value = BLLCom.GetCurStdDatetime(); //用户ID txtUser_ID.Clear(); //密码 txtUser_Password.Clear(); //版本号 txtUser_VersionNo.Clear(); //给 姓名 设置焦点 lblUser_Name.Focus(); #endregion #region 性别下拉框数据填充 List <ComComboBoxDataSource> resultSexList = EnumDAX.GetEnumForComboBoxWithValueText(EnumKey.Sex); if (resultSexList != null) { cbUser_Sex.DisplayMember = SysConst.EN_TEXT; cbUser_Sex.ValueMember = SysConst.Value; cbUser_Sex.DataSource = resultSexList; cbUser_Sex.DataBind(); } #endregion _userOrgList = new SkyCarBindingList <UserOrgUIModel, MDLSM_UserOrg>(); _userOrgList.StartMonitChanges(); //初始化树形控件 InitializeTreeView(); }
/// <summary> /// 保存 /// </summary> /// <param name="paramUser"></param> /// <param name="paramUserOrgList"></param> /// <returns></returns> public bool SaveDetailDS(UserManagerUIModel paramUser, SkyCarBindingList <UserOrgUIModel, MDLSM_UserOrg> paramUserOrgList) { #region 带事务的保存 //将UIModel转为TBModel var argsUser = paramUser.ToTBModelForSaveAndDelete <MDLSM_User>(); try { DBManager.BeginTransaction(DBCONFIG.Coeus); #region 保存用户信息 if (string.IsNullOrEmpty(paramUser.User_ID)) { argsUser.User_ID = Guid.NewGuid().ToString(); argsUser.User_CreatedBy = LoginInfoDAX.UserName; argsUser.User_CreatedTime = BLLCom.GetCurStdDatetime(); } argsUser.User_IsValid = true; argsUser.User_UpdatedBy = LoginInfoDAX.UserName; argsUser.User_UpdatedTime = BLLCom.GetCurStdDatetime(); bool saveUserResult = _bll.Save(argsUser); if (!saveUserResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.SM_User }); return(false); } #endregion //保存用户组织信息 if (paramUserOrgList != null && paramUserOrgList.InsertList != null && paramUserOrgList.InsertList.Count > 0) { foreach (var loopUserOrg in paramUserOrgList.InsertList) { loopUserOrg.UO_User_ID = argsUser.User_ID ?? argsUser.WHERE_User_ID; loopUserOrg.UO_CreatedBy = LoginInfoDAX.UserName; loopUserOrg.UO_CreatedTime = BLLCom.GetCurStdDatetime(); loopUserOrg.UO_UpdatedBy = LoginInfoDAX.UserName; loopUserOrg.UO_UpdatedTime = BLLCom.GetCurStdDatetime(); } bool saveUserOrgResult = _bll.InsertByList <UserOrgUIModel, MDLSM_UserOrg>(paramUserOrgList.InsertList); if (!saveUserOrgResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.SM_UserOrg }); return(false); } } if (paramUserOrgList != null && paramUserOrgList.DeleteList != null && paramUserOrgList.DeleteList.Count > 0) { foreach (var loopUserOrg in paramUserOrgList.DeleteList) { loopUserOrg.WHERE_UO_ID = loopUserOrg.UO_ID; } bool deleteUserOrgResult = _bll.DeleteByList <UserOrgUIModel, MDLSM_UserOrg>(paramUserOrgList.DeleteList); if (!deleteUserOrgResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.SM_UserOrg }); return(false); } } DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, MethodBase.GetCurrentMethod().ToString(), ex.Message, "", null); return(false); } //将最新数据回写给DetailDS _bll.CopyModel(argsUser, paramUser); //刷新用户缓存 var resultUserList = CacheDAX.Get(CacheDAX.ConfigDataKey.SystemUser) as List <MDLSM_User>; List <MDLSM_User> newUserList = new List <MDLSM_User>(); if (resultUserList != null) { newUserList = resultUserList; if (resultUserList.All(x => x.User_ID != argsUser.User_ID && x.User_Name != argsUser.User_Name)) { newUserList.Insert(0, argsUser); CacheDAX.Add(CacheDAX.ConfigDataKey.SystemUser, newUserList, true); } } else { newUserList.Add(argsUser); CacheDAX.Add(CacheDAX.ConfigDataKey.SystemUser, newUserList, true); } return(true); #endregion }
/// <summary> /// 服务端检查 /// </summary> /// <param name="paramModel">UIModel</param> /// <returns></returns> private bool ServerCheck(PurchaseForecastOrderQueryUIModel paramModel, SkyCarBindingList <PurchaseForecastOrderQueryDetailUIModel, MDLPIS_PurchaseForecastOrderDetail> paramDetailList) { return(true); }
/// <summary> /// 保存本地失败的场合,还原平台上保存的信息 /// </summary> /// <param name="paramHead">待保存的车辆信息</param> /// <param name="paramVehicleOemPartsList">待保存的原厂件信息列表</param> /// <param name="paramVehicleBrandPartsList">待保存的品牌件信息列表</param> private void RestoreSavePlatformInfo(MDLBS_VehicleInfo paramHead, SkyCarBindingList <VehicleOemPartsInfoUIModel, MDLBS_VehicleOemPartsInfo> paramVehicleOemPartsList, SkyCarBindingList <VehicleThirdPartsInfoUIModel, MDLBS_VehicleThirdPartsInfo> paramVehicleBrandPartsList) { #region 1. 待还原平台数据的[车辆信息] var restoreSyncVehicleInfo = new VehicleModelMatchAutoPartsManagerUIModel(); _bll.QueryForObject <MDLBS_VehicleInfo, VehicleModelMatchAutoPartsManagerUIModel>(new MDLBS_VehicleInfo { WHERE_VC_VIN = paramHead.VC_VIN, WHERE_VC_IsValid = true, }, restoreSyncVehicleInfo); if (string.IsNullOrEmpty(restoreSyncVehicleInfo.VC_ID)) { _bll.CopyModel(paramHead, restoreSyncVehicleInfo); restoreSyncVehicleInfo.VC_OperateType = "Delete"; } else { restoreSyncVehicleInfo.VC_OperateType = "Save"; } List <VehicleModelMatchAutoPartsManagerUIModel> restoreVehicleInfoList = new List <VehicleModelMatchAutoPartsManagerUIModel>(); restoreVehicleInfoList.Add(restoreSyncVehicleInfo); #endregion #region 2. 待还原平台数据的[车辆原厂件信息]列表 List <VehicleOemPartsInfoUIModel> restoreVehicleOemPartsInfoList = new List <VehicleOemPartsInfoUIModel>(); foreach (var loopInsert in paramVehicleOemPartsList.InsertList) { loopInsert.VOPI_OperateType = "Delete"; } restoreVehicleOemPartsInfoList.AddRange(paramVehicleOemPartsList.InsertList); foreach (var loopDelete in paramVehicleOemPartsList.DeleteList) { loopDelete.VOPI_OperateType = "Save"; } restoreVehicleOemPartsInfoList.AddRange(paramVehicleOemPartsList.DeleteList); //查询待更新数据的原保存内容 List <MDLBS_VehicleOemPartsInfo> updateVehicleOemPartsInfoList = new List <MDLBS_VehicleOemPartsInfo>(); string updateOemPartsIdStr = string.Empty; _bll.QueryForList(SQLID.BS_VehicleModelMatchAutoPartsManager_SQL05, new MDLBS_VehicleOemPartsInfo { WHERE_VOPI_ID = updateOemPartsIdStr, }, updateVehicleOemPartsInfoList); foreach (var loopUpdate in paramVehicleOemPartsList.UpdateList) { var curUpdateVehicleOemParts = updateVehicleOemPartsInfoList.FirstOrDefault(x => x.VOPI_ID == loopUpdate.VOPI_ID); if (curUpdateVehicleOemParts != null && !string.IsNullOrEmpty(curUpdateVehicleOemParts.VOPI_ID)) { _bll.CopyModel(curUpdateVehicleOemParts, loopUpdate); } loopUpdate.VOPI_OperateType = "Save"; } restoreVehicleOemPartsInfoList.AddRange(paramVehicleOemPartsList.UpdateList); #endregion #region 3. 待还原平台数据的[车辆品牌件信息]列表 List <VehicleThirdPartsInfoUIModel> restoreVehicleBrandPartsInfoList = new List <VehicleThirdPartsInfoUIModel>(); foreach (var loopInsert in paramVehicleBrandPartsList.InsertList) { loopInsert.VTPI_OperateType = "Delete"; } restoreVehicleBrandPartsInfoList.AddRange(paramVehicleBrandPartsList.InsertList); foreach (var loopDelete in paramVehicleBrandPartsList.DeleteList) { loopDelete.VTPI_OperateType = "Save"; } restoreVehicleBrandPartsInfoList.AddRange(paramVehicleBrandPartsList.DeleteList); //查询待更新数据的原保存内容 List <MDLBS_VehicleThirdPartsInfo> updateVehicleBrandPartsInfoList = new List <MDLBS_VehicleThirdPartsInfo>(); string updateBrandPartsIdStr = string.Empty; _bll.QueryForList(SQLID.BS_VehicleModelMatchAutoPartsManager_SQL06, new MDLBS_VehicleThirdPartsInfo { WHERE_VTPI_ID = updateBrandPartsIdStr, }, updateVehicleBrandPartsInfoList); foreach (var loopUpdate in paramVehicleBrandPartsList.UpdateList) { var curUpdateVehicleBrandParts = updateVehicleBrandPartsInfoList.FirstOrDefault(x => x.VTPI_ID == loopUpdate.VTPI_ID); if (curUpdateVehicleBrandParts != null && !string.IsNullOrEmpty(curUpdateVehicleBrandParts.VTPI_ID)) { _bll.CopyModel(curUpdateVehicleBrandParts, loopUpdate); } loopUpdate.VTPI_OperateType = "Save"; } restoreVehicleBrandPartsInfoList.AddRange(paramVehicleBrandPartsList.UpdateList); #endregion //同步到平台 SynchronizeVehicleRelateInfo(restoreVehicleInfoList, restoreVehicleOemPartsInfoList, restoreVehicleBrandPartsInfoList); }
/// <summary> /// 保存 /// </summary> /// <param name="paramModel">UIModel</param> /// <param name="paramArOrgSupOrgAuthorityList">汽配汽修组织授权列表</param> /// <returns></returns> public bool SaveDetailDS(AutoFactoryCustomerManagerUIModel paramModel, SkyCarBindingList <AROrgSupOrgAuthorityUIModel, MDLSM_AROrgSupOrgAuthority> paramArOrgSupOrgAuthorityList) { //服务端检查 if (!ServerCheck(paramModel)) { return(false); } #region 保存数据 //将UIModel转为TBModel var argsAutoFactoryCustomer = CopyModel <MDLPIS_AutoFactoryCustomer>(paramModel); #region 步到平台 if (argsAutoFactoryCustomer.AFC_IsPlatform == true) { //同步到平台的数据 List <ARCustomerAutoPartsPriceTypeUIModel> syncArCustomerAutoPartsPriceTypeList = new List <ARCustomerAutoPartsPriceTypeUIModel>(); ARCustomerAutoPartsPriceTypeUIModel curArCustomerAutoPartsPriceType = new ARCustomerAutoPartsPriceTypeUIModel { SAAPPT_ARMerchantCode = argsAutoFactoryCustomer.AFC_Code, SAAPPT_AROrgCode = argsAutoFactoryCustomer.AFC_AROrg_Code, SAAPPT_AutoPartsPriceType = argsAutoFactoryCustomer.AFC_AutoPartsPriceType, SAAPPT_OperateType = "Save" }; syncArCustomerAutoPartsPriceTypeList.Add(curArCustomerAutoPartsPriceType); if (!SynchronizeARCustomerAutoPartsPriceType(syncArCustomerAutoPartsPriceTypeList)) { //同步到平台失败 ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.PIS_AutoFactoryCustomer, "同步平台失败" }); return(false); } } #endregion try { DBManager.BeginTransaction(DBCONFIG.Coeus); //判断主键是否被赋值 if (string.IsNullOrEmpty(argsAutoFactoryCustomer.AFC_ID)) { #region 新增 //生成新ID argsAutoFactoryCustomer.AFC_ID = Guid.NewGuid().ToString(); argsAutoFactoryCustomer.AFC_CreatedBy = LoginInfoDAX.UserName; argsAutoFactoryCustomer.AFC_CreatedTime = BLLCom.GetCurStdDatetime(); argsAutoFactoryCustomer.AFC_UpdatedBy = LoginInfoDAX.UserName; argsAutoFactoryCustomer.AFC_UpdatedTime = BLLCom.GetCurStdDatetime(); //主键未被赋值,则执行新增 bool insertCustomerResult = _bll.Insert(argsAutoFactoryCustomer); if (!insertCustomerResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.NEW + SystemTableEnums.Name.PIS_AutoFactoryCustomer }); return(false); } #endregion } else { #region 更新 //主键被赋值,则需要更新,更新需要设定更新条件 argsAutoFactoryCustomer.WHERE_AFC_ID = argsAutoFactoryCustomer.AFC_ID; argsAutoFactoryCustomer.WHERE_AFC_VersionNo = argsAutoFactoryCustomer.AFC_VersionNo; argsAutoFactoryCustomer.AFC_VersionNo++; argsAutoFactoryCustomer.AFC_UpdatedBy = LoginInfoDAX.UserName; argsAutoFactoryCustomer.AFC_UpdatedTime = BLLCom.GetCurStdDatetime(); bool updateCustomerResult = _bll.Update(argsAutoFactoryCustomer); if (!updateCustomerResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { MsgParam.UPDATE + SystemTableEnums.Name.PIS_AutoFactoryCustomer }); return(false); } #endregion } #region 保存[汽配汽修组织授权] if (argsAutoFactoryCustomer.AFC_IsPlatform == true) { bool saveArOrgSupOrgAuthorityResult = _bll.UnitySave(paramArOrgSupOrgAuthorityList); if (!saveArOrgSupOrgAuthorityResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.SM_AROrgSupOrgAuthority }); return(false); } } #endregion DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); if (argsAutoFactoryCustomer.AFC_IsPlatform == true) { #region 保存本地失败,还原同步到平台上已新增、已更新、已删除的汽修商客户配件价格类别信息 List <ARCustomerAutoPartsPriceTypeUIModel> restoreSyncAutoPartsPriceTypeList = new List <ARCustomerAutoPartsPriceTypeUIModel>(); //查询待更新数据原保存数据内容 List <ARCustomerAutoPartsPriceTypeUIModel> updateAutoPartsPriceTypeList = new List <ARCustomerAutoPartsPriceTypeUIModel>(); _bll.QueryForList(SQLID.PIS_AutoFactoryCustomerManager_SQL04, new MDLPIS_AutoFactoryCustomer { WHERE_AFC_ID = argsAutoFactoryCustomer.AFC_ID, }, updateAutoPartsPriceTypeList); restoreSyncAutoPartsPriceTypeList.AddRange(updateAutoPartsPriceTypeList); SynchronizeARCustomerAutoPartsPriceType(restoreSyncAutoPartsPriceTypeList); #endregion } ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, MethodBase.GetCurrentMethod().ToString(), ex.Message, "", null); return(false); } //将最新数据回写给DetailDS CopyModel(argsAutoFactoryCustomer, paramModel); #endregion return(true); }
/// <summary> /// 保存数据 /// </summary> /// <param name="paramHead">待保存的车辆信息</param> /// <param name="paramVehicleOemPartsList">待保存的原厂件信息列表</param> /// <param name="paramVehicleBrandPartsList">待保存的品牌件信息列表</param> /// <param name="paramIsJoinVinInfo">是否合并当前车架号的信息</param> /// <returns></returns> public bool SaveDetailDS(VehicleModelMatchAutoPartsManagerUIModel paramHead, SkyCarBindingList <VehicleOemPartsInfoUIModel, MDLBS_VehicleOemPartsInfo> paramVehicleOemPartsList, SkyCarBindingList <VehicleThirdPartsInfoUIModel, MDLBS_VehicleThirdPartsInfo> paramVehicleBrandPartsList, bool paramIsJoinVinInfo) { var funcName = "SaveDetailDS"; LogHelper.WriteBussLogStart(BussID, LoginInfoDAX.UserName, funcName, "", "", null); #region 准备数据 //待同步的[车辆信息列表] List <VehicleModelMatchAutoPartsManagerUIModel> syncVehicleInfoList = new List <VehicleModelMatchAutoPartsManagerUIModel>(); //待同步的[车辆原厂件信息列表] List <VehicleOemPartsInfoUIModel> syncVehicleOemPartsInfoList = new List <VehicleOemPartsInfoUIModel>(); //待同步的[车辆品牌件信息列表] List <VehicleThirdPartsInfoUIModel> syncVehicleBrandPartsInfoList = new List <VehicleThirdPartsInfoUIModel>(); #region 车辆信息 //待保存的[车辆信息] MDLBS_VehicleInfo saveVehicleInfo = new MDLBS_VehicleInfo(); if (paramIsJoinVinInfo) { #region 合并当前车架号对应信息的场合 //查询当前车架号对应的车辆信息 _bll.QueryForObject <MDLBS_VehicleInfo, MDLBS_VehicleInfo>(new MDLBS_VehicleInfo { WHERE_VC_VIN = paramHead.VC_VIN, WHERE_VC_IsValid = true, }, saveVehicleInfo); saveVehicleInfo.VC_UpdatedBy = LoginInfoDAX.UserName; saveVehicleInfo.VC_UpdatedTime = BLLCom.GetCurStdDatetime(); saveVehicleInfo.WHERE_VC_ID = saveVehicleInfo.VC_ID; saveVehicleInfo.WHERE_VC_VersionNo = saveVehicleInfo.VC_VersionNo; //查询当前车架号对应的所有[原厂件信息] List <MDLBS_VehicleOemPartsInfo> resultVehicleOemPartsInfoList = new List <MDLBS_VehicleOemPartsInfo>(); _bll.QueryForList <MDLBS_VehicleOemPartsInfo, MDLBS_VehicleOemPartsInfo>(new MDLBS_VehicleOemPartsInfo { WHERE_VOPI_VC_VIN = saveVehicleInfo.VC_VIN, WHERE_VOPI_IsValid = true, }, resultVehicleOemPartsInfoList); //查询当前车架号对应的所有[品牌件信息] List <MDLBS_VehicleThirdPartsInfo> resultVehicleBrandPartsInfoList = new List <MDLBS_VehicleThirdPartsInfo>(); _bll.QueryForList <MDLBS_VehicleThirdPartsInfo, MDLBS_VehicleThirdPartsInfo>(new MDLBS_VehicleThirdPartsInfo { WHERE_VTPI_VC_VIN = saveVehicleInfo.VC_VIN, WHERE_VTPI_IsValid = true, }, resultVehicleBrandPartsInfoList); //移除重复的[原厂件信息] foreach (var loopOemParts in resultVehicleOemPartsInfoList) { var curOemParts = paramVehicleOemPartsList.FirstOrDefault( x => x.VOPI_VC_VIN == loopOemParts.VOPI_VC_VIN && x.VOPI_OEMNo == loopOemParts.VOPI_OEMNo); if (curOemParts != null) { paramVehicleOemPartsList.Remove(curOemParts); } } //移除重复的[品牌件信息] foreach (var loopBrandParts in resultVehicleBrandPartsInfoList) { var curBrandParts = paramVehicleBrandPartsList.FirstOrDefault(x => x.VTPI_VC_VIN == loopBrandParts.VTPI_VC_VIN && x.VTPI_ThirdNo == loopBrandParts.VTPI_ThirdNo); if (curBrandParts != null) { paramVehicleBrandPartsList.Remove(curBrandParts); } } #endregion } else { #region 合并当前车架号对应信息的场合 //将UIModel转为TBModel saveVehicleInfo = paramHead.ToTBModelForSaveAndDelete <MDLBS_VehicleInfo>(); //判断主键是否被赋值 if (string.IsNullOrEmpty(paramHead.VC_ID)) { saveVehicleInfo.VC_ID = Guid.NewGuid().ToString(); saveVehicleInfo.VC_CreatedBy = LoginInfoDAX.UserName; saveVehicleInfo.VC_CreatedTime = BLLCom.GetCurStdDatetime(); } saveVehicleInfo.VC_UpdatedBy = LoginInfoDAX.UserName; saveVehicleInfo.VC_UpdatedTime = BLLCom.GetCurStdDatetime(); #endregion } VehicleModelMatchAutoPartsManagerUIModel syncehicleInfo = new VehicleModelMatchAutoPartsManagerUIModel(); _bll.CopyModel(saveVehicleInfo, syncehicleInfo); syncehicleInfo.VC_OperateType = "Save"; syncVehicleInfoList.Add(syncehicleInfo); #endregion #region 原厂件信息 //添加的明细 foreach (var loopDetailItem in paramVehicleOemPartsList.InsertList) { loopDetailItem.VOPI_VC_VIN = saveVehicleInfo.VC_VIN; loopDetailItem.VOPI_CreatedBy = LoginInfoDAX.UserName; loopDetailItem.VOPI_CreatedTime = BLLCom.GetCurStdDatetime(); loopDetailItem.VOPI_UpdatedBy = LoginInfoDAX.UserName; loopDetailItem.VOPI_UpdatedTime = BLLCom.GetCurStdDatetime(); loopDetailItem.VOPI_OperateType = "Save"; } //更新的明细 foreach (var loopDetailItem in paramVehicleOemPartsList.UpdateList) { loopDetailItem.VOPI_VC_VIN = saveVehicleInfo.VC_VIN; loopDetailItem.VOPI_UpdatedBy = LoginInfoDAX.UserName; loopDetailItem.VOPI_UpdatedTime = BLLCom.GetCurStdDatetime(); loopDetailItem.VOPI_OperateType = "Save"; } //删除的明细 foreach (var loopDetailItem in paramVehicleOemPartsList.DeleteList) { loopDetailItem.VOPI_OperateType = "Delete"; } syncVehicleOemPartsInfoList.AddRange(paramVehicleOemPartsList.InsertList); syncVehicleOemPartsInfoList.AddRange(paramVehicleOemPartsList.UpdateList); syncVehicleOemPartsInfoList.AddRange(paramVehicleOemPartsList.DeleteList); #endregion #region 品牌件信息 //添加的明细 foreach (var loopDetailItem in paramVehicleBrandPartsList.InsertList) { loopDetailItem.VTPI_VC_VIN = saveVehicleInfo.VC_VIN; loopDetailItem.VTPI_CreatedBy = LoginInfoDAX.UserName; loopDetailItem.VTPI_CreatedTime = BLLCom.GetCurStdDatetime(); loopDetailItem.VTPI_UpdatedBy = LoginInfoDAX.UserName; loopDetailItem.VTPI_UpdatedTime = BLLCom.GetCurStdDatetime(); loopDetailItem.VTPI_OperateType = "Save"; } //更新的明细 foreach (var loopDetailItem in paramVehicleBrandPartsList.UpdateList) { loopDetailItem.VTPI_VC_VIN = saveVehicleInfo.VC_VIN; loopDetailItem.VTPI_UpdatedBy = LoginInfoDAX.UserName; loopDetailItem.VTPI_UpdatedTime = BLLCom.GetCurStdDatetime(); loopDetailItem.VTPI_OperateType = "Save"; } //删除的明细 foreach (var loopDetailItem in paramVehicleBrandPartsList.DeleteList) { loopDetailItem.VTPI_OperateType = "Delete"; } syncVehicleBrandPartsInfoList.AddRange(paramVehicleBrandPartsList.InsertList); syncVehicleBrandPartsInfoList.AddRange(paramVehicleBrandPartsList.UpdateList); syncVehicleBrandPartsInfoList.AddRange(paramVehicleBrandPartsList.DeleteList); #endregion #endregion #region 步到平台 if (!SynchronizeVehicleRelateInfo(syncVehicleInfoList, syncVehicleOemPartsInfoList, syncVehicleBrandPartsInfoList)) { //同步到平台失败 ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, "同步平台失败" }); return(false); } #endregion #region 带事务的保存 try { DBManager.BeginTransaction(DBCONFIG.Coeus); #region 保存[车辆信息] var saveVehicleInfoResult = _bll.Save(saveVehicleInfo, saveVehicleInfo.VC_ID); if (!saveVehicleInfoResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); //保存本地失败的场合,还原平台上保存的信息 RestoreSavePlatformInfo(saveVehicleInfo, paramVehicleOemPartsList, paramVehicleBrandPartsList); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.BS_VehicleInfo }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 保存[车辆原厂件信息] var saveOemPartsResult = _bll.UnitySave(paramVehicleOemPartsList); if (!saveOemPartsResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); //保存本地失败的场合,还原平台上保存的信息 RestoreSavePlatformInfo(saveVehicleInfo, paramVehicleOemPartsList, paramVehicleBrandPartsList); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.BS_VehicleOemPartsInfo }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion #region 保存[车辆品牌件信息] var saveBrandPartsResult = _bll.UnitySave(paramVehicleBrandPartsList); if (!saveBrandPartsResult) { DBManager.RollBackTransaction(DBCONFIG.Coeus); //保存本地失败的场合,还原平台上保存的信息 RestoreSavePlatformInfo(saveVehicleInfo, paramVehicleOemPartsList, paramVehicleBrandPartsList); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0010, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.BS_VehicleBrandPartsInfo }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ResultMsg, "", null); return(false); } #endregion DBManager.CommitTransaction(DBCONFIG.Coeus); } catch (Exception ex) { DBManager.RollBackTransaction(DBCONFIG.Coeus); //保存本地失败的场合,还原平台上保存的信息 RestoreSavePlatformInfo(saveVehicleInfo, paramVehicleOemPartsList, paramVehicleBrandPartsList); ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message }); LogHelper.WriteBussLogEndNG(BussID, LoginInfoDAX.UserName, funcName, ex.Message, "", null); return(false); } #endregion //将最新数据回写给DetailDS CopyModel(saveVehicleInfo, paramHead); #region 更新[车辆原厂件信息]版本号 foreach (var loopInsertDetail in paramVehicleOemPartsList.InsertList) { //新增时版本号为1 loopInsertDetail.VOPI_VersionNo = 1; } foreach (var loopUpdateDetail in paramVehicleOemPartsList.UpdateList) { //更新时版本号加1 loopUpdateDetail.VOPI_VersionNo = loopUpdateDetail.VOPI_VersionNo + 1; } #endregion #region 更新[车辆品牌件信息]版本号 foreach (var loopInsertDetail in paramVehicleBrandPartsList.InsertList) { //新增时版本号为1 loopInsertDetail.VTPI_VersionNo = 1; } foreach (var loopUpdateDetail in paramVehicleBrandPartsList.UpdateList) { //更新时版本号加1 loopUpdateDetail.VTPI_VersionNo = loopUpdateDetail.VTPI_VersionNo + 1; } #endregion return(true); }
/// <summary> /// 保存 /// </summary> /// <param name="paramModelList">UIModel</param> /// <returns></returns> public bool SaveDetailDS(SkyCarBindingList <AutoPartsShareInventoryManagerUIModel, MDLPIS_ShareInventory> paramModelList) { //服务端检查 if (!ServerCheck(paramModelList)) { return(false); } var funcName = "SaveShareInventory"; LogHelper.WriteBussLogStart(Trans.IS, LoginInfoDAX.UserName, funcName, "", "", null); #region 准备数据 //同步到平台的数据 List <AutoPartsShareInventoryManagerUIModel> syncShareInventoryList = new List <AutoPartsShareInventoryManagerUIModel>(); #region 新增的数据 ShareInventoryDataSet.InventoryDataTable insertShareInventoryDataTable = new ShareInventoryDataSet.InventoryDataTable(); foreach (var loopInsert in paramModelList.InsertList) { loopInsert.OperateType = "Save"; ShareInventoryDataSet.InventoryRow newInventoryRow = insertShareInventoryDataTable.NewInventoryRow(); newInventoryRow.SI_Org_ID = loopInsert.SI_Org_ID; newInventoryRow.SI_WH_ID = loopInsert.SI_WH_ID; newInventoryRow.SI_WHB_ID = loopInsert.SI_WHB_ID; newInventoryRow.SI_ThirdNo = loopInsert.SI_ThirdNo; newInventoryRow.SI_OEMNo = loopInsert.SI_OEMNo; newInventoryRow.SI_Barcode = loopInsert.SI_Barcode; newInventoryRow.SI_BatchNo = loopInsert.SI_BatchNo; newInventoryRow.SI_Name = loopInsert.SI_Name; newInventoryRow.SI_Specification = loopInsert.SI_Specification; newInventoryRow.SI_SUPP_ID = loopInsert.SI_SUPP_ID; if (loopInsert.SI_Qty != null) { newInventoryRow.SI_Qty = (decimal)loopInsert.SI_Qty; } newInventoryRow.SI_PurchasePriceIsVisible = loopInsert.SI_PurchasePriceIsVisible == null ? false : loopInsert.SI_PurchasePriceIsVisible.Value; if (loopInsert.SI_PurchaseUnitPrice != null) { newInventoryRow.SI_PurchaseUnitPrice = (decimal)loopInsert.SI_PurchaseUnitPrice; } if (loopInsert.SI_PriceOfGeneralCustomer != null) { newInventoryRow.SI_PriceOfGeneralCustomer = (decimal)loopInsert.SI_PriceOfGeneralCustomer; } if (loopInsert.SI_PriceOfCommonAutoFactory != null) { newInventoryRow.SI_PriceOfCommonAutoFactory = (decimal)loopInsert.SI_PriceOfCommonAutoFactory; } if (loopInsert.SI_PriceOfPlatformAutoFactory != null) { newInventoryRow.SI_PriceOfPlatformAutoFactory = (decimal)loopInsert.SI_PriceOfPlatformAutoFactory; } newInventoryRow.SI_IsValid = loopInsert.SI_IsValid == null ? false : loopInsert.SI_IsValid.Value; newInventoryRow.SI_CreatedBy = loopInsert.SI_CreatedBy; newInventoryRow.SI_CreatedTime = BLLCom.GetCurStdDatetime(); newInventoryRow.SI_UpdatedBy = loopInsert.SI_UpdatedBy; newInventoryRow.SI_UpdatedTime = BLLCom.GetCurStdDatetime(); newInventoryRow.SI_VersionNo = "1"; insertShareInventoryDataTable.AddInventoryRow(newInventoryRow); } syncShareInventoryList.AddRange(paramModelList.InsertList); #endregion #region 修改的数据 ShareInventoryDataSet.InventoryDataTable updateShareInventoryDataTable = new ShareInventoryDataSet.InventoryDataTable(); //待更新的共享库存的ID组合字符串(用于本地保存失败时,还原平台上的数据) string updateIdStr = string.Empty; foreach (var loopUpdate in paramModelList.UpdateList) { loopUpdate.OperateType = "Save"; updateIdStr += loopUpdate.SI_ID + SysConst.Semicolon_DBC; ShareInventoryDataSet.InventoryRow newInventoryRow = updateShareInventoryDataTable.NewInventoryRow(); newInventoryRow.SI_ID = loopUpdate.SI_ID; newInventoryRow.SI_Org_ID = loopUpdate.SI_Org_ID; newInventoryRow.SI_WH_ID = loopUpdate.SI_WH_ID; newInventoryRow.SI_WHB_ID = loopUpdate.SI_WHB_ID; newInventoryRow.SI_ThirdNo = loopUpdate.SI_ThirdNo; newInventoryRow.SI_OEMNo = loopUpdate.SI_OEMNo; newInventoryRow.SI_Barcode = loopUpdate.SI_Barcode; newInventoryRow.SI_BatchNo = loopUpdate.SI_BatchNo; newInventoryRow.SI_Name = loopUpdate.SI_Name; newInventoryRow.SI_Specification = loopUpdate.SI_Specification; newInventoryRow.SI_SUPP_ID = loopUpdate.SI_SUPP_ID; if (loopUpdate.SI_Qty != null) { newInventoryRow.SI_Qty = (decimal)loopUpdate.SI_Qty; } newInventoryRow.SI_PurchasePriceIsVisible = loopUpdate.SI_PurchasePriceIsVisible == null ? false : loopUpdate.SI_PurchasePriceIsVisible.Value; if (loopUpdate.SI_PurchaseUnitPrice != null) { newInventoryRow.SI_PurchaseUnitPrice = (decimal)loopUpdate.SI_PurchaseUnitPrice; } if (loopUpdate.SI_PriceOfGeneralCustomer != null) { newInventoryRow.SI_PriceOfGeneralCustomer = (decimal)loopUpdate.SI_PriceOfGeneralCustomer; } if (loopUpdate.SI_PriceOfCommonAutoFactory != null) { newInventoryRow.SI_PriceOfCommonAutoFactory = (decimal)loopUpdate.SI_PriceOfCommonAutoFactory; } if (loopUpdate.SI_PriceOfPlatformAutoFactory != null) { newInventoryRow.SI_PriceOfPlatformAutoFactory = (decimal)loopUpdate.SI_PriceOfPlatformAutoFactory; } newInventoryRow.SI_IsValid = loopUpdate.SI_IsValid == null ? false : loopUpdate.SI_IsValid.Value; newInventoryRow.SI_CreatedBy = loopUpdate.SI_CreatedBy; newInventoryRow.SI_CreatedTime = loopUpdate.SI_CreatedTime == null ? BLLCom.GetCurStdDatetime() : loopUpdate.SI_CreatedTime.Value; newInventoryRow.SI_UpdatedBy = loopUpdate.SI_UpdatedBy; newInventoryRow.SI_UpdatedTime = BLLCom.GetCurStdDatetime(); newInventoryRow.SI_VersionNo = Convert.ToString(loopUpdate.SI_VersionNo + 1); updateShareInventoryDataTable.AddInventoryRow(newInventoryRow); } syncShareInventoryList.AddRange(paramModelList.UpdateList); #endregion #region 除的数据 ShareInventoryDataSet.InventoryDataTable deleteShareInventoryDataTable = new ShareInventoryDataSet.InventoryDataTable(); foreach (var loopDelete in paramModelList.DeleteList) { loopDelete.OperateType = "Delete"; ShareInventoryDataSet.InventoryRow newInventoryRow = deleteShareInventoryDataTable.NewInventoryRow(); newInventoryRow.SI_ID = loopDelete.SI_ID; newInventoryRow.SI_Org_ID = loopDelete.SI_Org_ID; newInventoryRow.SI_WH_ID = loopDelete.SI_WH_ID; newInventoryRow.SI_WHB_ID = loopDelete.SI_WHB_ID; newInventoryRow.SI_ThirdNo = loopDelete.SI_ThirdNo; newInventoryRow.SI_OEMNo = loopDelete.SI_OEMNo; newInventoryRow.SI_Barcode = loopDelete.SI_Barcode; newInventoryRow.SI_BatchNo = loopDelete.SI_BatchNo; newInventoryRow.SI_Name = loopDelete.SI_Name; newInventoryRow.SI_Specification = loopDelete.SI_Specification; newInventoryRow.SI_SUPP_ID = loopDelete.SI_SUPP_ID; if (loopDelete.SI_Qty != null) { newInventoryRow.SI_Qty = (decimal)loopDelete.SI_Qty; } newInventoryRow.SI_PurchasePriceIsVisible = loopDelete.SI_PurchasePriceIsVisible == null ? false : loopDelete.SI_PurchasePriceIsVisible.Value; if (loopDelete.SI_PurchaseUnitPrice != null) { newInventoryRow.SI_PurchaseUnitPrice = (decimal)loopDelete.SI_PurchaseUnitPrice; } if (loopDelete.SI_PriceOfGeneralCustomer != null) { newInventoryRow.SI_PriceOfGeneralCustomer = (decimal)loopDelete.SI_PriceOfGeneralCustomer; } if (loopDelete.SI_PriceOfCommonAutoFactory != null) { newInventoryRow.SI_PriceOfCommonAutoFactory = (decimal)loopDelete.SI_PriceOfCommonAutoFactory; } if (loopDelete.SI_PriceOfPlatformAutoFactory != null) { newInventoryRow.SI_PriceOfPlatformAutoFactory = (decimal)loopDelete.SI_PriceOfPlatformAutoFactory; } newInventoryRow.SI_IsValid = loopDelete.SI_IsValid == null ? false : loopDelete.SI_IsValid.Value; newInventoryRow.SI_CreatedBy = loopDelete.SI_CreatedBy; newInventoryRow.SI_CreatedTime = loopDelete.SI_CreatedTime == null ? BLLCom.GetCurStdDatetime() : loopDelete.SI_CreatedTime.Value; newInventoryRow.SI_UpdatedBy = loopDelete.SI_UpdatedBy; newInventoryRow.SI_UpdatedTime = BLLCom.GetCurStdDatetime(); newInventoryRow.SI_VersionNo = Convert.ToString(loopDelete.SI_VersionNo); deleteShareInventoryDataTable.AddInventoryRow(newInventoryRow); } syncShareInventoryList.AddRange(paramModelList.DeleteList); #endregion #endregion #region 保存数据 #region 步到平台 if (!SynchronizeShareInventory(syncShareInventoryList)) { //同步到平台失败 ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE + SystemTableEnums.Name.PIS_ShareInventory, "同步平台失败" }); return(false); } #endregion try { //打开数据库并连接 using (SqlConnection mySqlConnection = new SqlConnection { ConnectionString = DBManager.GetConnectionString(DBCONFIG.Coeus) }) { SqlCommand mySqlCommand = new SqlCommand(); mySqlCommand.Connection = mySqlConnection; mySqlCommand.CommandText = "P_PIS_ShareInventory"; mySqlCommand.CommandType = CommandType.StoredProcedure; mySqlCommand.Parameters.Add("@UpdateShareInventory", SqlDbType.Structured); mySqlCommand.Parameters[0].Value = updateShareInventoryDataTable; mySqlCommand.Parameters.Add("@InsertShareInventory", SqlDbType.Structured); mySqlCommand.Parameters[1].Value = insertShareInventoryDataTable; mySqlCommand.Parameters.Add("@DeleteShareInventory", SqlDbType.Structured); mySqlCommand.Parameters[2].Value = deleteShareInventoryDataTable; mySqlConnection.Open(); mySqlCommand.ExecuteNonQuery(); } } catch (Exception ex) { #region 保存本地失败,还原同步到平台上已新增、已更新、已删除的共享库存 List <AutoPartsShareInventoryManagerUIModel> restoreSyncShareInventoryList = new List <AutoPartsShareInventoryManagerUIModel>(); foreach (var loopInsert in paramModelList.InsertList) { loopInsert.OperateType = "Delete"; } restoreSyncShareInventoryList.AddRange(paramModelList.InsertList); foreach (var loopDelete in paramModelList.DeleteList) { loopDelete.OperateType = "Save"; } restoreSyncShareInventoryList.AddRange(paramModelList.DeleteList); //查询待更新数据原保存数据内容 List <MDLPIS_ShareInventory> updateShareInventoryList = new List <MDLPIS_ShareInventory>(); _bll.QueryForList(SQLID.IS_AutoPartsShareInventoryManager_SQL02, new MDLPIS_ShareInventory { WHERE_SI_ID = updateIdStr, }, updateShareInventoryList); foreach (var loopUpdate in paramModelList.UpdateList) { var curUpdateShareInventory = updateShareInventoryList.FirstOrDefault(x => x.SI_ID == loopUpdate.SI_ID); if (curUpdateShareInventory != null && !string.IsNullOrEmpty(curUpdateShareInventory.SI_ID)) { _bll.CopyModel(curUpdateShareInventory, loopUpdate); } loopUpdate.OperateType = "Save"; } restoreSyncShareInventoryList.AddRange(paramModelList.UpdateList); SynchronizeShareInventory(restoreSyncShareInventoryList); #endregion ResultMsg = MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message }); LogHelper.WriteBussLogEndOK(Trans.IS, LoginInfoDAX.UserName, funcName, MsgHelp.GetMsg(MsgCode.E_0018, new object[] { SystemActionEnum.Name.SAVE, ex.Message }), "", null); return(false); } #endregion return(true); }
/// <summary> /// 服务端检查 /// </summary> /// <param name="paramModel">UIModel</param> /// <returns></returns> private bool ServerCheck(PurchaseReturnManagerUIModel paramModel, SkyCarBindingList <StockOutBillManagerDetailUIModel, MDLPIS_StockOutBillDetail> paramDetailList) { return(true); }