<?php  
  header("Content-Type: text/html; charset=utf-8");
  require('param.php');  
  define('URL', $host);
  define('VER','v1.0');
  define('NOME',$empresa);
  define('LOGOTIPO',$logo);
  date_default_timezone_set('America/Sao_Paulo');

function cnpjcpf_valido($ncadastro) {
  $somenteNumeros = preg_replace('/[^0-9]/', '', $ncadastro);
  $page = curl_get(URL.'/cnpjcpfvalido/'.$somenteNumeros);
  return trim($page) === 'true';
}

function cidades($estado) {
  return json_decode(curl_get(URL.'/cidades/'.$estado), true);
}

function cep($cep) {
  return json_decode(curl_get(URL.'/cep/'.$cep), true);
}

function consulta_empresa($ncadastro) {
  return json_decode(curl_get(URL.'/empresa/'.$ncadastro), true);
}

function gera_recolhimento($codfirma,$codrec,$ref,$valor,$email,$status) {
  $ip = $_SERVER['REMOTE_ADDR'];
  return json_decode(curl_get(URL.'/gerarecolhimento/'.$codfirma.'/'.$codrec.'/'.$ref.'/'.$valor.'/'.$email.'/'.$status.'/'.$ip), true);
}

function guia_recolhimento($codfirma,$codrec,$ref) {
  return json_decode(curl_get(URL.'/recolhimento/'.$codfirma.'/'.$codrec.'/'.$ref), true);
}

function habilita_gerar() {
  $row = json_decode(curl_get(URL.'/tiporecolhimento'), true);
  return !empty($row);
}

function tiposrecolhimento() {
  $row = json_decode(curl_get(URL.'/tiporecolhimento'), true);
  $componente = "<select name='tiporecolhimento' id='tiporecolhimento' required>";
  $componente .= "<option value=''>Escolha o Tipo</option>";
  for ($i = 0; $i < count($row); $i++) {
    $linha = $row[$i];
    $componente .= "<option value='".$linha['codrecolhimento']."'>".$linha['descricao']."</option>";
  }
  $componente .= "</select>";
  return $componente;
}

function categorias() {
  $row = json_decode(curl_get(URL.'/categorias'), true);
  $componente = "";
  for ($i = 0; $i < count($row); $i++) {
    $linha = $row[$i];
    $componente .= "<option value='".$linha['codcategoria']."'>".$linha['descricao']."</option>";
  }
  return $componente;
}

function grava_log($empresa, $evento) {
  $ip = $_SERVER['REMOTE_ADDR'];
  curl_get(URL.'/log/'.$empresa.'/'.$ip.'/'.$evento);
  return '';
}

function metodoGET_JSON($path) {
  return curl_get(URL.$path);
}

function metodoGET($path) {
  return json_decode(curl_get(URL.$path), true);
}

function metodoPOST($path, $dados) {
  return json_decode(curl_post(URL.$path, $dados), true);
}

function cadastro_empresa($dados) {
  return metodoPOST('/cadastro/', $dados);
}

function enviar_dados($dados) {
  return metodoPOST('/cadastro', $dados);
}

function gera_recolhimentoComp($codfirma,$codrec,$ref,$valor,$email,$status,$nroempreg,$nrocontrib,$totremuneracao) {
  $ip = $_SERVER['REMOTE_ADDR'];
  $dados = [
    "codfirma"       => $codfirma,
    "codrec"         => $codrec,
    "ref"            => $ref,
    "valor"          => $valor,
    "email"          => $email,
    "status"         => $status,
    "ip"             => $ip,
    "nroempreg"      => $nroempreg,
    "nrocontrib"     => $nrocontrib,
    "totremuneracao" => $totremuneracao
  ];
  return metodoPOST('/gerarecolhimentocomp', $dados);
}

// ============================================================
// Funções sem curl — mantidas sem alteração
// ============================================================

