/// Returns true if it seems to be OK. private Boolean CloseRevaluationAccountingBatch(out Int32 glBatchNumber) { Boolean blnReturnValue = false; glBatchNumber = -1; if (F_GLDataset != null) { F_batch.BatchCreditTotal = F_journal.JournalCreditTotal; F_batch.BatchDebitTotal = F_journal.JournalDebitTotal; TVerificationResultCollection AVerifications; blnReturnValue = (TGLTransactionWebConnector.SaveGLBatchTDS( ref F_GLDataset, out AVerifications) == TSubmitChangesResult.scrOK); if (!blnReturnValue) { return(false); } F_GLDataset.AcceptChanges(); blnReturnValue = (TGLTransactionWebConnector.PostGLBatch( F_batch.LedgerNumber, F_batch.BatchNumber, out AVerifications)); if (blnReturnValue) { glBatchNumber = F_batch.BatchNumber; } } return(blnReturnValue); } // Close Revaluation Accounting Batch
/// <summary> /// setup a ledger with simple test data /// </summary> public static int SetupTestLedgerWithPostedBatches() { // create a new ledger int LedgerNumber = CommonNUnitFunctions.CreateNewLedger(); // post a sample batch TCommonAccountingTool commonAccountingTool = new TCommonAccountingTool(LedgerNumber, "NUNIT"); commonAccountingTool.AddBaseCurrencyJournal(); commonAccountingTool.JournalDescription = "Test Data accounts"; string strAccountBank = "6000"; string StandardCostCentre = TGLTransactionWebConnector.GetStandardCostCentre(LedgerNumber); // Accounting of a start balance commonAccountingTool.AddBaseCurrencyTransaction( "6200", StandardCostCentre, "Start Balance", "Debit", MFinanceConstants.IS_DEBIT, 40); commonAccountingTool.AddBaseCurrencyTransaction( "9700", StandardCostCentre, "Start Balance", "Credit", MFinanceConstants.IS_CREDIT, 40); // Accounting of some gifts ... commonAccountingTool.AddBaseCurrencyTransaction( strAccountBank, StandardCostCentre, "Gift Example", "Debit", MFinanceConstants.IS_DEBIT, 100); commonAccountingTool.AddBaseCurrencyTransaction( "0100", StandardCostCentre, "Gift Example", "Credit", MFinanceConstants.IS_CREDIT, 100); // Accounting of some expense ... commonAccountingTool.AddBaseCurrencyTransaction( strAccountBank, StandardCostCentre, "Expense Example", "Credit", MFinanceConstants.IS_CREDIT, 20); commonAccountingTool.AddBaseCurrencyTransaction( "4200", StandardCostCentre, "Expense Example", "Debit", MFinanceConstants.IS_DEBIT, 20); commonAccountingTool.CloseSaveAndPost(); // returns true if posting seemed to work return(LedgerNumber); }
public void Test_01_GL_Batch_Import() { Hashtable requestParams = new Hashtable(); requestParams.Add("ALedgerNumber", FLedgerNumber); requestParams.Add("Delimiter", ";"); requestParams.Add("DateFormatString", "dd/MM/yyyy"); requestParams.Add("DatesMayBeIntegers", false); requestParams.Add("NumberFormat", "European"); requestParams.Add("NewLine", Environment.NewLine); string strContent = CommonNUnitFunctions.LoadCSVFileToString("csharp\\ICT\\Testing\\lib\\MFinance\\GL\\" + "test-csv\\glbatch-import.csv"); strContent = strContent.Replace("31/07/2010", "31/07/" + DateTime.Now.Year.ToString()); strContent = strContent.Replace("02/07/2010", "02/07/" + DateTime.Now.Year.ToString()); strContent = strContent.Replace("{ledgernumber}", FLedgerNumber.ToString()); TVerificationResultCollection verificationResult; bool refreshRequired; bool importSuccess = TGLTransactionWebConnector.ImportGLBatches(requestParams, strContent, out refreshRequired, out verificationResult); if (!TVerificationHelper.IsNullOrOnlyNonCritical(verificationResult)) { TLogging.Log(verificationResult.BuildVerificationResultString()); } Assert.IsTrue(importSuccess, "Import glbatch-import.csv done well ...."); }
public void TestIncExpStatement() { string testFile = "../../csharp/ICT/Testing/lib/MFinance/server/Reporting/TestData/IncExpStmt.Test.xml"; int LedgerNumber = 43; TParameterList SpecificParameters = new TParameterList(); SpecificParameters.Add("param_start_period_i", 1); SpecificParameters.Add("param_end_period_i", 1); SpecificParameters.Add("param_costcentreoptions", "SelectedCostCentres"); string StandardCostCentre = TGLTransactionWebConnector.GetStandardCostCentre(LedgerNumber); SpecificParameters.Add("param_cost_centre_codes", StandardCostCentre); TReportTestingTools.CalculateReport(testFile, SpecificParameters, LedgerNumber); TReportTestingTools.TestResult(testFile, LedgerNumber); }
private void CloseRevaluationAccountingBatch() { if (F_GLDataset != null) { F_batch.BatchCreditTotal = F_journal.JournalCreditTotal; F_batch.BatchDebitTotal = F_journal.JournalDebitTotal; TVerificationResultCollection AVerifications; bool blnReturnValue = (TGLTransactionWebConnector.SaveGLBatchTDS( ref F_GLDataset, out AVerifications) == TSubmitChangesResult.scrOK); F_GLDataset.AcceptChanges(); if (blnReturnValue) { //blnVerificationCollectionContainsData = true; } blnReturnValue = (TGLTransactionWebConnector.PostGLBatch( F_batch.LedgerNumber, F_batch.BatchNumber, out AVerifications)); } }
public static Int32 CreateGLBatch(BankImportTDS AMainDS, Int32 ALedgerNumber, Int32 AStatementKey, Int32 AGLBatchNumber, out TVerificationResultCollection AVerificationResult) { AMainDS.AEpTransaction.DefaultView.RowFilter = String.Format("{0}={1}", AEpTransactionTable.GetStatementKeyDBName(), AStatementKey); AMainDS.AEpStatement.DefaultView.RowFilter = String.Format("{0}={1}", AEpStatementTable.GetStatementKeyDBName(), AStatementKey); AEpStatementRow stmt = (AEpStatementRow)AMainDS.AEpStatement.DefaultView[0].Row; AVerificationResult = null; Int32 DateEffectivePeriodNumber, DateEffectiveYearNumber; TDBTransaction Transaction = DBAccess.GDBAccessObj.BeginTransaction(IsolationLevel.ReadCommitted); if (!TFinancialYear.IsValidPostingPeriod(ALedgerNumber, stmt.Date, out DateEffectivePeriodNumber, out DateEffectiveYearNumber, Transaction)) { string msg = String.Format(Catalog.GetString("Cannot create a GL batch for date {0} since it is not in an open period of the ledger."), stmt.Date.ToShortDateString()); TLogging.Log(msg); AVerificationResult = new TVerificationResultCollection(); AVerificationResult.Add(new TVerificationResult(Catalog.GetString("Creating GL Batch"), msg, TResultSeverity.Resv_Critical)); DBAccess.GDBAccessObj.RollbackTransaction(); return(-1); } Int32 BatchYear, BatchPeriod; // if DateEffective is outside the range of open periods, use the most fitting date DateTime DateEffective = stmt.Date; TFinancialYear.GetLedgerDatePostingPeriod(ALedgerNumber, ref DateEffective, out BatchYear, out BatchPeriod, Transaction, true); ALedgerTable LedgerTable = ALedgerAccess.LoadByPrimaryKey(ALedgerNumber, Transaction); DBAccess.GDBAccessObj.RollbackTransaction(); GLBatchTDS GLDS = TGLTransactionWebConnector.CreateABatch(ALedgerNumber); ABatchRow glbatchRow = GLDS.ABatch[0]; glbatchRow.BatchPeriod = BatchPeriod; glbatchRow.DateEffective = DateEffective; glbatchRow.BatchDescription = String.Format(Catalog.GetString("bank import for date {0}"), stmt.Date.ToShortDateString()); decimal HashTotal = 0.0M; decimal DebitTotal = 0.0M; decimal CreditTotal = 0.0M; // TODO: support several journals // TODO: support several currencies, support other currencies than the base currency AJournalRow gljournalRow = GLDS.AJournal.NewRowTyped(); gljournalRow.LedgerNumber = glbatchRow.LedgerNumber; gljournalRow.BatchNumber = glbatchRow.BatchNumber; gljournalRow.JournalNumber = glbatchRow.LastJournal + 1; gljournalRow.TransactionCurrency = LedgerTable[0].BaseCurrency; glbatchRow.LastJournal++; gljournalRow.JournalPeriod = glbatchRow.BatchPeriod; gljournalRow.DateEffective = glbatchRow.DateEffective; gljournalRow.JournalDescription = glbatchRow.BatchDescription; gljournalRow.SubSystemCode = CommonAccountingSubSystemsEnum.GL.ToString(); gljournalRow.TransactionTypeCode = CommonAccountingTransactionTypesEnum.STD.ToString(); gljournalRow.ExchangeRateToBase = 1.0m; GLDS.AJournal.Rows.Add(gljournalRow); foreach (DataRowView dv in AMainDS.AEpTransaction.DefaultView) { AEpTransactionRow transactionRow = (AEpTransactionRow)dv.Row; DataView v = AMainDS.AEpMatch.DefaultView; v.RowFilter = AEpMatchTable.GetActionDBName() + " = '" + MFinanceConstants.BANK_STMT_STATUS_MATCHED_GL + "' and " + AEpMatchTable.GetMatchTextDBName() + " = '" + transactionRow.MatchText + "'"; if (v.Count > 0) { AEpMatchRow match = (AEpMatchRow)v[0].Row; ATransactionRow trans = GLDS.ATransaction.NewRowTyped(); trans.LedgerNumber = glbatchRow.LedgerNumber; trans.BatchNumber = glbatchRow.BatchNumber; trans.JournalNumber = gljournalRow.JournalNumber; trans.TransactionNumber = gljournalRow.LastTransactionNumber + 1; trans.AccountCode = match.AccountCode; trans.CostCentreCode = match.CostCentreCode; trans.Reference = match.Reference; trans.Narrative = match.Narrative; trans.TransactionDate = transactionRow.DateEffective; if (transactionRow.TransactionAmount < 0) { trans.AmountInBaseCurrency = -1 * transactionRow.TransactionAmount; trans.TransactionAmount = -1 * transactionRow.TransactionAmount; trans.DebitCreditIndicator = true; DebitTotal += trans.AmountInBaseCurrency; } else { trans.AmountInBaseCurrency = transactionRow.TransactionAmount; trans.TransactionAmount = transactionRow.TransactionAmount; trans.DebitCreditIndicator = false; CreditTotal += trans.AmountInBaseCurrency; } GLDS.ATransaction.Rows.Add(trans); gljournalRow.LastTransactionNumber++; // add one transaction for the bank as well trans = GLDS.ATransaction.NewRowTyped(); trans.LedgerNumber = glbatchRow.LedgerNumber; trans.BatchNumber = glbatchRow.BatchNumber; trans.JournalNumber = gljournalRow.JournalNumber; trans.TransactionNumber = gljournalRow.LastTransactionNumber + 1; trans.AccountCode = stmt.BankAccountCode; trans.CostCentreCode = TLedgerInfo.GetStandardCostCentre(ALedgerNumber); trans.Reference = match.Reference; trans.Narrative = match.Narrative; trans.TransactionDate = transactionRow.DateEffective; if (transactionRow.TransactionAmount < 0) { trans.AmountInBaseCurrency = -1 * transactionRow.TransactionAmount; trans.TransactionAmount = -1 * transactionRow.TransactionAmount; trans.DebitCreditIndicator = false; CreditTotal += trans.AmountInBaseCurrency; } else { trans.AmountInBaseCurrency = transactionRow.TransactionAmount; trans.TransactionAmount = transactionRow.TransactionAmount; trans.DebitCreditIndicator = true; DebitTotal += trans.AmountInBaseCurrency; } GLDS.ATransaction.Rows.Add(trans); gljournalRow.LastTransactionNumber++; } } gljournalRow.JournalDebitTotal = DebitTotal; gljournalRow.JournalCreditTotal = CreditTotal; glbatchRow.BatchDebitTotal = DebitTotal; glbatchRow.BatchCreditTotal = CreditTotal; glbatchRow.BatchControlTotal = HashTotal; TVerificationResultCollection VerificationResult; TSubmitChangesResult result = TGLTransactionWebConnector.SaveGLBatchTDS(ref GLDS, out VerificationResult); if (result == TSubmitChangesResult.scrOK) { return(glbatchRow.BatchNumber); } TLogging.Log("Problems storing GL Batch"); return(-1); }