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; }
/** * * @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; }
/** * 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); } } } }