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