public static function GetCashFlows($date, $period) { $ledgers = Ledger::GetAllLedgers(); $today = date('d/m/Y'); if ($date) { if ($date == $today) { foreach ($ledgers as &$ledger) { $ledger->amount = $ledger->balance->amount; } return $ledgers; } else { $d1 = explode('/', $date); $stamp = $d1[2] . $d1[1] . $d1[0] . '999999' + 0; foreach ($ledgers as &$ledger) { try { $sql = 'SELECT * FROM general_ledger_entries WHERE ledger_id = ' . $ledger->id . ' AND stamp <= ' . $stamp . ' ORDER BY stamp DESC LIMIT 0,1'; $res = DatabaseHandler::GetRow($sql); if ($res) { $amount = $res['ledger_bal']; } else { $amount = 0; } $ledger->amount = $amount; } catch (Exception $e) { } } return $ledgers; } } else { //Get changes in the ledger balances within prescribed periods $split = explode(' - ', $period); $d1 = explode('/', $split[0]); $d2 = explode('/', $split[1]); $lower = $d1[2] . $d1[1] . $d1[0] . '000000' + 0; $upper = $d2[2] . $d2[1] . $d2[0] . '999999' + 0; foreach ($ledgers as &$ledger) { try { $sql = 'SELECT * FROM general_ledger_entries WHERE ledger_id = ' . $ledger->id . ' AND stamp BETWEEN ' . $lower . ' AND ' . $upper . ' ORDER BY stamp ASC'; $res = DatabaseHandler::GetAll($sql); $amount = 0.0; $keys = count($res); //echo json_encode(value); $init = 0.0; $final = 0.0; $count = 0; foreach ($res as $key => $tx) { if ($count == 0) { $init = $tx['ledger_bal']; } elseif ($count == $keys - 1) { $final = $tx['ledger_bal']; } $count++; } $ledger->amount = $final - $init; //$ledger->amount = $amount; } catch (Exception $e) { } } return $ledgers; } }