private void UpdateTransactions(string Iuser, IQueryable<CurrencyLookupItem> aimsCurrencies, IQueryable<AidCategoryLookupItem> aimsAidCategories, string defaultfinancetype, tblProjectInfo p, iatiactivity MatchedProject)
{
#region Commitments
if (MatchedProject.IsCommitmentIncluded)
{
foreach (var trn in MatchedProject.CommitmentsThisDPOnly)
{
var aimsCommitment = new tblProjectFundingCommitment();
p.tblProjectFundingCommitments.Add(aimsCommitment);
aimsCommitment.IDate = DateTime.Now;
aimsCommitment.IUser = Iuser;
aimsCommitment.IsCommitmentTrustFund = false;
//ToDo for co-finance projects it may be different
aimsCommitment.FundSourceId = MatchedProject.AimsFundSourceId;
aimsCommitment.CommitmentAgreementSignDate = trn.transactiondate?.isodate.ToSqlDateTimeNull();
var aimsCurrency = aimsCurrencies.FirstOrDefault(f => f.IATICode == trn.value.currency);
aimsCommitment.CommitmentMaidCurrencyId = aimsCurrency == null ? 1 : aimsCurrency.Id;
aimsCommitment.CommittedAmount = trn.value.Value;
aimsCommitment.CommitmentEffectiveDate = trn.value?.BBexchangeRateDate;
aimsCommitment.ExchangeRateToUSD = trn.value?.BBexchangeRateUSD ?? default(decimal);
aimsCommitment.CommittedAmountInUSD = trn.value?.ValueInUSD;
aimsCommitment.ExchangeRateToBDT = trn.value?.BBexchangeRateBDT ?? default(decimal);
aimsCommitment.CommittedAmountInBDT = trn.value?.ValueInBDT;
aimsCommitment.Remarks = MatchedProject.IsDataSourceAIMS ? trn.description?.narrative.n(0).Value : "Importerd From IATI: " + trn.description?.narrative.n(0).Value;
aimsCommitment.VerificationRemarks = "Importerd From IATI: ";
//AidCategory
if (trn.financetype != null && trn.financetype.code.Length > 1)
defaultfinancetype = trn.financetype.code.StartsWith("4") ? "400" : "100";
var aimsAidCategory = aimsAidCategories.FirstOrDefault(f => f.IATICode == defaultfinancetype);
aimsCommitment.AidCategoryId = aimsAidCategory == null ? 1 : aimsAidCategory.Id;
}
}
#endregion
#region PlannedDisbursements
if (MatchedProject.IsPlannedDisbursmentIncluded)
{
foreach (var trn in MatchedProject.PlannedDisbursments)
{
var aimsPlanDisbursment = new tblProjectFundingPlannedDisbursement();
p.tblProjectFundingPlannedDisbursements.Add(aimsPlanDisbursment);
aimsPlanDisbursment.IDate = DateTime.Now;
aimsPlanDisbursment.IUser = Iuser;
aimsPlanDisbursment.IsPlannedDisbursementTrustFund = false;
//ToDo for co-finance projects it may be different
aimsPlanDisbursment.FundSourceId = MatchedProject.AimsFundSourceId;
aimsPlanDisbursment.PlannedDisbursementPeriodFromDate = trn.periodstart?.isodate.ToSqlDateTimeNull();
aimsPlanDisbursment.PlannedDisbursementPeriodToDate = trn.periodend?.isodate.ToSqlDateTimeNull();
var aimsCurrency = aimsCurrencies.FirstOrDefault(f => f.IATICode == trn.value.currency);
aimsPlanDisbursment.PlannedDisbursementCurrencyId = aimsCurrency == null ? 1 : aimsCurrency.Id;
aimsPlanDisbursment.PlannedDisburseAmount = trn.value.Value;
aimsPlanDisbursment.PlannedDisburseExchangeRateToUSD = trn.value?.BBexchangeRateUSD ?? default(decimal);
aimsPlanDisbursment.PlannedDisburseAmountInUSD = trn.value?.ValueInUSD;
aimsPlanDisbursment.PlannedDisburseExchangeRateToBDT = trn.value?.BBexchangeRateBDT ?? default(decimal);
aimsPlanDisbursment.PlannedDisburseAmountInBDT = trn.value?.ValueInBDT;
//aimsPlanDisbursment.VerificationRemarks = project.IsDataSourceAIMS ? trn.description?.narrative.n(0).Value : "Importerd From IATI: " + trn.description?.narrative.n(0).Value;
aimsPlanDisbursment.VerificationRemarks = "Importerd From IATI: ";
//AidCategory
var aimsAidCategory = aimsAidCategories.FirstOrDefault(f => f.IATICode.StartsWith(defaultfinancetype));
aimsPlanDisbursment.AidCategoryId = aimsAidCategory == null ? 1 : aimsAidCategory.Id;
}
}
#endregion
#region Disbursements
if (MatchedProject.IsDisbursmentIncluded)
{
foreach (var trn in MatchedProject.DisbursmentsThisDPOnly)
{
var aimsDisbursment = new tblProjectFundingActualDisbursement();
p.tblProjectFundingActualDisbursements.Add(aimsDisbursment);
aimsDisbursment.IDate = DateTime.Now;
aimsDisbursment.IUser = Iuser;
aimsDisbursment.IsDisbursedTrustFund = false;
//ToDo for co-finance projects it may be different
aimsDisbursment.FundSourceId = MatchedProject.AimsFundSourceId;
aimsDisbursment.DisbursementDate = trn.transactiondate?.isodate ?? default(DateTime).ToSqlDateTime();
aimsDisbursment.DisbursementToDate = trn.transactiondate?.isodate.ToSqlDateTimeNull();
var aimsCurrency = aimsCurrencies.FirstOrDefault(f => f.IATICode == trn.value.currency);
aimsDisbursment.DisbursedCurrencyId = aimsCurrency == null ? 1 : aimsCurrency.Id;
aimsDisbursment.DisbursedAmount = trn.value.Value;
aimsDisbursment.DisbursedExchangeRateToUSD = trn.value?.BBexchangeRateUSD ?? default(decimal);
aimsDisbursment.DisbursedAmountInUSD = trn.value?.ValueInUSD;
aimsDisbursment.DisbursedExchangeRateToBDT = trn.value?.BBexchangeRateBDT ?? default(decimal);
aimsDisbursment.DisbursedAmountInBDT = trn.value?.ValueInBDT;
aimsDisbursment.Remarks = MatchedProject.IsDataSourceAIMS ? trn.description?.narrative.n(0).Value : "Importerd From IATI: " + trn.description?.narrative.n(0).Value;
aimsDisbursment.VerificationRemarks = "Importerd From IATI: ";
//AidCategory
if (trn.financetype != null && trn.financetype.code.Length > 1)
defaultfinancetype = trn.financetype.code.StartsWith("4") ? "400" : "100";
var aimsAidCategory = aimsAidCategories.FirstOrDefault(f => f.IATICode == defaultfinancetype);
aimsDisbursment.AidCategoryId = aimsAidCategory == null ? 1 : aimsAidCategory.Id;
}
}
#endregion
}