public function indexAction()
 {
     $formBuscaCepAviso = new Form_Site_BuscaCepAviso();
     $this->view->formBuscaCepAviso = $formBuscaCepAviso;
     $cep_busca = $this->getRequest()->getParam("cep_busca", false);
     if ($cep_busca) {
         $cep = $this->getRequest()->getParam('cep_busca');
         $busca_cep_id = $this->gravaBuscaCep($cep);
         $formBuscaCepAviso->busca_id->setValue($busca_cep_id);
         try {
             /**
              * encontra o endereco
              */
             $pluginEndereco = new Plugin_Endereco($cep);
             $this->view->pluginEndereco = $pluginEndereco;
             if (!$pluginEndereco->get_endereco_object()) {
                 die('erro');
             }
             /**
              * faco a busca
              */
             $modelSalao = new Model_DbTable_Salao();
             $saloes = $modelSalao->buscaSaloes($pluginEndereco);
             /**
              * caso nao tenha nenhum salao no bairro pesquisa na cidade
              */
             $this->view->saloes_cidade = $modelSalao->buscaSaloesCidade($pluginEndereco);
             $this->view->saloes = $saloes;
             /**
              * outros dados para a view
              */
             $this->view->cep = $cep;
             $this->view->endereco = $pluginEndereco->__toString();
             /**
              * atualiza os registros da busca
              */
             if (Zend_Auth::getInstance()->hasIdentity() && isset(Zend_Auth::getInstance()->getIdentity()->usuario_id)) {
                 $busca_email = Zend_Auth::getInstance()->getIdentity()->usuario_email;
             } else {
                 $busca_email = null;
             }
             $dadosAtualizaBusca = array('busca_registros' => $saloes->count(), 'busca_email' => $busca_email, 'busca_cidade' => $pluginEndereco->get_cidade(), 'busca_estado' => $pluginEndereco->get_uf(), 'busca_mobile' => $this->mobileDetect->isMobile() ? 1 : 0);
             $this->atualizaBuscaCep($busca_cep_id, $dadosAtualizaBusca);
         } catch (Exception $ex) {
             /**
              * atualiza a busca
              */
             $dadosAtualizaBusca = array("busca_valida" => 0);
             $this->atualizaBuscaCep($busca_cep_id, $dadosAtualizaBusca);
             $this->_helper->flashMessenger->addMessage(array('danger' => $ex->getTraceAsString()));
             $this->_redirect("busca/");
         }
     }
 }
Exemple #2
0
 public function isValid($value, $context = null)
 {
     // verifica se já existe
     $modelSalao = new Model_DbTable_Salao();
     $salao = $modelSalao->getByField('salao_email', $value);
     if (null !== $salao) {
         $this->_error(self::NOT_VALID);
         return false;
     }
     return true;
 }
 protected function geraSlug()
 {
     if (!$this->salao_nome) {
         throw new Exception("Nenhum nome de salão enviado");
     }
     $slug = $this->corrigir($this->salao_nome);
     // verifica se ja existe slug
     $modelSalao = new Model_DbTable_Salao();
     $ifExists = $modelSalao->fetchAll("salao_slug = '{$slug}'");
     if ($ifExists->count() > 0) {
         $slug .= $ifExists->count() + 1;
     }
     return $slug;
 }
