Esempio n. 1
0
        public void UptRepayApplyMasterAndDetailForMobileToSubmit(string strActionType, T_FB_REPAYAPPLYMASTER entity, ref string strMsg)
        {
            bool re = false;

            if (LockOrder(entity.REPAYAPPLYMASTERID))
            {
                strMsg = "单据正在提交或审核中,不可重复操作!";
                return;
            }

            try
            {
                FBAEnums.CheckStates  dOldChecksates = FBAEnums.CheckStates.UnSubmit;
                T_FB_REPAYAPPLYMASTER cha            = GetRepayApplyMasterByID(entity.REPAYAPPLYMASTERID);
                if (cha == null)
                {
                    strMsg = "提交的单据不存在或已删除,不可继续操作!";
                    return;
                }
                object checkStatesOld = cha.CHECKSTATES;
                dOldChecksates = (FBAEnums.CheckStates) int.Parse(checkStatesOld.ToString());
                object checkStatesNew = entity.CHECKSTATES;
                FBAEnums.CheckStates dNewCheckStates = (FBAEnums.CheckStates) int.Parse(checkStatesNew.ToString());
                if ((dOldChecksates == FBAEnums.CheckStates.Approved || dOldChecksates == FBAEnums.CheckStates.UnApproved) &&
                    strActionType.ToUpper() != "RESUBMIT")
                {
                    strMsg = "单据已审核完毕,不可再次操作";
                    return;
                }
                Utility.CloneEntity(entity, cha);
                cha.UPDATEDATE = DateTime.Now;
                bool n = Update(cha);
                if (n == false)
                {
                    dal.RollbackTransaction();
                    strMsg = "单据更新异常!";
                    return;
                }
            }
            catch (Exception ex)
            {
                string ErrInfo = this.GetType().ToString() + ":UptRepayApplyMasterAndDetailForMobile," + System.DateTime.Now.ToString() + "," + ex.Message;
                Tracer.Debug(ErrInfo);
            }
            finally
            {
                ReleaseOrder(entity.REPAYAPPLYMASTERID);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 更新还款主表CHECKSTATES字段值  add by zl    该方法由引擎调用,用来更改主表checkstates状态
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public string UptRepayApplyCheckState(T_FB_REPAYAPPLYMASTER entity, List <T_FB_REPAYAPPLYDETAIL> detailList)
        {
            bool             flag   = false;
            string           strMsg = string.Empty;
            PersonAccountBLL PerBLL = new PersonAccountBLL();

            if (LockOrder(entity.REPAYAPPLYMASTERID))
            {
                strMsg = "单据正在提交或审核中,不可重复操作!";
                return(strMsg);
            }

            try
            {
                FBAEnums.CheckStates dOldChecksates = FBAEnums.CheckStates.UnSubmit;

                object checkStatesNew = entity.CHECKSTATES;
                FBAEnums.CheckStates dNewCheckStates = (FBAEnums.CheckStates) int.Parse(checkStatesNew.ToString());


                T_FB_REPAYAPPLYMASTER cha = GetRepayApplyMasterByID(entity.REPAYAPPLYMASTERID);

                if (cha == null)
                {
                    strMsg = entity.REPAYAPPLYMASTERID + "还款单据不存在,不可继续操作!";
                    Tracer.Debug(strMsg);
                    return(strMsg);
                }

                object checkStatesOld = cha.CHECKSTATES;
                dOldChecksates = (FBAEnums.CheckStates) int.Parse(checkStatesOld.ToString());

                if (dOldChecksates == FBAEnums.CheckStates.Approved && dNewCheckStates == FBAEnums.CheckStates.Approving)
                {
                    strMsg = "已审核通过的费用报销单禁止再次审核!";
                    string ErrInfo = this.GetType().ToString() + ":UptChargeApplyCheckState," + System.DateTime.Now.ToString() + "," + strMsg;
                    Tracer.Debug(ErrInfo);
                    return(strMsg);
                }

                Utility.CloneEntity(entity, cha);

                //add zl 12.7 提交审核时产生单据号
                dal.BeginTransaction();
                string strCode = "";
                if (string.IsNullOrEmpty(cha.REPAYAPPLYCODE.Trim()))
                {
                    try
                    {
                        strCode            = new OrderCodeBLL().GetAutoOrderCode(entity);
                        cha.REPAYAPPLYCODE = strCode;
                        string err = this.GetType().ToString() + "," + System.DateTime.Now.ToString() + cha.REPAYAPPLYMASTERID + ":产生单据号 " + strCode;
                        Tracer.Debug(err);
                    }
                    catch (Exception ex)
                    {
                        string sr = this.GetType().ToString() + "," + System.DateTime.Now.ToString() + cha.REPAYAPPLYMASTERID + ":产生单据号时出现异常 " + ex.Message;
                        Tracer.Debug(sr);
                        dal.RollbackTransaction();
                        strMsg = "产生单据号时出现异常!";
                        return(strMsg);
                    }
                }
                string Logmsg = this.GetType().ToString() + "," + System.DateTime.Now.ToString() + ":UptRepayApplyCheckState,表单ID " + cha.REPAYAPPLYMASTERID + ",审核状态:" + cha.CHECKSTATES;
                Tracer.Debug(Logmsg);
                //add end

                //add zl 审核中时检查还款金额是否大于借款余额 2012.1.11
                if (dNewCheckStates == FBAEnums.CheckStates.Approving || dNewCheckStates == FBAEnums.CheckStates.Approved)
                {
                    strMsg = PerBLL.CheckRepMoneyForRepay(cha, detailList, (int)dNewCheckStates);
                    if (!string.IsNullOrEmpty(strMsg))
                    {
                        dal.RollbackTransaction();
                        return(strMsg);
                    }
                }
                //add end

                cha.UPDATEDATE = DateTime.Now;
                bool n = Update(cha);
                if (!n)
                {
                    strMsg = "单据明细更新异常!";
                    dal.RollbackTransaction();
                    return(strMsg);
                }

                if (dNewCheckStates == FBAEnums.CheckStates.UnSubmit)
                {
                    dal.CommitTransaction();
                    return(strMsg);
                }
                if (dNewCheckStates == FBAEnums.CheckStates.Approving && (dOldChecksates != FBAEnums.CheckStates.UnSubmit && dOldChecksates != FBAEnums.CheckStates.UnApproved))
                {
                    dal.CommitTransaction();
                    return(strMsg);
                }
                if (dNewCheckStates == FBAEnums.CheckStates.Approved && dOldChecksates != FBAEnums.CheckStates.Approving)
                {
                    dal.CommitTransaction();
                    return(strMsg);
                }
                if (dNewCheckStates == FBAEnums.CheckStates.UnApproved && dOldChecksates != FBAEnums.CheckStates.Approving)
                {
                    dal.CommitTransaction();
                    return(strMsg);
                }

                //add zl 12.7  终审通过时还款更新PersonAccount表
                if (dNewCheckStates == FBAEnums.CheckStates.Approved)
                {
                    n = PerBLL.UptPersonAccountByRepa(cha, detailList, (int)dNewCheckStates);
                    if (!n)
                    {
                        strMsg = "更新借还总账表异常!";
                        dal.RollbackTransaction();
                        return(strMsg);
                    }
                }
                dal.CommitTransaction();
                //add end
                return(strMsg);
            }
            catch (Exception ex)
            {
                string ErrInfo = this.GetType().ToString() + ":UptRepayApplyCheckState," + System.DateTime.Now.ToString() + "," + ex.Message;
                Tracer.Debug(ErrInfo);
                strMsg = "更新单据状态出现异常!";
                return(strMsg);
            }
            finally
            {
                ReleaseOrder(entity.REPAYAPPLYMASTERID);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 修改还款申请记录
        /// </summary>
        /// <param name="strActionType"></param>
        /// <param name="entity"></param>
        /// <param name="detailList"></param>
        /// <param name="strMsg"></param>
        public void UptRepayApplyMasterAndDetailForMobile(string strActionType, T_FB_REPAYAPPLYMASTER entity,
                                                          List <T_FB_REPAYAPPLYDETAIL> detailList, ref string strMsg)
        {
            try
            {
                bool isReturn = CheckRepay(ref entity, ref detailList, ref strMsg, "2");
                if (!isReturn)
                {
                    return;
                }
            }
            catch
            {
            }
            bool re = false;

            if (LockOrder(entity.REPAYAPPLYMASTERID))
            {
                strMsg = "单据正在提交或审核中,不可重复操作!";
                return;
            }

            try
            {
                FBAEnums.CheckStates  dOldChecksates = FBAEnums.CheckStates.UnSubmit;
                T_FB_REPAYAPPLYMASTER cha            = GetRepayApplyMasterByID(entity.REPAYAPPLYMASTERID);
                if (cha == null)
                {
                    strMsg = "提交的单据不存在或已删除,不可继续操作!";
                    return;
                }
                object checkStatesOld = cha.CHECKSTATES;
                dOldChecksates = (FBAEnums.CheckStates) int.Parse(checkStatesOld.ToString());
                object checkStatesNew = entity.CHECKSTATES;
                FBAEnums.CheckStates dNewCheckStates = (FBAEnums.CheckStates) int.Parse(checkStatesNew.ToString());
                if ((dOldChecksates == FBAEnums.CheckStates.Approved || dOldChecksates == FBAEnums.CheckStates.UnApproved) &&
                    strActionType.ToUpper() != "RESUBMIT")
                {
                    strMsg = "单据已审核完毕,不可再次操作";
                    return;
                }
                Utility.CloneEntity(entity, cha);
                cha.UPDATEDATE = DateTime.Now;
                bool n = Update(cha);
                if (n == false)
                {
                    dal.RollbackTransaction();
                    strMsg = "单据更新异常!";
                    return;
                }
                RepayApplyDetailBLL bllRepayDetail = new RepayApplyDetailBLL();
                re = bllRepayDetail.UpdateRepayApplyDetail(cha.REPAYAPPLYMASTERID, detailList);//删除报销明细
                if (!re)
                {
                    dal.RollbackTransaction();
                    strMsg = "单据明细更新异常!";
                    return;
                }
                if (dOldChecksates == dNewCheckStates && dOldChecksates == (int)FBAEnums.CheckStates.UnSubmit &&
                    strActionType.ToUpper() == "EDIT")
                {
                    strMsg = "单据更新成功!";
                    return;
                }
            }
            catch (Exception ex)
            {
                string ErrInfo = this.GetType().ToString() + ":UptRepayApplyMasterAndDetailForMobile," + System.DateTime.Now.ToString() + "," + ex.Message;
                Tracer.Debug(ErrInfo);
            }
            finally
            {
                ReleaseOrder(entity.REPAYAPPLYMASTERID);
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 更新还款主从表数据  add by zl
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="detailList"></param>
        /// <returns></returns>
        public void UptRepayApplyMasterAndDetail(string strActionType, T_FB_REPAYAPPLYMASTER entity,
                                                 List <T_FB_REPAYAPPLYDETAIL> detailList, ref string strMsg)
        {
            try
            {
                var company = OrgClient.GetCompanyById(entity.OWNERCOMPANYID);
                if (company != null)
                {
                    entity.OWNERCOMPANYNAME = company.CNAME;
                }
            }
            catch
            {
            }
            bool re = false;

            if (LockOrder(entity.REPAYAPPLYMASTERID))
            {
                strMsg = "单据正在提交或审核中,不可重复操作!";
                return;
            }

            try
            {
                FBAEnums.CheckStates  dOldChecksates = FBAEnums.CheckStates.UnSubmit;
                T_FB_REPAYAPPLYMASTER cha            = GetRepayApplyMasterByID(entity.REPAYAPPLYMASTERID);
                if (cha == null)
                {
                    strMsg = "提交的单据不存在或已删除,不可继续操作!";
                    return;
                }

                object checkStatesOld = cha.CHECKSTATES;
                dOldChecksates = (FBAEnums.CheckStates) int.Parse(checkStatesOld.ToString());

                object checkStatesNew = entity.CHECKSTATES;
                FBAEnums.CheckStates dNewCheckStates = (FBAEnums.CheckStates) int.Parse(checkStatesNew.ToString());

                if ((dOldChecksates == FBAEnums.CheckStates.Approved || dOldChecksates == FBAEnums.CheckStates.UnApproved) &&
                    strActionType.ToUpper() != "RESUBMIT")
                {
                    strMsg = "单据已审核完毕,不可再次操作";
                    return;
                }

                //不用月结可以进行借还款
                //#region 是否本月有结算

                //bool isChecked = SystemSettingsBLL.IsChecked;
                //// 没月结,只能处理报销。
                //string entityType = entity.GetType().Name;
                //string[] EntityTypes = new string[] { typeof(T_FB_BORROWAPPLYMASTER).Name,
                //    typeof(T_FB_REPAYAPPLYMASTER).Name, typeof(T_FB_CHARGEAPPLYMASTER).Name};
                //// 月结不可操作:1.日常报销类型的单据的审核或提交,2.所有单据的提交或重新提交
                //if (!isChecked && (EntityTypes.Contains(entityType) || (strActionType.ToUpper() == "SUBMIT")
                //    || (strActionType.ToUpper() == "RESUBMIT")))
                //{
                //    strMsg = "本月尚未结算,无法提交或审核!";
                //    return;
                //}

                //#endregion

                Utility.CloneEntity(entity, cha);
                cha.UPDATEDATE = DateTime.Now;

                bool n = Update(cha);
                if (n == false)
                {
                    dal.RollbackTransaction();
                    strMsg = "单据更新异常!";
                    return;
                }

                RepayApplyDetailBLL bllRepayDetail = new RepayApplyDetailBLL();
                re = bllRepayDetail.UpdateRepayApplyDetail(cha.REPAYAPPLYMASTERID, detailList);//删除报销明细
                if (!re)
                {
                    dal.RollbackTransaction();
                    strMsg = "单据明细更新异常!";
                    return;
                }

                if (dOldChecksates == dNewCheckStates && dOldChecksates == (int)FBAEnums.CheckStates.UnSubmit &&
                    strActionType.ToUpper() == "EDIT")
                {
                    strMsg = "单据更新成功!";
                    return;
                }

                //if (dNewCheckStates == FBAEnums.CheckStates.Approving && ((strActionType.ToUpper() == "SUBMIT" && dOldChecksates == FBAEnums.CheckStates.UnSubmit)
                //    || (strActionType.ToUpper() == "RESUBMIT" && dOldChecksates == FBAEnums.CheckStates.UnApproved)))
                //{
                //    BudgetAccountBLL budgetBLL = new BudgetAccountBLL();
                //    budgetBLL.UpdateAccount(cha, (int)dNewCheckStates);
                //}
            }
            catch (Exception ex)
            {
                string ErrInfo = this.GetType().ToString() + ":UptRepayApplyMasterAndDetail," + System.DateTime.Now.ToString() + "," + ex.Message;
                Tracer.Debug(ErrInfo);
            }
            finally
            {
                ReleaseOrder(entity.REPAYAPPLYMASTERID);
            }
        }