$details = array(); if ($_g->sys_admin == 1 || $uid) { echo '<strong>' . $startdate . '</strong>'; if ($details_type == 'q') { // qb echo '<br>Quickbooks<br><table border="1" class="fixed_table">'; $srch_cat = " cat IN ( 'Fee for Service Income', 'Returned Checks', 'Refunds', 'Misc Income') "; $metric = 0.0; $plusminus_flag = -1; // simliar to globals, public function qb_details_ary($qb_class, $srch_cat, $startdate, $enddate, $plusminus_flag, $details = 0) {, but not grouped - need details $qb_tables_minus = 'alexqb_bill'; $qb_deposit_minus = 'alexqb_deposit'; $result = array(); $sql = "\n SELECT\n amt,\n cat,\n memo,\n name,\n view\n FROM\n acct_transactions\n WHERE\n view IN (':QBTABLES')\n AND\n dayt BETWEEN ':STARTDATE' AND ':ENDDATE'\n AND\n class = ':QB_CLASS'\n AND\n {$srch_cat}\n ORDER BY amt\n "; $binds = array('QBTABLES' => $qb_tables_minus, 'STARTDATE' => $startdate, 'ENDDATE' => $startdate, 'QB_CLASS' => $qb_class); $result_minus = $_g->select($sql, $binds, 'alex'); foreach ($result_minus as $k => $v) { $result_minus[$k]['amt'] = -$plusminus_flag * $v['amt']; } $sql = "\n SELECT\n abs_amt AS amt,\n cat,\n memo,\n name,\n view\n FROM\n (SELECT\n id,\n cat,\n ABS(amt) as abs_amt,\n memo,\n name,\n dayt,\n view\n FROM\n acct_transactions\n WHERE\n view IN (':QBTABLES')\n AND\n dayt BETWEEN ':STARTDATE' AND ':ENDDATE'\n AND\n class = ':QB_CLASS'\n AND\n {$srch_cat} ) d\n ORDER BY amt\n "; $binds['QBTABLES'] = $qb_deposit_minus; $result_deposit = $_g->select($sql, $binds, 'alex'); foreach ($result_deposit as $k => $v) { $result_deposit[$k]['amt'] = -$plusminus_flag * $v['amt']; } $result = $result_minus; $result = array_merge($result, $result_deposit); foreach ($result as $valid_row) { echo '<tr><td>' . substr($valid_row['view'], 7, 4) . '</td><td>' . substr($valid_row['cat'], 0, 4) . '</td><td>' . substr($valid_row['memo'], 0, 12) . '</td><td>$' . number_format($valid_row['amt'], 2) . '</td><td>' . substr($valid_row['name'], 0, 12) . '</td></tr>'; } echo '</table>';