public function manualEditarAction() { $agenda_id = $this->getRequest()->getParam('id'); if (!$agenda_id) { $this->_helper->flashMessenger->addMessage(array('danger' => 'Agenda não encontrada!')); $this->_redirect('salao/'); } /** * busca a agenda */ $modelAgenda = new Model_DbTable_Agenda(); $agenda = $modelAgenda->getById($agenda_id); // verifica se e agendamento do salao if ($agenda->salao_id !== Zend_Auth::getInstance()->getIdentity()->salao_id) { $this->_helper->flashMessenger->addMessage(array('danger' => 'Acesso não permitido!')); $this->_redirect('salao/'); } // formatando alguns dados $populate = $agenda->toArray(); $populate['agenda_data'] = App_Helper_Date::getDateView($agenda->agenda_data); $populate['agenda_horario'] = App_Helper_Date::getTime($agenda->agenda_data); /** * Form agenda manual */ $formAgendaManual = new Form_Salao_AgendaManual(); $formAgendaManual->submit->setLabel("Agendar"); $formAgendaManual->populate($populate); $this->view->formAgendaManual = $formAgendaManual; if ($this->getRequest()->isPost()) { $data = $this->getRequest()->getPost(); if ($formAgendaManual->isValid($data)) { $data = $formAgendaManual->getValues(); try { Zend_Db_Table_Abstract::getDefaultAdapter()->beginTransaction(); $dataAgenda = array('salao_id' => Zend_Auth::getInstance()->getIdentity()->salao_id, 'agenda_data' => App_Helper_Date::getDateDb($formAgendaManual->getValue("agenda_data")) . ' ' . $formAgendaManual->getValue('agenda_horario'), 'especialidade_id' => $formAgendaManual->getValue("especialidade_id"), 'profissional_beleza_id' => $formAgendaManual->getValue("profissional_beleza_id")); $modelAgenda = new Model_DbTable_Agenda(); $modelAgenda->updateById($dataAgenda, $agenda_id); $dataAgendaManual = array('agenda_id' => $agenda_id, 'agenda_manual_nome' => $formAgendaManual->getValue("agenda_manual_nome"), 'agenda_manual_email' => $formAgendaManual->getValue("agenda_manual_email"), 'agenda_manual_telefone' => $formAgendaManual->getValue("agenda_manual_telefone")); $modelAgendaManual = new Model_DbTable_AgendaManual(); $modelAgendaManual->updateById($dataAgendaManual, $agenda_id); Zend_Db_Table_Abstract::getDefaultAdapter()->commit(); $this->_helper->flashMessenger->addMessage(array('success' => 'Agendamento alterado com sucesso!')); } catch (Exception $ex) { Zend_Db_Table_Abstract::getDefaultAdapter()->rollBack(); $this->_helper->flashMessenger->addMessage(array('danger' => 'Houve um problema ao editar o agendamento!')); } $this->_redirect('salao/agenda/completo'); } } }
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/"); } } }
public function horariosAction() { $this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender(); $salao_id = $this->getRequest()->getParam('salao_id'); $especialidade_id = $this->getRequest()->getParam('especialidade_id'); $profissional_beleza_id = $this->getRequest()->getParam('profissional_beleza_id', null); $agenda_data = App_Helper_Date::getDateDb($this->getRequest()->getParam('agenda_data')); try { /** * Busca os horarios agendados */ $string_horarios = null; $modelAgenda = new Model_DbTable_Agenda(); $horarios = $modelAgenda->getHorariosAgenda($salao_id, $especialidade_id, $agenda_data, $profissional_beleza_id); if ($horarios->count() > 0) { $array_horarios = array(); foreach ($horarios as $horario) { $array_horarios[] = "'" . App_Helper_Date::getTime($horario->agenda_data) . "'"; } $string_horarios = implode(', ', $array_horarios); } /** * Busca os horarios do salao para a data */ $zendDate = new Zend_Date($agenda_data); $dia_semana = $zendDate->get(Zend_Date::WEEKDAY_DIGIT); $modelSalaoHorario = new Model_DbTable_SalaoHorario(); $horariosLivre = $modelSalaoHorario->getHorariosLivreSalao($salao_id, $dia_semana, $string_horarios); if ($horariosLivre->count() > 0) { $livres = array(); foreach ($horariosLivre as $livre) { $livres[] = substr($livre->salao_horario, 0, -3); } echo Zend_Json::encode($livres); } else { echo Zend_Json::encode(array('count' => 0)); } } catch (Exception $ex) { echo Zend_Json::encode(array('error' => 'Houve um problema - ' . $ex->getMessage())); } }