function __construct()
 {
     /**
      * Declaramos as variáveis da classe de acordo com o que está configurado no arquivo config.mail.php
      */
     include_once 'libs/config.mail.php';
     $this->sUserMail = $sUser;
     $this->sPassMail = $sPass;
     $this->sHostMail = $sHost;
     $this->sPortMail = (int) $sPort;
     $this->sClass = (int) $sClass;
     $oConfigDBpref = db_utils::getDao("configdbpref");
     $rsConfigDBpref = $oConfigDBpref->sql_record($oConfigDBpref->sql_query_file(db_getsession('DB_instit'), "w13_emailadmin"));
     $this->sEmailFrom = db_utils::fieldsMemory($rsConfigDBpref, 0)->w13_emailadmin;
 }
include "libs/db_sql.php";
include "libs/db_utils.php";
include "dbforms/db_funcoes.php";
$oPost = db_utils::postMemory($_POST);
if (isset($oPost->autent) && $oPost->autent != '' && isset($oPost->matricula) && $oPost->matricula != '') {
    $numMatricula = $oPost->matricula;
    $codAutenticacao = $oPost->autent;
    $sqlRhEmiteContraCheque = " select rh85_sequencial,\n\t                                     rh85_regist\n\t                                from rhemitecontracheque \n\t                               where rh85_regist    = '{$numMatricula}' \n\t                                 and rh85_codautent = '{$codAutenticacao}'";
    $rsRhEmiteContraCheque = pg_query($sqlRhEmiteContraCheque);
    $iRhEmiteContraCheque = pg_num_rows($rsRhEmiteContraCheque);
    if ($iRhEmiteContraCheque == 0) {
        db_logs("", "", 0, "Solicitação de senha para fornecedor: cgc ou cpf não encontrado. {$numMatricula}");
        $erro = true;
    }
    if ($iRhEmiteContraCheque > 0) {
        $oRhEmiteContraCheque = db_utils::fieldsMemory($rsRhEmiteContraCheque, 0);
        $erro = false;
    }
    if (isset($erro) && $erro == false) {
        $sValidaCodAutenticacao = 't';
    } else {
        if (isset($erro) && $erro == true) {
            $sValidaCodAutenticacao = 'f';
        }
    }
} else {
    $sValidaCodAutenticacao = '';
}
?>
<html>
  <head>
     if ($oParam->iProcesso != "") {
         $aWhere[] = "p58_codproc = {$oParam->iProcesso}";
     }
     if ($oParam->iAtendimento != "") {
         list($iNumeroAtendimento, $iAnoAtendimento) = explode("/", $oParam->iAtendimento);
         $aWhere[] = "ov01_numero = {$iNumeroAtendimento} and ov01_anousu = {$iAnoAtendimento}";
     }
     $sWhere = implode(" and ", $aWhere);
     $sSqlBuscaAtendimentos = $oDaoOuvidoriaAtendimento->sql_query_titular(null, $sCampos, null, $sWhere);
     $rsBuscaAtendimentos = $oDaoOuvidoriaAtendimento->sql_record($sSqlBuscaAtendimentos);
     if ($oDaoOuvidoriaAtendimento->numrows == 0) {
         throw new Exception("Não encontrado atendimentos para os filtros selecionados.");
     }
     $aResultados = array();
     for ($iAtendimento = 0; $iAtendimento < $oDaoOuvidoriaAtendimento->numrows; $iAtendimento++) {
         $oOuvidoriaAtendimento = db_utils::fieldsMemory($rsBuscaAtendimentos, $iAtendimento);
         $oAtendimento = new stdClass();
         $oAtendimento->iSeqAtendimento = $oOuvidoriaAtendimento->ov01_sequencial;
         $oAtendimento->iAtendimento = $oOuvidoriaAtendimento->ov01_numero;
         $oAtendimento->sDescricao = urlencode($oOuvidoriaAtendimento->p51_descr);
         $oAtendimento->sRequerente = urlencode($oOuvidoriaAtendimento->ov01_requerente);
         $oAtendimento->sDepartamento = urlencode($oOuvidoriaAtendimento->descrdepto);
         $oAtendimento->dtDataAtendimento = $oOuvidoriaAtendimento->ov01_dataatend;
         $oAtendimento->iProtocolo = $oOuvidoriaAtendimento->ov09_protprocesso;
         $oAtendimento->iCpfCnpj = $oOuvidoriaAtendimento->cpf_cnpj;
         $aResultados[] = $oAtendimento;
     }
     $_SESSION["aResultadosConsultaOuvidoria"] = $aResultados;
 }
 $oRetorno->status = 1;
 $oRetorno->aResultados = $_SESSION["aResultadosConsultaOuvidoria"];
 function __construct($iArretipo = null, $iTipoMod, $iInstit, $dDatahj, $sIp = null, $lNovoPdf = true, $oPdfUnico = null)
 {
     $this->lNovoPdf = $lNovoPdf;
     $this->oPdfUnico = $oPdfUnico;
     $sWhereModCarne = "   where k48_dataini  <= '{$dDatahj}' ";
     $sWhereModCarne .= "     and k48_datafim  >= '{$dDatahj}' ";
     $sWhereModCarne .= "     and k48_instit     = {$iInstit}  ";
     $sWhereModCarne .= "     and k48_cadtipomod = {$iTipoMod} ";
     $sSqlTipoExecessao = " select distinct k48_sequencial,                                                                               ";
     $sSqlTipoExecessao .= "        k49_tipo,                                                                                              ";
     $sSqlTipoExecessao .= "        k36_ip                                                                                                 ";
     $sSqlTipoExecessao .= "   from modcarnepadrao                                                                                         ";
     $sSqlTipoExecessao .= "        left  join modcarnepadraotipo on modcarnepadraotipo.k49_modcarnepadrao = modcarnepadrao.k48_sequencial ";
     $sSqlTipoExecessao .= "        left  join modcarneexcessao   on modcarneexcessao.k36_modcarnepadrao   = modcarnepadrao.k48_sequencial ";
     $sSqlTipoExecessao .= $sWhereModCarne;
     $rsConsultaTipoExcessao = db_query($sSqlTipoExecessao);
     $iNroLinhasTipoExcessao = pg_num_rows($rsConsultaTipoExcessao);
     $iCodModCarnePadrao = '';
     // Validação de Tipo e Excessão
     for ($iInd = 0; $iInd < $iNroLinhasTipoExcessao; $iInd++) {
         $oTipoExcessao = db_utils::fieldsMemory($rsConsultaTipoExcessao, $iInd);
         if ($oTipoExcessao->k49_tipo != '' || $oTipoExcessao->k36_ip != '') {
             if (!empty($iArretipo) && !empty($sIp)) {
                 if ($oTipoExcessao->k49_tipo != '' && $oTipoExcessao->k36_ip != '') {
                     if (trim($iArretipo) == trim($oTipoExcessao->k49_tipo) && $sIp == $oTipoExcessao->k36_ip) {
                         $iCodModCarnePadrao = $oTipoExcessao->k48_sequencial;
                     }
                 } else {
                     if ($oTipoExcessao->k36_ip != '') {
                         if ($sIp == $oTipoExcessao->k36_ip) {
                             $iCodModCarnePadrao = $oTipoExcessao->k48_sequencial;
                         }
                     } else {
                         if (trim($iArretipo) == trim($oTipoExcessao->k49_tipo)) {
                             $iCodModCarnePadrao = $oTipoExcessao->k48_sequencial;
                         }
                     }
                 }
             } else {
                 if (!empty($sIp)) {
                     if ($sIp == $oTipoExcessao->k36_ip) {
                         $iCodModCarnePadrao = $oTipoExcessao->k48_sequencial;
                     }
                 } else {
                     if (!empty($iArretipo)) {
                         if (trim($iArretipo) == trim($oTipoExcessao->k49_tipo) && $oTipoExcessao->k36_ip == "") {
                             $iCodModCarnePadrao = $oTipoExcessao->k48_sequencial;
                         }
                     } else {
                         $iCodModCarnePadrao = $oTipoExcessao->k48_sequencial;
                     }
                 }
             }
             // Caso não tenha retornado nenhum tipo ou excessão e a variável $iCodModCarnePadrao estiver vazia então é atribuído
             // a ela o código do molelo padrão
         } else {
             if (trim($iCodModCarnePadrao) == '') {
                 $iCodModCarnePadrao = $oTipoExcessao->k48_sequencial;
             }
         }
     }
     if ($iCodModCarnePadrao != "") {
         $sSql = "  select k48_sequencial,                                                                                         \t\t\t\t \t                  ";
         $sSql .= "  \t     k48_cadconvenio,                                                                                        \t\t\t\t \t                  ";
         $sSql .= "  \t     ar12_cadconveniomodalidade,                                                                                \t\t\t                  ";
         $sSql .= "  \t     m01_sequencial,                                                                                         \t\t\t\t \t                  ";
         $sSql .= "  \t     m02_sequencial,                                                                                         \t\t\t\t \t                  ";
         $sSql .= "  \t     k47_sequencial,                                                                                         \t\t\t\t\t                  ";
         $sSql .= "         k47_descr,                                                                                              \t\t\t\t\t                  ";
         $sSql .= "         k47_obs,                                                                                                \t\t\t\t \t                  ";
         $sSql .= "         k47_altura,                                                                                             \t\t\t\t \t                  ";
         $sSql .= "         k47_largura,                                                                                            \t\t\t\t \t                  ";
         $sSql .= "         k47_orientacao                                                                                          \t\t\t\t\t                  ";
         $sSql .= "    from modcarnepadrao\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t                                                  \t                  ";
         $sSql .= "  \t     inner join cadconvenio                on cadconvenio.ar11_sequencial                  = modcarnepadrao.k48_cadconvenio             ";
         $sSql .= "  \t     inner join cadtipoconvenio            on cadtipoconvenio.ar12_sequencial              = cadconvenio.ar11_cadtipoconvenio           ";
         $sSql .= "  \t     left  join conveniocobranca           on conveniocobranca.ar13_cadconvenio  \t         = cadconvenio.ar11_sequencial                ";
         $sSql .= "         left  join modcarnepadraocadmodcarne  on modcarnepadraocadmodcarne.m01_modcarnepadrao = modcarnepadrao.k48_sequencial \t            ";
         $sSql .= "         left  join cadmodcarne \t\t\t\t       on cadmodcarne.k47_sequencial\t                 = modcarnepadraocadmodcarne.m01_cadmodcarne \t";
         $sSql .= "         left  join modcarnepadraolayouttxt    on modcarnepadraolayouttxt.m02_modcarnepadrao   = modcarnepadrao.k48_sequencial \t            ";
         $sSql .= "         left  join db_layouttxt \t\t\t\t       on db_layouttxt.db50_codigo \t\t                 = modcarnepadraolayouttxt.m02_db_layouttxt \t";
         $sSql .= "   where k48_sequencial = {$iCodModCarnePadrao}                                                                                             ";
         $rsConsultaRegra = pg_query($sSql);
         $iNroLinhas = pg_num_rows($rsConsultaRegra);
         if ($iNroLinhas > 0) {
             $oModCarne = db_utils::fieldsMemory($rsConsultaRegra, 0);
             $this->iModCarnePadrao = $oModCarne->k48_sequencial;
             $this->iConvenio = $oModCarne->k48_cadconvenio;
             if (!empty($oModCarne->m01_sequencial)) {
                 $this->setObjPdf($oModCarne->k47_altura, $oModCarne->k47_largura, $oModCarne->k47_orientacao, $oModCarne->k47_sequencial);
             } else {
                 if (!empty($oModCarne->m02_sequencial)) {
                     $this->setObjLayout();
                 }
             }
             if (!empty($oModCarne->ar13_sequencial)) {
                 $this->iCodConvenioCobranca = $oModCarne->ar13_sequencial;
             } else {
                 $this->iCodConvenioCobranca = 0;
             }
             if ($oModCarne->ar12_cadconveniomodalidade == 1) {
                 $this->lArrecadacao = false;
                 $this->lCobranca = true;
             } else {
                 if ($oModCarne->ar12_cadconveniomodalidade == 2) {
                     $this->lArrecadacao = true;
                     $this->lCobranca = false;
                 }
             }
         } else {
             throw new Exception("Nenhum convênio encontrado! TipoMod:{$iTipoMod}, Tipo Débito: {$iArretipo}");
         }
     } else {
         throw new Exception("Nenhum modelo padrão encontrado! TipoMod:{$iTipoMod}, Tipo Débito: {$iArretipo}");
     }
 }
 function processaSimulacao()
 {
     $aRetorno = array();
     $oDaoCadVenc = db_utils::getDao("cadvenc");
     $oDadosTipoCalculo = $this->processaAtividadeTipoCalculo();
     foreach ($oDadosTipoCalculo as $oDadosCalculo) {
         $sMsgLog = "----------------------------------------------------------------------------------------------<br>";
         $sMsgLog .= "Processando Calculo ...: {$oDadosCalculo->iCalculo} - {$oDadosCalculo->sCalculoDescricao} <br><br>";
         $sMsgLog .= "Tipo de Calculo .......: {$oDadosCalculo->iTipoCalculo} - {$oDadosCalculo->sTipoCalculoDescricao} <br>";
         $sMsgLog .= "Vencimento ............: {$oDadosCalculo->iCodigoVencimento} <br>";
         $this->logCalculo($sMsgLog);
         //Processamos os calculos de variável
         if ($oDadosCalculo->sVariavel == 't') {
             $sMsgLog = "Processando calculo de ISSQN Variável <br>";
             $this->logCalculo($sMsgLog);
             $sSqlVencimentos = $oDaoCadVenc->sql_query($oDadosCalculo->iCodigoVencimento, null, "*", "q82_parc asc");
             $rsVencimentos = $oDaoCadVenc->sql_record($sSqlVencimentos);
             $iQuantidadeVencimentos = $oDaoCadVenc->numrows;
             if ($iQuantidadeVencimentos == 0) {
                 $sMsgLog = "[ Erro 10] - Erro ao buscar dados dos vemcimentos";
                 $this->logCalculo($sMsgLog);
                 throw new Exception($sMsgLog);
             }
             for ($iInd = 0; $iInd < $iQuantidadeVencimentos; $iInd++) {
                 $oDadosVencimento = db_utils::fieldsMemory($rsVencimentos, $iInd);
                 if (substr(str_replace("-", "", $oDadosVencimento->q82_venc), 0, 6) > substr(str_replace("-", "", $this->getDataInicioAtividade()), 0, 6)) {
                     $nValorParcela = $oDadosCalculo->nValorOrigem / $this->nValorInflator;
                     $iParcela = $oDadosVencimento->q82_parc;
                     $dVencimento = $oDadosVencimento->q82_venc;
                     $sMsgLog = "Parcela : {$iParcela} Vencimento : {$dVencimento} Valor: {$nValorParcela}<br>";
                     $this->logCalculo($sMsgLog);
                     $oRetornoCalculo = new stdClass();
                     $oRetornoCalculo->iTipoCalculo = $oDadosCalculo->iTipoCalculo;
                     $oRetornoCalculo->sDescricaoCalculo = $oDadosCalculo->sCalculoDescricao;
                     $oRetornoCalculo->iParcela = $iParcela;
                     $oRetornoCalculo->dVencimento = $dVencimento;
                     $oRetornoCalculo->nValor = $nValorParcela;
                     $aRetorno[] = $oRetornoCalculo;
                 } else {
                     $sMsgLog = "Parcela : {$oDadosVencimento->q82_parc} Vencimento : {$oDadosVencimento->q82_venc} ";
                     $sMsgLog .= "não calculada pois o ano/mes de vencimento é menor ou igual ao ano/mes do início da ativiade {$this->getDataInicioAtividade()} <br>";
                     $this->logCalculo($sMsgLog);
                 }
             }
             $sMsgLog = "FIM DO PROCESSAMENTO DO ISSQN VARIÁVEL";
             $this->logCalculo($sMsgLog);
         } else {
             $sMsgLog = "Processando calculo de ISSQN NÃO VARIÁVEL<br>";
             $this->logCalculo($sMsgLog);
             $bProcessaParcelaVencida = false;
             $bUltimoVencimento = false;
             $iQuantidadeVencimentoProcessar = 0;
             $iVencimentosProcessados = 0;
             $iDiasSomados = 0;
             $dUltimoDiaAno = $this->getAnoCalculo() . "-12-31";
             $sMktimeUltimoDiaAno = mktime(0, 0, 0, "12", "31", $this->getAnoCalculo());
             $sWhere = " cadvencdesc.q92_codigo = {$oDadosCalculo->iCodigoVencimento}                                               ";
             $sWhere .= " and ( case                                                                                                 ";
             $sWhere .= "         when cadvencdesc.q92_formacalcparcvenc = 1                                                         ";
             $sWhere .= "           then                                                                                             ";
             $sWhere .= "             case                                                                                           ";
             $sWhere .= "               when q82_venc >= '{$this->getDataInicioAtividade()}'                                         ";
             $sWhere .= "                 then true                                                                                  ";
             $sWhere .= "               else false                                                                                   ";
             $sWhere .= "             end                                                                                            ";
             $sWhere .= "         when cadvencdesc.q92_formacalcparcvenc = 3                                                         ";
             $sWhere .= "           then q82_venc >= '{$this->getDataCalculo()}' and q82_venc >= '{$this->getDataInicioAtividade()}' ";
             $sWhere .= "         else                                                                                               ";
             $sWhere .= "           case                                                                                             ";
             $sWhere .= "             when cadvenc.q82_calculaparcvenc is true                                                       ";
             $sWhere .= "               then true                                                                                    ";
             $sWhere .= "             else                                                                                           ";
             $sWhere .= "               q82_venc >= '{$this->getDataCalculo()}' and q82_venc >= '{$this->getDataInicioAtividade()}'  ";
             $sWhere .= "           end                                                                                              ";
             $sWhere .= "       end )                                                                                                ";
             $sSqlVerificaVencimentosProcessar = $oDaoCadVenc->sql_query(null, null, "count(*) as qtd", null, $sWhere);
             $rsVerificaVencimentosProcessar = $oDaoCadVenc->sql_record($sSqlVerificaVencimentosProcessar);
             $iQuantidadeVencimentoProcessar = db_utils::fieldsMemory($rsVerificaVencimentosProcessar, 0)->qtd;
             $sCampos = "max(cadvenc.q82_venc)                     as maiorvencimento,\n                    coalesce(max(cadvencdesc.q92_diasvcto),0) as dias,\n                    count(*)                                  as total";
             $sSqlComplementoVencimento = $oDaoCadVenc->sql_query($oDadosCalculo->iCodigoVencimento, null, $sCampos, null);
             $rsComplementoVencimento = $oDaoCadVenc->sql_record($sSqlComplementoVencimento);
             $dMaiorVencimento = db_utils::fieldsMemory($rsComplementoVencimento, 0)->maiorvencimento;
             $iDiasParaVencimento = db_utils::fieldsMemory($rsComplementoVencimento, 0)->dias;
             $iTotalVencimentos = db_utils::fieldsMemory($rsComplementoVencimento, 0)->total;
             $sSqlVencimentos = $oDaoCadVenc->sql_query($oDadosCalculo->iCodigoVencimento, null, "*", "q82_parc asc");
             $rsVencimentos = $oDaoCadVenc->sql_record($sSqlVencimentos);
             $iQuantidadeVencimentos = $oDaoCadVenc->numrows;
             if ($iQuantidadeVencimentos == 0) {
                 $sMsgLog = "[ Erro 10] - Erro ao buscar dados dos vemcimentos";
                 $this->logCalculo($sMsgLog);
                 throw new Exception($sMsgLog);
             }
             for ($iInd = 0; $iInd < $iQuantidadeVencimentos; $iInd++) {
                 $oDadosVencimento = db_utils::fieldsMemory($rsVencimentos, $iInd);
                 $sMsgLog = "Processando Vencimento {$oDadosVencimento->q82_venc} Parcela: {$oDadosVencimento->q82_parc} <br>";
                 $this->logCalculo($sMsgLog);
                 //Guardar o vencimento atual do cadvenc
                 $dVencimento = $oDadosVencimento->q82_venc;
                 if ($dVencimento == "") {
                     $dVencimento = $this->getDataCalculo();
                 }
                 $bProcessaParcela = true;
                 if ($iQuantidadeVencimentoProcessar == 0) {
                     if ($iDiasParaVencimento > 0) {
                         $aDataCalculo = explode("-", $this->getDataCalculo());
                         $dVencimento = date("Y-m-d", mktime(0, 0, 0, $aDataCalculo[1], $aDataCalculo[2] + $iDiasParaVencimento, $aDataCalculo[0]));
                     } else {
                         $dVencimento = $dUltimoDiaAno;
                     }
                     $sMsgLog = "Trocou o vencimento para : {$dVencimento}";
                     $this->logCalculo($sMsgLog);
                 }
                 /*
                  * Verificamos se será gerada parcela vencida
                  */
                 if ($oDadosVencimento->q92_formacalcparcvenc == 1) {
                     $bProcessaParcelaVencida = true;
                 } else {
                     if ($oDadosVencimento->q92_formacalcparcvenc == 3) {
                         if ($oDadosVencimento->q82_venc >= $this->getDataCalculo() && $oDadosVencimento->q82_venc <= $dUltimoDiaAno) {
                             $bProcessaParcelaVencida = true;
                         }
                     } else {
                         if ($oDadosVencimento->q82_calculaparcvenc == "t") {
                             $bProcessaParcelaVencida = true;
                         } else {
                             if ($oDadosVencimento->q82_venc >= $this->getDataCalculo() && $oDadosVencimento->q82_venc <= $dUltimoDiaAno) {
                                 $bProcessaParcelaVencida = true;
                             }
                         }
                     }
                 }
                 $aVencimento = explode("-", $dVencimento);
                 $sMktimeVencimento = mktime(0, 0, 0, $aVencimento[1], $aVencimento[2], $aVencimento[0]);
                 $aMaiorVencimento = explode("-", $dMaiorVencimento);
                 $sMktimeMaiorVencimento = mktime(0, 0, 0, $aMaiorVencimento[1], $aMaiorVencimento[2], $aMaiorVencimento[0]);
                 $aDataInicioAtividade = explode("-", $this->getDataInicioAtividade());
                 $sMktimeDataInicioAtividade = mktime(0, 0, 0, $aDataInicioAtividade[1], $aDataInicioAtividade[2], $aDataInicioAtividade[0]);
                 $aDataCalculo = explode("-", $this->getDataCalculo());
                 $sMktimeDataCalculo = mktime(0, 0, 0, $aDataCalculo[1], $aDataCalculo[2], $aDataCalculo[0]);
                 if ($sMktimeVencimento > $sMktimeMaiorVencimento) {
                     $sMsgLog = "Vencimento do cadastro de vencimentos maior que o maximo vencimento, pasando bUltVenc para true";
                     $this->logCalculo($sMsgLog);
                     $bUltimoVencimento = true;
                 }
                 if ($this->getAnoInicioAtividade() != $this->getAnoCalculo()) {
                     $sMsgLog = "Ano de inicio diferente do atual";
                     $this->logCalculo($sMsgLog);
                     $bProcessaParcela = true;
                 } else {
                     if ($sMktimeVencimento >= $sMktimeDataInicioAtividade || $dVencimento == "" || $iQuantidadeVencimentoProcessar == 0 || $bProcessaParcelaVencida == true) {
                         $bProcessaParcela = true;
                     } else {
                         $bProcessaParcela = false;
                     }
                 }
                 if ($sMktimeDataCalculo > $sMktimeVencimento && $bProcessaParcelaVencida == false) {
                     $sMsgLog = "Inicio maior que data de vencimento e processar parcelas vencidas NAO";
                     $this->logCalculo($sMsgLog);
                     $bProcessaParcela = false;
                 }
                 if ($sMktimeDataInicioAtividade > $sMktimeVencimento && $bUltimoVencimento == false && $iTotalVencimentos != $iVencimentosProcessados) {
                     $bProcessaParcela = false;
                 }
                 if ($bProcessaParcela == true) {
                     $iVencimentosProcessados++;
                     if ($iQuantidadeVencimentoProcessar == 0) {
                         $nPercentualParcela = 100;
                     } else {
                         if ($oDadosCalculo->sTipoProporcionalidade == "D") {
                             $dVencimentoCalculado = $dVencimento;
                             if ($bUltimoVencimento == true || $sMktimeVencimento == $sMktimeMaiorVencimento) {
                                 $dVencimentoCalculado = $dUltimoDiaAno;
                                 $dMaiorVencimento = $dVencimentoCalculado;
                                 $aMaiorVencimento = explode("-", $dMaiorVencimento);
                                 $sMktimeMaiorVencimento = mktime(0, 0, 0, $aMaiorVencimento[1], $aMaiorVencimento[2], $aMaiorVencimento[0]);
                             }
                             if ($this->getAnoInicioAtividade() < $this->getAnoCalculo()) {
                                 $dInicioAtividadeCalculado = $this->getAnoCalculo() . "-01-01";
                             } else {
                                 $dInicioAtividadeCalculado = $this->getDataInicioAtividade();
                             }
                             $aInicioAtividadeCalculado = explode("-", $dInicioAtividadeCalculado);
                             $sMktimeInicioAtividadeCalculado = mktime(0, 0, 0, $aInicioAtividadeCalculado[1], $aInicioAtividadeCalculado[2], $aInicioAtividadeCalculado[0]);
                             $iDiasInicio = date("d", $sMktimeUltimoDiaAno - $sMktimeDataInicioAtividade) + 1;
                             $iDiasVencimento = date("d", $sMktimeUltimoDiaAno - $sMktimeInicioAtividadeCalculado) + 1 - $iDiasSomados;
                             $iDiasSomados += $iDiasVencimento;
                             $nPercentualParcela = round(100 / $iDiasInicio * $iDiasVencimento, 2);
                         } else {
                             $nPercentualParcela = round(100 / $iQuantidadeVencimentos, 2);
                         }
                     }
                     if ($dVencimento == "" and $this->getAnoInicioAtividade() < $this->getAnoCalculo()) {
                         $dVencimento = $dUltimoDiaAno;
                         if ($iDiasParaVencimento > 0 && $this->getAnoInicioAtividade() == $this->getAnoCalculo()) {
                             $dVencimento = date("Y-m-d", mktime(0, 0, 0, $aDataCalculo[1], $aDataCalculo[2] + $iDiasParaVencimento, $aDataCalculo[0]));
                         }
                     }
                     $nValorParcela = round($oDadosCalculo->nValorIntegral * $nPercentualParcela / 100, 2);
                     $oRetornoCalculo = new stdClass();
                     $oRetornoCalculo->iTipoCalculo = $oDadosCalculo->iTipoCalculo;
                     $oRetornoCalculo->sDescricaoCalculo = $oDadosCalculo->sCalculoDescricao;
                     $oRetornoCalculo->iParcela = $iVencimentosProcessados;
                     $oRetornoCalculo->dVencimento = $dVencimento;
                     $oRetornoCalculo->nValor = $nValorParcela;
                     $aRetorno[] = $oRetornoCalculo;
                     if ($nPercentualParcela == 100) {
                         break;
                     }
                 }
             }
         }
     }
     return $aRetorno;
 }
 /**
  * No construtor já será gerado os abjetos apartir do layout informado
  *
  * @param integer $iLayoutTxt  Código do Cadastro de Layout
  * @param string  $sArquivo    Caminho do Arquivo
  * @param boolean $lUsaSeparador  true para utilizar separador (se houver), ou seja,
  * fazer o explode pelo separador nas linhas. false para não utilizar separador.
  * @param boolean $lProcessarArquivo  true para processar o arquivo diretamente default true
  */
 function __construct($iLayoutTxt = '', $sArquivo = '', $lUsaSeparador = false, $lProcessarArquivo = true, $lUsaChr = false)
 {
     if (trim($iLayoutTxt) == '') {
         throw new Exception('Código do Layout não informado!');
     }
     if (trim($sArquivo) == '') {
         throw new Exception('Caminho do arquivo não informado!');
     }
     $clLayoutTxt = db_utils::getDao("db_layouttxt");
     $this->sCaminhoArquivo = $sArquivo;
     /**
      *  Consulta as propriedades de cada campo das linhas do layout informado 
      */
     $sCamposDadosLayout = " ( select trim(db52_default)                     ";
     $sCamposDadosLayout .= "\t\t\tfrom db_layoutcampos                  \t\t\t";
     $sCamposDadosLayout .= "\t\t where db52_layoutlinha = db51_codigo\t\t\t\t\t";
     $sCamposDadosLayout .= "\t\t\t and db52_ident is true ) as identificador, ";
     $sCamposDadosLayout .= "\tdb52_nome       as nome_campo,         \t\t\t\t\t";
     $sCamposDadosLayout .= " db52_descr      as descricao_campo,             ";
     $sCamposDadosLayout .= "\tdb52_posicao    as posicao_campo,    \t\t\t\t\t\t";
     $sCamposDadosLayout .= "\tdb52_tamanho    as tamanho_campo, \t\t\t\t\t\t\t";
     $sCamposDadosLayout .= "\tdb51_separador  as separador_campo,\t\t\t\t\t\t\t";
     $sCamposDadosLayout .= " db52_obs        as observacao_campo,             ";
     $sCamposDadosLayout .= "\tdb52_ident      as campo_identificador      \t\t";
     $sOrderByDadosLayout = " db51_tipolinha, ";
     $sOrderByDadosLayout .= " identificador,  ";
     $sOrderByDadosLayout .= " db52_posicao    ";
     $sSqlDadosLayout = $clLayoutTxt->sql_query_campos($iLayoutTxt, $sCamposDadosLayout, $sOrderByDadosLayout);
     $rsDadosLayout = $clLayoutTxt->sql_record($sSqlDadosLayout);
     $iLinhasLayout = $clLayoutTxt->numrows;
     if ($iLinhasLayout > 0) {
         /**
          * Para o caso de utilizar separadores para determinar os campos dentro das linhas
          * preciso saber o índice do vetor explodido no separador. Como os dados vêm ordenados
          * pelo tipo de linha e pela posição dentro do tipo de linha, então, a ordem
          * para cada campo dentro de cada tipo de linha já está correta. O índice começa em 0
          * porque os arrays no PHP começam em 0 também.
          * Ex.: 
          * linha: 123|456|78
          * separador: |
          * array explodido: {123, 456, 78}
          * valor da posição 1: 456
          */
         $iIndice = 0;
         /**
          * Variável que identifica a mudança de um tipo de linha para outro
          */
         $sIdentificadorAtual = '';
         for ($iInd = 0; $iInd < $iLinhasLayout; $iInd++) {
             $oDadosLayout = db_utils::fieldsMemory($rsDadosLayout, $iInd);
             /**
              * Verifico se mudou o tipo de linha. Se mudou, zero o índice do campo.
              */
             if ($sIdentificadorAtual != $oDadosLayout->identificador) {
                 $iIndice = 0;
                 $sIdentificadorAtual = $oDadosLayout->identificador;
             }
             /**
              *  Cria um array contendo as propriedades necessárias para 
              *  a localização do campo dentro da linha do arquivo
              */
             $this->aPropriedadesCampos[$oDadosLayout->identificador][$oDadosLayout->nome_campo] = array($oDadosLayout->posicao_campo, $oDadosLayout->tamanho_campo, $oDadosLayout->separador_campo, $iIndice, $oDadosLayout->nome_campo, $oDadosLayout->campo_identificador == 't' ? true : false, $oDadosLayout->descricao_campo, $oDadosLayout->observacao_campo);
             $iTamanhoIdent = strlen($oDadosLayout->identificador);
             $iIndice++;
         }
     }
     if ($lProcessarArquivo) {
         $this->processarArquivo($iTamanhoIdent, $lUsaSeparador, false, $lUsaChr);
     }
 }
