Example #1
0
 public static function findStatus($sort = null)
 {
     if ($sort != null) {
         if (isset($sort['sort'])) {
             $order = $sort['sort'];
         }
         if (isset($sort['date-ini']) && isset($sort['date-end']) && (DateTime::createFromFormat('d-m-Y', $sort['date-ini']) != false && DateTime::createFromFormat('d-m-Y', $sort['date-end']) != false)) {
             $between = " (date BETWEEN '" . date('Y-m-d', strtotime($sort['date-ini'])) . "' AND '" . date('Y-m-d', strtotime($sort['date-end'])) . "') ";
         }
         if (isset($sort['magazine'])) {
             $id_magazine = $sort['magazine'];
             if (isset($sort['edition'])) {
                 $id_edition = $sort['edition'];
             }
         }
         if (isset($sort['client'])) {
             $client = $sort['client'];
         }
         if (isset($sort['executive'])) {
             $executive = $sort['executive'];
         }
         if (isset($sort['color'])) {
             $color = $sort['color'];
         }
         if (isset($sort['search'])) {
             $search = $sort['search'];
         }
     }
     $query = 'SELECT * FROM status ';
     $where = '';
     // variable $where identifica que field uso el WHERE primero
     if (isset($between)) {
         $query .= ' WHERE ' . $between;
         $where = 'between';
     } elseif (isset($client)) {
         $query .= ' WHERE id_client=' . $client;
         $where = 'client';
     } elseif (isset($executive)) {
         $query .= ' WHERE id_user='******'executive';
     } elseif (isset($color)) {
         $query .= ' WHERE color=' . $color;
         $where = 'color';
     } elseif (isset($id_magazine)) {
         if ($id_magazine != 0) {
             $query .= ' WHERE magazine=' . $id_magazine;
             if (isset($id_edition)) {
                 $query .= ' AND edition=' . $id_edition;
             }
             $where = 'magazine';
         }
     } elseif (isset($search)) {
         $query .= ' WHERE ( status LIKE "%' . $search . '%" OR comments LIKE "%' . $search . '%" OR edition LIKE "%' . $search . '%" ';
         $where = 'search';
         $that = new self();
         if ($searchUsers = $that->getSearch($search, 'users')) {
             foreach ($searchUsers as $key) {
                 $query .= ' OR id_user LIKE "%' . $key->id . '%" ';
             }
         }
         if ($searchContact = $that->getSearch($search, 'contact')) {
             foreach ($searchContact as $key) {
                 $query .= ' OR id_contact LIKE "%' . $key->id . '%" ';
             }
         }
         if ($searchClient = $that->getSearch($search, 'client')) {
             foreach ($searchClient as $key) {
                 $query .= ' OR id_client LIKE "%' . $key->id . '%" ';
             }
         }
         $query .= ' ) ';
     }
     // agrega un AND por cada field recibido
     if (isset($id_magazine) && ($id_magazine != 0 && $where != 'magazine')) {
         $query .= ' AND magazine=' . $id_magazine;
         if (isset($id_edition)) {
             $query .= ' AND edition=' . $id_edition;
         }
     }
     if (isset($client) && $where != 'client') {
         $query .= ' AND id_client=' . $client;
     }
     if (isset($executive) && $where != 'executive') {
         $query .= ' AND id_user='******'color') {
         $query .= ' AND color=' . $color;
     }
     if (isset($search) && $where != 'search') {
         $query .= ' AND ( status LIKE "%' . $search . '%" OR comments LIKE "%' . $search . '%" OR edition LIKE "%' . $search . '%" ';
         $that = new self();
         if ($searchUsers = $that->getSearch($search, 'users')) {
             foreach ($searchUsers as $key) {
                 $query .= ' OR id_user LIKE "%' . $key->id . '%" ';
             }
         }
         if ($searchContact = $that->getSearch($search, 'contact')) {
             foreach ($searchContact as $key) {
                 $query .= ' OR id_contact LIKE "%' . $key->id . '%" ';
             }
         }
         if ($searchClient = $that->getSearch($search, 'client')) {
             foreach ($searchClient as $key) {
                 $query .= ' OR id_client LIKE "%' . $key->id . '%" ';
             }
         }
         $query .= ' ) ';
     }
     if (isset($order)) {
         $query .= ' ORDER BY date ' . $order . ', time ' . $order;
     } else {
         $query .= ' ORDER BY date DESC, time DESC';
     }
     //return $query;
     return $results = DB::select(DB::raw($query));
 }
Example #2
0
 public function generateAdminForRelationList($relation, array $listFields)
 {
     $relatedModel = $this->relationClassFromRelation($relation);
     $relatedAdmin = new self($relatedModel, $this->controller);
     $relatedAdmin->setListFields($listFields);
     $relatedAdmin->setIsSubList(true);
     $relationField = $this->relationFieldFromRelation($relation);
     if ($relationField) {
         $criteria = $relatedAdmin->getSearch()->getCriteria();
         $criteria->addCondition($relationField . ' = ' . $this->model->id);
         $relatedAdmin->setSubListParent(array($relationField => $this->model->id));
     }
     return $relatedAdmin;
 }