merge release/dyn-1999_check-bkk-agency-perc

This commit is contained in:
vchikalkin 2022-12-15 11:15:46 +03:00
parent dd855cc831
commit d8a271af8f
11 changed files with 36 additions and 17 deletions

View File

@ -15,7 +15,7 @@ public static partial class CalculateManager
var preparedPayments = requestCalculation.preparedPayments;
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};
var constants = new Constants.Calculation();

View File

@ -15,7 +15,7 @@ public static partial class CalculateManager
var preparedPayments = requestCalculation.preparedPayments;
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};

View File

@ -28,7 +28,7 @@ public static partial class CalculateManager
var preparedPayments = requestCalculation.preparedPayments;
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};
var constants = new Constants.Calculation();

View File

@ -28,7 +28,7 @@ public static partial class CalculateManager
var preparedPayments = requestCalculation.preparedPayments;
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};
var constants = new Constants.Calculation();

View File

@ -31,7 +31,7 @@ public static partial class CalculateManager
var preparedPayments = requestCalculation.preparedPayments;
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};
var constants = new Constants.Calculation();

View File

@ -31,7 +31,7 @@ public static partial class CalculateManager
var preparedPayments = requestCalculation.preparedPayments;
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};
var constants = new Constants.Calculation();

View File

@ -13,4 +13,5 @@ public class Calculation
public double VatValue = 0.2;
public decimal MinBonus = 100;
public double DeltaIRR = 0.02;
public double ESN = 1.271;
}

View File

@ -1,4 +1,7 @@
#nullable enable
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using EvoCalculator.Core.Models.Common.Request;

View File

@ -4,4 +4,5 @@ public class AdditionalData
{
public double? MinCashflowMSFONominal { get; set; }
public double? MaxCashflowMSFONominal { get; set; }
public double? MaxAllAgencyPerc { get; set; }
}

View File

@ -25,7 +25,7 @@ public class ValidationTests
DogDate = DateTime.Now
}
};
var errors = new Validation().ValidatePreparedValues(requestCalculation.preparedValues);
var errors = new Validation().ValidateRequest(requestCalculation);
Assert.Empty(errors);
}
@ -46,7 +46,7 @@ public class ValidationTests
DogDate = DateTime.Now
}
};
var errors = new Validation().ValidatePreparedValues(requestCalculation.preparedValues);
var errors = new Validation().ValidateRequest(requestCalculation);
Assert.Empty(errors);
}
@ -67,7 +67,7 @@ public class ValidationTests
DogDate = DateTime.Now
}
};
var errors = new Validation().ValidatePreparedValues(requestCalculation.preparedValues);
var errors = new Validation().ValidateRequest(requestCalculation);
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);
}
@ -111,7 +111,7 @@ public class ValidationTests
}
};
var errors = new Validation().ValidatePreparedValues(requestCalculation.preparedValues);
var errors = new Validation().ValidateRequest(requestCalculation);
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);
}
@ -155,7 +155,7 @@ public class ValidationTests
}
};
var errors = new Validation().ValidatePreparedValues(requestCalculation.preparedValues);
var errors = new Validation().ValidateRequest(requestCalculation);
Assert.Empty(errors);
}
}

View File

@ -1,14 +1,19 @@
using System.Collections.Generic;
using EvoCalculator.Core.Models.Calculation.Models.Prepared;
using System;
using System.Collections.Generic;
using EvoCalculator.Core.Constants;
using EvoCalculator.Core.Models.Calculation.Models.Request;
namespace EvoCalculator.Core.Tools.Validation;
public class Validation
{
public List<string> ValidatePreparedValues(PreparedValues preparedValues)
public List<string> ValidateRequest(RequestCalculation requestCalculation)
{
var errors = new List<string>();
var preparedValues = requestCalculation.preparedValues;
var additionalData = requestCalculation.additionalData;
if (preparedValues.AcceptSum <= 0)
errors.Add("Стоимость ПЛ с учетом скидки не указана или меньше или равна 0");
@ -27,6 +32,15 @@ public class Validation
errors.Add(
"Первый платеж по графику более 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;
}
}