예제 #1
0
파일: Mapper.php 프로젝트: rtsantos/mais
 /**
  * Retorna o valor antigo do registro antes de realizar a atualização
  *
  * @return Profile_Model_ObjectView_Mapper
  */
 public function getValueOld()
 {
     if (!$this->_dataOld instanceof Profile_Model_ObjectView_Mapper) {
         $this->_dataOld = new Profile_Model_ObjectView_Mapper();
         $this->_dataOld->setId($this->getId());
         $this->_dataOld->retrive();
     }
     return $this->_dataOld;
 }
예제 #2
0
파일: Edit.php 프로젝트: rtsantos/mais
 /**
  * Carrega os elementos no formulário para serem renderizado
  * @return void
  */
 public function loadElements($action = 'insert')
 {
     parent::loadElements($action);
     $filterJson = Zend_Controller_Front::getInstance()->getRequest()->getParam('filter_json');
     if ($filterJson) {
         $where = ZendT_Db_Where::fromJson($filterJson);
         $filter = $where->getFilter('profile_job.id_profile_object_view');
         $_mapper = new Profile_Model_ObjectView_Mapper();
         $_mapper->setId($filter['value'])->retrive();
         $row = $_mapper->getData();
         $this->getElement('id_profile_object_view')->setValue($row);
     }
     $this->removeElement('dh_ult_exec');
 }
예제 #3
0
파일: Edit.php 프로젝트: rtsantos/mais
 /**
  * Carrega os elementos no formulário para serem renderizado
  * @return void
  */
 public function loadElements($action = 'insert')
 {
     parent::loadElements($action);
     $filterJson = Zend_Controller_Front::getInstance()->getRequest()->getParam('filter_json');
     if ($filterJson) {
         $where = ZendT_Db_Where::fromJson($filterJson);
         $filter = $where->getFilter('profile_object_view_priv.id_profile_object_view');
         $_mapper = new Profile_Model_ObjectView_Mapper();
         $_mapper->setId($filter['value'])->retrive();
         $row = $_mapper->getData();
         $this->getElement('id_profile_object_view')->setValue($row);
         $tipo = $filter = $where->getFilter('profile_object_view_priv.tipo');
         if ($tipo) {
             $this->getElement('tipo')->setValue($tipo);
             //->setDecorators(array(new ZendT_Form_Decorator_Hidden()));
         }
     }
 }
