コード例 #1
0
 public function indexAction()
 {
     // numero da semana anterior
     $zendDate = new Zend_Date();
     $semana = $zendDate->get(Zend_Date::WEEK) - 1;
     $dia_semana = $zendDate->get(Zend_Date::WEEKDAY_DIGIT);
     $zendDate->subDay(7);
     $dia_semana_inicio = $dia_semana - 1;
     $dia_semana_fim = 7 - $dia_semana;
     $periodo_inicial = $zendDate->subDay($dia_semana_inicio)->get("dd/MM/YYYY");
     $periodo_final = $zendDate->addDay($dia_semana_fim)->get('dd/MM/YYYY');
     $periodo = $periodo_inicial . ' à ' . $periodo_final;
     // busca as visualizacoes da semana
     $modelSalaoVisualizacao = new Model_DbTable_SalaoVisualizacao();
     $visualizacoes = $modelSalaoVisualizacao->visualizacoes($semana);
     try {
         foreach ($visualizacoes as $visualizacao) {
             $pluginMail = new Plugin_Mail();
             $pluginMail->setDataMail('visualizacao', $visualizacao);
             $pluginMail->setDataMail('periodo', $periodo);
             $pluginMail->send("salao-visualizacao.phtml", "Relatório de Visualizações", $visualizacao->salao_email);
         }
         echo 'emails enviados';
     } catch (Zend_Mail_Exception $ex) {
         die('email');
     } catch (Exception $ex) {
         Zend_Debug::dump($ex->getMessage());
     }
 }
コード例 #2
0
 public function indexAction()
 {
     try {
         $pluginMail = new Plugin_Mail();
         $pluginMail->send('padrao.phtml', 'Email teste', '*****@*****.**');
         echo 'enviado';
     } catch (Zend_Mail_Exception $ex) {
         echo $ex->getMessage();
     }
 }
コード例 #3
0
 public function indexAction()
 {
     $formSiteContato = new Form_Site_Contato();
     $this->view->formContato = $formSiteContato;
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         if ($formSiteContato->isValid($data)) {
             $data = $formSiteContato->getValues();
             try {
                 $modelContato = new Model_DbTable_Contato();
                 $modelContato->insert($data);
                 /**
                  * Envia o email
                  */
                 $pluginMail = new Plugin_Mail();
                 $pluginMail->setDataMail('contato_nome', $data['contato_nome']);
                 $pluginMail->send('contato-retorno.phtml', 'Contato Recebido', $data['contato_email']);
                 /**
                  * Envia o email administracao
                  */
                 $pluginMail = new Plugin_Mail();
                 $pluginMail->setDataMail('contato_nome', $data['contato_nome']);
                 $pluginMail->setDataMail('contato_email', $data['contato_email']);
                 $pluginMail->setDataMail('contato_mensagem', $data['contato_mensagem']);
                 $pluginMail->send('contato-admin.phtml', 'Novo Contato', Zend_Registry::get("config")->mail->mail_admin);
                 $this->_helper->flashMessenger->addMessage(array('success' => 'Contato enviado com sucesso!'));
                 $this->_helper->flashMessenger->addMessage(array('info' => 'Em breve entraremos em contato. Obrigado.'));
                 $this->_redirect('contato/');
             } catch (Zend_Mail_Exception $ex) {
                 $this->_helper->flashMessenger->addMessage(array('success' => 'Contato enviado com sucesso!'));
                 $this->_helper->flashMessenger->addMessage(array('info' => 'Em breve entraremos em contato. Obrigado.'));
                 $this->_redirect('contato/');
             } catch (Exception $ex) {
                 die($ex->getMessage());
             }
         }
     }
 }
