Example #1
0
 /**
  * List of charge
  */
 public function liste($filtre)
 {
     if (Input::has('type')) {
         Session::put('filtre_charge.type', Input::get('type'));
         if (Input::has('filtre_start')) {
             $date_start_explode = explode('/', Input::get('filtre_start'));
             Session::put('filtre_charge.start', $date_start_explode[2] . '-' . $date_start_explode[1] . '-' . $date_start_explode[0]);
         }
         if (Input::has('filtre_end')) {
             $date_end_explode = explode('/', Input::get('filtre_end'));
             Session::put('filtre_charge.end', $date_end_explode[2] . '-' . $date_end_explode[1] . '-' . $date_end_explode[0]);
         } else {
             Session::put('filtre_charge.end', date('Y-m-d'));
         }
     }
     if (Session::has('filtre_charge.type')) {
         $filtre = Session::get('filtre_charge.type');
     }
     if (Session::has('filtre_charge.start')) {
         $date_filtre_start = Session::get('filtre_charge.start');
         $date_filtre_end = Session::get('filtre_charge.end');
     } else {
         $date_filtre_start = date('Y-m') . '-01';
         $date_filtre_end = date('Y-m') . '-' . date('t', date('m'));
     }
     $setDate = new DateTime();
     $date_now = $setDate->format('Y-m-d');
     $setDate->modify('+8 days');
     $date_deadline = $setDate->format('Y-m-d');
     $q = Charge::orderBy('date_charge', 'DESC');
     switch ($filtre) {
         case 'all':
             $q->whereBetween('date_charge', array($date_filtre_start, $date_filtre_end));
             break;
         case 'deadline_close':
             $q->whereBetween('deadline', array($date_now, $date_deadline))->whereNotNull('deadline')->whereNull('date_payment');
             break;
         case 'deadline_exceeded':
             $q->where('deadline', '<', $date_now)->whereNotNull('deadline')->whereNull('date_payment');
             break;
     }
     $charges = $q->paginate(15);
     return View::make('charge.liste', array('charges' => $charges, 'filtre' => $filtre));
 }