merge release/dyn-1999_check-bkk-agency-perc
This commit is contained in:
parent
dd855cc831
commit
d8a271af8f
@ -15,7 +15,7 @@ public static partial class CalculateManager
|
|||||||
var preparedPayments = requestCalculation.preparedPayments;
|
var preparedPayments = requestCalculation.preparedPayments;
|
||||||
var additionalData = requestCalculation.additionalData;
|
var additionalData = requestCalculation.additionalData;
|
||||||
|
|
||||||
var validationErrors = new Validation().ValidatePreparedValues(preparedValues);
|
var validationErrors = new Validation().ValidateRequest(requestCalculation);
|
||||||
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
||||||
|
|
||||||
var constants = new Constants.Calculation();
|
var constants = new Constants.Calculation();
|
||||||
|
|||||||
@ -15,7 +15,7 @@ public static partial class CalculateManager
|
|||||||
var preparedPayments = requestCalculation.preparedPayments;
|
var preparedPayments = requestCalculation.preparedPayments;
|
||||||
var additionalData = requestCalculation.additionalData;
|
var additionalData = requestCalculation.additionalData;
|
||||||
|
|
||||||
var validationErrors = new Validation().ValidatePreparedValues(preparedValues);
|
var validationErrors = new Validation().ValidateRequest(requestCalculation);
|
||||||
|
|
||||||
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,7 @@ public static partial class CalculateManager
|
|||||||
var preparedPayments = requestCalculation.preparedPayments;
|
var preparedPayments = requestCalculation.preparedPayments;
|
||||||
var additionalData = requestCalculation.additionalData;
|
var additionalData = requestCalculation.additionalData;
|
||||||
|
|
||||||
var validationErrors = new Validation().ValidatePreparedValues(preparedValues);
|
var validationErrors = new Validation().ValidateRequest(requestCalculation);
|
||||||
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
||||||
|
|
||||||
var constants = new Constants.Calculation();
|
var constants = new Constants.Calculation();
|
||||||
|
|||||||
@ -28,7 +28,7 @@ public static partial class CalculateManager
|
|||||||
var preparedPayments = requestCalculation.preparedPayments;
|
var preparedPayments = requestCalculation.preparedPayments;
|
||||||
var additionalData = requestCalculation.additionalData;
|
var additionalData = requestCalculation.additionalData;
|
||||||
|
|
||||||
var validationErrors = new Validation().ValidatePreparedValues(preparedValues);
|
var validationErrors = new Validation().ValidateRequest(requestCalculation);
|
||||||
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
||||||
|
|
||||||
var constants = new Constants.Calculation();
|
var constants = new Constants.Calculation();
|
||||||
|
|||||||
@ -31,7 +31,7 @@ public static partial class CalculateManager
|
|||||||
var preparedPayments = requestCalculation.preparedPayments;
|
var preparedPayments = requestCalculation.preparedPayments;
|
||||||
var additionalData = requestCalculation.additionalData;
|
var additionalData = requestCalculation.additionalData;
|
||||||
|
|
||||||
var validationErrors = new Validation().ValidatePreparedValues(preparedValues);
|
var validationErrors = new Validation().ValidateRequest(requestCalculation);
|
||||||
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
||||||
|
|
||||||
var constants = new Constants.Calculation();
|
var constants = new Constants.Calculation();
|
||||||
|
|||||||
@ -31,7 +31,7 @@ public static partial class CalculateManager
|
|||||||
var preparedPayments = requestCalculation.preparedPayments;
|
var preparedPayments = requestCalculation.preparedPayments;
|
||||||
var additionalData = requestCalculation.additionalData;
|
var additionalData = requestCalculation.additionalData;
|
||||||
|
|
||||||
var validationErrors = new Validation().ValidatePreparedValues(preparedValues);
|
var validationErrors = new Validation().ValidateRequest(requestCalculation);
|
||||||
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
if (validationErrors.Count > 0) return new ManagerResult {Errors = validationErrors};
|
||||||
|
|
||||||
var constants = new Constants.Calculation();
|
var constants = new Constants.Calculation();
|
||||||
|
|||||||
@ -13,4 +13,5 @@ public class Calculation
|
|||||||
public double VatValue = 0.2;
|
public double VatValue = 0.2;
|
||||||
public decimal MinBonus = 100;
|
public decimal MinBonus = 100;
|
||||||
public double DeltaIRR = 0.02;
|
public double DeltaIRR = 0.02;
|
||||||
|
public double ESN = 1.271;
|
||||||
}
|
}
|
||||||
@ -1,4 +1,7 @@
|
|||||||
#nullable enable
|
#nullable enable
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
||||||
using EvoCalculator.Core.Models.Common.Request;
|
using EvoCalculator.Core.Models.Common.Request;
|
||||||
|
|
||||||
|
|||||||
@ -4,4 +4,5 @@ public class AdditionalData
|
|||||||
{
|
{
|
||||||
public double? MinCashflowMSFONominal { get; set; }
|
public double? MinCashflowMSFONominal { get; set; }
|
||||||
public double? MaxCashflowMSFONominal { get; set; }
|
public double? MaxCashflowMSFONominal { get; set; }
|
||||||
|
public double? MaxAllAgencyPerc { get; set; }
|
||||||
}
|
}
|
||||||
@ -25,7 +25,7 @@ public class ValidationTests
|
|||||||
DogDate = DateTime.Now
|
DogDate = DateTime.Now
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var errors = new Validation().ValidatePreparedValues(requestCalculation.preparedValues);
|
var errors = new Validation().ValidateRequest(requestCalculation);
|
||||||
Assert.Empty(errors);
|
Assert.Empty(errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ public class ValidationTests
|
|||||||
DogDate = DateTime.Now
|
DogDate = DateTime.Now
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var errors = new Validation().ValidatePreparedValues(requestCalculation.preparedValues);
|
var errors = new Validation().ValidateRequest(requestCalculation);
|
||||||
Assert.Empty(errors);
|
Assert.Empty(errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ public class ValidationTests
|
|||||||
DogDate = DateTime.Now
|
DogDate = DateTime.Now
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
var errors = new Validation().ValidatePreparedValues(requestCalculation.preparedValues);
|
var errors = new Validation().ValidateRequest(requestCalculation);
|
||||||
Assert.Empty(errors);
|
Assert.Empty(errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ public class ValidationTests
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var errors = new Validation().ValidatePreparedValues(requestCalculation.preparedValues);
|
var errors = new Validation().ValidateRequest(requestCalculation);
|
||||||
Assert.Empty(errors);
|
Assert.Empty(errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,7 +111,7 @@ public class ValidationTests
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var errors = new Validation().ValidatePreparedValues(requestCalculation.preparedValues);
|
var errors = new Validation().ValidateRequest(requestCalculation);
|
||||||
Assert.NotEmpty(errors);
|
Assert.NotEmpty(errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,7 +133,7 @@ public class ValidationTests
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var errors = new Validation().ValidatePreparedValues(requestCalculation.preparedValues);
|
var errors = new Validation().ValidateRequest(requestCalculation);
|
||||||
Assert.NotEmpty(errors);
|
Assert.NotEmpty(errors);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ public class ValidationTests
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
var errors = new Validation().ValidatePreparedValues(requestCalculation.preparedValues);
|
var errors = new Validation().ValidateRequest(requestCalculation);
|
||||||
Assert.Empty(errors);
|
Assert.Empty(errors);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,14 +1,19 @@
|
|||||||
using System.Collections.Generic;
|
using System;
|
||||||
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
|
using System.Collections.Generic;
|
||||||
|
using EvoCalculator.Core.Constants;
|
||||||
|
using EvoCalculator.Core.Models.Calculation.Models.Request;
|
||||||
|
|
||||||
namespace EvoCalculator.Core.Tools.Validation;
|
namespace EvoCalculator.Core.Tools.Validation;
|
||||||
|
|
||||||
public class Validation
|
public class Validation
|
||||||
{
|
{
|
||||||
public List<string> ValidatePreparedValues(PreparedValues preparedValues)
|
public List<string> ValidateRequest(RequestCalculation requestCalculation)
|
||||||
{
|
{
|
||||||
var errors = new List<string>();
|
var errors = new List<string>();
|
||||||
|
|
||||||
|
var preparedValues = requestCalculation.preparedValues;
|
||||||
|
var additionalData = requestCalculation.additionalData;
|
||||||
|
|
||||||
if (preparedValues.AcceptSum <= 0)
|
if (preparedValues.AcceptSum <= 0)
|
||||||
errors.Add("Стоимость ПЛ с учетом скидки не указана или меньше или равна 0");
|
errors.Add("Стоимость ПЛ с учетом скидки не указана или меньше или равна 0");
|
||||||
|
|
||||||
@ -27,6 +32,15 @@ public class Validation
|
|||||||
errors.Add(
|
errors.Add(
|
||||||
"Первый платеж по графику более 50% от стоимости ПЛ с учетом скидки. Необходимо уменьшить первый платеж");
|
"Первый платеж по графику более 50% от стоимости ПЛ с учетом скидки. Необходимо уменьшить первый платеж");
|
||||||
|
|
||||||
|
var AllAgencyPerc = Math.Round(
|
||||||
|
((preparedValues.AgentsSum + preparedValues.DoubleAgentsSum) / (decimal)new Calculation().ESN +
|
||||||
|
preparedValues.DeliverySum +
|
||||||
|
preparedValues.BrokerOfDeliverySum + preparedValues.BrokerSum +
|
||||||
|
preparedValues.FinancialDeptOfDeliverySum) / preparedValues.AcceptSum * 100, 2);
|
||||||
|
|
||||||
|
if (additionalData.MaxAllAgencyPerc != null && AllAgencyPerc > (decimal)additionalData.MaxAllAgencyPerc)
|
||||||
|
errors.Add("По итогам расчета сумма заложенного АВ превышает максимальный уровень % АВ по Предложению");
|
||||||
|
|
||||||
return errors;
|
return errors;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user