function CALCULA_DOLLAR()
 {
     $moeda = new Moeda();
     $valorCalculo = $this->valor;
     if ($this->moeda->id == $moeda->DOLLAR()) {
         return $valorCalculo;
     } else {
         return $valorCalculo / $this->cotacaoReal;
     }
 }
$ol = new Participante();
$om = new Moeda();
$op = new Pagamento();
$dataRelatorio = $ol->convdata($_REQUEST['dataInicio'], "ntm");
$dataFimRelatorio = $ol->convdata($_REQUEST['dataFim'], "ntm");
$rsLogs = $ol->participantesPeriodo($dataRelatorio, $dataFimRelatorio);
$total = 0;
$totalReal = 0;
foreach ($rsLogs as $key => $log) {
    $rsPag = $op->primeiroPagamentoCliente($log->id);
    if (count($rsPag) > 0) {
        $pag = $rsPag[0];
        $tpl->PARTICIPANTE = $log->cliente->nomeCompleto;
        $tpl->DATA = $log->convdata($log->dataInscricao, "mtn");
        $tpl->GRUPO = $log->grupo->nomePacote;
        if ($log->grupo->moeda->id == $om->DOLLAR()) {
            if ($log->pacoteOpcional == 1) {
                $tpl->VALOR_DOLLAR = $log->grupo->moeda->cifrao . " " . $log->money($log->grupo->valorAdesao + $log->grupo->valorAdesaoOpcional, "atb");
                $tpl->VALOR_REAL = "R\$ " . $log->money(($log->grupo->valorAdesao + $log->grupo->valorAdesaoOpcional) * $pag->cotacaoReal, "atb");
                $total += $log->grupo->valorAdesao + $log->grupo->valorAdesaoOpcional;
                $totalReal += ($log->grupo->valorAdesao + $log->grupo->valorAdesaoOpcional) * $pag->cotacaoReal;
            } else {
                $tpl->VALOR_DOLLAR = $log->grupo->moeda->cifrao . " " . $log->money($log->grupo->valorAdesao, "atb");
                $tpl->VALOR_REAL = "R\$ " . $log->money($log->grupo->valorAdesao * $pag->cotacaoReal, "atb");
                $total += $log->grupo->valorAdesao;
                $totalReal += $log->grupo->valorAdesao * $pag->cotacaoReal;
            }
            $tpl->CAMBIO = $log->participante->grupo->moeda->cifrao . " " . $log->money($pag->cotacaoReal, "atb");
        } else {
            if ($log->pacoteOpcional == 1) {
                $tpl->VALOR_DOLLAR = "-";
$om = new Moeda();
$oAbat = new Abatimento();
$ogrupo->getById($ogrupo->md5_decrypt($_REQUEST['idGrupo']));
$tpl->COD_GRUPO = str_pad($ogrupo->id, 7, "0", STR_PAD_LEFT);
$tpl->NOME_GRUPO = $ogrupo->nomePacote;
$tpl->VALOR_GRUPO = $ogrupo->money($ogrupo->getValorTotal(0), "atb");
$tpl->CIFRAO_GRUPO = $ogrupo->moeda->cifrao;
$tpl->MOEDA_GRUPO_PLURAL = $ogrupo->moeda->plural;
//$tpl->DATA_ATUAL = date("d/m/Y");
//pacote opcional
if ($ogrupo->possuiPacoteOpcional == 1) {
    $tpl->NOME_GRUPO_OPCIONAL = $ogrupo->nomePacoteOpcional;
    $tpl->VALOR_GRUPO_OPCIONAL = $ogrupo->money($ogrupo->getValorTotalOpcional(), "atb");
    $tpl->block("BLOCK_OPCIONAL");
}
if ($ogrupo->moeda->id == $om->DOLLAR()) {
    $tpl->block("BLOCK_GRUPO_DOLLAR_HEAD");
}
//recupera participantes aprovados
$opartic = new Participante();
$rs = $opartic->getRows(0, 999, array("id" => "asc"), array("grupo" => "=" . $ogrupo->id, "status" => "in(" . $opartic->STATUS_PENDENTE() . "," . $opartic->STATUS_APROVADO() . ")"));
$cont = 1;
$totalGeralPagoReal = 0;
$totalGeralPagoDollar = 0;
$totalGeralPendente = 0;
foreach ($rs as $key => $p) {
    $totalDollar = 0;
    $totalReal = 0;
    $tpl->ID = $cont;
    $tpl->NOME_PARTICIPANTE = $p->cliente->nomeCompleto;
    $tpl->STATUS = $p->status->descricao;
$oTT = new TipoTransferencia();
$oGrupo->getById($oGrupo->md5_decrypt($_REQUEST['idGrupo']));
$tpl->COD_GRUPO = str_pad($oGrupo->id, 7, "0", STR_PAD_LEFT);
$tpl->NOME_GRUPO = $oGrupo->nomePacote;
$tpl->DATA_RELATORIO = "Data/Hora:" . date("d/m/Y h:i:s");
//recupera participantes aprovados
$opartic = new Participante();
$rs = $opartic->getRows(0, 999, array("id" => "asc"), array("grupo" => "=" . $oGrupo->id));
$cont = 1;
foreach ($rs as $key => $p) {
    $tpl->ID = $cont;
    $tpl->PARTICIPANTE = $p->cliente->nomeCompleto;
    $tpl->STATUS = $p->status->descricao;
    //calcula custo:
    $custo = $p->custoTotal;
    if ($oGrupo->moeda->id == $oMoeda->DOLLAR()) {
        $custoDollar = $custo;
        $custoReal = $custo * $oGrupo->cotacaoCusto;
    } else {
        $custoDollar = $custo / $oGrupo->cotacaoCusto;
        $custoReal = $custo;
    }
    $recebimentosDollar = $p->recuperaValorTodosAbatimentos($oMoeda->DOLLAR());
    $recebimentosReal = $p->recuperaValorTodosAbatimentos($oMoeda->REAL());
    //alimenta a primeira linha do relatorio
    $tpl->CAMBIO_CUSTO = $oMoeda->money($oGrupo->cotacaoCusto, "atb");
    $tpl->CUSTO_DOLLAR = $oMoeda->money($custoDollar, "atb");
    $tpl->CUSTO_REAL = $oMoeda->money($custoReal, "atb");
    $tpl->RECEBIMENTOS_DOLLAR = $oMoeda->money($recebimentosDollar, "atb");
    $tpl->RECEBIMENTOS_REAL = $oMoeda->money($recebimentosReal, "atb");
    //SOMATORIOS DE VALORES
 function getValorDollar()
 {
     $moeda = new Moeda();
     $cotReal = $this->pagamento->cotacaoReal == 0 ? 1 : $this->pagamento->cotacaoReal;
     if ($this->participante->grupo->moeda->id == $moeda->DOLLAR()) {
         return $this->valor;
     } else {
         return $this->valor / $cotReal;
     }
 }
 function CALCULA_MOEDA($valor, $idMoeda)
 {
     $moeda = new Moeda();
     if ($idMoeda == $moeda->DOLLAR()) {
         // do dollar para moeda do pagamento
         if ($this->moeda->id == $moeda->DOLLAR()) {
             return $this->arredondar_dois_decimal($valor);
         } else {
             if ($this->moeda->id == $moeda->REAL()) {
                 return $this->arredondar_dois_decimal($valor * $this->cotacaoReal);
             } else {
                 return $this->arredondar_dois_decimal($valor * $this->cotacaoReal / $this->cotacaoMoedaReal);
             }
         }
     } else {
         //do real para moeda do pagamento
         if ($this->moeda->id == $moeda->REAL()) {
             return $this->arredondar_dois_decimal($valor);
         } else {
             if ($this->moeda->id == $moeda->DOLLAR()) {
                 return $this->arredondar_dois_decimal($valor / $this->cotacaoReal);
             } else {
                 return $this->arredondar_dois_decimal($valor / $this->cotacaoMoedaReal);
             }
         }
     }
 }
 function recuperaValorTodosAbatimentos($idMoeda)
 {
     $oPagamento = new Pagamento();
     $oAbatimento = new Abatimento();
     $om = new Moeda();
     $total = 0;
     $rs = $oAbatimento->getRows(0, 999, array(), array("participante" => "=" . $this->id));
     foreach ($rs as $key => $abat) {
         if ($idMoeda == $om->DOLLAR()) {
             $total += $abat->getValorDollar();
         } else {
             $total += $abat->getValorReal();
         }
     }
     return $total;
 }
$tpl->COD_GRUPO = str_pad($oGrupo->id, 7, "0", STR_PAD_LEFT);
$tpl->NOME_GRUPO = $oGrupo->nomePacote;
$tpl->DATA_RELATORIO = "Data/Hora:" . date("d/m/Y h:i:s");
//recupera participantes aprovados
$opartic = new Participante();
$rs = $opartic->participantesGrupo($oGrupo->id);
$cont = 1;
foreach ($rs as $key => $p) {
    $possuiCheques = 0;
    $tpl->ID = $cont;
    $tpl->PARTICIPANTE = $p->cliente->nomeCompleto;
    $tpl->STATUS = $p->status->descricao;
    //calcula custo:
    $custo = $p->custoTotal;
    $cotCustpo = $oGrupo->cotacaoCusto == 0 ? 1 : $oGrupo->cotacaoCusto;
    if ($oGrupo->moeda->id == $oMoeda->DOLLAR()) {
        $custoDollar = $custo;
        $custoReal = $custo * $oGrupo->cotacaoCusto;
    } else {
        $custoDollar = $custo / $cotCustpo;
        $custoReal = $custo;
    }
    //busca os abatimentos do participante
    $rsAbat = $oAbatimento->getRows(0, 9999, array(), array("participante" => "=" . $p->id));
    $contPag = 0;
    $totalAbatParticipanteReal = 0;
    $totalAbatParticipanteDollar = 0;
    foreach ($rsAbat as $keyAbat => $abat) {
        $contPag++;
        //busca o pagamento ativo do participante
        $oPagamento->getById($abat->pagamento->id);