function alterarAbatimento()
 {
     $idPagamento = $this->md5_decrypt($_REQUEST['idPagamento']);
     $oPag = new Pagamento();
     $om = new Moeda();
     $oTipoP = new TipoPagamento();
     $oPag->getById($idPagamento);
     $this->getById($_REQUEST['id']);
     $valor = $this->money($_REQUEST['valor'], "bta");
     $oPartic = new Participante();
     $oPartic->getById($_REQUEST['participante']);
     $idMoedaGrupo = $oPag->participante->grupo->moeda->id;
     if ($idMoedaGrupo == $om->DOLLAR()) {
         $valorNovo = $oPag->CALCULA_DOLLAR($valor);
     } else {
         $valorNovo = $oPag->CALCULA_REAL($valor);
     }
     //validacao
     if ($idMoedaGrupo == $om->DOLLAR()) {
         $valorMaximo = $oPag->CALCULA_DOLLAR();
     } else {
         $valorMaximo = $oPag->CALCULA_REAL();
     }
     $total = $this->totalAbatimentos($idPagamento);
     $total = $total - $this->valor;
     if ($oTipoP->CARTAO() == $oPag->tipo->id && $oPag->codAutorizacao != "") {
         $_SESSION['tupi.mensagem'] = 61;
         header("Location:participante.abatimentos.php?idPagamento=" . $_REQUEST['idPagamento']);
         exit;
     }
     if (number_format($total + $valorNovo, 2, ".", "") > number_format($valorMaximo, 2, ".", "")) {
         $_SESSION['tupi.mensagem'] = 40;
         header("Location:participante.abatimentos.php?idPagamento=" . $_REQUEST['idPagamento']);
         exit;
     }
     //configurando o objeto
     $this->valor = $valorNovo;
     $this->pagamento = $oPag;
     $this->participante = $oPartic;
     $idAbatimento = $this->save();
     //FAZ A CONFERENCIA PARA MUDAR O STATUS DO PARTICIPANTE
     $oPartic->atualiza_status();
     $_SESSION['tupi.mensagem'] = 42;
 }
 function cancelar()
 {
     $this->getById($this->md5_Decrypt($_REQUEST['idParticipante']));
     $oPag = new Pagamento();
     $fp = new FinalidadePagamento();
     $rs = $oPag->getRows(0, 999, array(), array("participante" => "=" . $this->id, "cancelado" => "=0", "finalidade" => "!=" . $fp->CANCELAMENTO()));
     foreach ($rs as $key => $pag) {
         $pag->cancelarPagamento();
     }
     if ($_REQUEST['valorMulta'] != "" && $_REQUEST['valorMulta'] > 0) {
         $oPag->participante = $this;
         $oPag->dataPagamento = date("Y-m-d");
         $oPag->valorPagamento = $this->money($_REQUEST['valorMulta'], "bta");
         $oPag->obs = "Cancelamento de Inscri??o - Multa Recis?ria";
         $oPag->abatimentoAutomatico = 0;
         $oPag->cotacaoReal = $this->money($_REQUEST['cotacaoReal'], "bta");
         $oPag->cotacaoMoedaReal = 0;
         $oPag->parcela = 1;
         $oPag->cancelado = 0;
         $oPag->devolucao = 0;
         $oFinalidade = new FinalidadePagamento();
         $oFinalidade->id = $oFinalidade->CANCELAMENTO();
         $oPag->finalidade = $oFinalidade;
         $oMoeda = new Moeda();
         $oMoeda->id = $this->grupo->moeda->id;
         $oTipoP = new TipoPagamento();
         $oTipoP->id = $oTipoP->DINHEIRO();
         $oPag->moeda = $oMoeda;
         $oPag->tipo = $oTipoP;
         $oPag->save();
         //gera o abatimento do pagamento de cancelamento para o relat?rio
         $oG = new Grupo();
         $oG->getById($this->grupo->id);
         $oAbat = new Abatimento();
         if ($oG->moeda->id == $oMoeda->DOLLAR()) {
             $oAbat->valor = $oPag->CALCULA_DOLLAR();
         } else {
             $oAbat->valor = $oPag->CALCULA_REAL();
         }
         $oAbat->participante = $this;
         $oAbat->pagamento = $oPag;
         $oAbat->save();
     }
     if ($_REQUEST['valorCredito'] != "" && $_REQUEST['valorCredito'] > 0) {
         $oCred = new Credito();
         $oCred->cliente = $this->cliente;
         $oCred->moeda = $this->grupo->moeda;
         $oCred->valor = $this->money($_REQUEST['valorCredito'], "bta");
         $oCred->data = date("Y-m-d");
         $oCred->participante = $this;
         $oCred->obs = "Cancelamento de Inscri??o - Cr?dito do Grupo: " . $this->grupo->nomePacote;
         $oCred->bitUtilizado = 0;
         $oCred->cotacaoReal = $this->money($_REQUEST['cotacaoReal'], "bta");
         $oCred->save();
     }
     $oS = new StatusParticipante();
     $oS->id = $this->STATUS_DESISTENTE();
     $this->status = $oS;
     $this->dataInscricao = date("Y-m-d");
     $this->save();
     $oD = new Distribuicao();
     $oD->remover($this->md5_decrypt($_REQUEST['idParticipante']));
     //grava log de usuario
     $oLog = new LogUsuario();
     $data = date("Y-m-d H:i:s");
     $usuario = new Usuario();
     $usuario->id = $_SESSION['ag_idUsuario'];
     $movimento = "CANCELAR (DESISTENTE) PARTICIPANTE<BR> CLIENTE: " . $this->cliente->nomeCompleto . "<BR> GRUPO: " . $this->grupo->nomePacote;
     $oLog->usuario = $usuario;
     $oLog->data = $data;
     $oLog->movimento = $movimento;
     $oLog->save();
     //fim da log
     $_SESSION['tupi.mensagem'] = 25;
 }
 $tpl->VALOR_ABAT_DOLLAR = $oMoeda->money($abat->getValorDollar(), "atb");
 $totalAbatParticipanteReal += $abat->getValorReal();
 $totalAbatParticipanteDollar += $abat->getValorDollar();
 if ($oPagamento->devolucao == 0) {
     $tpl->PAG_TRANSACAO = 'Crédito';
 } else {
     $tpl->PAG_TRANSACAO = 'Débito';
 }
 $tpl->N_PAG = $contPag;
 $tpl->PAG_PARTICIPANTE = $oPagamento->participante->cliente->nomeCompleto;
 $tpl->GRUPO = $oPagamento->participante->grupo->nomePacote;
 $tpl->TIPO = $oPagamento->tipo->descricao;
 $tpl->DATA_PAG = $oMoeda->convdata($oPagamento->dataPagamento, "mtn");
 $tpl->MODEA = $oPagamento->moeda->descricao;
 $tpl->VALOR_REAL = $oMoeda->money($oPagamento->devolucao == 0 ? $oPagamento->CALCULA_REAL() : -$oPagamento->CALCULA_REAL(), "atb");
 $tpl->VALOR_DOLLAR = $oMoeda->money($oPagamento->devolucao == 0 ? $oPagamento->CALCULA_DOLLAR() : -$oPagamento->CALCULA_DOLLAR(), "atb");
 $tpl->COTACAO = $oMoeda->money($oPagamento->cotacaoReal, "atb");
 //se for cheque imprimi lista de cheques
 if ($oPagamento->tipo->id == $oTP->CHEQUE()) {
     $possuiCheques = 1;
     $rsCheques = $oCheque->getRows(0, 999, array(), array("pagamento" => "=" . $oPagamento->id));
     foreach ($rsCheques as $keyCh => $cheque) {
         $tpl->BANCO = $oPagamento->banco->sigla;
         $tpl->EMISSOR = $cheque->emissor->nomeCompleto;
         $tpl->CHEQUE_DATA = $oMoeda->convdata($cheque->dataCompensacao, "mtn");
         $tpl->CHEQUE_NUMERO = $cheque->numeroCheque;
         $tpl->CHEQUE_VALOR = $oMoeda->money($cheque->valor, "atb");
         $tpl->block("BLOCK_ITEM_CHEQUE");
     }
 }
 $tpl->block("BLOCK_ITEM_PAGAMENTOS");