Esempio n. 1
0
        public async Task <IActionResult> PutNominalAccount(int id, NominalAccount nominalAccount)
        {
            if (id != nominalAccount.NominalAccountId)
            {
                return(BadRequest());
            }

            _context.Entry(nominalAccount).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!NominalAccountExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Esempio n. 2
0
        public async Task <ActionResult <NominalAccount> > PostNominalAccount(NominalAccount nominalAccount)
        {
            _context.NominalAccount.Add(nominalAccount);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetNominalAccount", new { id = nominalAccount.NominalAccountId }, nominalAccount));
        }
Esempio n. 3
0
        private NominalAccountModel BuildNominalAccountModelAC(NominalAccount sdentity)
        {
            NominalAccountModel strNominalAccountList = new NominalAccountModel();

            strNominalAccountList.NominalAccountName = sdentity.NominalAccountName;
            strNominalAccountList.NominalAccountID   = sdentity.NominalAccountID;
            strNominalAccountList.NominalCode        = sdentity.NominalCode;

            return(strNominalAccountList);
        }
        private async Task <string> GetAccountReferenceForFJDocument(
            AccountLineType lineType,
            Company company,
            FxSettlementDocumentDto fxSettlementDocument)
        {
            string         nominalAccountForAccountReference = string.Empty;
            NominalAccount nominalAccount = null;

            switch (lineType)
            {
            case AccountLineType.B:
                nominalAccount = fxSettlementDocument.FxSettlementDocumentTypeId == FxSettlementDocumentType.FxDeal ?
                                 await _masterDataService.GetNominalAccountsById(fxSettlementDocument.NominalAccountId, company.CompanyId) :
                                 await _masterDataService.GetNominalAccountsById(fxSettlementDocument.SettlementNominalAccountId, company.CompanyId);

                nominalAccountForAccountReference = nominalAccount.NominalAccountNumber;
                break;

            case AccountLineType.L:
                var dealthAmount = (await _foreignExchangeRateService.Convert(
                                        CommonRules.BaseCurrency,
                                        fxSettlementDocument.CurrencyCode,
                                        fxSettlementDocument.Amount,
                                        fxSettlementDocument.DocumentDate)).ConvertedValue;
                var settlementAmount = (await _foreignExchangeRateService.Convert(
                                            CommonRules.BaseCurrency,
                                            fxSettlementDocument.SettlementCurrencyCode,
                                            CalculateFxDealAmountForSettlementCurrency(
                                                fxSettlementDocument.Amount,
                                                fxSettlementDocument.SpotRate,
                                                fxSettlementDocument.FwPoints,
                                                fxSettlementDocument.SpotRateType),
                                            fxSettlementDocument.DocumentDate)).ConvertedValue;

                switch (fxSettlementDocument.DealDirectionId)
                {
                case (int)FxDealDirection.Buy:
                    if (dealthAmount < settlementAmount)
                    {
                        // pick the config for FX settlement Loss
                        nominalAccount = await _masterDataService.GetNominalAccountsById(company.SettlementLossNominalId, company.CompanyId);
                    }
                    else
                    {
                        // pick the config for FX settlement Gain
                        nominalAccount = await _masterDataService.GetNominalAccountsById(company.SettlementGainNominalId, company.CompanyId);
                    }

                    nominalAccountForAccountReference = nominalAccount.NominalAccountNumber;

                    break;

                case (int)FxDealDirection.Sell:
                    if (dealthAmount > settlementAmount)
                    {
                        // pick the config for FX settlement Loss
                        nominalAccount = await _masterDataService.GetNominalAccountsById(company.SettlementLossNominalId, company.CompanyId);
                    }
                    else
                    {
                        // pick the config for FX settlement Gain
                        nominalAccount = await _masterDataService.GetNominalAccountsById(company.SettlementGainNominalId, company.CompanyId);
                    }

                    nominalAccountForAccountReference = nominalAccount.NominalAccountNumber;
                    break;
                }

                break;
            }

            return(nominalAccountForAccountReference);
        }