コード例 #4
0
 public function esqueciAction()
 {
     $formEsqueci = new Form_Site_EsqueciSenha();
     $this->view->formEsqueci = $formEsqueci;
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         if ($formEsqueci->isValid($data)) {
             $data = $formEsqueci->getValues();
             /**
              * verifica se esta cadastrado
              */
             $modelAutenticacao = new Model_DbTable_Autenticacao();
             $autenticacao = $modelAutenticacao->getByField('autenticacao_email', $data['email']);
             if ($autenticacao) {
                 try {
                     Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
                     /**
                      * gerar um hash para alterar a conta
                      */
                     $hash = md5(uniqid());
                     /**
                      * altera os dados do acesso
                      */
                     $update = array('autenticacao_hash_ativar' => $hash);
                     $modelAutenticacao->update($update, "autenticacao_email = '{$data['email']}'");
                     /**
                      * envia o email com o link 
                      */
                     $link_recuperar = Zend_Registry::get('config')->url->site . "autenticacao/recuperar/hash/" . $hash;
                     $pluginMail = new Plugin_Mail();
                     $pluginMail->setDataMail('link_recuperar', $link_recuperar);
                     $pluginMail->send('alterar-senha.phtml', 'Alterar Senha', $data['email']);
                     $this->_helper->flashMessenger->addMessage(array('success' => 'Acesse o email informado para alterar sua senha'));
                     Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
                 } catch (Zend_Mail_Exception $ex) {
                     $this->_helper->flashMessenger->addMessage(array('danger' => "Não foi possível enviar o email para redefinir sua senha. Por favor tente mais tarde. "));
                     Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
                 } catch (Exception $ex) {
                     $this->_helper->flashMessenger->addMessage(array('danger' => $ex->getMessage()));
                     Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
                 }
                 $this->_redirect("autenticacao/esqueci");
             } else {
                 $this->_helper->flashMessenger->addMessage(array('warning' => 'Este email não está cadastrado em nossa base!'));
                 $this->_helper->flashMessenger->addMessage(array('info' => 'Aproveite e faça o seu cadastro conosco!'));
                 $this->_redirect("cadastro/");
             }
         }
     }
 }
