コード例 #1
0
 public function editAction()
 {
     $form = new Application_Form_CadastroCliente();
     $model = new Application_Model_Clientes();
     $request = $this->_request;
     if ($request->isPost() && $form->isValid($request->getPost())) {
         $data = $request->getPost();
         $id = $data['id'];
         $cpf = $data['cpf'];
         $data['last_user_id'] = CURRENT_USER_ID;
         $check = $model->selectBy($cpf);
         if ($check && $check['id'] != $id) {
             $this->view->messages = array('CPF já cadastro.');
             $this->view->message_type = "alert-danger";
             $form->populate($data);
         } else {
             if ($model->update($data['id'], $data) == 0) {
                 $this->view->messages = array('Não foi feito nenhuma alteração.');
                 $this->view->message_type = "alert-info";
             } else {
                 $this->view->messages = array('Atualizado com sucesso!');
                 $this->view->message_type = "alert-success";
             }
         }
         $form->populate($data);
     } else {
         $id = $this->getParam('id');
         $result = $model->selectById($id);
         $data = json_decode($result['dados_cliente'], true);
         $data['id'] = $result['id'];
         $data['cpf'] = $result['cpf'];
         $data['last_user_id'] = $result['last_user_id'];
         $data['created_user_id'] = $result['created_user_id'];
         $data['locked'] = $result['locked'];
         $data['locked_by'] = $result['locked_by'];
         $is_locked = $this->_acl_model->checkLocked(array('locked_by' => $data['locked_by'], 'locked' => $data['locked']));
         if ($is_locked) {
             $this->view->messages = array('Item bloqueado para edição');
             $this->view->form = '';
             return false;
         } else {
             $model->lockRow($data['id'], CURRENT_USER_ID, 1);
         }
         if ($result['created_user_id'] == CURRENT_USER_ID or in_array(CURRENT_USER_ROLE, $this->_acl['fullControl']) or in_array($result['created_user_id'], $this->_ids)) {
             $form->populate($data);
         } else {
             $this->view->form = '';
             $this->view->messages = array('Cadastro não encontrado');
             $this->view->message_type = "alert-danger";
             return false;
         }
     }
     $form->addFieldId($id);
     // pegando data padrao Us para pt_BR
     $data_desc = new Zend_Date($data['data']);
     $form->getElement('data_desc')->setDescription('<label>Data</label><p>' . $data_desc->toString('dd/MM/yyyy') . '</p>');
     $this->view->barTitle = "Editando Cliente";
     $this->view->form = $form;
 }
コード例 #2
0
 public function editAction()
 {
     $request = $this->getRequest();
     $cid = $request->getParam('cid');
     $id = $request->getParam('id');
     $model = new Application_Model_Propostas();
     $modelCliente = new Application_Model_Clientes();
     $documentos = new Application_Model_Documentos();
     $form = new Application_Form_Proposta();
     if (!in_array(CURRENT_USER_ROLE, array('Corretor', 'Financeiro'))) {
         $users = new Application_Model_Usuarios();
         $db = Zend_Db_Table::getDefaultAdapter();
         $result = $db->fetchAll($users->selectAll());
         $options = array();
         $required = new Zend_Validate_NotEmpty();
         $required->setType($required->getType() | Zend_Validate_NotEmpty::STRING | Zend_Validate_NotEmpty::ZERO);
         foreach ($result as $key => $value) {
             $options[$value['id']] = $value['nome'] . ' - ' . $value['role'];
         }
         $form->addElement('select', 'created_user_id', array('label' => 'Usuário', 'title' => 'Mude usuário responsável pela proposta', 'required' => true, 'filters' => array('StringTrim'), 'class' => 'form-control', 'multiOptions' => $options, 'validators' => array($required), 'decorators' => $form->setColSize(4)));
     }
     if ($request->isPost() && $form->isValid($request->getPost())) {
         $data = $request->getPost();
         if ($id == 0) {
             unset($data['id']);
             if ($model->insert($data)) {
                 $this->_FlashMessenger->setNamespace($this->_controllerName)->addMessage('Proposta adicionada com sucesso!');
                 $this->view->message_type = 'alert-success';
                 $this->redirect($this->_controllerName . '/edit/id/' . $model->lastInserId() . '/cid/' . $cid);
             }
         } else {
             if ($model->update($id, $data)) {
                 $this->view->messages = array('Atualziado com sucesso!');
                 $this->view->message_type = 'alert-success';
             } else {
                 $this->view->messages = array('Sem alterações!');
                 $this->view->message_type = 'alert-info';
             }
         }
     } else {
         $dataProposta = $model->selectById($id);
         // Verificando se ja existe uma proposta
         if ($dataProposta) {
             $data = $dataProposta;
             if (!empty($data['dados_extras'])) {
                 $dadosExtras = json_decode($data['dados_extras'], true);
                 $data = array_merge($data, $dadosExtras);
                 unset($data['dados_extras']);
             }
         } else {
             $data = $modelCliente->selectById($cid);
             $dadosExtras = json_decode($data['dados_cliente'], true);
             $data = array_merge($data, $dadosExtras);
             // removendo id de quem criou a ficha do cliente
             $data['created_user_id'] = CURRENT_USER_ID;
         }
     }
     $model->lockRow($data['id'], CURRENT_USER_ID, 1);
     // Verifica se esta bloquedo
     $is_locked = $this->_acl_model->checkLocked($data['locked'], $data['locked_by']);
     if ($is_locked) {
         $this->view->messages = array('Item bloqueado para edição');
         $this->view->hide = true;
         $this->view->form = '';
         return false;
     }
     // Verifica sem tem permissão pra acessar o conteudo.
     $is_autorized = $this->_acl_model->autorized($data['created_user_id'], $this->_ids);
     if (!$is_autorized) {
         $this->view->messages = array('Sem permissão de acesso');
         $this->view->barTitle = 'Editando Proposta';
         $this->view->form = '';
         return false;
     }
     // Pega Condições de pagamento
     $condicoes = $model->selectCondicoesPagamento($id);
     if ($condicoes) {
         $this->view->sinal = $condicoes['sinal'];
         $this->view->parcelas = json_decode($condicoes['parcelas'], true);
     }
     // Pega todos os arquivos relacinados ao cliente
     $this->view->anexos = $documentos->readDir(PUBLIC_PATH . DIRECTORY_SEPARATOR . 'uploads', $id);
     $this->view->documentos = $documentos;
     $this->view->barTitle = "Editando Proposta :: " . $data['nome'];
     $this->view->form = $form;
     $this->view->data = $data;
     $form->populate($data);
 }