/// <summary> /// asks the user to open a csv file and imports the contents according to the config file /// </summary> /// <param name="AStatementKey">this returns the first key of a statement that was imported. depending on the implementation, several statements can be created from one file</param> /// <param name="ALedgerNumber">the current ledger number</param> /// <param name="ABankAccountCode">the bank account against which the statement should be stored</param> /// <returns></returns> public bool ImportBankStatement(out Int32 AStatementKey, Int32 ALedgerNumber, string ABankAccountCode) { OpenFileDialog DialogOpen = new OpenFileDialog(); DialogOpen.Filter = Catalog.GetString("bank statement (*.csv)|*.csv"); DialogOpen.RestoreDirectory = true; DialogOpen.Title = Catalog.GetString("Please select the bank statement to import"); if (DialogOpen.ShowDialog() != DialogResult.OK) { AStatementKey = -1; return false; } string BankStatementFilename = DialogOpen.FileName; TDlgSelectCSVSeparator DlgSeparator = new TDlgSelectCSVSeparator(false); Boolean fileCanOpen = DlgSeparator.OpenCsvFile(DialogOpen.FileName); if (!fileCanOpen) { MessageBox.Show(Catalog.GetString("Unable to open file."), Catalog.GetString("Import Bank Statement"), MessageBoxButtons.OK, MessageBoxIcon.Stop); AStatementKey = -1; return false; } String dateFormatString = TUserDefaults.GetStringDefault("BankimportCSVDateFormat", "MDY"); String impOptions = TUserDefaults.GetStringDefault("BankimportCSVNumberFormat", ";" + TDlgSelectCSVSeparator.NUMBERFORMAT_AMERICAN); DlgSeparator.DateFormat = dateFormatString; if (impOptions.Length > 1) { DlgSeparator.NumberFormat = impOptions.Substring(1); } DlgSeparator.SelectedSeparator = impOptions.Substring(0, 1); if (DlgSeparator.ShowDialog() != DialogResult.OK) { AStatementKey = -1; return false; } TUserDefaults.SetDefault("BankimportCSVDateFormat", DlgSeparator.DateFormat); TUserDefaults.SetDefault("BankimportCSVNumberFormat", DlgSeparator.SelectedSeparator + DlgSeparator.NumberFormat); StreamReader dataFile = new StreamReader(BankStatementFilename, TTextFile.GetFileEncoding(BankStatementFilename), false); string StatementData = dataFile.ReadToEnd(); dataFile.Close(); BankImportTDS MainDS = ImportBankStatementNonInteractive( ALedgerNumber, ABankAccountCode, DlgSeparator.SelectedSeparator, DlgSeparator.DateFormat, DlgSeparator.NumberFormat, TUserDefaults.GetStringDefault( "BankimportCSVColumnsUsage", "unused,DateEffective,Description,Amount,Currency"), BankStatementFilename, StatementData); if (MainDS != null) { TMBankimportNamespace PluginRemote = new TMBankimportNamespace(); if (PluginRemote.WebConnectors.StoreNewBankStatement( MainDS, out AStatementKey) == TSubmitChangesResult.scrOK) { return AStatementKey != -1; } } AStatementKey = -1; return false; }
private void ProcessStatementsOnServer(BankImportTDS AMainDS) { TMBankimportNamespace PluginRemote = new TMBankimportNamespace(); if (PluginRemote.WebConnectors.StoreNewBankStatement( AMainDS, out FStatementKey) == TSubmitChangesResult.scrOK) { } }