$sCamposAtendimentoLocal .= "ov25_sequencial ||' - '|| ov25_descricao as local,";
$sCamposAtendimentoLocal .= "ov01_depart ||' - '|| descrdepto as departamento_inicial,";
$sCamposAtendimentoLocal .= "(select procarquiv.p67_dtarq ";
$sCamposAtendimentoLocal .= "   from arqproc ";
$sCamposAtendimentoLocal .= "        inner join procarquiv on p68_codarquiv = p67_codarquiv ";
$sCamposAtendimentoLocal .= " where  p68_codproc = p58_codproc) as data_arquivamento, ";
$sCamposAtendimentoLocal .= "p58_codproc as numero_processo";
$sWhereAtendimentoLocal = "ouvidoriaatendimento.ov01_sequencial = {$oGet->iAtendimento}";
$sSqlOuvAtend = $oDaoOuvidoriaAtend->sql_query_atendimento_processo(null, $sCamposAtendimentoLocal, null, $sWhereAtendimentoLocal);
$rsOuviAtendimento = $oDaoOuvidoriaAtend->sql_record($sSqlOuvAtend);
if ($oDaoOuvidoriaAtend->erro_status == "0") {
    db_msgbox("Não foi possível localizar o atendimento desejado.");
    db_redireciona("digitaconsultaouvidorianovo.php");
    exit;
}
$oAtendimento = db_utils::fieldsMemory($rsOuviAtendimento, 0);
$sDataArquivamento = "";
if ($oAtendimento->data_arquivamento != "") {
    $sDataArquivamento = db_formatar($oAtendimento->data_arquivamento, "d");
}
$oAtendimento->data_arquivamento = $sDataArquivamento;
$sNumeroProcesso = "";
if ($oAtendimento->numero_processo != "") {
    $sNumeroProcesso = $oAtendimento->numero_processo;
}
$oAtendimento->numero_processo = $sNumeroProcesso;
?>
<html>
<head>
	<title>Consulta Atendimento Ouvidoria</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
