Fixes to bugs pointed by [BOB]
[tpg/opendispense2.git] / src / cokebank_sqlite / main.c
index 26282dc..0d5e139 100644 (file)
@@ -7,6 +7,7 @@
  * This file is licenced under the 3-clause BSD Licence. See the file
  * COPYING for full details.
  */
+#include <inttypes.h>
 #include <stdlib.h>
 #include <limits.h>
 #include <stdio.h>
@@ -90,6 +91,8 @@ int Bank_Initialise(const char *Argument)
                        sqlite3_free(errmsg);
                        return 1;
                }
+               
+               Log_Info("SQLite database rebuilt");
        }
        else
        {
@@ -159,7 +162,7 @@ int Bank_GetFlags(int UserID)
 
        // Build Query
        query = mkstr(
-               "SELECT acct_is_disabled,acct_is_coke,acct_is_wheel,acct_is_door,acct_is_internal"
+               "SELECT acct_is_disabled,acct_is_coke,acct_is_admin,acct_is_door,acct_is_internal"
                " FROM accounts WHERE acct_id=%i LIMIT 1",
                UserID
                );
@@ -335,6 +338,7 @@ tAcctIterator *Bank_Iterator(int FlagMask, int FlagValues, int Flags, int MinMax
        const char      *revSort;
        sqlite3_stmt    *ret;
        
+       // Balance condtion
        if( Flags & BANK_ITFLAG_MINBALANCE )
                balanceClause = " AND acct_balance>=";
        else if( Flags & BANK_ITFLAG_MAXBALANCE )
@@ -344,6 +348,7 @@ tAcctIterator *Bank_Iterator(int FlagMask, int FlagValues, int Flags, int MinMax
                MinMaxBalance = 0;
        }
        
+       // Last seen condition
        if( Flags & BANK_ITFLAG_SEENAFTER )
                lastSeenClause = " AND acct_last_seen>=";
        else if( Flags & BANK_ITFLAG_SEENBEFORE )
@@ -352,6 +357,7 @@ tAcctIterator *Bank_Iterator(int FlagMask, int FlagValues, int Flags, int MinMax
                lastSeenClause = " AND datetime(-1,'unixepoch')!=";
        }
        
+       // Sorting clause
        switch( Flags & BANK_ITFLAG_SORTMASK )
        {
        case BANK_ITFLAG_SORT_NONE:
@@ -381,7 +387,7 @@ tAcctIterator *Bank_Iterator(int FlagMask, int FlagValues, int Flags, int MinMax
        query = mkstr("SELECT acct_id FROM accounts WHERE 1=1"
                "%s%s%s%s%s"    // Flags
                "%s%i"  // Balance
-               "%sdatetime(%lli,'unixepoch')"  // Last seen
+               "%sdatetime(%"PRIu64",'unixepoch')"     // Last seen
                "%s%s"  // Sort and direction
                ,
                MAP_FLAG("acct_is_coke", USER_FLAG_COKE),
@@ -390,7 +396,7 @@ tAcctIterator *Bank_Iterator(int FlagMask, int FlagValues, int Flags, int MinMax
                MAP_FLAG("acct_is_internal", USER_FLAG_INTERNAL),
                MAP_FLAG("acct_is_disabled", USER_FLAG_DISABLED),
                balanceClause, MinMaxBalance,
-               lastSeenClause, LastSeen,
+               lastSeenClause, (uint64_t)LastSeen,
                orderClause, revSort
                );
        //printf("query = \"%s\"\n", query);

UCC git Repository :: git.ucc.asn.au