From: Metabox Date: Wed, 7 Aug 2019 06:05:10 +0000 (+1000) Subject: New AFLAG in LOG table, migration required. X-Git-Url: https://lifelog.hopto.org/gitweb/?a=commitdiff_plain;h=4bb6fb3724a0bcac3d64641c55585c127e2e1ebb;p=LifeLog.git New AFLAG in LOG table, migration required. --- diff --git a/dbLifeLog/main.cnf b/dbLifeLog/main.cnf index a1435dc..111dc02 100644 --- a/dbLifeLog/main.cnf +++ b/dbLifeLog/main.cnf @@ -34,5 +34,44 @@ Credential format:< , must be enabled option. 55|Cars `Car(s) related entry. 60|Online `Online purchases (ebay, or received/ordered from online source). < -LOG<5>|ALTER TABLE LOG ADD RTF BOOL DEFAULT 0;' ver. 1.5 NOTES|DROP TABLE NOTES;' ver. 1.5 fts4 virtual tables have been scratched as they require special SQLite compilation. +LOG<5>|Run Query ' ver. 1.5 + +//ALTER TABLE LOG RENAME AMMOUNT TO AMOUNT; + +CREATE TABLE life_log_temp_table AS SELECT * FROM LOG; +DROP TABLE LOG; +//CREATE TABLE LOG ( ID_CAT TINY NOT NULL, DATE DATETIME NOT NULL, LOG VCHAR (128) NOT NULL, AMOUNT INTEGER, AFLAG TINY DEFAULT 0, RTF BOOL DEFAULT 0); +CREATE TABLE LOG ( + ID_CAT TINY NOT NULL, + DATE DATETIME NOT NULL, + LOG VCHAR (128) NOT NULL, + AMOUNT INTEGER, + AFLAG TINY DEFAULT 0, + RTF BOOL DEFAULT 0 +); + +INSERT INTO LOG ( + ID_CAT, + DATE, + LOG, + AMOUNT + ) + SELECT ID_CAT, + DATE, + LOG, + AMMOUNT + FROM life_log_temp_table; + +DROP TABLE life_log_temp_table; +PRAGMA foreign_keys = 1; + +%INCOME_ID% = SELECT ID FROM CAT WHERE CAT.NAME LIKE 'Income'; +%EXPENSE_ID% = SELECT ID FROM CAT WHERE CAT.NAME LIKE 'Income'; + + + +UPDATE LOG SET AFLAG=1 WHERE ID_CAT=%INCOME_ID%; +UPDATE LOG SET AFLAG=2 WHERE ID_CAT=%EXPENSE_ID%; + + diff --git a/htdocs/cgi-bin/config.cgi b/htdocs/cgi-bin/config.cgi index 0d8a9e8..0326108 100755 --- a/htdocs/cgi-bin/config.cgi +++ b/htdocs/cgi-bin/config.cgi @@ -826,7 +826,7 @@ sub exportLogToCSV { print $cgi->header(-charset=>"UTF-8", -type=>"application/octet-stream", -attachment=>"$dbname.csv"); } - # print "ID_CAT,DATE,LOG,AMMOUNT\n"; + # print "ID_CAT,DATE,LOG,AMOUNT, AFLAG\n"; while (my $r=$dbs->fetchrow_arrayref()){ print $csv->print(*STDOUT, $r)."\n"; } @@ -935,18 +935,20 @@ sub updateLOGDB { my $id_cat = $flds[0]; my $date = $flds[1]; my $log = $flds[2]; - my $amm = $flds[3]; + my $amv = $flds[3]; + my $amf = $flds[4]; + my $rtf = $flds[5]; my $pdate = DateTime::Format::SQLite->parse_datetime($date); #Check if valid date log entry? if($id_cat==0||$id_cat==""||!$pdate){ return; } #is it existing entry? - $dbs = $db->prepare("SELECT ID_CAT, DATE, LOG, AMMOUNT FROM LOG WHERE date = '$date';"); + $dbs = $db->prepare("SELECT ID_CAT, DATE, LOG, AMOUNT, AFLAG, RTF FROM LOG WHERE date = '$date';"); $dbs->execute(); if(!$dbs->fetchrow_array()){ - $dbs = $db->prepare('INSERT INTO LOG VALUES (?,?,?,?)'); - $dbs->execute( $id_cat, $pdate, $log, $amm); + $dbs = $db->prepare('INSERT INTO LOG VALUES (?,?,?,?,?,?)'); + $dbs->execute( $id_cat, $pdate, $log, $amv, $amf, $rtf); } #Renumerate $dbs = $db->prepare('select rowid from LOG ORDER BY DATE;'); diff --git a/htdocs/cgi-bin/login_ctr.cgi b/htdocs/cgi-bin/login_ctr.cgi index a5f4e53..d254519 100755 --- a/htdocs/cgi-bin/login_ctr.cgi +++ b/htdocs/cgi-bin/login_ctr.cgi @@ -180,7 +180,8 @@ try{ ID_CAT TINY NOT NULL, DATE DATETIME NOT NULL, LOG VCHAR(128) NOT NULL, - AMMOUNT INTEGER DEFAULT 0, + AMOUNT INTEGER DEFAULT 0, + AFLAG TINY DEFAULT 0, RTF BOOL DEFAULT 0 ); CREATE INDEX idx_log_dates ON LOG (DATE); @@ -188,8 +189,8 @@ try{ $rv = $db->do($stmt); if($rv < 0){print "

