GuessTransType() public method

public GuessTransType ( bool isIncome ) : void
isIncome bool
return void
示例#1
0
        // トランザクション解析
        public override bool analyzeTransaction(Transaction t, byte[] data)
        {
            // ID
            t.id = read2b(data, 13);

            // 日付
            int x   = read4b(data, 18);
            int yy  = x >> 27;
            int mm  = (x >> 23) & 0xf;
            int dd  = (x >> 18) & 0x1f;
            int hh  = (x >> 13) & 0x1f;
            int min = (x >> 7) & 0x3f;

            t.date = new DateTime(yy + 2005, mm, dd, hh, min, 0);

            // 残高
            x         = read3b(data, 21);
            t.balance = (x >> 5) & 0x3ffff;

            // 出金額
            x       = read3b(data, 23);
            t.value = -((x >> 3) & 0x3ffff);

            // 入金額
            x        = read3b(data, 25);
            t.value += (x >> 2) & 0x1ffff;

            // 適用
            switch (data[17])
            {
            case 0x0c:
            case 0x10:
                t.desc = "WAONチャージ";
                break;

            case 0x04:
            default:
                t.desc = "WAON支払";
                break;
            }
            // TBD : 0-12 に備考が入っているのでこちらを使うべきか?

            // トランザクションタイプを自動設定
            t.GuessTransType(t.value >= 0);

            return(true);
        }
示例#2
0
        // 1行解析
        // CSV の各カラムはすでに分解されているものとする
        public Transaction parse(string[] row)
        {
            Transaction t = new Transaction();

            // 日付
            string date = getCol(row, "Date");
            if (date != null)
            {
                t.date = CsvUtil.parseDate(date);
            }
            else {
                int year = getColInt(row, "Year");
                int month = getColInt(row, "Month");
                int day = getColInt(row, "Day");

                if (year == 0 || month == 0 || day == 0) {
                    return null;
                }

                if (year < 100)
                {
                    year += 2000;
                }
                t.date = new DateTime(year, month, day, 0, 0, 0);
            }

            // ID
            string id = getCol(row, "Id");
            if (id != null)
            {
                try
                {
                    t.id = getColInt(row, "Id");
                }
                catch (FormatException)
                {
                    // just ignore : do not use ID
                }
            }

            // 金額
            t.value = getColInt(row, "Income");
            t.value -= getColInt(row, "Outgo");

            // 残高
            t.balance = getColInt(row, "Balance");

            // 適用
            t.desc = getMultiCol(row, "Desc");

            // 備考
            t.memo = getMultiCol(row, "Memo");

            // トランザクションタイプを自動設定
            t.GuessTransType(t.value >= 0);

            return t;
        }
示例#3
0
        // 1行解析
        // CSV の各カラムはすでに分解されているものとする
        public Transaction parse(string[] row)
        {
            Transaction t = new Transaction();

            // 日付
            string date = getCol(row, "Date");

            if (date != null)
            {
                t.date = CsvUtil.parseDate(date);
            }
            else
            {
                int year  = getColInt(row, "Year");
                int month = getColInt(row, "Month");
                int day   = getColInt(row, "Day");

                if (year == 0 || month == 0 || day == 0)
                {
                    return(null);
                }

                if (year < 100)
                {
                    year += 2000;
                }
                t.date = new DateTime(year, month, day, 0, 0, 0);
            }

            // ID
            string id = getCol(row, "Id");

            if (id != null)
            {
                try
                {
                    t.id = getColInt(row, "Id");
                }
                catch (FormatException)
                {
                    // just ignore : do not use ID
                }
            }

            // 金額
            t.value  = getColInt(row, "Income");
            t.value -= getColInt(row, "Outgo");

            // 残高
            t.balance = getColInt(row, "Balance");

            // 適用
            t.desc = getMultiCol(row, "Desc");

            // 備考
            t.memo = getMultiCol(row, "Memo");

            // トランザクションタイプを自動設定
            t.GuessTransType(t.value >= 0);

            return(t);
        }