$pdf1->logo = $logo;
$pdf1->prefeitura = $nomeinst;
$pdf1->enderpref = $ender . (isset($numero) ? ', ' . $numero : "");
$pdf1->cgcpref = $cgc;
$pdf1->municpref = $munic;
$pdf1->telefpref = $telef;
$pdf1->emailpref = $email;
$pdf1->ano = $ano;
$pdf1->mes = $mes;
$pdf1->mensagem = $msg;
$pdf1->qualarquivo = $qualarquivo;
$lin = 1;
for ($i = 0; $i < $num; $i++) {
    db_fieldsmemory($res, $i);
    $rsSeqContraCheque = db_query("select nextval('rhemitecontracheque_rh85_sequencial_seq') as sequencial");
    $oSeqContraCheque = db_utils::fieldsMemory($rsSeqContraCheque, 0);
    $iSequencial = str_pad($oSeqContraCheque->sequencial, 6, '0', STR_PAD_LEFT);
    $iMes = str_pad($mes, 2, '0', STR_PAD_LEFT);
    $iMatricula = str_pad($regist, 6, '0', STR_PAD_LEFT);
    $iMod1 = db_CalculaDV($iMatricula);
    $iMod2 = db_CalculaDV($iMatricula . $iMod1 . $iMes . $ano . $iSequencial);
    $iCodAutent = $iMatricula . $iMod1 . $iMes . $iMod2 . $ano . $iSequencial;
    $clrhemitecontracheque->rh85_sequencial = $iSequencial;
    $clrhemitecontracheque->rh85_regist = $regist;
    $clrhemitecontracheque->rh85_anousu = $ano;
    $clrhemitecontracheque->rh85_mesusu = $mes;
    $clrhemitecontracheque->rh85_sigla = substr($sigla, 0, 3);
    $clrhemitecontracheque->rh85_codautent = $iCodAutent;
    $clrhemitecontracheque->rh85_dataemissao = date('Y-m-d', db_getsession('DB_datausu'));
    $clrhemitecontracheque->rh85_horaemissao = db_hora();
    $clrhemitecontracheque->rh85_ip = $sIp;
 function getImagemBanco()
 {
     $sSqlBanco = " select  * \t\t\t\t\t\t \t\t\t                  ";
     $sSqlBanco .= "   from db_bancos\t\t\t\t\t\t\t                ";
     $sSqlBanco .= "  where db90_codban = '{$this->getCodBanco()}' ";
     $rsBanco = pg_query($sSqlBanco);
     $iNroLinhasBanco = pg_num_rows($rsBanco);
     if ($iNroLinhasBanco > 0) {
         $oBanco = db_utils::fieldsMemory($rsBanco, 0);
         if ($oBanco->db90_digban == "" || $oBanco->db90_abrev == "" || $oBanco->db90_logo == "") {
             throw new Exception("Configure o banco no Cadastro de Bancos!");
         }
         pg_query("begin");
         $sCaminho = "tmp/" . $this->getCodBanco() . ".jpg";
         global $conn;
         pg_lo_export("{$oBanco->db90_logo}", $sCaminho, $conn);
         pg_query("commit");
         return $sCaminho;
     } else {
         throw new Exception("Não existe Banco cadastrado para o código {$this->getCodBanco()}!");
     }
 }
 $pdf->Cell(13, 5, "OPER.", 1, 0, "C", 0);
 $pdf->Cell(13, 5, "VENC.", 1, 0, "C", 0);
 $pdf->Cell(13, 5, "ORIGEM", 1, 0, "C", 0);
 $pdf->Cell(30, 5, "DESCRIÇÃO", 1, 0, "C", 0);
 $pdf->Cell(6, 5, "REC", 1, 0, "C", 0);
 $pdf->Cell(23, 5, "DESCRIÇÃO", 1, 0, "C", 0);
 $pdf->Cell(15, 5, "VALOR", 1, 0, "C", 0);
 $pdf->Cell(15, 5, "CORRIGIDO", 1, 0, "C", 0);
 $pdf->Cell(15, 5, "JUROS", 1, 0, "C", 0);
 $pdf->Cell(15, 5, "MULTA", 1, 0, "C", 0);
 $pdf->Cell(15, 5, "DESCONTO", 1, 0, "C", 0);
 $pdf->Cell(15, 5, "TOTAL", 1, 1, "C", 0);
 $iNumpre = null;
 $iTipo = null;
 for ($i = 0; $i < $iLinhasSuspensao; $i++) {
     $oSuspensao = db_utils::fieldsMemory($rsSuspensao, $i);
     $pdf->setx(5);
     $pdf->SetFont('arial', '', 6);
     $nTotal = $oSuspensao->k00_vlrcor + $oSuspensao->k00_vlrjur + $oSuspensao->k00_vlrmul - $oSuspensao->k00_vlrdes;
     $pdf->Cell(2, 4, " ", 0, 0, "C", 0);
     $pdf->Cell(4, 4, $oSuspensao->k00_numpar, "LR", 0, "C", 0);
     $pdf->Cell(4, 4, $oSuspensao->k00_numtot, "R", 0, "C", 0);
     $pdf->Cell(13, 4, $oSuspensao->k00_dtoper, "R", 0, "C", 0);
     $pdf->Cell(13, 4, $oSuspensao->k00_dtvenc, "R", 0, "C", 0);
     $pdf->cell(13, 4, $oSuspensao->matinscr, "R", 0, "L", 0);
     $pdf->Cell(30, 4, substr(trim($oSuspensao->k00_descr), 0, 20), "R", 0, "L", 0);
     $pdf->Cell(6, 4, $oSuspensao->k00_receit, "R", 0, "C", 0);
     $pdf->Cell(23, 4, substr(trim($oSuspensao->k02_descr), 0, 15), "R", 0, "L", 0);
     $pdf->Cell(15, 4, db_formatar($oSuspensao->k00_valor, 'f'), "R", 0, "R", 0);
     $pdf->Cell(15, 4, db_formatar($oSuspensao->k00_vlrcor, 'f'), "R", 0, "R", 0);
     $pdf->Cell(15, 4, db_formatar($oSuspensao->k00_vlrjur, 'f'), "R", 0, "R", 0);
 function getCodigoTom($iInstit = null)
 {
     if (empty($iInstit)) {
         $iInstit = db_getsession("DB_instit");
     }
     $sSql = "select db125_codigosistema                                                                  ";
     $sSql .= "  from db_config                                                                            ";
     $sSql .= "       inner join cadenderestado           on trim(db71_sigla)        = uf                  ";
     $sSql .= "       inner join cadendermunicipio        on db71_sequencial         = db72_cadenderestado ";
     $sSql .= "                                          and trim(db72_descricao)    = munic               ";
     $sSql .= "       inner join cadendermunicipiosistema on db125_cadendermunicipio = db72_sequencial     ";
     $sSql .= "                                          and db125_db_sistemaexterno = 5                   ";
     $sSql .= " where codigo = {$iInstit};                                                                   ";
     $rsDbConfig = $this->sql_record($sSql);
     if ($this->numrows > 0) {
         return db_utils::fieldsMemory($rsDbConfig, 0);
     }
     return null;
 }
 /**
  * Funçao que retorna o número + 1 do ultimo alvará cadastrado para evitar descontinuidade na sequence.
  * O numero estará armazenado na tabela de parâmetro issbasenumeracao
  * No momento da chamada da função esse número será atualizado para o próximo (q133_numeracaoatual + 1)
  * e atribuido a váriavel q02_inscr da classe
  *
  * @return boolean
  */
 function getNumeroContinuo()
 {
     $lTransacaoInterna = false;
     $lErro = false;
     if (!db_utils::inTransaction()) {
         $lTransacaoInterna = true;
         db_inicio_transacao();
     }
     $sUpdate = "update issbasenumeracao \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t";
     $sUpdate .= "   set q133_numeracaoatual = q133_numeracaoatual + 1 ";
     if (db_query($sUpdate)) {
         $sSql = "select q133_numeracaoatual       ";
         $sSql .= "  from issbasenumeracao \t\t\t   ";
         $sSql .= " order by q133_sequencial desc   ";
         $sSql .= " limit 1\t\t\t\t\t\t\t\t\t\t\t   ";
         $rsNumeroContinuo = db_query($sSql);
         if ($rsNumeroContinuo and pg_num_rows($rsNumeroContinuo) > 0) {
             $this->q02_inscr = db_utils::fieldsMemory($rsNumeroContinuo, 0)->q133_numeracaoatual;
         } else {
             $lErro = true;
         }
     }
     if ($lTransacaoInterna) {
         db_fim_transacao($lErro);
     }
     if (!$lErro) {
         if (!db_query("select setval('issbase_q02_inscr_seq', {$this->q02_inscr})")) {
             return false;
         }
         return true;
     } else {
         return false;
     }
 }
            $rsBuscaDadosCgmCidadao = $oDaoBuscaCidadao->sql_record($sSqlBuscaDadosCidadao);
            $oDaoBuscaCidadaoContato = db_utils::getDao('cidadaotelefone');
            $sSqlBuscaTelefones = $oDaoBuscaCidadaoContato->sql_query_file(null, "*", null, "ov07_cidadao = {$oDadosAtendimento->ov10_cidadao}");
            $rsBuscaTelefones = $oDaoBuscaCidadaoContato->sql_record($sSqlBuscaTelefones);
            $iTotalTelefones = $oDaoBuscaCidadaoContato->numrows;
            $aTelefones = array();
            if ($iTotalTelefones > 0) {
                $aTelefones = db_utils::getCollectionByRecord($rsBuscaTelefones);
            }
        }
    }
    /*
     * dados pessoais do requerente
     */
    if (isset($rsBuscaDadosCgmCidadao) && pg_num_rows($rsBuscaDadosCgmCidadao) > 0) {
        $oResultadoRequerente = db_utils::fieldsMemory($rsBuscaDadosCgmCidadao, 0);
        $oStdDadosRequerente->codigo = $oResultadoRequerente->codigo;
        $oStdDadosRequerente->nomerequerente = "{$oResultadoRequerente->codigo} - {$oResultadoRequerente->nomerequerente}";
        $oStdDadosRequerente->cpfcnpj = $oResultadoRequerente->cpfcnpj;
        $oStdDadosRequerente->municipio = $oResultadoRequerente->municipio;
        $oStdDadosRequerente->cep = $oResultadoRequerente->cep;
        $oStdDadosRequerente->estado = $oResultadoRequerente->estado;
        $oStdDadosRequerente->endereco = $oResultadoRequerente->endereco;
        $oStdDadosRequerente->complemento = $oResultadoRequerente->complemento;
        $oStdDadosRequerente->numero = $oResultadoRequerente->numero;
        $oStdDadosRequerente->bairro = $oResultadoRequerente->bairro;
        $oStdDadosRequerente->telefone = $oResultadoRequerente->telefone;
    }
}
?>
<html>
 /**
  * Retorna dados Basicos Referentes a Parcela de Débito 
  * 
  * @param mixed $iNumpre 
  * @param mixed $iNumpar 
  * @static
  * @access public
  * @return stdClass
  */
 public static function getMensagensParcela($iNumpre, $iNumpar, $dDataEmissao)
 {
     $oRetorno = new stdClass();
     $oRetorno->sMensagemContribuinte = "";
     $oRetorno->sMensagemCaixa = "";
     /**
      * Para Buscar valor deve-se implentar busca na função debitos_numpre
      */
     $sSql = "select distinct                                                    ";
     if (!empty($iNumpar)) {
         $sSql .= "       k00_dtvenc,                                               ";
     }
     $sSql .= "       k00_msguni,                                                 ";
     $sSql .= "       k00_msguni2,                                                ";
     $sSql .= "       k00_msgparc,                                                ";
     $sSql .= "       k00_msgparc2,                                               ";
     $sSql .= "       k00_msgparcvenc,                                            ";
     $sSql .= "       k00_msgparcvenc2,                                           ";
     $sSql .= "       arrecad.k00_tipo                                            ";
     $sSql .= "  from arrecad                                                     ";
     $sSql .= "       inner join arretipo on arrecad.k00_tipo = arretipo.k00_tipo ";
     $sSql .= " where k00_numpre = {$iNumpre}  ";
     if (!empty($iNumpar)) {
         $sSql .= "   AND k00_numpar = {$iNumpar}  ";
     }
     $rsSql = db_query($sSql);
     if (!$rsSql) {
         throw new DBException("Erro ao Buscar os Dados da Parcela. Descrição do Erro:" . pg_last_error());
     }
     $oDadosDebito = db_utils::fieldsMemory($rsSql, 0);
     if (empty($iNumpar)) {
         $oRetorno->sMensagemContribuinte = $oDadosDebito->k00_msguni2;
         $oRetorno->sMensagemCaixa = $oDadosDebito->k00_msguni;
         return $oRetorno;
     }
     $oDataVencimentoDebito = new DBDate($oDadosDebito->k00_dtvenc);
     $oDataEmissao = new DBDate($dDataEmissao);
     if ($oDataEmissao->getTimeStamp() > $oDataVencimentoDebito->getTimeStamp()) {
         $oRetorno->sMensagemContribuinte = $oDadosDebito->k00_msgparc;
         $oRetorno->sMensagemCaixa = $oDadosDebito->k00_msgparc2;
         return $oRetorno;
     }
     $oRetorno->sMensagemContribuinte = $oDadosDebito->k00_msgparcvenc;
     $oRetorno->sMensagemCaixa = $oDadosDebito->k00_msgparcvenc2;
     return $oRetorno;
 }
 public function processamentoResumoGeralDivida($dDataDebitos)
 {
     $aResumoCurtoPrazo = array();
     $aResumoLongoPrazo = array();
     $aAgrupador['receita'] = 'receit';
     $aDataDebitos = explode("-", $dDataDebitos);
     $sSqlDebitosPagos = $this->sql_queryDebitosAnteriores($aDataDebitos[0]);
     $rsDebitosPagos = $this->sql_record($sSqlDebitosPagos);
     for ($iInd = 0; $iInd < $this->numrows; $iInd++) {
         $oDebitosPagos = db_utils::fieldsMemory($rsDebitosPagos, $iInd);
         if (isset($aDebitosPagos[$oDebitosPagos->k03_tipo][$oDebitosPagos->v01_proced])) {
             $aDebitosPagos[$oDebitosPagos->k03_tipo][$oDebitosPagos->v01_proced]['nTotal'] += $oDebitosPagos->total;
         } else {
             $aDebitosPagos[$oDebitosPagos->k03_tipo][$oDebitosPagos->v01_proced]['nTotal'] = $oDebitosPagos->total;
         }
         foreach ($aAgrupador as $sDescrAgrupa => $sCampo) {
             if (isset($aResumoDebitosPagos[$sDescrAgrupa][$oDebitosPagos->{$sCampo}])) {
                 $aResumoDebitosPagos[$sDescrAgrupa][$oDebitosPagos->{$sCampo}]['nTotal'] += $oDebitosPagos->total;
             } else {
                 $aResumoDebitosPagos[$sDescrAgrupa][$oDebitosPagos->{$sCampo}]['nTotal'] = $oDebitosPagos->total;
             }
         }
     }
     $sSqlResumoGeral = $this->sql_queryProcessamentoResumoGeralDivida($dDataDebitos);
     $rsResumoGeral = $this->sql_record($sSqlResumoGeral);
     $iLinhasResumoGeral = $this->numrows;
     $aLongoPrazo = array();
     $aCurtoPrazo = array();
     for ($iInd = 0; $iInd < $iLinhasResumoGeral; $iInd++) {
         $oResumo = db_utils::fieldsMemory($rsResumoGeral, $iInd);
         $dtDataLimite = $oResumo->v01_exerc + 1 . "-12-31";
         foreach ($aAgrupador as $sDescrAgrupa => $sCampo) {
             $aDescrTipo[$oResumo->k03_tipo] = $oResumo->descrtipo;
             $aDescrProced[$oResumo->v01_proced] = $oResumo->descrproced;
             $aDescrTipoProced[$oResumo->v03_tributaria] = $oResumo->descrtipoproced;
             if ($sDescrAgrupa == 'proced') {
                 $sDescricao = $oResumo->descrproced;
             } else {
                 if ($sDescrAgrupa == 'tipo_proced') {
                     $sDescricao = $oResumo->descrtipoproced;
                 } else {
                     if ($sDescrAgrupa == 'receita') {
                         $sDescricao = $oResumo->descrreceit;
                     } else {
                         $sDescricao = $oResumo->descrtipo;
                     }
                 }
             }
             if (in_array($oResumo->k03_tipo, array(5, 15, 18)) || in_array($oResumo->k03_tipo, array(6, 13)) && $oResumo->dtvenc > $dtDataLimite) {
                 if (isset($aResumoLongoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}])) {
                     $aResumoLongoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nVlrHist'] += $oResumo->vlrhis;
                     $aResumoLongoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nVlrCorr'] += $oResumo->vlrcor;
                     $aResumoLongoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nMulta'] += $oResumo->multa;
                     $aResumoLongoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nJuros'] += $oResumo->juros;
                     $aResumoLongoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nTotal'] += $oResumo->total;
                 } else {
                     $aResumoLongoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['sDescricao'] = $sDescricao;
                     $aResumoLongoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nVlrHist'] = $oResumo->vlrhis;
                     $aResumoLongoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nVlrCorr'] = $oResumo->vlrcor;
                     $aResumoLongoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nMulta'] = $oResumo->multa;
                     $aResumoLongoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nJuros'] = $oResumo->juros;
                     $aResumoLongoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nTotal'] = $oResumo->total;
                 }
             } else {
                 if (in_array($oResumo->k03_tipo, array(6, 13)) && $oResumo->dtvenc <= $dtDataLimite) {
                     if (isset($aResumoCurtoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}])) {
                         $aResumoCurtoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nVlrHist'] += $oResumo->vlrhis;
                         $aResumoCurtoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nVlrCorr'] += $oResumo->vlrcor;
                         $aResumoCurtoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nMulta'] += $oResumo->multa;
                         $aResumoCurtoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nJuros'] += $oResumo->juros;
                         $aResumoCurtoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nTotal'] += $oResumo->total;
                     } else {
                         $aResumoCurtoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['sDescricao'] = $sDescricao;
                         $aResumoCurtoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nVlrHist'] = $oResumo->vlrhis;
                         $aResumoCurtoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nVlrCorr'] = $oResumo->vlrcor;
                         $aResumoCurtoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nMulta'] = $oResumo->multa;
                         $aResumoCurtoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nJuros'] = $oResumo->juros;
                         $aResumoCurtoPrazo[$sDescrAgrupa][$oResumo->{$sCampo}]['nTotal'] = $oResumo->total;
                     }
                 }
             }
         }
     }
     foreach ($aResumoLongoPrazo as $sTipoAgrupa => $aDadosLongoPrazo) {
         foreach ($aDadosLongoPrazo as $sCampoAgrupa => $aValoresLongoPrazo) {
             if (isset($aResumoDebitosPagos[$sTipoAgrupa][$sCampoAgrupa])) {
                 $nTotalPago = $aResumoDebitosPagos[$sTipoAgrupa][$sCampoAgrupa]['nTotal'];
                 $nTotalPago = round($nTotalPago / 3 * 2, 2);
                 $nTotalProced = $aValoresLongoPrazo['nTotal'];
                 // Percentual que será subtraído do logon prazo e incluído no longo prazo
                 $nPercentual = round($nTotalPago * 100 / $nTotalProced, 2);
                 $nValorHist = $aValoresLongoPrazo['nVlrHist'] / 100 * $nPercentual;
                 $nValorCorr = $aValoresLongoPrazo['nVlrCorr'] / 100 * $nPercentual;
                 $nValorMulta = $aValoresLongoPrazo['nMulta'] / 100 * $nPercentual;
                 $nValorJuros = $aValoresLongoPrazo['nJuros'] / 100 * $nPercentual;
                 $nValorTotal = $aValoresLongoPrazo['nTotal'] / 100 * $nPercentual;
                 if ($nValorTotal < $aValoresLongoPrazo['nTotal']) {
                     $aResumoLongoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nVlrHist'] -= $nValorHist;
                     $aResumoLongoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nVlrCorr'] -= $nValorCorr;
                     $aResumoLongoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nMulta'] -= $nValorMulta;
                     $aResumoLongoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nJuros'] -= $nValorJuros;
                     $aResumoLongoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nTotal'] -= $nValorTotal;
                     if (isset($aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa])) {
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nVlrHist'] += $nValorHist;
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nVlrCorr'] += $nValorCorr;
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nMulta'] += $nValorMulta;
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nJuros'] += $nValorJuros;
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nTotal'] += $nValorTotal;
                     } else {
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['sDescricao'] = $aValoresLongoPrazo['sDescricao'];
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nVlrHist'] = $nValorHist;
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nVlrCorr'] = $nValorCorr;
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nMulta'] = $nValorMulta;
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nJuros'] = $nValorJuros;
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nTotal'] = $nValorTotal;
                     }
                 } else {
                     if (isset($aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa])) {
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nVlrHist'] += $aValoresLongoPrazo['nVlrHist'];
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nVlrCorr'] += $aValoresLongoPrazo['nVlrCorr'];
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nMulta'] += $aValoresLongoPrazo['nMulta'];
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nJuros'] += $aValoresLongoPrazo['nJuros'];
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nTotal'] += $aValoresLongoPrazo['nTotal'];
                     } else {
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['sDescricao'] = $aValoresLongoPrazo['sDescricao'];
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nVlrHist'] = $aValoresLongoPrazo['nVlrHist'];
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nVlrCorr'] = $aValoresLongoPrazo['nVlrCorr'];
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nMulta'] = $aValoresLongoPrazo['nMulta'];
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nJuros'] = $aValoresLongoPrazo['nJuros'];
                         $aResumoCurtoPrazo[$sTipoAgrupa][$sCampoAgrupa]['nTotal'] = $aValoresLongoPrazo['nTotal'];
                     }
                     unset($aResumoLongoPrazo[$sTipoAgrupa][$sCampoAgrupa]);
                 }
             }
         }
     }
     foreach ($aResumoLongoPrazo as $sTipoAgrupa => $aDadosLongoPrazo) {
         if (count($aDadosLongoPrazo) == 0) {
             unset($aResumoLongoPrazo[$sTipoAgrupa]);
         }
     }
     $aDados = array();
     $aDados['aCurtoPrazo'] = $aResumoCurtoPrazo;
     $aDados['aLongoPrazo'] = $aResumoLongoPrazo;
     return $aDados;
 }
  </tr>
