public function editAction() { $request = $this->_request; $model_proposta = new Application_Model_Propostas(); $model_imovel = new Application_Model_Empreendimentos(); $form = new Application_Form_Financeiro(); $id = $request->getParam('id'); if ($request->isPost()) { $data = $request->getPost(); $data['parcelas_pagas'] = isset($data['parcelas_pagas']) ? json_encode($data['parcelas_pagas']) : array(); $data['comissao'] = isset($data['comissao']) ? json_encode($data['comissao']) : json_encode(array()); if ($form->valid($data)) { $dataUpdate = $data; $getCondioes = $model_proposta->selectCondicoesPagamento($id); // Removendo campos inexistentes para fazer update // TODO: colocar esse processo dinamico dentro do Model unset($dataUpdate['locked']); unset($dataUpdate['locked_by']); unset($dataUpdate['nome']); unset($dataUpdate['total']); $dataUpdate['last_modified'] = date('Y-d-m h:i:s', time()); // Tenta atualizar se não acresenta uma nova condição if ($model_proposta->updateCondicoesPagamento($id, $dataUpdate)) { $this->view->messages = array('Atualizado com sucesso!'); $this->view->message_type = 'alert-success'; // Se não existir a condição ele cria uma nova. } else { if (empty($getCondioes)) { $model_proposta->insertCondicoesPagamento($dataUpdate); $this->view->messages = array('Dados inserido com sucesso!'); $this->view->message_type = 'alert-success'; } else { $this->view->messages = array('Sem alterações!'); $this->view->message_type = 'alert-info'; } } } } else { $data = $model_proposta->getPropostaAutorizada($id); $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->form = ''; $this->view->hide = true; return false; } else { $model_proposta->lockRow($data['id_proposta'], CURRENT_USER_ID, 1); $dados_extras = json_decode($data['dados_extras'], true); $data['nome'] = $dados_extras['nome']; $data['data_proposta'] = $dados_extras['data_proposta']; unset($data['dados_extras']); // Se estiver zerado sera gerado um erro informando a situação $empreendimento = $model_imovel->selectById($dados_extras['imovel']); if (empty($empreendimento)) { $this->view->messages = array('Empreendimento não informado na proposta!'); $this->view->message_type = 'alert-warning'; $this->view->hide = true; return false; } else { $unidades = json_decode($empreendimento['unidades'], true); // Passando o valor da comissão do imóvel foreach ($unidades as $unidade) { if ($unidade['bloco-quadra'] == $dados_extras['imovel_bloco_quadra']) { $data['total'] = $unidade['comissao']; } } } } } $this->view->barTitle = 'Parcelas: ' . $data['nome']; $form->populate($data); $this->view->form = $form; $this->view->data = $data; }
public function condicoesPagamentoAction() { $form = new Application_Form_CondicoesPagamento(); $model = new Application_Model_Propostas(); $request = $this->_request; $id = $request->getParam('id'); if ($request->isPost()) { $data = $request->getPost(); $data['parcelas'] = json_encode($data['parcelas']); // Valida os dados if ($form->isValid($data)) { if ($model->selectCondicoesPagamento($id)) { $result = $model->updateCondicoesPagamento($id, $data); } else { $result = $model->insertCondicoesPagamento($data); } if ($result) { $this->view->messages = array('Atualizado com sucesso!'); } } } else { $cliente = $model->selectById($id); $dados_extras = json_decode($cliente['dados_extras'], true); if ($cliente) { $dataFromDb = $model->selectCondicoesPagamento($id); $data = array(); $data['id_proposta'] = $cliente['id']; if ($dataFromDb) { $data = $dataFromDb; } } else { $this->view->messages = array('Cliente não encontrado!'); return false; } } $form->populate($data); $this->view->id = $id; $this->view->form = $form; $this->view->barTitle = 'Condiçoes de pagamento:: ' . strtoupper($dados_extras['nome']) . ' #' . $id; }