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 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();
|
||||
|
||||
@ -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};
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
}
|
||||
@ -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;
|
||||
|
||||
@ -9,6 +12,6 @@ public class RequestCalculation
|
||||
public PreparedValues preparedValues { get; set; }
|
||||
public PreparedPayments preparedPayments { get; set; }
|
||||
public AdditionalData? additionalData { get; set; }
|
||||
|
||||
|
||||
public Flags? Flags { get; set; }
|
||||
}
|
||||
@ -4,4 +4,5 @@ public class AdditionalData
|
||||
{
|
||||
public double? MinCashflowMSFONominal { get; set; }
|
||||
public double? MaxCashflowMSFONominal { get; set; }
|
||||
public double? MaxAllAgencyPerc { get; set; }
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user