Error->"& $DBI::errstri &"

";} - $st = $db->prepare('INSERT INTO LOG VALUES (?,?,?,?,?)'); - $st->execute( 3, $today, "DB Created!",0,0); + $st = $db->prepare('INSERT INTO LOG VALUES (?,?,?,?,?,?)'); + $st->execute( 3, $today, "DB Created!",0,0,0); } $st = $db->prepare(selSQLTbl('CAT')); $st->execute(); diff --git a/htdocs/cgi-bin/main.cgi b/htdocs/cgi-bin/main.cgi index 7e56b53..be7d6e1 100755 --- a/htdocs/cgi-bin/main.cgi +++ b/htdocs/cgi-bin/main.cgi @@ -68,9 +68,9 @@ my ( $imgw, $imgh ); &authenticate; &getConfiguration($db); -my $tbl_rc = 0; -my $tbl_rc_prev = 0; -my $tbl_cur_id; +my $log_rc = 0; +my $log_rc_prev = 0; +my $log_cur_id; my $rs_keys = $cgi->param('keywords'); my $rs_cat_idx = $cgi->param('category'); my $prm_vc = $cgi->param("vc"); @@ -79,7 +79,7 @@ my $rs_dat_to = $cgi->param('v_to'); my $rs_prev = $cgi->param('rs_prev'); my $rs_cur = $cgi->param('rs_cur'); my $rs_page = $cgi->param('rs_page'); -my $stmS = "SELECT rowid, ID_CAT, DATE, LOG, AMMOUNT from LOG WHERE"; +my $stmS = "SELECT rowid, ID_CAT, DATE, LOG, AMOUNT, AFLAG, RTF from LOG WHERE"; my $stmE = " ORDER BY DATE DESC;"; my $stmD = ""; my $sm_reset_all; @@ -174,11 +174,10 @@ print $cgi->start_html( my $rv; my $st; my $stmtCat = "SELECT ID, NAME, DESCRIPTION FROM CAT ORDER BY ID;"; -my $stmt = -"SELECT rowid, ID_CAT, DATE, LOG, AMMOUNT, RTF FROM LOG ORDER BY DATE DESC, rowid DESC;"; +my $stmt ="SELECT rowid, ID_CAT, DATE, LOG, AMOUNT, AFLAG, RTF FROM LOG ORDER BY DATE DESC, rowid DESC;"; $st = $db->prepare($stmtCat); -$rv = $st->execute() or die or die "

Error->" & $DBI::errstri & "

"; +$rv = $st->execute() or die "

Error->" & $DBI::errstri & "