Exemple #4
0
 public function isValid($value, $context = null)
 {
     // verifica se e valido
     if (!$this->valida_cnpj($value)) {
         $this->_error(self::NOT_VALID);
         return false;
     }
     // verifica se já existe
     $modelSalao = new Model_DbTable_Salao();
     $salao = $modelSalao->getByField("salao_cnpj", $value);
     if (null !== $salao) {
         $this->_error(self::ALREADY_EXISTS);
         return false;
     }
     return true;
 }
 public function indexAction()
 {
     $salao_slug = $this->getRequest()->getParam("slug");
     // corrigir slug caso necessario
     $pluginSalaoSlug = new Plugin_SalaoSlug($salao_slug);
     $salao_slug = $pluginSalaoSlug->corrigir($salao_slug);
     // buscao o id do salao
     $modelSalao = new Model_DbTable_Salao();
     $salao = $modelSalao->getByField("salao_slug", $salao_slug);
     if (!$salao) {
         throw new Exception("Desculpe! Não encontramos a página solicitada!", 401);
     }
     /**
      * grava o visualizacao
      */
     $modelSalaoVisualizacao = new Model_DbTable_SalaoVisualizacao();
     $modelSalaoVisualizacao->insert(array('salao_id' => $salao->salao_id));
     // caso seja mobile visualizacao antiga
     $mobileDetect = new Mobile_MobileDetect();
     if ($mobileDetect->isMobile()) {
         $this->_redirect("agenda/especialidade/salao/" . $salao->salao_id);
     }
     /**
      * PROFISSIONAIS DA BELEZA
      */
     $modelProfissionalBeleza = new Model_DbTable_ProfissionalBeleza();
     $profissionais = $modelProfissionalBeleza->getProfissionaisBeleza($salao->salao_id);
     /**
      * ESPECIALIDADES E PRECOS
      */
     $modelEspecialidadePreco = new Model_DbTable_EspecialidadePreco();
     $especialidades = $modelEspecialidadePreco->getPrecosEspecialidadesSalao($salao->salao_id);
     $this->view->especialidades = $especialidades;
     /**
      * HORARIO DE FUNCIONAMENTO 
      */
     $modelSalaoFuncionamento = new Model_DbTable_SalaoFuncionamento();
     $funcionamento = $modelSalaoFuncionamento->getByField("salao_id", $salao->salao_id);
     $this->view->salao = $salao;
     $this->view->profissionais = $profissionais;
     $this->view->especialidades = $especialidades;
     $this->view->funcionamento = $funcionamento;
 }
 public function indexAction()
 {
     $salao_id = Zend_Auth::getInstance()->getIdentity()->salao_id;
     if (!$salao_id) {
         throw new Exception("Houve um erro!");
     }
     /**
      * busca dados do salao
      */
     $modelSalao = new Model_DbTable_Salao();
     $salao = $modelSalao->getById($salao_id);
     if (!$salao) {
         throw new Exception("Salao não encontrado!");
     }
     $salao->estado_id = $salao->estado_nome;
     /**
      * Form 
      */
     $formSalao = new Form_Site_CadastroSalao();
     // removendo alguns elementos
     $formSalao->removeElement('senha');
     $formSalao->removeElement('salao_cupom');
     $formSalao->removeElement('salao_politica_termo');
     $formSalao->removeElement('salao_email');
     $formSalao->populate($salao->toArray());
     $this->view->formSalao = $formSalao;
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         if ($formSalao->isValid($data)) {
             $data = $formSalao->getValues();
             try {
                 $modelSalao->updateById($data, $salao_id);
                 $this->_helper->flashMessenger->addMessage(array('success' => 'Dados alterados com sucesso!'));
             } catch (Exception $ex) {
                 $this->_helper->flashMessenger->addMessage(array('danger' => 'Houve um problema, favor entre em contato com nosso suporte'));
             }
             $this->_redirect("salao/dados-salao");
         } else {
             Zend_Debug::dump($formSalao->getErrors());
             die;
         }
     }
 }
 public function indexAction()
 {
     // Saloes Cadastrados
     $modelSalao = new Model_DbTable_Salao();
     //$where = $modelSalao->getDefaultAdapter()->quoteInto("salao_pre_cadastro = ?", 0);
     $totalSalao = $modelSalao->getCount();
     $this->view->totalSalao = $totalSalao->count;
     // Clientes Cadastrados
     $modelCliente = new Model_DbTable_Cliente();
     $totalCliente = $modelCliente->getCount();
     $this->view->totalCliente = $totalCliente->count;
     // Consultas CEP (validas)
     $modelBuscaCep = new Model_DbTable_BucaCep();
     $where = $modelBuscaCep->getDefaultAdapter()->quoteInto('busca_valida = ?', 1);
     $totalConsultaCep = $modelBuscaCep->getCount(1, $where);
     $this->view->totalConsultaCep = $totalConsultaCep->count;
     // agendamentos
     $modelAgenda = new Model_DbTable_Agenda();
     $where = $modelAgenda->getDefaultAdapter()->quoteInto("agenda_manual is null", null);
     $totalAgendamentos = $modelAgenda->fetchAll($where);
     $this->view->totalAgendamentos = $totalAgendamentos->count();
 }
 private function setSalaoAuth($email)
 {
     $modelSalao = new Model_DbTable_Salao();
     $salao = $modelSalao->getByField("salao_email", $email);
     Zend_Auth::getInstance()->getStorage()->write($salao);
     $this->_redirect("salao/");
 }
 /**
  * 
  * @param type $cupom_codigo
  * @param type $salao_id
  * @return int 
  * 
  * 0 - Error
  * 1 - Success
  * 2 - Ja usado
  */
 protected function validaCupom($cupom_codigo, $salao_id)
 {
     $modelCobrancaLancamento = new Model_DbTable_CobrancaLancamento();
     $modelConfig = new Model_DbTable_Config();
     $modelCupom = new Model_DbTable_Cupom();
     $modelCupomValidacao = new Model_DbTable_CupomValidacao();
     $modelSalao = new Model_DbTable_Salao();
     // busca o cupom na tabela
     $cupom = $modelCupom->getByField("cupom_codigo", $cupom_codigo);
     // dados do salao
     $salao = $modelSalao->getById($salao_id);
     /**
      * Verifica se ja foi validado
      */
     if ($modelCupomValidacao->jaUtilizado($cupom->cupom_id, $salao->salao_email)) {
         return 2;
     }
     // verifica o tipo de desconto
     if ($cupom->cupom_promo_key === "AGENDAMENTOS") {
         try {
             Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction();
             /**
              * Insere o credito
              */
             $valor = $cupom->cupom_promo_value * $modelConfig->getBySlug("valor_agendamento")->config_valor * -1;
             $insertLancamento = array('salao_id' => $salao_id, 'cobranca_lancamento_valor' => $valor, 'cobranca_lancamento_descricao' => "CRÉDITO DE AGENDAMENTOS CUPOM {$cupom_codigo}");
             $modelCobrancaLancamento->insert($insertLancamento);
             /**
              * seta como validado
              */
             $insertCupomValidacao = array('cupom_id' => $cupom->cupom_id, 'autenticacao_email' => $salao->salao_email, 'cupom_validacao_validado' => 1, 'cupom_validacao_data' => Zend_Date::now()->get("YYYY-MM-dd H:m:s"));
             $modelCupomValidacao->insert($insertCupomValidacao);
             Zend_Db_Table_Abstract::getDefaultAdapter()->commit();
             return 1;
         } catch (Exception $ex) {
             Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack();
             return 0;
         }
     }
     Zend_Debug::dump($cupom);
     die;
 }
 /**
  * Pagina financeira do salao
  */
 public function financeiroAction()
 {
     $salao_id = $this->getRequest()->getParam("salao");
     /**
      * Busca os dados do salao
      */
     $modelSalao = new Model_DbTable_Salao();
     $salao = $modelSalao->getById($salao_id);
     $this->view->salao = $salao;
 }
 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/');
         }
     }
 }