Esempio n. 1
0
 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;
     }
 }