bug修复
This commit is contained in:
@@ -9,6 +9,7 @@ using YLErp.BLL.EodSettlement;
|
||||
using YLErp.Commons;
|
||||
using YLErp.Configuration;
|
||||
using YLErp.Core.Helpers;
|
||||
using YLErp.DBModels.Enums;
|
||||
using YLErp.Helpers;
|
||||
using YLErp.Model;
|
||||
using YLErp.Model.Enum;
|
||||
@@ -648,12 +649,17 @@ namespace YLErp.Modules.ClientModule
|
||||
|
||||
#region 出金申请时进行验资
|
||||
|
||||
if ((("出金".Equals(r.Direction) && PS.Config.Company != Configuration.CompanyEnum.中金) || ("应付".Equals(r.Direction) && ClientCashInCashOut.人工操作_预付金.Equals(r.Action))) && valuedateBLL.SystemDate.SpecialOperateForCashOut != 1 && PS.Config.Company != Configuration.CompanyEnum.中金)
|
||||
if ("出金".Equals(r.Direction) && valuedateBLL.SystemDate.SpecialOperateForCashOut != 1)
|
||||
{
|
||||
//查看当前客户可用资金是否符合出金条件
|
||||
var clientbalance = ClientBalanceUtility.GetClientBanlances(new List<int> { r.ClientId.Value }, DateTime.MinValue, DateTime.Now.Date).FirstOrDefault();
|
||||
// 如果余额为 null,则视为无可用资金
|
||||
if (clientbalance == null)
|
||||
{
|
||||
clientbalance = new YLErp.Models.ClientSettleBalance();
|
||||
}
|
||||
//当日可取现金
|
||||
var availableFund = clientbalance == null ? 0 : clientbalance.DesirableFund;
|
||||
var availableFund = clientbalance.DesirableFund;
|
||||
|
||||
//对于0.999999999情况的数据做下处理
|
||||
var realAvailableFund = Math.Round((availableFund + (originalMoney ?? 0.0)) * Math.Pow(10, 8)) / Math.Pow(10, 8);
|
||||
@@ -664,6 +670,24 @@ namespace YLErp.Modules.ClientModule
|
||||
(Math.Floor(realAvailableFund * 100) / 100).ToString("0.00") + ";";
|
||||
throw new ServiceException(msg);
|
||||
}
|
||||
if (r.Money <= clientbalance.VmFundSum)
|
||||
{
|
||||
// 出金金额小于等于 追保账户金额
|
||||
r.cash_type = CashTypeEnum.追保账户.ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
// 出金金额大于 追保账户金额,首先处理 VM 部分
|
||||
r.cash_type = CashTypeEnum.追保账户.ToString();
|
||||
var newMoney = r.Money - clientbalance.VmFundSum;
|
||||
r.Money = clientbalance.VmFundSum;
|
||||
|
||||
var newR = r.Clone();
|
||||
newR.id = 0;
|
||||
newR.Money = newMoney;
|
||||
newR.cash_type = CashTypeEnum.初保账户.ToString();
|
||||
DbContext.ClientCashInCashOut.Add(newR);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -679,29 +703,7 @@ namespace YLErp.Modules.ClientModule
|
||||
|
||||
if (r.State != "未确认" && changecashs.Count > 0 && !(changecashs.Count == 1 && changecashs[0][0] == "Comments"))
|
||||
{
|
||||
//功能先禁掉了
|
||||
//if (DbContext.clientcashincashout_update.Where(x => x.ClientcashincashoutId == r.id && x.State == "修改待确认" && x.ValidState != "InValid").Any())
|
||||
//{
|
||||
// var updateInValid = DbContext.clientcashincashout_update.Where(x => x.ClientcashincashoutId == r.id && x.State == "修改待确认" && x.ValidState != "InValid").ToList();
|
||||
// updateInValid.ForEach(x => x.ValidState = "InValid");
|
||||
//}
|
||||
//var clientcashincashout_Update = new clientcashincashout_update
|
||||
//{
|
||||
// OptId = UserId,
|
||||
// OptName = UserName,
|
||||
// OptDate = DateTime.Now,
|
||||
// ClientcashincashoutId = r.id,
|
||||
// OldMoney = r.Money ?? 0,
|
||||
// NewMoney = req.Money ?? 0,
|
||||
// OldDirection = r.Direction,
|
||||
// NewDirection = req.Direction ?? r.Direction,
|
||||
// OldHappenDate = r.HappenDate,
|
||||
// NewHappenDate = req.HappenDate ?? r.HappenDate,
|
||||
// ValidState = "Valid",
|
||||
// State = "修改待确认"
|
||||
//};
|
||||
//DbContext.clientcashincashout_update.Add(clientcashincashout_Update);
|
||||
//ClientCashLog(r.id, "修改资金", comment, req.Explain);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -912,35 +914,26 @@ namespace YLErp.Modules.ClientModule
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ((("出金".Equals(e.Direction) && PS.Config.Company != Configuration.CompanyEnum.中金) || ("应付".Equals(e.Direction) && ClientCashInCashOut.人工操作_预付金.Equals(e.Action))) && valuedateBLL.SystemDate.SpecialOperateForCashOut != 1 && PS.Config.Company != Configuration.CompanyEnum.中金)
|
||||
{
|
||||
//查看当前客户可用资金是否符合出金条件
|
||||
var clientbalance = ClientBalanceUtility.GetClientBanlances(new List<int> { e.ClientId.Value }, DateTime.MinValue, DateTime.Now.Date).FirstOrDefault();
|
||||
//当日可取现金
|
||||
var availableFund = clientbalance == null ? 0 : clientbalance.DesirableFund;
|
||||
//else if ((("出金".Equals(e.Direction) && PS.Config.Company != Configuration.CompanyEnum.中金) || ("应付".Equals(e.Direction) && ClientCashInCashOut.人工操作_预付金.Equals(e.Action))) && valuedateBLL.SystemDate.SpecialOperateForCashOut != 1 && PS.Config.Company != Configuration.CompanyEnum.中金)
|
||||
//{
|
||||
// //查看当前客户可用资金是否符合出金条件
|
||||
// var clientbalance = ClientBalanceUtility.GetClientBanlances(new List<int> { e.ClientId.Value }, DateTime.MinValue, DateTime.Now.Date).FirstOrDefault();
|
||||
// //当日可取现金
|
||||
// var availableFund = clientbalance == null ? 0 : clientbalance.DesirableFund;
|
||||
|
||||
//对于0.999999999情况的数据做下处理
|
||||
var realAvailableFund = Math.Round((availableFund + (e.Money??0)) * Math.Pow(10, 8)) / Math.Pow(10, 8);
|
||||
//如果当前出金金额大于可用资金(不扣除冻结出金部分)则抛出错误
|
||||
if (Math.Abs(e.Money ?? 0) > realAvailableFund)
|
||||
{
|
||||
if ("出金".Equals(e.Direction))
|
||||
{
|
||||
throw new ServiceException($"部分确认错误 客户:{e.ClientName},出金:{e.Money},实际可取出资金:{realAvailableFund:0.00};");
|
||||
}
|
||||
throw new ServiceException($"部分确认错误,客户:{e.ClientName},应付预付金:{Math.Abs(e.Money ?? 0)},实际可取出资金:{realAvailableFund:0.00};");
|
||||
}
|
||||
// //对于0.999999999情况的数据做下处理
|
||||
// var realAvailableFund = Math.Round((availableFund + (e.Money??0)) * Math.Pow(10, 8)) / Math.Pow(10, 8);
|
||||
// //如果当前出金金额大于可用资金(不扣除冻结出金部分)则抛出错误
|
||||
// if (Math.Abs(e.Money ?? 0) > realAvailableFund)
|
||||
// {
|
||||
// if ("出金".Equals(e.Direction))
|
||||
// {
|
||||
// throw new ServiceException($"部分确认错误 客户:{e.ClientName},出金:{e.Money},实际可取出资金:{realAvailableFund:0.00};");
|
||||
// }
|
||||
// throw new ServiceException($"部分确认错误,客户:{e.ClientName},应付预付金:{Math.Abs(e.Money ?? 0)},实际可取出资金:{realAvailableFund:0.00};");
|
||||
// }
|
||||
|
||||
}
|
||||
if (PS.Config.Company == Configuration.CompanyEnum.中金)
|
||||
{
|
||||
|
||||
if ("出金".Equals(e.Direction) && !CheckClientCashOut(e.ClientId ?? 0, Math.Abs(e.Money ?? 0), e.CurrencyCode))
|
||||
{
|
||||
throw new ServiceException($"{e.ClientName}币种{e.CurrencyCode}的出金金额不能大于客户账户余额");
|
||||
}
|
||||
|
||||
}
|
||||
//}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user