Пример #1
0
 /// <summary>
 /// OFXファイル書き出し (backward compat)
 /// </summary>
 /// <param name="account">アカウント</param>
 public void WriteFile(Account account)
 {
     List<Account> accounts = new List<Account>();
     accounts.Add(account);
     WriteFile(accounts);
 }
Пример #2
0
 private void readAndGenerateOfx(Account c)
 {
     if (readTransactions(c))
     {
         generateOfx(c);
     }
 }
Пример #3
0
        // カードを読み込む
        // 正常に読み込んだら true を返す
        private bool readTransactions(Account c)
        {
            try
            {
                c.ReadTransactions();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, Properties.Resources.Error);
                return false;
            }
            if (c.transactions == null)
            {
                MessageBox.Show(Properties.Resources.CardReadError, Properties.Resources.Error);
                return false;
            }

            // 無効な取引を削除する
            c.transactions.removeInvalidTransactions();

            // 0円の取引を削除する
            if (Properties.Settings.Default.IgnoreZeroTransaction)
            {
                c.transactions.removeZeroTransactions();
            }

            return true;
        }
Пример #4
0
        // Statement Transaction Response (STMTTRNRS / CCSTMTTRNRS)
        private void statementTransactionResponse(XmlElement parent, Account account)
        {
            XmlElement e;
            if (!account.isCreditCard)
            {
                e = appendElement(parent, "STMTTRNRS");
            }
            else
            {
                e = appendElement(parent, "CCSTMTTRNRS");
            }

            // TRNUID
            appendElementWithText(e, "TRNUID", "0");

            // STATUS
            XmlElement status = appendElement(e, "STATUS");
            appendElementWithText(status, "CODE", "0");
            appendElementWithText(status, "SEVERITY", "INFO");

            // STMTRS / CCSTMTRS
            statementResponse(e, account);
        }
Пример #5
0
 private void generateOfx(Account c)
 {
     List<Account> accounts = new List<Account>();
     accounts.Add(c);
     generateOfx(accounts);
 }
Пример #6
0
        // Statement Response (STMTRS or CCSTMTRS)
        private void statementResponse(XmlElement parent, Account account)
        {
            Transaction first, last;
            getFirstLastDate(account, out first, out last);

            XmlElement e;
            if (!account.isCreditCard)
            {
                e = appendElement(parent, "STMTRS");
            }
            else
            {
                e = appendElement(parent, "CCSTMTRS");
            }

            // CURDEF
            appendElementWithText(e, "CURDEF", "JPY");

            // BANKACCTFROM / CCACCTFROM
            accountFrom(e, account);

            // BANKTRANLIST
            bankTransactionList(e, account, first, last);

            // LEDGERBAL
            ledgerBal(e, account, last);
        }
Пример #7
0
        // 残高
        private void ledgerBal(XmlElement parent, Account account, Transaction last)
        {
            XmlElement e = appendElement(parent, "LEDGERBAL");

            int balance;
            if (account.hasBalance)
            {
                balance = account.balance;
            }
            else
            {
                balance = last.balance;
            }

            appendElementWithText(e, "BALAMT", balance.ToString());
            appendElementWithText(e, "DTASOF", dateStr(last.date));
        }
Пример #8
0
 private void getFirstLastDate(Account account, out Transaction first, out Transaction last)
 {
     first = null;
     last = null;
     foreach (Transaction t in account.transactions)
     {
         // 先頭エントリ: 同じ日付の場合は、前のエントリを優先
         if (first == null || t.date < first.date)
         {
             first = t;
         }
         // 最終エントリ: 同じ日付の場合は、後のエントリを優先
         if (last == null || t.date >= last.date)
         {
             last = t;
         }
     }
 }
Пример #9
0
        // Bank Transaction List
        private void bankTransactionList(XmlElement parent, Account account, Transaction first, Transaction last)
        {
            XmlElement e = appendElement(parent, "BANKTRANLIST");

            appendElementWithText(e, "DTSTART", dateStr(first.date));
            appendElementWithText(e, "DTEND", dateStr(last.date));

            foreach (Transaction t in account.transactions.list)
            {
                statementTransaction(e, t);
            }
        }
Пример #10
0
        // Account From (BANKACCTFROM or CCACCTFROM)
        private void accountFrom(XmlElement parent, Account account)
        {
            XmlElement e;
            if (!account.isCreditCard)
            {
                e = appendElement(parent, "BANKACCTFROM");
            }
            else
            {
                e = appendElement(parent, "CCACCTFROM");
            }

            if (!account.isCreditCard)
            {
                appendElementWithText(e, "BANKID", account.bankId != null ? account.bankId.ToString() : null); // TBD
                appendElementWithText(e, "BRANCHID", account.branchId);
            }
            appendElementWithText(e, "ACCTID", account.accountId);
            if (!account.isCreditCard)
            {
                appendElementWithText(e, "ACCTTYPE", "SAVINGS");
            }
        }