"; my $cats = qq('; +$cats_v .= ''; -my $cat_descs = ""; for my $key ( keys %hshDesc ) { my $kv = $hshDesc{$key}; if ( $kv ne ".." ) { - $cat_descs .= qq(
  • $kv
  • \n); + $cat_descriptions .= qq(
  • $kv
  • \n); } } -my $tbl = +my $log_output = qq(
    @@ -280,10 +279,10 @@ qq(execute(); my @row = $stc->fetchrow_array(); if ( $row[0] == $rs_prev && $rs_cur == $rs_prev ) { - $tbl_start = -1; + $log_start = -1; } $stc->finish(); } @@ -302,6 +301,7 @@ qq(prepare($stmt); $rv = $st->execute() or die or die "

    Error->" & $DBI::errstri & "

    "; if ( $rv < 0 ) { @@ -309,21 +309,25 @@ qq(fetchrow_array() ) { - $id = $row[0]; + $id = $row[0];# rowid - my $ct = $hshCats{ $row[1] }; + my $ct = $hshCats{$row[1]}; #ID_CAT my $dt = DateTime::Format::SQLite->parse_datetime( $row[2] ); my $log = $row[3]; - my $am = &cam( $row[4] ); - my $rtf = $row[5]; + my $am = $row[4]; + my $af = $row[5]; #AFLAG -> Asset as 0, Income as 1, Expense as 2 + my $rtf = $row[6]; #RTF has document true or false - if ( $ct eq 'Expense' ) { - $exp += $row[4]; + if ( $af == 1 ) { #AFLAG Income + $sum += $am; } - else { - $sum += $row[4]; + elsif ( $af == 2 ) { + $exp -= $am; } - + else{ + $ass += $am; + } + $am = &cam($am); #Apostrophe in the log value is doubled to avoid SQL errors. $log =~ s/''/'/g; # @@ -336,8 +340,8 @@ qq(); $log .= qq(
    ); } - $tbl .= qq( + if($af==2){ + $am = qq($am); + } + + $log_output .= qq( @@ -527,7 +535,7 @@ qq(\n); ); if ( $rtf > 0 ) { - $tbl .= qq( + $log_output .= qq(); } - $tbl_rc += 1; + $log_rc += 1; - if ( $REC_LIMIT > 0 && $tbl_rc == $REC_LIMIT ) { + if ( $REC_LIMIT > 0 && $log_rc == $REC_LIMIT ) { last; } @@ -545,18 +553,20 @@ qq(\n); if ( $tfId == 1 ) { $tfId = 0; } else { $tfId = 1; } - my $tot = $sum - $exp; + my ($tot,$tas); + $tot = $sum - $exp; $sum = &cam($sum); $exp = &cam($exp); + $tas = &cam($ass); $tot = &cam($tot); - $tbl .= qq( + + $log_output .= qq( - - + ); - if ( $REC_LIMIT > 0 && $tbl_rc == $REC_LIMIT ) { + if ( $REC_LIMIT > 0 && $log_rc == $REC_LIMIT ) { &buildNavigationButtons; } @@ -573,7 +583,7 @@ qq(\n); &fetchAutocomplete; #End of table? - if ( $rs_prev && $tbl_rc < $REC_LIMIT ) { + if ( $rs_prev && $log_rc < $REC_LIMIT ) { $st = $db->prepare("SELECT count(*) FROM LOG;"); $st->execute(); my @row = $st->fetchrow_array(); @@ -582,10 +592,10 @@ qq(\n); } } - if ( $tbl_rc == 0 ) { + if ( $log_rc == 0 ) { if ($stmD) { - $tbl .= qq('); } elsif ($rs_keys) { @@ -593,16 +603,16 @@ qq(\n); if ( $rs_cat_idx > 0 ) { $criter = "->Criteria[" . $hshCats{$rs_cat_idx} . "]"; } - $tbl .= qq(); } else { - $tbl .= + $log_output .= '\n'; } } - $tbl .= <<_TXT; + $log_output .= <<_TXT;
    $dtf $dth $log
    # Total:$sum ($exp) = $tot# Totals: Assets[$tas] Gross[$tot <-- $sum ($exp)]
    + $log_output .= qq(
    Search Failed to Retrive any records on select: [$stmD] !
    + $log_output .= qq(
    Search Failed to Retrive any records on keywords: [$rs_keys]$criter!
    Database is New or Empty!
    Show All Again ->  Amount: -   RTF Document +   + Marks as: +   + RTF Document @@ -667,7 +684,7 @@ _TXT - + $tags @@ -678,7 +695,7 @@ _TXT - @@ -686,37 +703,47 @@ _TXT ); $srh .= - qq( - + qq( + + + - + + + From:    + To:  +    + - - - ); + + + ); if ( ( $rs_keys && $rs_keys ne '*' ) || $rs_cat_idx || $stmD ) { $sm_reset_all = 'Reset View
    '; - $srh .= ' - '; + + $srh .= ''; } $srh .= '
    Search/View By + Search/View By $sp1 $sp2
    View by Category:$cats_v -
    View by Category: + $cats_v    + + +
    View by Date:
    View by Date: - From:  - To:  -
    Keywords: -
    Keywords: + +    +
    +
    '; my $quill = &quill( $cgi->param('submit_is_edit') ); my $help = &help; - # - #Page printout from here! - # + ################################ + # Page printout from here! # +################################ - print +print qq(