Ejemplo n.º 1
0
        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
        }