function listarecolhimentos($cnpj_cpf) {
	$ip   = $_SERVER['REMOTE_ADDR'];
	$row  = json_decode(curl_get(URL.'/lista/'.$cnpj_cpf.'/'.$ip), true);
	$tabela = "<table width='800' class='' id='tbrec'> <tr class='cabecalho'><td colspan='9' align='center'>Recolhimentos em aberto</td></tr>";
	$tabela .= "<tr class='cabecalho'><td>Referencia</td><td align='left' >Recolhimento</td><td>Vencimento</td><td align='right'>Valor</td><td>NºFunc.</td><td>Guia</td><td></td><td></td><td align='left'>e-mail</td></tr>";
	for ($i = 0; $i < count($row); $i++) {
		$class          = ($i%2==0) ? "linha1" : "linha2";
		$linha          = $row[$i];
		$dados_guia     = $linha;
    $ref            = '"'.str_replace("/","-",$dados_guia['referencia']).'"';
    $aviso_nao_registrado = '"'.'N'.'"';
		$valpre         = number_format($dados_guia['valpre'],2, ',', '.');
		$tipoR          = '"'.$dados_guia['tipor'].'"';
		$imprimir       = $dados_guia['imprimir'];
		$permiteImp     = $dados_guia['permiteImp'];
    $nrofunc        = isset($dados_guia['nroempregados']) ? $dados_guia['nroempregados'] : '';
		
		$campo_referencia   = "<td>".$dados_guia['referencia']."</td>";
		$campo_recolhimento = "<td align='left'>".$dados_guia['descricao']."</td>";
		$campo_vencimento   = "<td><div id='dt".$i."'>".$dados_guia['datven']."</div></td>";
    if ($dados_guia['valpre'] <=5 ) {
      $campo_valor = "<td align='right'><div id='vl".$i."' style='color: red;'>Apurar valor</div></td>";
    } else {
      $campo_valor = "<td align='right'><div id='vl".$i."'>".$valpre."</div></td>";
    }
    $campo_nrofunc  = "<td align='center'>".$nrofunc."</td>";
		$campo_email    = "<td align='left'><div id='mail".$i."'> ".$dados_guia['emailr']."</div></td>";
		$campo_info     = "<td></td>";
		$botao_imprimir = "<td></td>";
		$botao_lancar   = "<td></td>";

		if (($dados_guia['tipor']=='SI')) {
			if ($imprimir=='L') {
				$campo_email = "<td align='right'><font color='#B45F04'> Por favor, retire no site da Caixa.</font></td>";
			}
		} else {	  
			if ($imprimir=='S') {
				$botao_imprimir = "<td align='left'><input type='button' value='Imprimir' onClick='javascript:imprimir(".$tipoR.",".$dados_guia['codfirma'].",".$dados_guia['codrecolhimento'].",".$ref.");'/></td>";
			}	  
			if ($imprimir=='L') {
				if ($valpre=='0,00') {
					$botao_lancar = "<td align='left'><input type='button' value='Lançar Valor' onClick='javascript:lancar(".$dados_guia['codfirma'].",".$dados_guia['codrecolhimento'].",".$ref.");'/></td>";
				} else {
					$botao_lancar   = "<td align='left'><input type='button' value='Corrigir Valor' onClick='javascript:lancar(".$dados_guia['codfirma'].",".$dados_guia['codrecolhimento'].",".$ref.");'/></td>";
					$campo_info     = "<td align='right'><font color='#FF0000'>Aguarde 24 a 48hrs p/ efetuar o pagamento</font></td>";
					if ($permiteImp=='S') {
						$botao_imprimir = "<td align='left'><input type='button' value='Imprimir' onClick='javascript:imprimir(".$tipoR.",".$dados_guia['codfirma'].",".$dados_guia['codrecolhimento'].",".$ref.");'/></td>";
					}
				}	
			} 
			if ($imprimir=='A') {
				$botao_lancar = "<td align='right'><font color='#FF0000'>Aguarde 24 a 48hrs p/ efetuar o pagamento</font></td>";
				if ($permiteImp=='S') {
					$botao_imprimir = "<td align='left'><input type='button' value='Imprimir' onClick='javascript:imprimir(".$tipoR.",".$dados_guia['codfirma'].",".$dados_guia['codrecolhimento'].",".$ref.");'/></td>";
				}
			}
			if ($imprimir=='N') {
				if ($dados_guia['aviso']=='S') {				
					if ($valpre=='0,00') {
						$botao_lancar = "<td align='left'><input type='button' value='Lançar Valor' onClick='javascript:lancar(".$dados_guia['codfirma'].",".$dados_guia['codrecolhimento'].",".$ref.");'/></td>";
					} else {
						$botao_lancar   = "<td align='left'></td>"; 
						$campo_email    = "<td align='left'><div id='mail'>Para pagamento, por favor entrar em contato no sindicato e obter número da conta para efetuar o depósito.</div></td>"; 
						$botao_imprimir = "<td align='left'><input type='button' value='Imprimir' onClick='javascript:imprimir(".$tipoR.",".$dados_guia['codfirma'].",".$dados_guia['codrecolhimento'].",".$ref.",".$aviso_nao_registrado.");'/></td>";
						$campo_info     = "<td align='left'></td>";
					}	
				} else {
					$campo_email = "<td align='left'></td>";	
				}
			}
		}	
		$tabela .= "<tr class='".$class."'>".$campo_referencia.$campo_recolhimento.$campo_vencimento.$campo_valor.$campo_nrofunc.$botao_lancar.$botao_imprimir.$campo_info.$campo_email."</tr>";
	} 
	$tabela .= "<tr class='rodape'><td colspan='9'>&nbsp;</td></tr></table>";
	return $tabela;
}