예제 #4
0
파일: Mapper.php 프로젝트: rtsantos/mais
 /**
  *
  * @param string $value
  * @param string $column 
  * @return \ZendT_Grid_Data 
  */
 public function suggest($value, $columnAlias, $profileId = '')
 {
     if ($profileId) {
         $_profile = new Profile_Model_ObjectView_Mapper();
         $_profile->setId($profileId)->retrieve();
         $config = unserialize($_profile->getConfig());
         $this->parseExprProfile($config);
     }
     $configColumns = $this->getColumns()->toArray();
     $mappers = $this->getColumns()->getColumnsMapper()->getColumnsMapper();
     $listOptions = $configColumns[$columnAlias]['listOptions'];
     if (!$listOptions && $mappers[$columnAlias]['mapper'] instanceof ZendT_Type_String && $mappers[$columnAlias]['mapper']->getListOptions() !== false) {
         $listOptions = $mappers[$columnAlias]['mapper']->getListOptions();
     }
     /**
      * @todo melhorar essa implementação 
      */
     if ($listOptions) {
         foreach ($listOptions as $key => $value) {
             $rows[] = array($key => $value);
         }
         return $rows;
     }
     $filters = Zend_Controller_Front::getInstance()->getRequest()->getParam('filters');
     $paramValid = array();
     $paramsAutoFilter = array();
     $notIn = array();
     $binds = array();
     if ($filters) {
         $filters = explode('&', $filters);
         foreach ($filters as $data) {
             $data = str_replace('!=', '<>', $data);
             list($columnName, $valueFilter) = explode('=', $data);
             $valueFilter = str_replace('<>', '!=', $valueFilter);
             $columnName = str_replace('-multiple', '', $columnName);
             if (!$valueFilter && $columnName != $columnAlias) {
                 continue;
             }
             if ($mappers[$columnName]) {
                 if ($mappers[$columnName]['expression']) {
                     $fieldSearch = 'expression-' . $columnName;
                 } else {
                     $fieldSearch = str_replace('.', '-', $configColumns[$columnName]['column']);
                 }
                 if ($columnName == $columnAlias) {
                     if ($valueFilter) {
                         $notIn[$fieldSearch] = true;
                     } else {
                         continue;
                     }
                 }
                 $paramsAutoFilter[$fieldSearch] = $valueFilter;
                 $paramValid[$columnName] = true;
                 if (is_array($configColumns[$columnName]['bind'])) {
                     $binds[$columnName] = $configColumns[$columnName]['bind'];
                 }
             }
         }
     }
     foreach ($configColumns as $columnName => $column) {
         if ($column['required'] && !$paramValid[$columnName]) {
             throw new ZendT_Exception_Alert($column['required']);
         }
     }
     $_whereAutoFilter = ZendT_Db_Where::fromAutoFilter($paramsAutoFilter, $mappers, $notIn, $binds);
     if (method_exists($this, 'setWhere')) {
         $this->setWhere($_whereAutoFilter);
     }
     $rows = array();
     if ($listOptions) {
         foreach ($listOptions as $key => $value) {
             $rows[] = array($key => $value);
         }
     } else {
         if ($configColumns[$columnAlias]['expression']) {
             $column = "(" . $configColumns[$columnAlias]['expression'] . ")";
         } else {
             $column = $configColumns[$columnAlias]['aliasTable'] . '.' . $configColumns[$columnAlias]['columnName'];
         }
         $autoCompleteFilter = $configColumns[$columnAlias]['autocomplete-filter'];
         if ($autoCompleteFilter) {
             $field = explode(".", $autoCompleteFilter);
             $cmdSelect = "SELECT " . $field[1] . " as " . $columnAlias . " FROM " . $field[0] . " filtro WHERE EXISTS ( SELECT 1 ";
             $cmdFrom = "   FROM " . $this->_getSqlBase();
             $cmdWhereFilter = " AND " . $column . " = filtro." . $field[1] . ")";
             $cmdRownum = " AND ROWNUM = 1 ";
             $cmdLimit = " LIMIT 1 ";
         } else {
             $cmdSelect = "SELECT DISTINCT " . $column . " as " . $columnAlias;
             $cmdFrom = "   FROM " . $this->_getSqlBase();
             $cmdRownum = " AND ROWNUM <= 30000 ";
             $cmdLimit = " LIMIT 30000 ";
         }
         $whereGroup = new ZendT_Db_Where_Group();
         if ($_whereAutoFilter) {
             $whereGroup->addWhere($_whereAutoFilter);
         }
         /**
          * Avalia se existe algum Where específico do MapperView
          * colocando o mesmo dentro do objeto que agrupa os wheres
          */
         $_whereMapperView = $this->_getWhere($postData, $_whereAutoFilter);
         if ($_whereMapperView) {
             $whereGroup->addWhere($_whereMapperView);
         }
         $where = new ZendT_Db_Where();
         if ($configColumns[$columnAlias]['expression']) {
             $columnFilter = new Zend_Db_Expr($column);
         } else {
             $columnFilter = $column;
         }
         if ($value) {
             $where->addFilter($columnFilter, $value, '?%', $mappers[$columnAlias]['mapper']);
             $whereGroup->addWhere($where);
         }
         /**
          * Monta o comando Where
          */
         $binds = $whereGroup->getBinds();
         $cmdWhere = "  WHERE " . $whereGroup->getSqlWhere();
         $cmdOrderBy = "  ORDER BY 1 ";
         $oracle = false;
         if ($oracle) {
             $sql = $cmdSelect . $cmdFrom . $cmdWhere . $cmdRownum . $cmdWhereFilter . $cmdGroupBy . $cmdOrderBy;
         } else {
             $sql = $cmdSelect . $cmdFrom . $cmdWhere . $cmdWhereFilter . $cmdGroupBy . $cmdOrderBy . $cmdLimit;
         }
         $this->_prepareSql($sql, $binds, 'full');
         /**
          * Pega os dados
          */
         $stmt = $this->getModel()->getAdapter()->query($sql, $binds);
         $data = new ZendT_Grid_Data($stmt, $mappers, true);
         $rows = $data->getRows();
     }
     return $rows;
 }
예제 #5
0
 public function setDefaultAction()
 {
     Zend_Session::start();
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender(true);
     $json = new ZendT_Json_Result();
     try {
         $id = $this->getRequest()->getParam('id');
         $objeto = $this->getRequest()->getParam('objeto');
         $_mapper = new Profile_Model_ObjectView_Mapper();
         $_mapper->setId($id)->retrive();
         $chave = $_mapper->getChave()->get();
         setcookie("profile-" . $objeto, $id, time() + 60 * 60 * 24 * 7);
         # 7 dias
         $_SESSION["profile-" . $objeto] = $id;
         if ($chave) {
             setcookie("profile-" . $objeto . "-chave", $chave, time() + 60 * 60 * 24 * 7);
             # 7 dias
             $_SESSION["profile-" . $objeto . "-chave"] = $chave;
         } else {
             unset($_SESSION["profile-" . $objeto . "-chave"]);
             unset($_COOKIE["profile-" . $objeto . "-chave"]);
         }
         $json->setResult(true);
     } catch (Exception $ex) {
         $json->setException($ex);
     }
     echo $json->render();
 }