コード例 #5
0
 protected function cadastraBeautyMaker()
 {
     // form cadastro profissional
     $formCadastroSalao = new Form_Site_CadastroSalao();
     $this->view->formCadastroProfissional = $formCadastroSalao;
     $data = $this->getRequest()->getPost();
     unset($data['submit']);
     if ($formCadastroSalao->isValid($data)) {
         $modelSalao = new Model_DbTable_Salao();
         $senha = $data['senha'];
         unset($data['senha']);
         $cupom = $data['salao_cupom'];
         unset($data['salao_cupom']);
         $pluginSalaoSlug = new Plugin_SalaoSlug($data['salao_nome']);
         $data['salao_slug'] = $pluginSalaoSlug->getSlug();
         try {
             Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
             $hash = md5(uniqid());
             $salao_id = $modelSalao->insert($data);
             /**
              * cria o registro da autenticacao com o hash
              */
             $modelAutenticacao = new Model_DbTable_Autenticacao();
             $dadosAutenticacao = array('autenticacao_email' => $data['salao_email'], 'autenticacao_hash_ativar' => $hash, 'autenticacao_senha' => md5($senha), 'autenticacao_modulo' => 2);
             $modelAutenticacao->insert($dadosAutenticacao);
             /**
              * set Message sucess
              */
             $this->_helper->flashMessenger->addMessage(array('success' => ' 
                     Seu cadastro foi realizado com sucesso.
                     Favor verificar o e-mail informado para validar sua conta.
                 '));
             /**
              * Verifica se tem cupom
              */
             if (!empty($cupom)) {
                 $valida_cupom = $this->validaCupom($cupom, $salao_id);
                 // retorno
                 if ($valida_cupom == 0) {
                     $this->_helper->flashMessenger->addMessage(array('danger' => ' 
                             Houve um problema na validação do seu cupom.  
                             Favor entre em contato com o nossa equipe de suporte!
                         '));
                 } elseif ($cupom == 1) {
                     $this->_helper->flashMessenger->addMessage(array('success' => ' 
                             Seu cupom foi validado com sucesso!
                         '));
                 } elseif ($cupom == 2) {
                     $this->_helper->flashMessenger->addMessage(array('warning' => ' 
                             Este cupom já foi utilizado!
                         '));
                 }
             }
             /**
              * Envia o email
              */
             $link_ativar = Zend_Registry::get('config')->url->site . "/beautymaker/ativar/hash/" . $hash;
             $pluginMail = new Plugin_Mail();
             $pluginMail->setDataMail('salao_proprietario', $data['salao_proprietario']);
             $pluginMail->setDataMail('salao_nome', $data['salao_nome']);
             $pluginMail->setDataMail('link_ativar', $link_ativar);
             $pluginMail->send('salao-cadastro.phtml', 'Cadastro Recebido', $data['salao_email']);
             Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
             $this->_redirect('beautymaker/');
         } catch (Exception $ex) {
             Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
             $this->_helper->flashMessenger->addMessage(array('danger' => $ex->getMessage()));
             $this->_redirect('beautymaker/');
         }
     } else {
         $this->view->errors = true;
     }
 }
コード例 #6
0
 public function cancelarAction()
 {
     $agenda_id = $this->getRequest()->getParam('id');
     $agenda_id = $this->getRequest()->getParam('id');
     if (!$agenda_id) {
         $this->_helper->flashMessenger->addMessage(array('danger' => "Agendamento não encontrado!"));
         $this->_redirect("cliente/");
     }
     /**
      * busca dados do agendamento
      */
     $modelAgenda = new Model_DbTable_Agenda();
     $agenda = $modelAgenda->getById($agenda_id);
     /**
      * Verifica se o agendamento e do usuario logado
      */
     if ($agenda->usuario_id !== Zend_Auth::getInstance()->getIdentity()->usuario_id) {
         $this->_helper->flashMessenger->addMessage(array('danger' => "<strong>Acesso negado!</strong> Você não pode alterar este agendamento!"));
         $this->_redirect("cliente/");
     }
     /**
      * verifica se pode alterar a data
      */
     $modelConfig = new Model_DbTable_Config();
     $prazoCancelamento = $modelConfig->getBySlug('prazo_alterar_agendamento');
     $zendDateNow = new Zend_Date();
     $zendDateAgenda = new Zend_Date($agenda->agenda_data);
     if (!$zendDateNow->isEarlier($zendDateAgenda->subHour($prazoCancelamento->config_valor))) {
         $this->_helper->flashMessenger->addMessage(array('warning' => "<strong>Atenção!</strong> O prazo para alterar este agendamento já expirou!"));
         $this->_redirect("cliente/");
     }
     $this->view->agenda = $agenda;
     /**
      * form de motivo
      */
     $formMotivo = new Form_Salao_AgendaManualCancelamento();
     $formMotivo->submit->setLabel("Cancelar Agendamento");
     $this->view->formMotivo = $formMotivo;
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         if ($formMotivo->isValid($data)) {
             $agenda_cancelado_motivo = $formMotivo->getValue('agenda_cancelado_motivo');
             try {
                 Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
                 $update = array('agenda_cancelado' => 1, 'agenda_cancelado_autor' => 'Cliente', 'agenda_cancelado_usuario' => 1, 'agenda_cancelado_motivo' => $agenda_cancelado_motivo, 'agenda_cancelado_data' => Zend_Date::now()->get('YYYY-MM-dd H:m'));
                 $modelAgenda->updateById($update, $agenda_id);
                 /**
                  * envia o email de confirmacao (cliente)
                  */
                 $pluginMail = new Plugin_Mail();
                 $pluginMail->setDataMail('agenda', $agenda);
                 $pluginMail->setDataMail('agenda_cancelado_motivo', $agenda_cancelado_motivo);
                 $pluginMail->send('cliente-agendamento-cancelar.phtml', 'Agendamento Cancelado', Zend_Auth::getInstance()->getIdentity()->usuario_email);
                 /**
                  * envia o email de confirmacao (salao)
                  */
                 $pluginMail2 = new Plugin_Mail();
                 $pluginMail2->setDataMail('agenda', $agenda);
                 $pluginMail2->setDataMail('agenda_cancelado_motivo', $agenda_cancelado_motivo);
                 $pluginMail2->send('salao-agendamento-cancelar.phtml', 'Agendamento Cancelado', $agenda->salao_email);
                 Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
                 // retira a cobranca do salao
                 $pluginCobranca = new Plugin_Cobranca($agenda);
                 $pluginCobranca->retirar();
                 $this->_helper->flashMessenger->addMessage(array('success' => 'Agendamento cancelado com sucesso.'));
                 $this->_redirect("cliente/");
             } catch (Zend_Mail_Exception $ex) {
                 Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
                 $this->_helper->flashMessenger->addMessage(array('success' => 'Agendamento cancelado com sucesso.'));
                 $this->_helper->flashMessenger->addMessage(array('warning' => 'Não foi possível enviar o e-mail de confirmação.'));
                 $this->_redirect("cliente/");
             } catch (Exception $ex) {
                 Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
                 $this->_helper->flashMessenger->addMessage(array('danger' => 'Não foi possível cancelar o agendamento. Tente novamente mais tarde. - ' . $ex->getMessage()));
                 $this->_redirect("cliente/");
             }
         }
     }
 }
コード例 #7
0
 public function noshowAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender();
     $agenda_id = $this->getRequest()->getParam("agenda");
     // busca dados do agendamento
     $modelAgenda = new Model_DbTable_Agenda();
     $agenda = $modelAgenda->getById($agenda_id);
     //Zend_Debug::dump($agenda); die();
     // verifica se pode dar no show
     if (!$agenda || $agenda->salao_id !== Zend_Auth::getInstance()->getIdentity()->salao_id) {
         $this->_helper->flashMessenger->addMessage(array("danger" => "Ação não permitida!"));
         $this->_redirect("salao/");
     }
     //caso ja tenha sido dado no-show
     if ($agenda->agenda_noshow) {
         $this->_helper->flashMessenger->addMessage(array("warning" => "No-show já efetuado para este agendamento!"));
         $this->_redirect("salao/");
     }
     try {
         Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
         // atualizar a tabela
         $modelAgenda->updateById(array("agenda_noshow" => 1), $agenda_id);
         // enviar email para cliente
         $PluginMail = new Plugin_Mail();
         $PluginMail->setDataMail("agenda", $agenda);
         $PluginMail->send("cliente-noshow.phtml", "No-show", $agenda->usuario_email);
         // gravar notificacao
         $insertNotificacao = array("autenticacao_email" => $agenda->usuario_email, "notificacao_mensagem" => "No-show para um agendamento", "notificacao_link" => "#");
         $pluginNotificacao = new Plugin_Notificacao();
         $pluginNotificacao->gravar($insertNotificacao);
         $this->_helper->flashMessenger->addMessage(array("success" => "No-show realizado!"));
         Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
     } catch (Exception $ex) {
         $this->_helper->flashMessenger->addMessage(array("danger" => "Houve um problema - " . $ex->getMessage()));
         Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
     }
     $this->_redirect("salao/");
 }
コード例 #8
0
 public function sendAction()
 {
     die("11");
     // 实例化邮件类
     $sendMail = new Plugin_Mail();
     // 发送邮件
     $headers['Subject'] = '123123';
     $test = $sendMail->send('*****@*****.**', $headers, '2222');
     var_dump($test);
     die("sdf");
 }
コード例 #9
0
 public function preCadastroAction()
 {
     /**
      * form de salao
      */
     $formSalao = new Form_Site_CadastroSalao();
     // removing some elements
     $formSalao->removeElement('salao_cnpj');
     $formSalao->removeElement('salao_proprietario');
     $formSalao->removeElement('senha');
     $formSalao->removeElement('salao_politica_termo');
     $formSalao->removeElement('salao_cupom');
     // setting not required
     $formSalao->salao_contato->setRequired(false);
     $formSalao->salao_numero->setRequired(false);
     $this->view->form = $formSalao;
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         if ($formSalao->isValid($data)) {
             $data = $formSalao->getValues();
             $data['salao_pre_cadastro'] = 1;
             try {
                 // gerar o slug
                 $pluginSalaoSlug = new Plugin_SalaoSlug($data['salao_nome']);
                 $data['salao_slug'] = $pluginSalaoSlug->getSlug();
                 Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
                 $modelSalao = new Model_DbTable_Salao();
                 $salao_id = $modelSalao->insert($data);
                 /**
                  * Gera a autenticacao
                  */
                 $hash = md5(uniqid());
                 $dadosAutenticacao = array('autenticacao_email' => $data['salao_email'], 'autenticacao_modulo' => 2, 'autenticacao_hash_ativar' => $hash);
                 $modelAutenticacao = new Model_DbTable_Autenticacao();
                 $modelAutenticacao->insert($dadosAutenticacao);
                 // envie o email para o salao
                 $pluginMail = new Plugin_Mail();
                 $pluginMail->setDataMail('salao_hash', $hash);
                 $pluginMail->setDataMail('key', $data['salao_slug']);
                 //$pluginMail->send("salao-pre-cadastro.phtml", "", $data['salao_email']);
                 $pluginMail->send("salao-pre-cadastro.phtml", "Oportunidade!!!", "*****@*****.**");
                 Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
                 /**
                  * set Message sucess
                  */
                 $this->_helper->flashMessenger->addMessage(array('success' => ' 
                         Salão pré-cadastrado com sucesso.
                     '));
                 $this->_redirect("admin/salao/pre-cadastro");
             } catch (Zend_Mail_Exception $ex) {
                 Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
                 $this->_helper->flashMessenger->addMessage(array('danger' => ' 
                         E-mail não pode ser enviado! - 
                     ' . $ex->getMessage()));
                 $this->_redirect("admin/salao/pre-cadastro");
             } catch (Exception $ex) {
                 Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
                 $this->_helper->flashMessenger->addMessage(array('danger' => ' 
                         Houve um erro ao cadastrar o salão. - 
                     ' . $ex->getMessage()));
                 $this->_redirect("admin/salao/pre-cadastro");
             }
         }
     }
 }
コード例 #10
0
 public function agendarAction()
 {
     $especialidade_id = $this->getRequest()->getParam('especialidade');
     $this->view->especialidade_id = $especialidade_id;
     $salao_id = $this->getRequest()->getParam('salao');
     /**
      * Verifica se o usuario esta logado
      */
     if (!Zend_Auth::getInstance()->hasIdentity() || !isset(Zend_Auth::getInstance()->getIdentity()->usuario_id)) {
         $this->_helper->flashMessenger->addMessage(array('info' => 'Por favor faça o login para agendar seu horário.'));
         $this->_redirect("autenticacao/login/salao/{$salao_id}/especialidade/{$especialidade_id}");
     }
     /**
      * Busca dados do salao
      */
     $modelSalao = new Model_DbTable_Salao();
     $salao = $modelSalao->getById($salao_id);
     $this->view->salao = $salao;
     /**
      * Busca dados das especialidades
      */
     $modelEspecialidade = new Model_DbTable_Especialidade();
     $especialidade = $modelEspecialidade->getById($especialidade_id);
     $this->view->especialidade = $especialidade;
     /**
      * Busca o preco da especialidade
      */
     $modelEspecialidadePreco = new Model_DbTable_EspecialidadePreco();
     $precoEspecialidade = $modelEspecialidadePreco->getPrecoEspecialidadeSalao($especialidade_id, $salao_id);
     $this->view->precoEspecialidade = $precoEspecialidade;
     /**
      * form agendamento
      */
     $formAgendar = new Form_Site_Agendar();
     $this->view->formAgendar = $formAgendar;
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         if ($formAgendar->isValid($data)) {
             $data = $formAgendar->getValues();
             $data['agenda_data'] = App_Helper_Date::getDateDb($data['agenda_data']) . " " . $data['agenda_hora'];
             unset($data['agenda_hora']);
             if (empty($data['profissional_beleza_id'])) {
                 $data['profissional_beleza_id'] = null;
             }
             //Zend_Debug::dump($data); die();
             try {
                 Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
                 $modelAgenda = new Model_DbTable_Agenda();
                 $agenda_id = $modelAgenda->insert($data);
                 /**
                  * Busca os dados completo do agendamento para enviar o email
                  */
                 $agenda = $modelAgenda->getById($agenda_id);
                 /**
                  * Grava uma notificacao para o salao
                  */
                 $insertNotificacao = array('autenticacao_email' => $salao->salao_email, 'notificacao_mensagem' => 'Novo Agendamento pendente de confirmação', 'notificacao_link' => Zend_Registry::get('config')->url->site . "salao/agenda/confirmar/");
                 $pluginNotificacao = new Plugin_Notificacao();
                 $pluginNotificacao->gravar($insertNotificacao);
                 /**
                  * envia o email de confirmacao (cliente)
                  */
                 $pluginMail = new Plugin_Mail();
                 $pluginMail->setDataMail('agenda', $agenda);
                 $pluginMail->send('cliente-agendamento.phtml', 'Agendamento Realizado', Zend_Auth::getInstance()->getIdentity()->usuario_email);
                 /**
                  * envia o email de confirmacao (salao)
                  */
                 $url_login = Zend_Registry::get('config')->url->login;
                 $pluginMail2 = new Plugin_Mail();
                 $pluginMail2->setDataMail('url_login', $url_login);
                 $pluginMail2->setDataMail('agenda', $agenda);
                 $pluginMail2->send('salao-agendamento.phtml', 'Novo Agendamento Realizado', $agenda->salao_email);
                 $this->_helper->flashMessenger->addMessage(array('success' => 'Agendamento realizado com sucesso!'));
                 $this->_helper->flashMessenger->addMessage(array('warning' => 'Aguarde a confirmação do seu agendamento pelo estabelecimento!'));
                 Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
             } catch (Zend_Mail_Exception $ex) {
                 $this->_helper->flashMessenger->addMessage(array('success' => 'Agendamento realizado com sucesso!'));
                 $this->_helper->flashMessenger->addMessage(array('success' => 'Aguarde a confirmação do seu agendamento pelo estabelecimento!'));
                 Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
             } catch (Exception $ex) {
                 $this->_helper->flashMessenger->addMessage(array('danger' => 'Houve um erro ao agendar o horário - ' . $ex->getMessage()));
                 Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
             }
             $this->_redirect('cliente/');
         }
     }
 }
コード例 #11
0
 public function indexAction()
 {
     // form cadastro usuario
     $formCadastroUsuario = new Form_Site_CadastroUsuario();
     $this->view->formCadastroUsuario = $formCadastroUsuario;
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         unset($data['submit']);
         if ($formCadastroUsuario->isValid($data)) {
             $senha = $data['usuario_senha'];
             unset($data['usuario_senha']);
             try {
                 $pluginEndereco = new Plugin_Endereco($data['usuario_cep']);
                 $data['usuario_logradouro'] = $pluginEndereco->get_endereco();
                 $data['usuario_bairro'] = $pluginEndereco->get_bairro();
                 $data['usuario_cidade'] = $pluginEndereco->get_cidade();
                 $data['usuario_uf'] = $pluginEndereco->get_uf();
                 $modelUsuario = new Model_DbTable_Usuario();
                 Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
                 $modelUsuario->insert($data);
                 $hash = md5(uniqid());
                 /**
                  * cria o registro da autenticacao com o hash
                  */
                 $modelAutenticacao = new Model_DbTable_Autenticacao();
                 $dadosAutenticacao = array('autenticacao_email' => $data['usuario_email'], 'autenticacao_hash_ativar' => $hash, 'autenticacao_senha' => md5($senha), 'autenticacao_modulo' => 1);
                 $modelAutenticacao->insert($dadosAutenticacao);
                 $link_ativar = Zend_Registry::get('config')->url->site . "/usuario/ativar/hash/" . $hash;
                 /**
                  * Envia o email
                  */
                 $pluginMail = new Plugin_Mail();
                 $pluginMail->setDataMail('usuario_nome', $data['usuario_nome']);
                 $pluginMail->setDataMail('link_ativar', $link_ativar);
                 $pluginMail->send('usuario-pre-cadastro.phtml', 'Cadastro Recebido', $data['usuario_email']);
                 /**
                  * set Message sucess
                  */
                 $this->_helper->flashMessenger->addMessage(array('success' => ' 
                         Seu cadastro foi realizado com sucesso.
                         Favor verificar o e-mail informado para validar sua conta.
                     '));
                 Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
                 $this->_redirect('usuario/');
             } catch (Zend_Mail_Exception $ex) {
                 $this->_helper->flashMessenger->addMessage(array('success' => ' 
                         Seu cadastro foi realizado com sucesso.
                     '));
                 $this->_helper->flashMessenger->addMessage(array('warning' => "Não foi possível enviar o email para ativar sua conta."));
                 Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
                 $this->_redirect('usuario/');
             } catch (Exception $ex) {
                 Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
                 $this->_helper->flashMessenger->addMessage(array('danger' => "Não foi possível realizar o cadastro. Favor tentar novamente mais tarde."));
                 $this->_redirect('usuario/');
             }
         } else {
             $this->view->errors = true;
         }
     }
 }