summaryrefslogtreecommitdiff
path: root/noncore/unsupported/qashmoney/transaction.h
blob: 3df43a84066a0e44eb61d00feb23dfe068535711 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#ifndef TRANSACTION_H
#define TRANSACTION_H

#include <qstring.h>
#include <qlistview.h>
#include <qdatetime.h>
#include <sqlite3.h>

#include "preferences.h"

class Transaction
  {
    public:

      Transaction ();
      ~Transaction ();

      // This function adds a new transaction to the database.  It takes the  payee, accountid,
      // budgetid, number, day, month, year, amount, cleared
      void addTransaction ( QString description, QString payee, int accountid, int parentid, int number, int day, int month, int year, float amount, int cleared, int budgetid, int lineitemid );

      // This updates an already existing transaction
      void updateTransaction ( QString, QString, int, int, int, int, float, int, int, int, int );

      // Deletes a transaction.  Takes the transid as its parameter
      void deleteTransaction ( int );

      // Returns the number of transactions
      int getNumberOfTransactions ();

      // this is an overloaded function that returns the number of
      // transactions for an account
      int getNumberOfTransactions ( int );

      // deletes all transactions for the provided accountid
      void deleteAllTransactions ( int accountid );

      QString getBudgetTotal ( int budgetid, int lineitemid, int year, int month, int viewtype );
      QString getActualTotal ( int budgetid, int year, int month, int viewtype );

      // These two functions clear budget ids is either a line item or an entire budget is deleted
      void clearBudgetIDs ( int, int );
      void clearBudgetIDs ( int );

    public slots:

      void displayTransactions ( QListView *, int, bool, const char *, QDate );
      char ** selectAllTransactions ( QDate fromdate, bool children, const char *limit, int id );
      char ** selectNonClearedTransactions ( QDate fromdate, bool children, const char *limit, int id );
      QString getPayee ( int );
      QString getTransactionDescription ( int );
      QString getNumber ( int );
      QString getAmount ( int );
      QString getAbsoluteAmount ( int );
      int getCleared ( int );
      void setCleared ( int id, int cleared );
      int getBudgetID ( int id );
      int getLineItemID ( int id );
      int getDay ( int );
      int getMonth ( int );
      int getYear ( int );
      int getAccountID ( int id );

    private:

      sqlite3 *tdb;
      int rows, columns;
  };

#endif