Ejemplo n.º 1
0
 public function vat()
 {
     $paid = array();
     $paid_rates = array();
     $sum = array();
     foreach (ChargeItem::TotalTVA() as $item) {
         $paid[$item->days][$item->value] = $item->total;
         $paid_rates[$item->value] = true;
         if (empty($sum[$item->days])) {
             $sum[$item->days] = 0;
         }
         $sum[$item->days] += $item->total;
     }
     $received = array();
     $received_rates = array();
     foreach (InvoiceItem::TotalTVA()->get() as $item) {
         $received[$item->days][$item->value] = $item->total;
         $received_rates[$item->value] = true;
         if (empty($sum[$item->days])) {
             $sum[$item->days] = 0;
         }
         $sum[$item->days] -= $item->total;
     }
     krsort($sum);
     ksort($paid_rates);
     ksort($received_rates);
     $month2quarter = array('01' => 1, '02' => 1, '03' => 1, '04' => 2, '05' => 2, '06' => 2, '07' => 3, '08' => 3, '09' => 3, '10' => 4, '11' => 4, '12' => 4);
     $overview = array();
     foreach ($sum as $period => $value) {
         if (preg_match('/(.+)-(.+)/', $period, $matchs)) {
             $quarter = sprintf('%s-Q%s', $matchs[1], $month2quarter[$matchs[2]]);
             if (!isset($overview[$quarter])) {
                 $overview[$quarter] = 0;
             }
             $overview[$quarter] += $value;
         }
     }
     krsort($overview);
     return View::make('cashflow.vat', array('paid' => $paid, 'received' => $received, 'sum' => $sum, 'overview' => $overview, 'paid_rates' => array_keys($paid_rates), 'received_rates' => array_keys($received_rates)));
 }