/// <summary> /// Adds the fixed asset ledger entity. /// </summary> /// <param name="fAArmortizationDetail">The f a armortization detail.</param> /// <param name="fixedAssetLedger">The fixed asset ledger.</param> /// <returns></returns> private static FixedAssetLedgerEntity AddFixedAssetLedgerEntity(FAArmortizationDetailEntity fAArmortizationDetail, FixedAssetLedgerEntity fixedAssetLedger) { if (fAArmortizationDetail.AccountNumber.Contains("366")) { fixedAssetLedger.BudgetSourceAccount = fAArmortizationDetail.AccountNumber; fixedAssetLedger.ExchangeRate = (decimal)fAArmortizationDetail.ExchangeRate; if (fAArmortizationDetail.CurrencyCode.Equals("USD")) { fixedAssetLedger.BudgetSourcelDebitAmount += fAArmortizationDetail.AmountOC; fixedAssetLedger.BudgetSourcelDebitAmountExchange += fAArmortizationDetail.AmountOC; } else { fixedAssetLedger.BudgetSourcelDebitAmount += fAArmortizationDetail.AmountOC; fixedAssetLedger.BudgetSourcelDebitAmountExchange += fAArmortizationDetail.AmountExchange; } } //if (fAArmortizationDetail.CorrespondingAccountNumber.Contains("2141") || fAArmortizationDetail.CorrespondingAccountNumber.Contains("2143")) if (fAArmortizationDetail.CorrespondingAccountNumber.Contains("2141") || fAArmortizationDetail.CorrespondingAccountNumber.Contains("2142")) // thông tư mới lấy đầu 2141 và 2142 { fixedAssetLedger.DepreciationAccount = fAArmortizationDetail.CorrespondingAccountNumber; if (fAArmortizationDetail.CurrencyCode.Equals("USD")) { fixedAssetLedger.DepreciationCreditAmount += fAArmortizationDetail.AmountOC; fixedAssetLedger.DepreciationCreditAmountExchange += fAArmortizationDetail.AmountOC; } else { fixedAssetLedger.DepreciationCreditAmount += fAArmortizationDetail.AmountOC; fixedAssetLedger.DepreciationCreditAmountExchange += fAArmortizationDetail.AmountExchange; } } return(fixedAssetLedger); }
/// <summary> /// Takes the specified f a armortization. /// </summary> /// <param name="fAArmortization">The f a armortization.</param> /// <returns></returns> private static object[] Take(FAArmortizationDetailEntity fAArmortization) { return(new object[] { @"RefDetailID", fAArmortization.RefDetailId, @"RefID", fAArmortization.RefId, @"FixedAssetID", fAArmortization.FixedAssetId, @"AccountNumber", fAArmortization.AccountNumber, @"CorrespondingAccountNumber", fAArmortization.CorrespondingAccountNumber, @"Description", fAArmortization.Description, @"Quantity", fAArmortization.Quantity, @"CurrencyCode", fAArmortization.CurrencyCode, @"ExchangeRate", fAArmortization.ExchangeRate, @"AmountOC", fAArmortization.AmountOC, @"AmountExchange", fAArmortization.AmountExchange, @"VoucherTypeID", fAArmortization.VoucherTypeId, @"BudgetSourceCode", fAArmortization.BudgetSourceCode, @"BudgetItemCode", fAArmortization.BudgetItemCode, @"BudgetChapterCode", fAArmortization.BudgetChapterCode, @"BudgetCategoryCode", fAArmortization.BudgetCategoryCode, @"DepartmentID", fAArmortization.DepartmentId, @"ProjectID", fAArmortization.ProjectId, @"AutoBusinessId", fAArmortization.AutoBusinessId }); }
/// <summary> /// Inserts the account balance. /// </summary> /// <param name="faArmortizationEntity">The fa armortization entity.</param> /// <param name="faArmortizationDetailEntity">The fa armortization detail entity.</param> public void InsertAccountBalance(FAArmortizationEntity faArmortizationEntity, FAArmortizationDetailEntity faArmortizationDetailEntity) { //insert AccountBalance for debit account var accountBalanceForDebit = AddAccountBalanceForDebit(faArmortizationEntity, faArmortizationDetailEntity); var accountBalanceForDebitExit = AccountBalanceDao.GetExitsAccountBalance(accountBalanceForDebit); if (accountBalanceForDebitExit != null) { UpdateAccountBalance(accountBalanceForDebitExit, accountBalanceForDebit.MovementDebitAmountOC, accountBalanceForDebit.MovementDebitAmountExchange, true, 1); } else { AccountBalanceDao.InsertAccountBalance(accountBalanceForDebit); } //insert AccountBalance for credit account var accountBalanceForCredit = AddAccountBalanceForCredit(faArmortizationEntity, faArmortizationDetailEntity); var accountBalanceForCreditExit = AccountBalanceDao.GetExitsAccountBalance(accountBalanceForCredit); if (accountBalanceForCreditExit != null) { UpdateAccountBalance(accountBalanceForCreditExit, accountBalanceForCredit.MovementCreditAmountOC, accountBalanceForCredit.MovementCreditAmountExchange, true, 2); } else { AccountBalanceDao.InsertAccountBalance(accountBalanceForCredit); } }
/// <summary> /// Adds the account balance for credit. /// </summary> /// <param name="faArmortizationEntity">The fa armortization entity.</param> /// <param name="faArmortizationDetailEntity">The fa armortization detail entity.</param> /// <returns></returns> public AccountBalanceEntity AddAccountBalanceForCredit(FAArmortizationEntity faArmortizationEntity, FAArmortizationDetailEntity faArmortizationDetailEntity) { //credit account return(new AccountBalanceEntity { BalanceDate = faArmortizationEntity.PostedDate, CurrencyCode = faArmortizationDetailEntity.CurrencyCode, ExchangeRate = (decimal)faArmortizationDetailEntity.ExchangeRate, AccountNumber = faArmortizationDetailEntity.CorrespondingAccountNumber, MovementCreditAmountOC = faArmortizationDetailEntity.AmountOC, MovementCreditAmountExchange = faArmortizationDetailEntity.AmountExchange, BudgetSourceCode = faArmortizationDetailEntity.BudgetSourceCode, BudgetItemCode = faArmortizationDetailEntity.BudgetItemCode, ProjectId = faArmortizationDetailEntity.ProjectId, MovementDebitAmountOC = 0, MovementDebitAmountExchange = 0 }); }
/// <summary> /// Adds the journal entry account. /// </summary> /// <param name="faArmortizationEntity">The fa armortization entity.</param> /// <param name="faArmortizationDetailEntity">The fa armortization detail entity.</param> /// <returns></returns> public JournalEntryAccountEntity AddJournalEntryAccount(FAArmortizationEntity faArmortizationEntity, FAArmortizationDetailEntity faArmortizationDetailEntity) { return(new JournalEntryAccountEntity { RefId = faArmortizationEntity.RefId, RefTypeId = faArmortizationEntity.RefTypeId, RefNo = faArmortizationEntity.RefNo, RefDate = faArmortizationEntity.RefDate, PostedDate = faArmortizationEntity.PostedDate, JournalMemo = faArmortizationEntity.JournalMemo, CurrencyCode = faArmortizationDetailEntity.CurrencyCode, ExchangeRate = (decimal)faArmortizationDetailEntity.ExchangeRate, BankAccount = null, RefDetailId = faArmortizationDetailEntity.RefDetailId, AccountNumber = faArmortizationDetailEntity.AccountNumber, CorrespondingAccountNumber = faArmortizationDetailEntity.CorrespondingAccountNumber, AmountOc = faArmortizationDetailEntity.AmountOC, Description = faArmortizationDetailEntity.Description, AmountExchange = faArmortizationDetailEntity.AmountExchange, BudgetSourceCode = faArmortizationDetailEntity.BudgetSourceCode, BudgetItemCode = faArmortizationDetailEntity.BudgetItemCode, AccountingObjectId = null, MergerFundId = null, VoucherTypeId = faArmortizationDetailEntity.VoucherTypeId, ProjectId = faArmortizationDetailEntity.ProjectId }); }
/// <summary> /// Inserts the fa armortization detail. /// </summary> /// <param name="fAArmortizationDetail">The f a armortization detail.</param> /// <returns></returns> public int InsertFAArmortizationDetail(FAArmortizationDetailEntity fAArmortizationDetail) { const string sql = @"uspInsert_FixedAssetArmortizationDetail"; return(Db.Insert(sql, true, Take(fAArmortizationDetail))); }