@@ -427,66 +427,68 @@ func (db *Database) TestDB() error {
427427 return err
428428}
429429
430- func (db * Database ) GetTB (date time.Time ) error {
430+ func (db * Database ) GetTB (queryDate time.Time ) ( * []core. TBAccount , error ) {
431431
432432 queryDB := `
433- SELECT
434- tags.tag_name,
435- Table_Aggregate.account_id,
436- sums
437- FROM account_tag
438- join ((SELECT
439- split_accounts.account_id as account_id,
440- SUM(splits.amount) as sums
441- FROM splits
442- JOIN split_accounts
443- ON splits.split_id = split_accounts.split_id
444- GROUP BY split_accounts.account_id
445-
446- )) AS Table_Aggregate
447- on account_tag.account_id = Table_Aggregate.account_id
448- join tags
449- on tags.tag_id = account_tag.tag_id
450- order BY tags.tag_name
433+ SELECT
434+ split_accounts.account_id,
435+ SUM(splits.amount)
436+ FROM splits
437+ JOIN split_accounts
438+ ON splits.split_id = split_accounts.split_id
439+ WHERE splits.split_date <= ?
440+ GROUP BY split_accounts.account_id
451441 ;`
452442
453- rows , err := db .DB .Query (queryDB )
443+ log .Debug ("Querying Database for Trial Balance" )
444+
445+ rows , err := db .DB .Query (queryDB , queryDate )
454446 if err != nil {
455- log .Debug (err )
456- return err
447+ log .Fatal (err )
457448 }
458449 defer rows .Close ()
459450
460- accounts := make (map [string ][]* core.PDFAccount )
461- totals := make (map [string ]int )
451+ accounts := []core.TBAccount {}
462452
463453 for rows .Next () {
464- var t * core.PDFAccount
465- var name string
466- if err := rows .Scan (& name , & t .Account , & t .Amount ); err != nil {
454+ var t core.TBAccount
455+ if err := rows .Scan (& t .Account , & t .Amount ); err != nil {
467456 log .Fatal (err )
468457 }
469- log .Debugf ("%v" , t )
470- if val , ok := accounts [name ]; ok {
471- accounts [name ] = append (val , t )
472- totals [name ] = totals [name ] + t .Amount
473- } else {
474- accounts [name ] = []* core.PDFAccount {t }
475- totals [name ] = t .Amount
476- }
458+ accounts = append (accounts , t )
477459 }
478460 if rows .Err () != nil {
479461 log .Fatal (err )
480462 }
481463
482- //for k, v := range accounts {
483- ////reporteroutput.Data = append(reporteroutput.Data, Tag{k, totals[k], v})
484- //}
464+ tagsQuery := `
465+ SELECT tag_name
466+ FROM tags
467+ JOIN account_tag
468+ ON account_tag.tag_id = tags.tag_id
469+ JOIN accounts
470+ ON accounts.account_id = account_tag.account_id
471+ WHERE accounts.NAME = ?;
472+ `
473+
474+ for index , element := range accounts {
475+ rows , err = db .DB .Query (tagsQuery , element .Account )
476+
477+ for rows .Next () {
478+ var tag string
479+ if err := rows .Scan (& tag ); err != nil {
480+ log .Fatal (err )
481+ }
482+ accounts [index ].Tags = append (accounts [index ].Tags , tag )
483+ }
484+
485+ }
486+
487+ return & accounts , nil
485488
486- return nil
487489}
488490
489491func (db * Database ) Query (query string , args ... interface {}) (* sql.Rows , error ) {
490- return db .Query (query , args ... )
492+ return db .DB . Query (query , args ... )
491493
492494}
0 commit comments