function mask($val, $mask) {
	$maskared = '';
	$k = 0;
	for($i = 0; $i<=strlen($mask)-1; $i++) {
		if($mask[$i] == '#') {
			if(isset($val[$k]))
			$maskared .= $val[$k++];
		} else {
			if(isset($mask[$i]))
			$maskared .= $mask[$i];
		}
	}
	return $maskared;
}

function ultimoDiaMesSequinte($ref){
  $dia  = 1;
  $mes  = substr($ref,0,2);
  $ano  = substr($ref,3,4);
  $data = mktime(0, 0, 0, $mes+2, $dia, $ano);
  return date("Y-m-d",$data-1);
}

function fator_vencimento($data) {
  $data_inicial = '1997-10-07';
  $time_inicial = strtotime($data_inicial);
  $time_final   = strtotime($data);
  $diferenca    = $time_final - $time_inicial;
  return (int)floor($diferenca / (60 * 60 * 24));
}

function modulo_11($num, $base=9, $r=0) {
  $soma  = 0;
  $fator = 2;
  for ($i = strlen($num); $i > 0; $i--) {
    $numeros[$i] = substr($num,$i-1,1);
    $parcial[$i] = $numeros[$i] * $fator;
    $soma += $parcial[$i];
    if ($fator == $base) {
      $fator = 1;
    }
    $fator++;
  }
  if ($r == 0) {
    $soma   *= 10;
    $digito  = $soma % 11;
    if ($digito == 10) $digito = 0;
    return $digito;
  } elseif ($r == 1) {
    return 11 - ($soma % 11);
  }
}

function modulo_10($num) {
  $numtotal10 = 0;
  $fator = 2;
  for ($i = strlen($num); $i > 0; $i--) {
    $numeros[$i] = substr($num,$i-1,1);
    $temp  = $numeros[$i] * $fator;
    $temp0 = 0;
    foreach (preg_split('//',$temp,-1,PREG_SPLIT_NO_EMPTY) as $k=>$v) { $temp0 += $v; }
    $parcial10[$i] = $temp0;
    $numtotal10   += $parcial10[$i];
    $fator = ($fator == 2) ? 1 : 2;
  }
  $resto  = $numtotal10 % 10;
  $digito = ($resto == 0) ? 0 : 10 - $resto;
  return $digito;
}

function geraLinhaDigitavel($valor) {
  $a = substr($valor,0,4).substr($valor,19,2).substr($valor,21,3).modulo_10(substr($valor,0,4).substr($valor,19,2).substr($valor,21,3));
  $b = substr($valor,24,2).substr($valor,26,1).substr($valor,27,1).substr($valor,28,2).substr($valor,30,4).modulo_10(substr($valor,24,2).substr($valor,26,1).substr($valor,27,1).substr($valor,28,2).substr($valor,30,4));
  $c = substr($valor,34,8).substr($valor,42,2).modulo_10(substr($valor,34,8).substr($valor,42,2));
  $d = substr($valor,4,1);
  $e = substr($valor,5,4).substr($valor,9,10);
  return substr($a,0,5).".".substr($a,5,5)." ".substr($b,0,5).".".substr($b,5,6)." ".substr($c,0,5).".".substr($c,5,6)." ".$d." ".$e;
}

function listareferencia() {
  $dia           = date('d');
  $mesAtual      = date('m/Y');
  $mesAtual2     = date('m-Y');
  $mesAnterior   = date('m/Y', strtotime('-1 months', strtotime(date('Y-m-d'))));
  $mesAnterior2  = date('m-Y', strtotime('-1 months', strtotime(date('Y-m-d'))));

  $comp = '';	
  if ($dia <= 10) {
    $comp .= "<option value='".$mesAnterior2."'>".$mesAnterior."</option>";		
  } else {
    $comp .= "<option value='".$mesAtual2."'>".$mesAtual."</option>";		
  }
  return $comp;
}

function estados() {
  $ufs = ['AC','AL','AM','AP','BA','CE','DF','ES','GO','MA','MG','MS','MT','PA','PB','PE','PI','PR','RJ','RN','RO','RR','RS','SC','SE','SP','TO'];
  $componente = '';
  foreach ($ufs as $uf) {
    $componente .= "<option value='".$uf."'>".$uf."</option>";
  }
  return $componente;
}

?>