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);
             }
         }
     }
 }