Esempio n. 1
0
 protected function _afterSave()
 {
     parent::_afterSave();
     if ($this->_action == 'update') {
         $_where = new ZendT_Db_Where();
         $_where->addFilter($this->getModel()->getName() . '.hierarquia', $this->_oldHierarquia, '?%');
         $_where->addFilter($this->getModel()->getName() . '.id', $this->getId(), '!=');
         $_mapper = new Auth_DataView_Conta_MapperView();
         $_mapper->findAll($_where, '*');
         while ($_mapper->fetch()) {
             $_mapper->update();
         }
         $idPai = $this->getIdPapelPai(true)->toPhp();
         if ($this->_idPaiOld && $this->_idPaiOld != $idPai) {
             $_relation = new Auth_Model_ContaRel_Mapper();
             $_relation->setIdPapel($this->getId())->setIdPapelRel($this->_idPaiOld)->retrieve();
             if ($idPai) {
                 $_relation->setIdPapelRel($idPai)->update();
             } else {
                 $_relation->delete();
             }
         }
     } elseif ($this->_action == 'insert') {
         $_relation = new Auth_Model_ContaRel_Mapper();
         $_relation->setIdPapel($this->getId())->setIdPapelRel($this->getId())->setStatus('A')->insert();
         if ($this->getIdPapelPai(true)->toPhp()) {
             $_relation->newRow()->setIdPapel($this->getId())->setIdPapelRel($this->getIdPapelPai())->setStatus('A')->insert();
         }
     }
 }
Esempio n. 2
0
 public function getWhereSeekerSearch($value, $field = '')
 {
     $where = new ZendT_Db_Where('AND');
     $result = array();
     $result['column'] = '';
     $result['operation'] = '';
     $result['mapper'] = $this->getMapperName();
     if (count($this->_primary) == 1) {
         if (is_numeric($value)) {
             $result['column'] = $this->_name . "." . $this->_primary[0];
             $result['operation'] = '=';
         }
     }
     if ($field == 'id') {
         $result['column'] = $this->_name . ".id";
         $result['operation'] = '=';
     }
     if ($result['column'] == '') {
         $_usuario = new Auth_DataView_Conta_MapperView();
         $where = new ZendT_Db_Where('AND');
         $where->addFilter('papel.descricao', $value, '?%', 'Auth_Model_Conta_Mapper');
         $data = $_usuario->getDataGrid($where, array());
         $row = $data->getRow();
         if ($row) {
             $result['column'] = $this->_name . ".descricao";
             $result['operation'] = '?%';
         } else {
             $result['column'] = $this->_name . "." . $this->_search;
             $result['operation'] = '?%';
         }
     }
     if ($value) {
         $where = new ZendT_Db_Where('AND');
         $where->addFilter($result['column'], $value, $result['operation'], $result['mapper']);
     }
     return $where;
 }