Adding
This commit is contained in:
+13
@@ -0,0 +1,13 @@
|
||||
using LCU.Library.Internal.IncentiveApiModels.Entities;
|
||||
using LCU.Library.Internal.IncentiveApiModels.Enums;
|
||||
|
||||
namespace LCU.API.Internal.Operations.IncentiveApi.Models.ExternalActivities;
|
||||
|
||||
public interface IExternalActivity
|
||||
{
|
||||
public ActivityType GetActivityType();
|
||||
public Product GetProductType();
|
||||
public string GetSourceId();
|
||||
public SystemType GetSystemType();
|
||||
public Activity MapToActivity();
|
||||
}
|
||||
+157
@@ -0,0 +1,157 @@
|
||||
using LCU.Library.Internal.IncentiveApiModels.Entities;
|
||||
using LCU.Library.Internal.IncentiveApiModels.Enums;
|
||||
using LCU.API.Internal.Operations.IncentiveApiLib.Services;
|
||||
|
||||
namespace LCU.API.Internal.Operations.IncentiveApi.Models.ExternalActivities;
|
||||
|
||||
public class NewActivityManagerReferral : IExternalActivity
|
||||
{
|
||||
public long ActivityId { get; set; }
|
||||
public string OriginatorUserId { get; set; }
|
||||
public long OriginatorPersNbr { get; set; }
|
||||
public string OriginatorFirstName { get; set; }
|
||||
public string OriginatorLastName { get; set; }
|
||||
public string OriginatorMiddleInitial { get; set; }
|
||||
public long? LandmarkCreditCardNumber { get; set; }
|
||||
public long? DirectDepositAccountNumber { get; set; }
|
||||
public string EmployeeEmail { get; set; }
|
||||
public DateTime LastUpdatedDateTime { get; set; }
|
||||
public string Campaign { get; set; }
|
||||
public string Category { get; set; }
|
||||
public string ReferralStation { get; set; }
|
||||
public int IsInitialStation { get; set; }
|
||||
public int IsFinalStation { get; set; }
|
||||
public DateTime OriginationDateTime { get; set; }
|
||||
public DateTime StationDateTime { get; set; }
|
||||
public string OriginatingBranchName { get; set; }
|
||||
public string ReferredPersonNbr { get; set; }
|
||||
public string ReferredOrgNbr { get; set; }
|
||||
public string ReferredPersOrgNbr { get; set; }
|
||||
public string ReferredPersonName { get; set; }
|
||||
public string ReferredOrgName { get; set; }
|
||||
public string PreferredPhone { get; set; }
|
||||
public string Comm1 { get; set; }
|
||||
public string Comm2 { get; set; }
|
||||
public string Comm3 { get; set; }
|
||||
public string Comm4 { get; set; }
|
||||
public string Comm5 { get; set; }
|
||||
public string Comm6 { get; set; }
|
||||
public string Comm7 { get; set; }
|
||||
|
||||
private static readonly TimeZoneInfo AssumedSourceTimezone = TimeZoneConverter.TZConvert.GetTimeZoneInfo("America/Chicago");
|
||||
private readonly int IsInFinalStation = 1;
|
||||
|
||||
public Activity MapToActivity()
|
||||
{
|
||||
return new Activity()
|
||||
{
|
||||
SourceId = GetSourceId(),
|
||||
Product = GetProductType(),
|
||||
Accepted = GetActivityDate(),
|
||||
Type = ActivityType.Referral,
|
||||
SourceSystem = GetSystemType(),
|
||||
SourceCreated = TimeZoneInfo.ConvertTime(OriginationDateTime, AssumedSourceTimezone, TimeZoneInfo.Utc),
|
||||
Detail = new ActivityDetail()
|
||||
{
|
||||
MemberName = ReferredOrgName ?? ReferredPersonName,
|
||||
DnaPersonNbr = OriginatorPersNbr.ToString(),
|
||||
SubjectPersonNbr = ReferredPersonNbr,
|
||||
SubjectOrgNbr = ReferredOrgNbr,
|
||||
StationName = ReferralStation,
|
||||
BranchOrgName = OriginatingBranchName,
|
||||
AccountNumber = GetAccountNumber()
|
||||
},
|
||||
MetaData = DataParsingService.MapActivityMetaData(new List<string> { PreferredPhone, Comm1, Comm2, Comm3, Comm4, Comm5, Comm6, Comm7 }),
|
||||
DepartmentId = -1,
|
||||
EmployeeId = null,
|
||||
State = ActivityState.Created,
|
||||
EmployeeEmail = EmployeeEmail
|
||||
};
|
||||
}
|
||||
|
||||
private DateTime GetActivityDate()
|
||||
{
|
||||
var isLicReferral = Campaign.Equals("LIC Referral", StringComparison.InvariantCultureIgnoreCase);
|
||||
if (IsFinalStation == IsInFinalStation && isLicReferral)
|
||||
{
|
||||
return StationDateTime = StationDateTime.Date.AddHours(12);
|
||||
}
|
||||
|
||||
return DateTime.UtcNow.Date.AddHours(12);
|
||||
}
|
||||
|
||||
public ActivityType GetActivityType()
|
||||
{
|
||||
return ActivityType.Referral;
|
||||
}
|
||||
|
||||
public string GetSourceId()
|
||||
{
|
||||
return ActivityId.ToString();
|
||||
}
|
||||
|
||||
public Product GetProductType()
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(Campaign))
|
||||
{
|
||||
if (Campaign.Equals("ATM Card", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return Product.ATMCard;
|
||||
}
|
||||
|
||||
if (Campaign.Equals("Check Card Referral", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return Product.CheckCard;
|
||||
}
|
||||
|
||||
if (Campaign.Equals("Checking Referral", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return Product.NewChecking;
|
||||
}
|
||||
|
||||
if (Campaign.Equals("Mortgage Referral", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return Product.Mortgage;
|
||||
}
|
||||
|
||||
if (Campaign.Equals("Direct Deposit", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return Product.DirectDeposit;
|
||||
}
|
||||
|
||||
if (Campaign.Equals("CC Balance Transfer", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return Product.CreditCardBalanceTransfer;
|
||||
}
|
||||
|
||||
if (Campaign.Equals("LIC Referral", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return Product.LIC;
|
||||
}
|
||||
|
||||
if (Campaign.Equals("First Mortgage Referral", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return Product.FirstMortgageReferral;
|
||||
}
|
||||
|
||||
if (Campaign.Equals("eStatement Referral", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return Product.eStatement;
|
||||
}
|
||||
}
|
||||
|
||||
Log.Error($"Could not parse product type: {Campaign}for an incoming referral with id:{ActivityId} originating from person :{OriginatorPersNbr}");
|
||||
throw new Exception("Could not parse product type for incoming referral. See logs.");
|
||||
}
|
||||
|
||||
private string GetAccountNumber()
|
||||
{
|
||||
var accountNumber = (DirectDepositAccountNumber ?? LandmarkCreditCardNumber);
|
||||
return accountNumber != null ? accountNumber.ToString() : null;
|
||||
}
|
||||
|
||||
public SystemType GetSystemType()
|
||||
{
|
||||
return SystemType.ActivityManager;
|
||||
}
|
||||
}
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
using LCU.Library.Internal.IncentiveApiModels.Entities;
|
||||
using LCU.Library.Internal.IncentiveApiModels.Enums;
|
||||
using LCU.API.Internal.Operations.IncentiveApiLib.Services;
|
||||
|
||||
namespace LCU.API.Internal.Operations.IncentiveApi.Models.ExternalActivities;
|
||||
|
||||
public class NewAtmCheckCardActivity : IExternalActivity
|
||||
{
|
||||
public long ActivityNbr { get; set; }
|
||||
public DateTime ActivityDateTime { get; set; }
|
||||
public long ResponsiblePersonNbr { get; set; }
|
||||
public string ActivityTypeCde { get; set; }
|
||||
public long AgreementNbr { get; set; }
|
||||
public string CardState { get; set; }
|
||||
public string CardType { get; set; }
|
||||
public long AccountNbr { get; set; }
|
||||
public string OwnerPersonNbr { get; set; }
|
||||
public string OwnerOrgNbr { get; set; }
|
||||
public string AcctStateAtActivity { get; set; }
|
||||
public string AcctStatAtQueryTime { get; set; }
|
||||
public DateTime AcctStateEffDateTime { get; set; }
|
||||
public string AssociateFirst { get; set; }
|
||||
public string AssociateMiddleInit { get; set; }
|
||||
public string AssociateLast { get; set; }
|
||||
public string EmployeeEmail { get; set; }
|
||||
public string TaxOrgName { get; set; }
|
||||
public string TaxPersonName { get; set; }
|
||||
public string TaxPersonPhoneNumbers { get; set; }
|
||||
public string TaxPersonEmailAddresses { get; set; }
|
||||
|
||||
static readonly TimeZoneInfo AssumedSourceTimezone = TimeZoneConverter.TZConvert.GetTimeZoneInfo("America/Chicago");
|
||||
|
||||
public Activity MapToActivity()
|
||||
{
|
||||
return new Activity()
|
||||
{
|
||||
Product = GetProductType(),
|
||||
Type = GetActivityType(),
|
||||
SourceSystem = GetSystemType(),
|
||||
SourceId = ActivityNbr.ToString(),
|
||||
SourceCreated = TimeZoneInfo.ConvertTime(ActivityDateTime, AssumedSourceTimezone, TimeZoneInfo.Utc),
|
||||
Detail = new ActivityDetail()
|
||||
{
|
||||
MemberName = TaxOrgName ?? TaxPersonName,
|
||||
DnaPersonNbr = ResponsiblePersonNbr.ToString(),
|
||||
SubjectPersonNbr = OwnerPersonNbr,
|
||||
SubjectOrgNbr = OwnerOrgNbr,
|
||||
AccountNumber = AccountNbr.ToString(),
|
||||
AccountStatus = AcctStatAtQueryTime,
|
||||
AgreementNumber = AgreementNbr.ToString()
|
||||
},
|
||||
MetaData = DataParsingService.MapActivityMetaData(new List<string> { TaxPersonPhoneNumbers, TaxPersonEmailAddresses }),
|
||||
DepartmentId = -1,
|
||||
EmployeeId = null,
|
||||
EmployeeEmail = EmployeeEmail,
|
||||
Accepted = ActivityDateTime.Date.AddHours(12),
|
||||
State = ActivityState.Created
|
||||
};
|
||||
}
|
||||
|
||||
public ActivityType GetActivityType()
|
||||
{
|
||||
return ActivityType.Other;
|
||||
}
|
||||
|
||||
public Product GetProductType()
|
||||
{
|
||||
return CardType.Equals("ATM", StringComparison.InvariantCultureIgnoreCase) ? Product.ATMCard : Product.CheckCard;
|
||||
}
|
||||
|
||||
public string GetSourceId()
|
||||
{
|
||||
return ActivityNbr.ToString();
|
||||
}
|
||||
|
||||
public List<ActivityMetaData> MapActivityMetaData()
|
||||
{
|
||||
var parsedMetaData = new List<ActivityMetaData>();
|
||||
if (!string.IsNullOrWhiteSpace(TaxPersonEmailAddresses))
|
||||
{
|
||||
foreach (var item in TaxPersonEmailAddresses.Split(",", StringSplitOptions.RemoveEmptyEntries))
|
||||
{
|
||||
parsedMetaData.Add(DataParsingService.DetermineActivityMetaData(item));
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(TaxPersonPhoneNumbers))
|
||||
{
|
||||
foreach (var item in TaxPersonPhoneNumbers.Split(",", StringSplitOptions.RemoveEmptyEntries))
|
||||
{
|
||||
parsedMetaData.Add(DataParsingService.DetermineActivityMetaData(item));
|
||||
}
|
||||
}
|
||||
|
||||
return parsedMetaData;
|
||||
}
|
||||
|
||||
public SystemType GetSystemType()
|
||||
{
|
||||
return SystemType.Dna;
|
||||
}
|
||||
}
|
||||
+94
@@ -0,0 +1,94 @@
|
||||
using LCU.Library.Internal.IncentiveApiModels.Entities;
|
||||
using LCU.Library.Internal.IncentiveApiModels.Enums;
|
||||
using LCU.API.Internal.Operations.IncentiveApiLib.Services;
|
||||
using LCU.API.Internal.Operations.IncentiveApi.Models.Constants;
|
||||
|
||||
namespace LCU.API.Internal.Operations.IncentiveApi.Models.ExternalActivities;
|
||||
|
||||
public class NewCheckingAccountActivity : IExternalActivity
|
||||
{
|
||||
public long ActivityNbr { get; set; }
|
||||
public DateTime ActivityDateTime { get; set; }
|
||||
public long ResponsiblePersonNbr { get; set; }
|
||||
public string ActivityTypeCode { get; set; }
|
||||
public long SubjectAccountNbr { get; set; }
|
||||
public string MinorAccountType { get; set; }
|
||||
public string AssociateFirst { get; set; }
|
||||
public string AssociateMiddleInit { get; set; }
|
||||
public string AssociateLast { get; set; }
|
||||
public string TaxPersonNbr { get; set; }
|
||||
public string TaxOrgNbr { get; set; }
|
||||
public string CurrentAccountStatus { get; set; }
|
||||
public long BranchOrgNbr { get; set; }
|
||||
public string BranchOrgName { get; set; }
|
||||
public string EmployeeEmail { get; set; }
|
||||
public DateTime AccountContractDate { get; set; }
|
||||
public string TaxOrgName { get; set; }
|
||||
public string TaxPersonName { get; set; }
|
||||
public double? OriginalBalance { get; set; }
|
||||
public string TaxPersonPhoneNumbers { get; set; }
|
||||
public string TaxPersonEmailAddresses { get; set; }
|
||||
|
||||
public Activity MapToActivity()
|
||||
{
|
||||
return new Activity()
|
||||
{
|
||||
Product = GetProductType(),
|
||||
Type = ActivityType.Sale,
|
||||
SourceSystem = GetSystemType(),
|
||||
SourceId = GetSourceId(),
|
||||
SourceCreated = AccountContractDate,
|
||||
Detail = new ActivityDetail()
|
||||
{
|
||||
MemberName = TaxOrgName ?? TaxPersonName,
|
||||
DnaPersonNbr = ResponsiblePersonNbr.ToString(),
|
||||
BranchOrgNbr = BranchOrgNbr.ToString(),
|
||||
BranchOrgName = BranchOrgName,
|
||||
SubjectPersonNbr = TaxPersonNbr,
|
||||
SubjectOrgNbr = TaxOrgNbr,
|
||||
AccountNumber = SubjectAccountNbr.ToString(),
|
||||
AccountStatus = CurrentAccountStatus,
|
||||
AccountBalance = OriginalBalance
|
||||
},
|
||||
MetaData = DataParsingService.MapActivityMetaData(new List<string> { TaxPersonPhoneNumbers, TaxPersonEmailAddresses }),
|
||||
DepartmentId = -1,
|
||||
EmployeeId = null,
|
||||
EmployeeEmail = StandardizedEmail(),
|
||||
Accepted = ActivityDateTime.Date.AddHours(12),
|
||||
State = ActivityState.Created
|
||||
};
|
||||
}
|
||||
|
||||
public ActivityType GetActivityType()
|
||||
{
|
||||
return ActivityType.Sale;
|
||||
}
|
||||
|
||||
public string GetSourceId()
|
||||
{
|
||||
return ActivityNbr.ToString();
|
||||
}
|
||||
|
||||
public Product GetProductType()
|
||||
{
|
||||
return Product.NewChecking;
|
||||
}
|
||||
|
||||
public SystemType GetSystemType()
|
||||
{
|
||||
if (
|
||||
!string.IsNullOrWhiteSpace(EmployeeEmail)
|
||||
&& string.Equals(EmployeeEmail, SystemAppUserConstants.DigitalBankingEmail, StringComparison.CurrentCultureIgnoreCase)
|
||||
)
|
||||
{
|
||||
return SystemType.DigitalBanking;
|
||||
}
|
||||
|
||||
return SystemType.Dna;
|
||||
}
|
||||
|
||||
public string StandardizedEmail()
|
||||
{
|
||||
return !string.IsNullOrWhiteSpace(EmployeeEmail) ? EmployeeEmail.ToUpper() : EmployeeEmail;
|
||||
}
|
||||
}
|
||||
+186
@@ -0,0 +1,186 @@
|
||||
using LCU.Library.Internal.IncentiveApiModels.Entities;
|
||||
using LCU.Library.Internal.IncentiveApiModels.Enums;
|
||||
using LCU.API.Internal.Operations.IncentiveApiLib.Services;
|
||||
|
||||
namespace LCU.API.Internal.Operations.IncentiveApi.Models.ExternalActivities;
|
||||
|
||||
public class NewLoanSaleActivity : IExternalActivity
|
||||
{
|
||||
public long ActivityNbr { get; set; }
|
||||
public DateTime ActivityDateTime { get; set; }
|
||||
public long SubjectAccountNbr { get; set; }
|
||||
public long OriginatingPersonNbr { get; set; }
|
||||
public string ActivityTypeCode { get; set; }
|
||||
public string MajorAccountType { get; set; }
|
||||
public string MinorAccountType { get; set; }
|
||||
public string AssociateFirst { get; set; }
|
||||
public string AssociateMiddleInit { get; set; }
|
||||
public string AssociateLast { get; set; }
|
||||
public string TaxPersonNbr { get; set; }
|
||||
public string TaxOrgNbr { get; set; }
|
||||
public string TaxOrgName { get; set; }
|
||||
public string TaxPersonName { get; set; }
|
||||
public DateTime AccountContractDate { get; set; }
|
||||
public string CurrentAccountStatus { get; set; }
|
||||
public long BranchOrgNbr { get; set; }
|
||||
public string BranchOrgName { get; set; }
|
||||
public string EmployeeEmail { get; set; }
|
||||
public string LoanSourceCode { get; set; }
|
||||
public decimal? LoanAmount { get; set; }
|
||||
public DateTime? DebtProtectionEffectiveDate { get; set; }
|
||||
public DateTime? DebtProtectionInactiveDate { get; set; }
|
||||
public string DebtProtectionCategory { get; set; }
|
||||
public DateTime? YoungestBirthdateOnLoan { get; set; }
|
||||
public int HasOrgRoles { get; set; }
|
||||
public string TaxPersonPhoneNumbers { get; set; }
|
||||
public string TaxPersonEmailAddresses { get; set; }
|
||||
|
||||
public bool IsGapInsuranceEligible()
|
||||
{
|
||||
var isEligible = false;
|
||||
if (!MinorAccountType.Equals("BE21", StringComparison.InvariantCultureIgnoreCase) && LoanAmount.HasValue && LoanAmount.Value <= 100000 && GetProductType() == Product.Vehicle)
|
||||
{
|
||||
isEligible = true;
|
||||
}
|
||||
Log.Information($"New Loan Sale ActivityNbr {ActivityNbr} - {GetProductType()} - {MinorAccountType} - {LoanAmount} GapEligible set: {isEligible} {DateTime.UtcNow} ");
|
||||
return isEligible;
|
||||
}
|
||||
|
||||
public DateTime? GapInsuranceEffectiveDate { get; set; }
|
||||
public DateTime? GapInsuranceInactiveDate { get; set; }
|
||||
|
||||
|
||||
static readonly List<string> DebtProtectionEligibleLoanTypes = new List<string>()
|
||||
{ "DV01", "DV02", "DV03", "DV04", "DV05", "DV06", "DV07", "DV08", "SC01", "SC02", "SG01" };
|
||||
|
||||
static readonly List<string> FirstMortgageEligibleLoanTypes = new List<string>()
|
||||
{ "FNMA", "FRML", "FRMH","MPFR","MJ30","HM01","HM02","MF10","HM03","HM04","DEF3","ML01","ML03",
|
||||
"MJ03","MJ05","MJ07","MF15","MF20","MF30","MC93","MA55","MS30","MS10","MS15","MS20","MS40","MC09",
|
||||
"ML02","MA01","MP05","MA05","MC01","MI05","MC03","MJ55","MC91","MF40","MS05","MS07","MI03","MA03",
|
||||
"MA07","MA27","ML23","ML21","MP25","MC21","MA21","MJ27","HM05","MA23","MA25","MI25","MJ23","MJ25" };
|
||||
|
||||
static readonly TimeZoneInfo AssumedSourceTimezone = TimeZoneConverter.TZConvert.GetTimeZoneInfo("America/Chicago");
|
||||
|
||||
public Product GetProductType()
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(MinorAccountType))
|
||||
{
|
||||
Log.Error($"Null Loan Account Type: {MinorAccountType} for Activity with ActivityNbr: {ActivityNbr}");
|
||||
throw new Exception("Could Not Determine Loan Account Type");
|
||||
}
|
||||
|
||||
if (MinorAccountType.Equals("HE01", StringComparison.InvariantCultureIgnoreCase) ||
|
||||
MinorAccountType.Equals("FE01", StringComparison.InvariantCultureIgnoreCase) ||
|
||||
MinorAccountType.Equals("MF01", StringComparison.InvariantCultureIgnoreCase) ||
|
||||
MinorAccountType.Equals("FE02", StringComparison.InvariantCultureIgnoreCase) ||
|
||||
MinorAccountType.Equals("FLML", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return Product.Mortgage;
|
||||
}
|
||||
|
||||
if (MinorAccountType.Equals("SC01", StringComparison.InvariantCultureIgnoreCase) ||
|
||||
MinorAccountType.Equals("SC02", StringComparison.InvariantCultureIgnoreCase) ||
|
||||
MinorAccountType.Equals("SG01", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
return Product.DebtProtectionEligibleLoan;
|
||||
}
|
||||
|
||||
if (IsFirstMortgageLoan(MinorAccountType))
|
||||
{
|
||||
return Product.FirstMortgageReferral;
|
||||
}
|
||||
|
||||
return Product.Vehicle;
|
||||
}
|
||||
|
||||
public bool IsFirstMortgageLoan(string minorAccountType)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(minorAccountType) && FirstMortgageEligibleLoanTypes.Contains(minorAccountType.ToUpperInvariant()))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public ActivityType GetActivityType()
|
||||
{
|
||||
return ActivityType.Sale;
|
||||
}
|
||||
|
||||
public Activity MapToActivity()
|
||||
{
|
||||
const int addHours = 12;
|
||||
|
||||
return new Activity()
|
||||
{
|
||||
Product = GetProductType(),
|
||||
Type = GetActivityType(),
|
||||
SourceSystem = GetSystemType(),
|
||||
SourceId = ActivityNbr.ToString(),
|
||||
SourceCreated = AccountContractDate,
|
||||
Detail = new ActivityDetail()
|
||||
{
|
||||
MemberName = TaxOrgName ?? TaxPersonName,
|
||||
DnaPersonNbr = OriginatingPersonNbr.ToString(),
|
||||
BranchOrgName = BranchOrgName,
|
||||
BranchOrgNbr = BranchOrgNbr.ToString(),
|
||||
SubjectPersonNbr = TaxPersonNbr,
|
||||
SubjectOrgNbr = TaxOrgNbr,
|
||||
AccountNumber = SubjectAccountNbr.ToString(),
|
||||
AccountStatus = CurrentAccountStatus,
|
||||
AccountBalance = (double?)LoanAmount,
|
||||
DebtProtectionAddDate = DebtProtectionEffectiveDate?.Date.AddHours(addHours),
|
||||
DebtProtectionRemoveDate = DebtProtectionInactiveDate?.Date.AddHours(addHours),
|
||||
IsDebtProtectionEligible = IsEligibleForDebtProtection(),
|
||||
IsGapInsuranceEligible = IsGapInsuranceEligible(),
|
||||
GapInsuranceAddDate = GapInsuranceEffectiveDate?.Date.AddHours(addHours),
|
||||
GapInsuranceRemoveDate = GapInsuranceInactiveDate?.Date.AddHours(addHours)
|
||||
},
|
||||
MetaData = DataParsingService.MapActivityMetaData(new List<string> { TaxPersonPhoneNumbers, TaxPersonEmailAddresses }),
|
||||
DepartmentId = -1,
|
||||
EmployeeId = null,
|
||||
EmployeeEmail = EmployeeEmail,
|
||||
Accepted = AccountContractDate.Date.AddHours(addHours),
|
||||
State = ActivityState.Created
|
||||
};
|
||||
}
|
||||
|
||||
public string GetSourceId()
|
||||
{
|
||||
return ActivityNbr.ToString();
|
||||
}
|
||||
|
||||
public bool IsEligibleForDebtProtection()
|
||||
{
|
||||
var age = AgeOfYoungestBorrower();
|
||||
if (age == null || !DebtProtectionEligibleLoanTypes.Contains(MinorAccountType))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return age < 69 && HasOrgRoles == 0 && TaxOrgNbr == null;
|
||||
}
|
||||
|
||||
public int? AgeOfYoungestBorrower()
|
||||
{
|
||||
if (YoungestBirthdateOnLoan == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
var now = TimeZoneInfo.ConvertTime(DateTime.UtcNow, AssumedSourceTimezone);
|
||||
var age = now.Year - YoungestBirthdateOnLoan.Value.Year;
|
||||
if (now.DayOfYear > YoungestBirthdateOnLoan.Value.DayOfYear)
|
||||
{
|
||||
age--;
|
||||
}
|
||||
|
||||
return age;
|
||||
}
|
||||
|
||||
public SystemType GetSystemType()
|
||||
{
|
||||
return SystemType.Dna;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user