</table>
<table align="center"  class="tableForm">
   <tr class="subTituloForm" align="center">
      <td>N° Matrícula</td>
      <td>Data Admissão</td>
      <td>Cargo</td>
      <td>Data Demissão</td>
      <td>Instituicao</td>
   </tr>
   <?php 
    $corFundo = "#FFFFFF";
    $corOver = "#ede67c";
    for ($x = 0; $x < $iRhCgmCont; $x++) {
        if ($iRhCgmCont > 0) {
            $oCgmCont = db_utils::fieldsMemory($rsRhCgmCont, $x);
        }
        if ($corFundo == "#FFFFFF") {
            $corFundo = "#FFFFFF";
        } else {
            $corFundo = "#FFFFFF";
        }
        $sUrl = base64_encode("id_usuario=" . $id_usuario . "&matricula=" . $oCgmCont->rh01_regist . "&instituicao=" . $oCgmCont->rh02_instit);
        ?>
    <tr bgcolor="<?php 
        echo $corFundo;
        ?>
"   onmouseover="bgColor='<?php 
        echo $corOver;
        ?>
'" onmouseout="bgColor='<?php 
 *  durante o processo.
 */
if (isset($inicial)) {
    $sSqlNumpresInicial = " select distinct     ";
    $sSqlNumpresInicial .= "        k00_numpre,  ";
    $sSqlNumpresInicial .= "        k00_numpar   ";
    $sSqlNumpresInicial .= "  from inicialnumpre ";
    $sSqlNumpresInicial .= "       inner join arrecad on arrecad.k00_numpre = inicialnumpre.v59_numpre ";
    $sSqlNumpresInicial .= " where v59_inicial in (" . $num_pres . ")                                     ";
    $num_pres = "";
    $rsSqlNumpresInicial = pg_query($sSqlNumpresInicial);
    $iLinhasNumpresInicial = pg_num_rows($rsSqlNumpresInicial);
    if ($iLinhasNumpresInicial > 0) {
        $sVirgula = "";
        for ($iRow = 0; $iRow < $iLinhasNumpresInicial; $iRow++) {
            $oDadosNumpre = db_utils::fieldsMemory($rsSqlNumpresInicial, $iRow);
            $sNumpre = "N" . $oDadosNumpre->k00_numpre;
            $sNumpar = "P" . $oDadosNumpre->k00_numpar;
            $sReceita = "R0";
            $num_pres .= $sVirgula . $sNumpre . $sNumpar . $sReceita;
            $sVirgula = ",";
        }
    }
}
$num_pres = explode(',', $num_pres);
if (!isset($emite_recibo_protocolo)) {
    pg_exec("BEGIN");
    $result = pg_exec("select nextval('numpref_k03_numpre_seq') as k03_numpre");
    db_fieldsmemory($result, 0);
    $result = pg_exec("select k00_codbco,k00_codage,k00_descr,k00_hist1,k00_hist2,k00_hist3,k00_hist4,k00_hist5,k00_hist6,k00_hist7,k00_hist8,k03_tipo,k00_tipoagrup from arretipo where k00_tipo = {$tipo}");
    if (pg_numrows($result) == 0) {
              </td>
            </tr>
        
		      <?php 
}
?>
  
			      <tr>
			        <td class="tituloForm"  colspan="3">
			          <b>Férias a Gozar</b>
			        </td>
			      </tr>          
          <?php 
if ($iNroFeriasaGozar > 0) {
    for ($iInd = 0; $iInd < $iNroFeriasaGozar; $iInd++) {
        $oFeriasaGozar = db_utils::fieldsMemory($rsFeriasaGozar, $iInd);
        if ($oFeriasaGozar->periodo_aquisitivo_final < date('Y-m-d', db_getsession('DB_datausu'))) {
            ?>
            <tr>
              <td class="labelForm">
                Período Aquisitivo:
              </td>
              <td class="dadosForm">
                <?php 
            echo db_formatar($oFeriasaGozar->periodo_aquisitivo_inicial, 'd') . " à " . db_formatar($oFeriasaGozar->periodo_aquisitivo_final, 'd');
            ?>
              </td>
            </tr>
          
          <?php 
            $lMonstraMsg = true;
 if ($clcertidao->numrows > 0) {
     $oCertidao = db_utils::fieldsMemory($rsCertidao, 0);
     if ($sqlerro == false && $sStatus != 3) {
         $clcertvalonlinecert->w19_certidao = $oCertidao->p50_sequencial;
         $clcertvalonlinecert->w19_certidaovalidaonline = $clcertvalonline->w18_sequencial;
         $clcertvalonlinecert->incluir(null);
         if ($clcertvalonlinecert->erro_status == 0) {
             $sqlerro = true;
             $erro_msg = $clcertvalonlinecert->erro_msg;
         }
     }
 }
 if (isset($iLogin) && $iLogin != "") {
     $rsDbUsuarios = $cldbusuarios->sql_record($cldbusuarios->sql_query("", "id_usuario", "", "login = '******'"));
     if ($cldbusuarios->numrows > 0) {
         $oDbUsuario = db_utils::fieldsMemory($rsDbUsuarios, 0);
         if ($sqlerro == false && $sStatus != 3) {
             $clcertvalonlineusuario->w20_certidaovalidaonline = $clcertvalonline->w18_sequencial;
             $clcertvalonlineusuario->w20_id_usuario = $oDbUsuario->id_usuario;
             $clcertvalonlineusuario->incluir(null);
             if ($clcertvalonlineusuario->erro_status == 0) {
                 $sqlerro = true;
                 $erro_msg = $clcertvalonlineusuario->erro_msg;
             }
         }
     }
 }
 db_fim_transacao($sqlerro);
 if ($sqlerro == true) {
     db_msgbox($erro_msg);
 }
$rotulo->label("j14_nome");
$rotulo->label("z01_numero");
$rotulo->label("z01_compl");
$rotulo->label("j13_descr");
$rotulo->label("z01_telef");
$rotulo->label("z01_numcgm");
$rotulo->label("j50_zona");
$rotulo->label("j50_descr");
$rotulo->label("q03_ativ");
$rotulo->label("q03_descr");
$rotulo->label("q86_numcgm");
$sCampos = 'mens, alinhamento';
$sWhereConfMensagem = "cod = 'simulacao_inscricao_cab' ";
$sSqlConfMensagem = $oDaoConfMensagem->sql_query(null, $sCampos, null, $sWhereConfMensagem);
$rsConfMensagem = $oDaoConfMensagem->sql_record($sSqlConfMensagem);
$oDadosConfMensagem = db_utils::fieldsMemory($rsConfMensagem, 0);
$sConfMensagem = $oDadosConfMensagem->mens;
$sAlinhamento = $oDadosConfMensagem->alinhamento;
db_logs(0, 0, 0, "Simulação de Inscrição ISS");
?>
<html>
<head>
<title>DBSeller Inform&aacute;tica Ltda - P&aacute;gina Inicial</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<meta http-equiv="Expires" CONTENT="0">
	<script language="JavaScript" src="scripts/scripts.js"></script>
	<script language="JavaScript" src="scripts/strings.js"></script>
	<script language="JavaScript" src="scripts/prototype.js"></script>
	<script language="JavaScript" src="scripts/widgets/DBHint.widget.js"></script>
	<link rel="stylesheet" type="text/css" href="include/estilodai.css">
	<link rel="stylesheet" type="text/css" href="config/estilos.css">
 *                                licenca/licenca_pt.txt 
 */
require_once "fpdf151/pdf.php";
require_once "libs/db_utils.php";
require_once "libs/JSON.php";
require_once "dbforms/db_funcoes.php";
require_once "classes/db_isssimulacalculo_classe.php";
require_once "classes/db_isssimulacalculoatividade_classe.php";
$oJson = new services_json();
$oIssSimulaCalculo = new cl_isssimulacalculo();
$oIssSimulaCalculoAtividade = new cl_isssimulacalculoatividade();
$oGet = db_utils::postMemory($_GET);
$oPost = db_utils::postMemory($_POST);
$sSqlMunic = "select munic from db_config where codigo = " . db_getsession("DB_instit");
$rsMunic = db_query($sSqlMunic);
$sMunic = db_utils::fieldsMemory($rsMunic, 0)->munic;
$sSqlSimulaCalculo = $oIssSimulaCalculo->sql_query($oGet->iSimulacao);
$rsSimulacaoCalculo = $oIssSimulaCalculo->sql_record($sSqlSimulaCalculo);
$iLinhasConsulta = $oIssSimulaCalculo->numrows;
if ($iLinhasConsulta == 0) {
    db_redireciona("db_erros.php?fechar=true&db_erro=Nenhum registro encontrado.");
}
$sSqlSimulaCalculoAtividade = $oIssSimulaCalculoAtividade->sql_query(null, "*", "q131_seq", "q131_issimulacalculo = {$oGet->iSimulacao}");
$rsSimulacaoCalculoAtividade = $oIssSimulaCalculoAtividade->sql_record($sSqlSimulaCalculoAtividade);
$iLinhasConsultaAtividade = $oIssSimulaCalculoAtividade->numrows;
$head4 = "BIC simulada de Alvara";
$pdf = new PDF();
$pdf->Open();
$pdf->AliasNbPages();
$total = 0;
$alt = 4;
 *  
 *  Copia da licenca no diretorio licenca/licenca_en.txt 
 *                                licenca/licenca_pt.txt 
 */
include "libs/db_conecta.php";
include "libs/db_stdlib.php";
include "libs/db_sql.php";
include "libs/db_utils.php";
validaUsuarioLogado();
$aRetorno = array();
parse_str(base64_decode($HTTP_SERVER_VARS["QUERY_STRING"]), $aRetorno);
$iMatric = $aRetorno['iMatric'];
$oRHPessoal = db_utils::getDao('rhpessoal');
$sSqlDadosServidor = "select *,\n                             substr((select * from  db_fxxx(rh02_regist,rh02_anousu,rh02_mesusu,rh02_instit)),210,25) as padraoatual\n\t\t\t\t\t\t\t\t\t\t\t  from rhpessoal\n\t\t\t\t\t\t\t\t\t\t\t       inner join rhpessoalmov    on rh02_anousu                        = " . db_anofolha() . " \n\t\t\t\t\t\t\t\t\t\t\t                                 and rh02_mesusu                        = " . db_mesfolha() . "\n\t\t\t\t\t\t\t\t\t\t\t                                 and rh02_regist                        = rh01_regist\n\t\t\t\t\t\t\t\t\t\t\t       left  join rhlota          on rhlota.r70_codigo                  = rhpessoalmov.rh02_lota\n\t\t\t\t\t\t\t\t\t\t\t                                 and rhlota.r70_instit                  = rhpessoalmov.rh02_instit\n\t\t\t\t\t\t\t\t\t\t\t       left  join rhpesbanco      on rh44_seqpes                        = rhpessoalmov.rh02_seqpes\n\t\t\t\t\t\t\t\t\t\t\t       inner join cgm             on cgm.z01_numcgm                     = rhpessoal.rh01_numcgm\n\t\t\t\t\t\t\t\t\t\t\t       left  join db_cgmruas      on db_cgmruas.z01_numcgm              = cgm.z01_numcgm\n\t\t\t\t\t\t\t\t\t\t\t       left  join ruas            on ruas.j14_codigo                    = db_cgmruas.j14_codigo\n\t\t\t\t\t\t\t\t\t\t\t       left  join ruastipo        on ruastipo.j88_codigo                = ruas.j14_tipo\n\t\t\t\t\t\t\t\t\t\t\t       inner join rhestcivil      on rhestcivil.rh08_estciv             = rhpessoal.rh01_estciv\n\t\t\t\t\t\t\t\t\t\t\t       left  join rhfuncao        on rhfuncao.rh37_funcao               = rhpessoal.rh01_funcao\n\t\t\t\t\t\t\t\t\t\t\t                                 and rhfuncao.rh37_instit               = rhpessoalmov.rh02_instit\n\t\t\t\t\t\t\t\t\t\t\t       left  join rhregime        on rhregime.rh30_codreg               = rhpessoalmov.rh02_codreg\n\t\t\t\t\t\t\t\t\t\t\t                                 and rhregime.rh30_instit               = rhpessoalmov.rh02_instit   \n\t\t\t\t\t\t\t\t\t\t\t       inner join rhinstrucao     on rhinstrucao.rh21_instru            = rhpessoal.rh01_instru\n\t\t\t\t\t\t\t\t\t\t\t       left  join rhpespadrao     on rhpespadrao.rh03_seqpes            = rhpessoalmov.rh02_seqpes \n\t\t\t\t\t\t\t\t\t\t\t       left  join rhpesrescisao   on rh02_seqpes = rh05_seqpes\n\t\t\t\t\t\t\t\t\t\t\t where rhpessoal.rh01_regist = {$iMatric}";
$rsDadosServidor = $oRHPessoal->sql_record($sSqlDadosServidor);
$oDadosServidor = db_utils::fieldsMemory($rsDadosServidor, 0);
?>
<html>
<head>
<title><?php 
echo $w01_titulo;
?>
</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="config/estilos.css"        rel="stylesheet" type="text/css">
<link href="config/portalservidor.css" rel="stylesheet" type="text/css">

<script language="JavaScript" src="scripts/scripts.js"></script>
<script language="JavaScript" src="scripts/db_script.js"></script>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor="<?php 
$pdf1->descr12_1 = "\n" . $historico . "\n" . $k00_mensagemdesconto . "\n" . $pdf1->sMensagemContribuinte;
$pdf1->pqllocal = $sPQLLocal;
$pdf1->descr14 = $datavencimento;
// vencimento
$pdf1->descr10 = "1 / 1";
$pdf1->data_processamento = date('d/m/Y', db_getsession('DB_datausu'));
$pdf1->tipo_exerc = $tipo_debito . " / " . $exerc;
$pdf1->especie = "R\$";
$pdf1->dtparapag = $datavencimento;
//date('d/m/Y',db_getsession('DB_datausu'));
$pdf1->loteamento = $loteador;
// ###################### BUSCA OS DADOS PARA IMPRIMIR O LOGO DO BANCO #########################
//verifica se é ficha e busca o codigo do banco
if ($oRegraEmissao->isCobranca()) {
    $rsConsultaBanco = $cldb_bancos->sql_record($cldb_bancos->sql_query_file($oConvenio->getCodBanco()));
    $oBanco = db_utils::fieldsMemory($rsConsultaBanco, 0);
    $pdf1->numbanco = $oBanco->db90_codban . "-" . $oBanco->db90_digban;
    $pdf1->banco = $oBanco->db90_abrev;
    try {
        $pdf1->imagemlogo = $oConvenio->getImagemBanco();
    } catch (Exception $eExeption) {
        db_redireciona("db_erros.php?fechar=true&db_erro=" . $eExeption->getMessage());
    }
}
//#############################################################
/**
 * Verifica se é um objeto db_impcarne
 */
if (!is_a($pdf1, "db_impcarne")) {
    $sMensagemErro = "Erro ao gerar recibo. Contate suporte! Não possui modelo do documento para emissão do boleto selecionado.";
    db_redireciona("db_erros.php?fechar=true&db_erro=" . $sMensagemErro);
     </tr>	
     <tr>
      <td width="50%" height="30" align="right">
        Matr&iacute;cula do Im&oacute;vel:&nbsp;
      </td>
      <td width="50%" height="30">
       <input name="matricula1" type="text" class="digitacgccpf" id="matricula1" size="10" maxlength="10">
      </td>
     </tr>    
<?php 
    /*
     *  Se o parametro de configuração do prefeitura on-line no dbportal, na tabela configdbpref, campo chamado w13_exigecpfcnpjmatricula
     *  estiver como true é para exibir os campos cnpj e cpf para o usuário do dbpref  
     */
    $rsParametro = $clconfigdbpref->sql_record($clconfigdbpref->sql_query_file($iInstit, "w13_exigecpfcnpjmatricula"));
    $oRetorno = db_utils::fieldsMemory($rsParametro, 0);
    if ($oRetorno->w13_exigecpfcnpjmatricula == "t") {
        ?>
     <tr>
      <td width="50%" height="30" align="right">
       CNPJ:&nbsp;
      </td>
      <td width="50%" height="30">
       <input name="cgc" type="text" class="digitacgccpf" id="cgc" size="18" maxlength="18" 
              onKeyPress="FormataCNPJ(this,event); return js_teclas(event);">
      </td>
     </tr>
     <tr>
      <td width="50%" height="30" align="right">
       CPF:&nbsp;
      </td>
 /**
  * Função que calcula o valor total da inicial
  *
  */
 function valorInicialAtualizado($iInicial, $dDtEmiss = null)
 {
     require_once "libs/db_sql.php";
     $nValor = 0;
     $sSqlCertidoesInicial = "select v51_inicial, \n    \t                                  v13_certid, \n    \t                                  v13_dtemis \n            \t                     from inicialcert\n            \t                    inner join certid   on v13_certid = v51_certidao \n    \t                            where v51_inicial = {$iInicial} ";
     $rsCertidoesInicial = db_query($sSqlCertidoesInicial);
     for ($iCertidoesInicial = 0; $iCertidoesInicial < pg_num_rows($rsCertidoesInicial); $iCertidoesInicial++) {
         $oCertidoesInicial = db_utils::fieldsMemory($rsCertidoesInicial, $iCertidoesInicial);
         if ($dDtEmiss == null) {
             $dDtEmiss = $oCertidoesInicial->v13_dtemis;
         }
         $sSqlParcelamentos = " select v14_parcel, ";
         $sSqlParcelamentos .= "        v07_numpre  ";
         $sSqlParcelamentos .= "   from certter";
         $sSqlParcelamentos .= "  inner join termo on v07_parcel = v14_parcel";
         $sSqlParcelamentos .= "  where v14_certid = {$oCertidoesInicial->v13_certid} ";
         $rsParcelamentos = db_query($sSqlParcelamentos);
         $iLinhasParcel = pg_num_rows($rsParcelamentos);
         for ($iIndParcel = 0; $iIndParcel < $iLinhasParcel; $iIndParcel++) {
             $oDadosParcel = db_utils::fieldsMemory($rsParcelamentos, $iIndParcel);
             $rsDadosDebitoCorrigido = debitos_numpre($oDadosParcel->v07_numpre, 0, 0, mktime(0, 0, 0, substr($dDtEmiss, 5, 2), substr($dDtEmiss, 8, 2), substr($dDtEmiss, 0, 4)), substr($dDtEmiss, 0, 4), 0);
             if ($rsDadosDebitoCorrigido != false) {
                 $iLinhasDebito = pg_num_rows($rsDadosDebitoCorrigido);
                 for ($iIndDebito = 0; $iIndDebito < $iLinhasDebito; $iIndDebito++) {
                     $nValor += db_utils::fieldsMemory($rsDadosDebitoCorrigido, $iIndDebito)->total;
                 }
             }
         }
         $sSqlDadosDebitos = " select distinct    ";
         $sSqlDadosDebitos .= "        k00_numpre, ";
         $sSqlDadosDebitos .= "        k00_numpar  ";
         $sSqlDadosDebitos .= "   from certdiv";
         $sSqlDadosDebitos .= "        inner join divida   on certdiv.v14_coddiv = divida.v01_coddiv";
         $sSqlDadosDebitos .= "        inner join arrecad  on arrecad.k00_numpre = divida.v01_numpre ";
         $sSqlDadosDebitos .= "                           and arrecad.k00_numpar = divida.v01_numpar";
         $sSqlDadosDebitos .= "  where v14_certid in ({$oCertidoesInicial->v13_certid})";
         $rsDadosDebitos = db_query($sSqlDadosDebitos);
         $iLinhasDadosDebitos = pg_num_rows($rsDadosDebitos);
         for ($iIndDadosDebitos = 0; $iIndDadosDebitos < $iLinhasDadosDebitos; $iIndDadosDebitos++) {
             $oDivida = db_utils::fieldsmemory($rsDadosDebitos, $iIndDadosDebitos);
             $rsDadosDebitoCorrigido = debitos_numpre($oDivida->k00_numpre, 0, 0, mktime(0, 0, 0, substr($dDtEmiss, 5, 2), substr($dDtEmiss, 8, 2), substr($dDtEmiss, 0, 4)), substr($dDtEmiss, 0, 4), $oDivida->k00_numpar);
             for ($iIndDebito = 0; $iIndDebito < pg_numrows($rsDadosDebitoCorrigido); $iIndDebito++) {
                 $nValor += db_utils::fieldsMemory($rsDadosDebitoCorrigido, $iIndDebito)->total;
             }
         }
     }
     return $nValor;
 }
 /**
  * Método responsável por setar na sessão a estrutura da folha de pagamento.
  * EX.: C/ Suplementar ou S/Suplementar
  * 
  * @static
  * @access public
  * @param Integer $iInstituicao
  * @throws DBException
  */
 public static function declararEstruturaFolhaPagamento($iInstituicao)
 {
     $oDaoCfPess = new cl_cfpess();
     $sSqlSuplementar = $oDaoCfPess->sql_query_file(null, null, $iInstituicao, "distinct r11_suplementar::int");
     $rsSuplementar = db_query($sSqlSuplementar);
     if (!$rsSuplementar) {
         throw new DBException("Ocorreu um erro ao declarar a estrutura da folha de pagamento.");
     }
     $oDadosSuplementar = db_utils::fieldsMemory($rsSuplementar, 0);
     db_putsession("DB_COMPLEMENTAR", (bool) $oDadosSuplementar->r11_suplementar);
 }
function db_varPatrimoniaisRpps($anousu, $dataini, $datafin, $iInstit)
{
    $aVariacoesAtivo = array();
    $aVariacoesPassivo = array();
    $aVariacoesExtraAtivo = array();
    $aVariacoesExtraPassivo = array();
    (double) ($aVariacoesAtivo['ReceitasCorrentes'] = 0);
    (double) ($aVariacoesAtivo['ReceitasCapital'] = 0);
    (double) ($aVariacoesAtivo['IntraOrcamentarias'] = 0);
    (double) ($aVariacoesAtivo['TransferenciasFinanceirasRecebidas'] = 0);
    (double) ($aVariacoesAtivo['IncorporacaoAtivos'] = 0);
    (double) ($aVariacoesAtivo['DesincorporacaoPassivos'] = 0);
    (double) ($aVariacoesPassivo['DespesasCorrentes'] = 0);
    (double) ($aVariacoesPassivo['DespesasCapital'] = 0);
    (double) ($aVariacoesPassivo['IntraOrcamentarias'] = 0);
    (double) ($aVariacoesPassivo['DesincorporacaoAtivos'] = 0);
    (double) ($aVariacoesPassivo['IncorporacaoPassivos'] = 0);
    (double) ($aVariacoesExtraAtivo['TransferenciasFinanceirasRecebidas'] = 0);
    (double) ($aVariacoesExtraAtivo['MovimentoFundosDebito'] = 0);
    (double) ($aVariacoesExtraAtivo['IncorporacaoAtivos'] = 0);
    (double) ($aVariacoesExtraAtivo['DesincorporacaoPassivos'] = 0);
    (double) ($aVariacoesExtraAtivo['AjustesBensValoresCreditos'] = 0);
    (double) ($aVariacoesExtraAtivo['AjustesExerciciosAnteriores'] = 0);
    (double) ($aVariacoesExtraPassivo['TransferenciasFinanceirasConcedidas'] = 0);
    (double) ($aVariacoesExtraPassivo['MovimentoFundosCredito'] = 0);
    (double) ($aVariacoesExtraPassivo['DesincorporacaoAtivos'] = 0);
    (double) ($aVariacoesExtraPassivo['AjustesBensValoresCreditos'] = 0);
    (double) ($aVariacoesExtraPassivo['IncorporacaoPassivos'] = 0);
    //
    // Balancete de Receita (db_receitasaldo)
    //
    $sSqlFiltro = ' o70_instit = ' . $iInstit;
    $rsReceitaSaldo = db_receitasaldo(3, 1, 3, true, $sSqlFiltro, $anousu, $dataini, $datafin);
    $iNumrowsReceita = pg_num_rows($rsReceitaSaldo);
    // db_criatabela($rsReceitaSaldo);exit;
    for ($i = 0; $i < $iNumrowsReceita; $i++) {
        $oReceitaSaldo = db_utils::fieldsMemory($rsReceitaSaldo, $i);
        switch (substr($oReceitaSaldo->o57_fonte, 0, 4)) {
            case '4100':
                $aVariacoesAtivo['ReceitasCorrentes'] += (double) $oReceitaSaldo->saldo_arrecadado_acumulado;
                break;
            case '4200':
                $aVariacoesAtivo['ReceitasCapital'] += (double) $oReceitaSaldo->saldo_arrecadado_acumulado;
                break;
            case '4700':
                $aVariacoesAtivo['IntraOrcamentarias'] += (double) $oReceitaSaldo->saldo_arrecadado_acumulado;
                break;
            case '4800':
                $aVariacoesAtivo['IntraOrcamentarias'] += (double) $oReceitaSaldo->saldo_arrecadado_acumulado;
                break;
        }
    }
    //
    // Balancete de Despesa (db_dotacaosaldo)
    //
    $sCondicaoDotacao = 'w.o58_instit = ' . $iInstit;
    $rsDotacaoSaldo = db_dotacaosaldo(7, 3, 4, true, $sCondicaoDotacao, $anousu, $dataini, $datafin);
    $iNumRowsDotacaoSaldo = pg_num_rows($rsDotacaoSaldo);
    //db_criatabela($rsDotacaoSaldo); exit;
    for ($i = 0; $i < $iNumRowsDotacaoSaldo; $i++) {
        $oDotacaoSaldo = db_utils::fieldsMemory($rsDotacaoSaldo, $i);
        if (substr($oDotacaoSaldo->o58_elemento, 0, 2) == '33' && substr($oDotacaoSaldo->o58_elemento, 3, 2) != '91') {
            $aVariacoesPassivo['DespesasCorrentes'] += (double) $oDotacaoSaldo->liquidado_acumulado;
        }
        if (substr($oDotacaoSaldo->o58_elemento, 0, 2) == '34' && substr($oDotacaoSaldo->o58_elemento, 3, 2) != '91') {
            $aVariacoesPassivo['DespesasCapital'] += (double) $oDotacaoSaldo->liquidado_acumulado;
        }
        if ((substr($oDotacaoSaldo->o58_elemento, 0, 2) == '33' || substr($oDotacaoSaldo->o58_elemento, 0, 2) == '34') && substr($oDotacaoSaldo->o58_elemento, 3, 2) == '91') {
            $aVariacoesPassivo['IntraOrcamentarias'] += (double) $oDotacaoSaldo->liquidado_acumulado;
        }
    }
    //
    // Balancete de verificacao (db_planocontassaldo_matriz)
    //
    $sCondicaoConta = ' c61_instit = ' . $iInstit;
    $rsContaSaldo = db_planocontassaldo_matriz($anousu, $dataini, $datafin, false, $sCondicaoConta);
    $iNumRowsContaSaldo = pg_num_rows($rsContaSaldo);
    //db_criatabela($rsContaSaldo); exit;
    for ($i = 0; $i < $iNumRowsContaSaldo; $i++) {
        $oContaSaldo = db_utils::fieldsMemory($rsContaSaldo, $i);
        if (substr($oContaSaldo->estrutural, 0, 15) == '612000000000000') {
            $aVariacoesAtivo['TransferenciasFinanceirasRecebidas'] += (double) $oContaSaldo->saldo_final;
        }
        switch (substr($oContaSaldo->estrutural, 0, 15)) {
            case '613100000000000':
                $aVariacoesAtivo['IncorporacaoAtivos'] += (double) $oContaSaldo->saldo_final;
                break;
            case '613300000000000':
                $aVariacoesAtivo['DesincorporacaoPassivos'] += (double) $oContaSaldo->saldo_final;
                break;
            case '622200000000000':
                $aVariacoesExtraAtivo['TransferenciasFinanceirasRecebidas'] += (double) $oContaSaldo->saldo_final;
                break;
            case '622300000000000':
                $aVariacoesExtraAtivo['MovimentoFundosDebito'] += (double) $oContaSaldo->saldo_final;
                break;
            case '623100000000000':
                $aVariacoesExtraAtivo['IncorporacaoAtivos'] += (double) $oContaSaldo->saldo_final;
                break;
            case '623200000000000':
                $aVariacoesExtraAtivo['AjustesBensValoresCreditos'] += (double) $oContaSaldo->saldo_final;
                break;
            case '623300000000000':
                $aVariacoesExtraAtivo['DesincorporacaoPassivos'] += (double) $oContaSaldo->saldo_final;
                break;
            case '623800000000000':
                $aVariacoesExtraAtivo['AjustesExerciciosAnteriores'] += (double) $oContaSaldo->saldo_final;
                break;
            case '513100000000000':
                $aVariacoesPassivo['DesincorporacaoAtivos'] += (double) $oContaSaldo->saldo_final;
                break;
            case '513300000000000':
                $aVariacoesPassivo['IncorporacaoPassivos'] += (double) $oContaSaldo->saldo_final;
                break;
            case '522200000000000':
                $aVariacoesExtraPassivo['TransferenciasFinanceirasConcedidas'] += (double) $oContaSaldo->saldo_final;
                break;
            case '522300000000000':
                $aVariacoesExtraPassivo['MovimentoFundosCredito'] += (double) $oContaSaldo->saldo_final;
                break;
            case '523100000000000':
                $aVariacoesExtraPassivo['DesincorporacaoAtivos'] += (double) $oContaSaldo->saldo_final;
                break;
            case '523200000000000':
                $aVariacoesExtraPassivo['AjustesBensValoresCreditos'] += (double) $oContaSaldo->saldo_final;
                break;
            case '523300000000000':
                $aVariacoesExtraPassivo['IncorporacaoPassivos'] += (double) $oContaSaldo->saldo_final;
                break;
        }
    }
    //------------------------------------------------------------------------------------------------------------------------------------------------//
    //
    // Totalizadores
    //
    $aRetorno = array();
    // Receitas
    $aRetorno['Ativo']['ReceitasCorrentes'] = $aVariacoesAtivo['ReceitasCorrentes'];
    $aRetorno['Ativo']['ReceitasCapital'] = $aVariacoesAtivo['ReceitasCapital'];
    $aRetorno['Ativo']['IntraOrcamentarias'] = $aVariacoesAtivo['IntraOrcamentarias'];
    $aRetorno['Ativo']['Receitas'] = $aVariacoesAtivo['ReceitasCorrentes'] + $aVariacoesAtivo['ReceitasCapital'] + $aVariacoesAtivo['IntraOrcamentarias'];
    // Interferencias Ativas
    $aRetorno['Ativo']['TransferenciasFinanceirasRecebidas'] = $aVariacoesAtivo['TransferenciasFinanceirasRecebidas'];
    $aRetorno['Ativo']['InterferenciasAtivas'] = $aVariacoesAtivo['TransferenciasFinanceirasRecebidas'];
    // Mutacoes Ativas
    $aRetorno['Ativo']['IncorporacaoAtivos'] = $aVariacoesAtivo['IncorporacaoAtivos'];
    $aRetorno['Ativo']['DesincorporacaoPassivos'] = $aVariacoesAtivo['DesincorporacaoPassivos'];
    $aRetorno['Ativo']['MutacoesAtivas'] = $aVariacoesAtivo['IncorporacaoAtivos'] + $aVariacoesAtivo['DesincorporacaoPassivos'];
    //Total Orcamentaria Ativa
    $aRetorno['Ativo']['TotalOrcamentariaAtiva'] = $aRetorno['Ativo']['Receitas'] + $aRetorno['Ativo']['InterferenciasAtivas'] + $aRetorno['Ativo']['MutacoesAtivas'];
    $aRetorno['Passivo']['DespesasCorrentes'] = $aVariacoesPassivo['DespesasCorrentes'];
    $aRetorno['Passivo']['DespesasCapital'] = $aVariacoesPassivo['DespesasCapital'];
    $aRetorno['Passivo']['IntraOrcamentarias'] = $aVariacoesPassivo['IntraOrcamentarias'];
    $aRetorno['Passivo']['Despesas'] = $aVariacoesPassivo['DespesasCorrentes'] + $aVariacoesPassivo['DespesasCapital'] + $aVariacoesPassivo['IntraOrcamentarias'];
    $aRetorno['Passivo']['DesincorporacaoAtivos'] = $aVariacoesPassivo['DesincorporacaoAtivos'];
    $aRetorno['Passivo']['IncorporacaoPassivos'] = $aVariacoesPassivo['IncorporacaoPassivos'];
    $aRetorno['Passivo']['MutacoesPassivas'] = $aVariacoesPassivo['DesincorporacaoAtivos'] + $aVariacoesPassivo['IncorporacaoPassivos'];
    // Total Orcamentaria Passiva
    $aRetorno['Passivo']['TotalOrcamentariaPassiva'] = $aRetorno['Passivo']['Despesas'] + $aRetorno['Passivo']['MutacoesPassivas'];
    //
    //Extra-Orcamentario
    //
    // Interferencias Ativas
    $aRetorno['AtivoExtra']['TransferenciasFinanceirasRecebidas'] = $aVariacoesExtraAtivo['TransferenciasFinanceirasRecebidas'];
    $aRetorno['AtivoExtra']['MovimentoFundosDebito'] = $aVariacoesExtraAtivo['MovimentoFundosDebito'];
    $aRetorno['AtivoExtra']['InterferenciasAtivas'] = $aVariacoesExtraAtivo['TransferenciasFinanceirasRecebidas'] + $aVariacoesExtraAtivo['MovimentoFundosDebito'];
    // Acrescimos Patrimoniais
    $aRetorno['AtivoExtra']['IncorporacaoAtivos'] = $aVariacoesExtraAtivo['IncorporacaoAtivos'];
    $aRetorno['AtivoExtra']['AjustesBensValoresCreditos'] = $aVariacoesExtraAtivo['AjustesBensValoresCreditos'];
    $aRetorno['AtivoExtra']['DesincorporacaoPassivos'] = $aVariacoesExtraAtivo['DesincorporacaoPassivos'];
    $aRetorno['AtivoExtra']['AjustesExerciciosAnteriores'] = $aVariacoesExtraAtivo['AjustesExerciciosAnteriores'];
    $aRetorno['AtivoExtra']['AcrescimosPatrimoniais'] = $aVariacoesExtraAtivo['IncorporacaoAtivos'] + $aVariacoesExtraAtivo['AjustesBensValoresCreditos'] + $aVariacoesExtraAtivo['DesincorporacaoPassivos'];
    // Total Ativo Extra-Orcamentario
    $aRetorno['AtivoExtra']['TotalAtivoExtra'] = $aRetorno['AtivoExtra']['InterferenciasAtivas'] + $aRetorno['AtivoExtra']['AcrescimosPatrimoniais'];
    // Interferencias Passivas
    $aRetorno['PassivoExtra']['TransferenciasFinanceirasConcedidas'] = $aVariacoesExtraPassivo['TransferenciasFinanceirasConcedidas'];
    $aRetorno['PassivoExtra']['MovimentoFundosCredito'] = $aVariacoesExtraPassivo['MovimentoFundosCredito'];
    $aRetorno['PassivoExtra']['InterferenciasPassivas'] = $aVariacoesExtraPassivo['TransferenciasFinanceirasConcedidas'] + $aVariacoesExtraPassivo['MovimentoFundosCredito'];
    //Descrescimos Patrimoniais
    $aRetorno['PassivoExtra']['DesincorporacaoAtivos'] = $aVariacoesExtraPassivo['DesincorporacaoAtivos'];
    $aRetorno['PassivoExtra']['AjustesBensValoresCreditos'] = $aVariacoesExtraPassivo['AjustesBensValoresCreditos'];
    $aRetorno['PassivoExtra']['IncorporacaoPassivos'] = $aVariacoesExtraPassivo['IncorporacaoPassivos'];
    $aRetorno['PassivoExtra']['DecrescimosPatrimoniais'] = $aVariacoesExtraPassivo['DesincorporacaoAtivos'] + $aVariacoesExtraPassivo['AjustesBensValoresCreditos'] + $aVariacoesExtraPassivo['IncorporacaoPassivos'];
    // Total Passivo Extra-Orcamentario
    $aRetorno['PassivoExtra']['TotalPassivoExtra'] = $aRetorno['PassivoExtra']['InterferenciasPassivas'] + $aRetorno['PassivoExtra']['DecrescimosPatrimoniais'];
    $aRetorno['TotaisAtivo']['Soma'] = $aRetorno['Ativo']['TotalOrcamentariaAtiva'] + $aRetorno['AtivoExtra']['TotalAtivoExtra'];
    $aRetorno['TotaisPassivo']['Soma'] = $aRetorno['Passivo']['TotalOrcamentariaPassiva'] + $aRetorno['PassivoExtra']['TotalPassivoExtra'];
    $nSomaAtivo = $aRetorno['TotaisAtivo']['Soma'];
    $nSomaPassivo = $aRetorno['TotaisPassivo']['Soma'];
    if ($nSomaAtivo - $nSomaPassivo < 0) {
        $nDeficitPatrimonial = abs($nSomaAtivo - $nSomaPassivo);
        (double) ($nTotalAtivo = $nSomaAtivo + abs($nSomaAtivo - $nSomaPassivo));
    } else {
        $nDeficitPatrimonial = '-';
        (double) ($nTotalAtivo = $nSomaAtivo);
    }
    if ($nSomaAtivo - $nSomaPassivo > 0) {
        $nSuperavitPatrimonial = $nSomaAtivo - $nSomaPassivo;
        (double) ($nTotalPassivo = $nSomaPassivo + abs($nSomaAtivo - $nSomaPassivo));
    } else {
        $nSuperavitPatrimonial = '-';
        (double) ($nTotalPassivo = $nSomaPassivo);
    }
    $aRetorno['TotaisAtivo']['TotalAtivo'] = $nTotalAtivo;
    $aRetorno['TotaisAtivo']['DeficitPatrimonial'] = $nDeficitPatrimonial;
    $aRetorno['TotaisPassivo']['TotalPassivo'] = $nTotalPassivo;
    $aRetorno['TotaisPassivo']['SuperavitPatrimonial'] = $nSuperavitPatrimonial;
    return $aRetorno;
}
    saude das lotacoes abaixo, deve imprimir os dados da instituicao prefeitura,
    somente para Marica.
 */
 if ($oDbConfig->codcli == 19985) {
     if ($oRendimento->r70_codigo == 222 || $oRendimento->r70_codigo == 223) {
         $sSqlDbConfig = " select ender,                                              ";
         $sSqlDbConfig .= "        cgc,                                                ";
         $sSqlDbConfig .= "        nomeinst,                                           ";
         $sSqlDbConfig .= "        munic,                                              ";
         $sSqlDbConfig .= "        telef                                               ";
         $sSqlDbConfig .= " from db_config                                             ";
         $sSqlDbConfig .= " where codigo = (select codigo from db_config where prefeitura = true) ";
         $rsSqlDbConfig = db_query($sSqlDbConfig);
         $iNumRowsDbConfig = pg_num_rows($rsSqlDbConfig);
         if ($iNumRowsDbConfig > 0) {
             $oDbConfig2 = db_utils::fieldsMemory($rsSqlDbConfig, 0);
             $prefeitura = db_translate($oDbConfig2->nomeinst);
             $enderpref = db_translate($oDbConfig2->ender);
             $municpref = db_translate($oDbConfig2->munic);
             $telefpref = $oDbConfig2->telef;
             $cgcpref = $oDbConfig2->cgc;
         }
     }
 }
 /*=============================================================================================*/
 /**
  * Informações de Cabeçalho
  */
 $pdf1->prefeitura = $prefeitura;
 $pdf1->enderpref = $enderpref;
 $pdf1->municpref = $municpref;
 /**
  * Retorna objeto com as configurções do módulo issqn
  * @return mixed boolean|object
  */
 function getParametrosIssqn()
 {
     $sSql = $this->sql_query_file();
     $rsSql = db_query($sSql);
     if (!$rsSql) {
         $this->erro_status = "0";
         $this->erro_msg = "Erro ao Buscar Parametros do ISSQN.";
         return false;
     }
     $oParametrosISSQN = db_utils::fieldsMemory($rsSql, 0);
     return $oParametrosISSQN;
 }
 $oArquivoEnviado = db_utils::postMemory($_FILES['arquivo']);
 $oPost = db_utils::postMemory($_POST);
 $oPost->cgc = str_replace(array("/", "-", ".", " "), '', $oPost->cgc);
 if ($oPost->cgc == '') {
     throw new Exception('Informe o CNPJ/CPF');
 }
 if ($oPost->inscricaow == '') {
     throw new Exception('Informe a inscrição');
 }
 $sSqlValidaDados = "select q02_numcgm                                 ";
 $sSqlValidaDados .= "  from issbase                                    ";
 $sSqlValidaDados .= "        inner join cgm on z01_numcgm = q02_numcgm ";
 $sSqlValidaDados .= " where q02_inscr  = {$oPost->inscricaow}          ";
 $sSqlValidaDados .= "   and z01_cgccpf = '{$oPost->cgc}'                 ";
 $rsValidaDados = db_query($sSqlValidaDados);
 $oValidaDados = db_utils::fieldsMemory($rsValidaDados, 0);
 if (pg_numrows($rsValidaDados) == 0) {
     throw new Exception('Não encontrado inscrição para o CNPJ/CPF informado');
 }
 $sNomeArquivo = 'tmp/' . date('Ymd_His') . '_' . $oArquivoEnviado->name;
 $lUpload = move_uploaded_file($oArquivoEnviado->tmp_name, $sNomeArquivo);
 /**
  * Ocorreu erro ao mover arquivo para pasta tmp
  */
 if ($lUpload == false) {
     throw new Exception('Erro ao mover arquivo');
 }
 $oLayout = new DBLayoutReader(190, $sNomeArquivo);
 /**
  * Verifica se arquivo é do tipo txt
  */