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; }
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); }