Exemplo n.º 1
0
        /// <summary>
        /// 获取付款申请审核内容
        /// </summary>
        /// <param name="user"></param>
        /// <param name="applyId"></param>
        /// <param name="fundsStyleEnum"></param>
        /// <returns></returns>
        public ResultModel GetAuditInfo(UserModel user, int applyId, FundsStyleEnum fundsStyleEnum)
        {
            ResultModel result = new ResultModel();
            ApplyDAL applyDAL = new ApplyDAL();
            string customBala = string.Empty;
            int customCorpId = 0;

            try
            {

                //获取付款申请
                result = this.payapplyDAL.GetByApplyId(user, applyId);
                if (result.ResultStatus != 0)
                    return result;

                PayApply payApply = result.ReturnValue as PayApply;
                if (payApply == null)
                {
                    result.ResultStatus = -1;
                    result.Message = "获取失败";
                    return result;
                }

                customCorpId = payApply.RecCorpId;
                int subContractId;

                switch (fundsStyleEnum)
                {
                    case FundsStyleEnum.合约付款申请:
                        ContractPayApplyDAL contractPayApplyDAL = new ContractPayApplyDAL();
                        result = contractPayApplyDAL.GetByPayApplyId(user, payApply.PayApplyId);
                        if (result.ResultStatus != 0)
                            return result;

                        ContractPayApply contractPayApply = result.ReturnValue as ContractPayApply;
                        if (contractPayApply == null)
                        {
                            result.ResultStatus = -1;
                            result.Message = "获取失败";
                            return result;
                        }

                        subContractId = contractPayApply.ContractSubId;
                        break;

                    case FundsStyleEnum.库存付款申请:
                        StockPayApplyDAL stockPayApplyDAl = new StockPayApplyDAL();
                        result = stockPayApplyDAl.Load(user, payApply.PayApplyId);
                        if (result.ResultStatus != 0)
                            return result;

                        List<StockPayApply> stockPayApplys = result.ReturnValue as List<StockPayApply>;
                        if (stockPayApplys == null || !stockPayApplys.Any())
                        {
                            result.ResultStatus = -1;
                            result.Message = "获取失败";
                            return result;
                        }

                        subContractId = stockPayApplys.First().SubId;
                        break;

                    case FundsStyleEnum.发票付款申请://价外付款
                        subContractId = 0;
                        break;

                    default:
                        subContractId = 0;
                        break;
                }

                //获取客户余额
                result = applyDAL.GetCustomerBala(user, customCorpId, subContractId, applyId, payApply.ApplyBala, 0);
                if (result.ResultStatus != 0)
                    return result;

                customBala = result.ReturnValue.ToString();

                if (!string.IsNullOrEmpty(customBala) && customBala.IndexOf('_') > -1)
                {
                    string corpName = string.Empty;
                    Corporation corp = UserProvider.Corporations.SingleOrDefault(a => a.CorpId == customCorpId);
                    if (corp != null)
                        corpName = corp.CorpName;

                    decimal customBalaValue = 0;
                    if (!decimal.TryParse(customBala.Split('_')[0], out customBalaValue))
                    {
                        result.ResultStatus = -1;
                        result.Message = "转换失败";
                        return result;
                    }

                    string currencyName = customBala.Split('_')[1].ToString();
                    string returnValue = string.Format("本次申请后,按照合同结算,{0} {1}(合{2}){3}", corpName, customBalaValue > 0 ? "余款" : "欠款", currencyName, string.Format("{0:N}", customBalaValue));

                    if (customBalaValue < 0)
                    {
                        returnValue = string.Format("<font color='#660000'>{0}</font>", returnValue);
                    }

                    result.ResultStatus = 0;
                    result.ReturnValue = returnValue;
                }
                else
                {
                    result.Message = "获取客户余额失败";
                    result.ResultStatus = -1;
                    return result;
                }

            }
            catch (Exception ex)
            {
                result.ResultStatus = -1;
                result.Message = ex.Message;
            }
            finally
            {
                if (result.ResultStatus != 0)
                    this.Log.ErrorFormat("{0} {1},序号:{2}", user.EmpName, result.Message, result.ReturnValue);
                else if (this.Log.IsInfoEnabled)
                    this.Log.InfoFormat("{0} {1},序号:{2}", user.EmpName, result.Message, result.ReturnValue);
            }

            return result;
        }