public function indexAction() { /** * Agendamentos */ $modelAgenda = new Model_DbTable_Agenda(); // hoje $hoje = Zend_Date::now()->get("YYYY-MM-dd"); $agendaHoje = $modelAgenda->getAgendaSalaoData($this->identity->salao_id, $hoje); $this->view->agendaHoje = $agendaHoje; // ultimos agendamentos $ultimos = $modelAgenda->getAgendaUltimosData($this->identity->salao_id, $hoje); $this->view->ultimos = $ultimos; /** * Profissionais da beleza */ $modelProfissionalBeleza = new Model_DbTable_ProfissionalBeleza(); $profissionais = $modelProfissionalBeleza->getProfissionaisBeleza($this->identity->salao_id); $this->view->profissionais = $profissionais; /** * financeiro */ $modelCobrancaLancamento = new Model_DbTable_CobrancaLancamento(); $extrato = $modelCobrancaLancamento->getExtratoSalao($this->identity->salao_id); $this->view->extrato = $extrato; $extratoLancamentos = $modelCobrancaLancamento->getLancamentosPendentes($this->identity->salao_id); //Zend_Debug::dump($extratoLancamentos); die(); $this->view->extratoLancamentos = $extratoLancamentos; /** * Cobranca */ $modelCobranca = new Model_DbTable_Cobranca(); $cobranca = $modelCobranca->getCobranca($this->identity->salao_id); $this->view->cobranca = $cobranca; /** * form de agendamento manual */ $formAgendaManual = new Form_Salao_AgendaManual(); $formAgendaManual->submit->setLabel("Agendar"); $this->view->formAgendaManual = $formAgendaManual; }
/** * * @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; }
protected function cobranca($agenda) { // verifica se tera cobranca e ja foi feita a cobranca $modelCobrancaLancamento = new Model_DbTable_CobrancaLancamento(); $where = $modelCobrancaLancamento->getDefaultAdapter()->quoteInto("agenda_id = ?", $agenda->agenda_id); $cobranca = $modelCobrancaLancamento->fetchRow($where); if (!$agenda->salao_cobranca) { return; } if ($cobranca && $cobranca->cobranca_lancamento_ativo === 0) { // atualiza a cobranca $modelCobrancaLancamento->updateById(array("cobranca_lancamento_ativo" => 1), $cobranca->cobranca_lancamento_id); } else { // gera a lancamento da cobranca // valor do agendamento $modelConfig = new Model_DbTable_Config(); $valorAgendamento = $modelConfig->getByField("config_slug", "valor_agendamento"); // dados do lancamento $lancamento = array('salao_id' => $agenda->salao_id, 'agenda_id' => $agenda->agenda_id, 'cobranca_lancamento_valor' => (double) $valorAgendamento->config_valor, 'cobranca_lancamento_descricao' => $valorAgendamento->config_nome); $modelCobrancaLancamento->insert($lancamento); } return; }
public function alterarAction() { $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; /** * populate values */ $populate = $agenda->toArray(); $populate['agenda_data'] = App_Helper_Date::getDateView($agenda->agenda_data); $populate['agenda_horario'] = App_Helper_Date::getTime($agenda->agenda_data); /** * form de agendamento */ $formAgendar = new Form_Site_Agendar(); $formAgendar->populate($populate); $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; } $data['agenda_confirmado'] = 0; try { Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction(); $modelCobrancaLancamento = new Model_DbTable_CobrancaLancamento(); $cobranca = $modelCobrancaLancamento->getByField("agenda_id", $agenda_id); //Zend_Debug::dump($cobranca); die(); if ($cobranca) { $modelCobrancaLancamento->updateById(array("cobranca_lancamento_ativo" => 0), $cobranca->cobranca_lancamento_id); } // update $modelAgenda->updateById($data, $agenda_id); /** * Busca os dados completo do agendamento para enviar o email */ $agenda = $modelAgenda->getById($agenda_id); /** * envia o email de confirmacao (cliente) */ $pluginMail = new Plugin_Mail(); $pluginMail->setDataMail('agenda', $agenda); $pluginMail->send('cliente-agendamento-alterar.phtml', 'Agendamento Alterdo', Zend_Auth::getInstance()->getIdentity()->usuario_email); /** * envia o email de confirmacao (salao) */ $pluginMail2 = new Plugin_Mail(); $pluginMail2->setDataMail('agenda', $agenda); $pluginMail2->send('salao-agendamento-alterar.phtml', 'Agendamento Alterado', $agenda->salao_email); $this->_helper->flashMessenger->addMessage(array('success' => 'Agendamento alterado com sucesso!')); // retira a cobranca do salao 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/"); } } }
/** * Lança um desconto para o salao * Os descontos são oferecidos em quantidades de agendamentos multiplicados * pelo o valor do agendamento vigente */ public function creditoAction() { $salao_id = (int) $this->getRequest()->getParam("salao"); /** * Form de credito */ $formSalaoCredito = new Form_Admin_SalaoCredito(); $formSalaoCredito->salao_id->setValue($salao_id); $this->view->formSalaoCredito = $formSalaoCredito; if ($this->getRequest()->isPost()) { $data = $this->getRequest()->getPost(); if ($formSalaoCredito->isValid($data)) { $data = $formSalaoCredito->getValues(); try { Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction(); $modelCobrancaLancamento = new Model_DbTable_CobrancaLancamento(); $modelCobrancaLancamento->insert($data); /** * Gravar notificacao para o salao */ /** * Enviar email notificando o salao */ $pluginMail = new Plugin_Mail(); $this->_helper->flashMessenger->addMessage(array('success' => 'Crédito lançado com sucesso')); Zend_Db_Table_Abstract::getDefaultAdapter()->commit(); $this->_redirect("admin/salao/financeiro/salao/" . $salao_id); } catch (Exception $ex) { $this->_helper->flashMessenger->addMessage(array('danger' => $ex->getMessage())); Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack(); $this->_redirect("admin/salao/credito/salao/" . $salao_id); } } } }