Páginas

sábado, 27 de setembro de 2014

Importação do relógio ahgora para banco oracle

Boa noite pessoal

Abaixo fiz conexão com o webservice ahgora para esta baixando ponto dos colaboradores na empresa que trabalho espero ajudar

Como temos  mais de uma empresa fiz um loop para pega todas empresas
outra ideia que coloquei e mata a sequence e recriar todo começo de mês para não ou ver estouro de sequence como ele importa varias vez

//LIMPEZA DE SEQUENCIA TODO DIA 01 DE CADA MÊS
$datalimpesa = date("d");
echo $datalimpesa;
if($datalimpesa = '01'){
//DROP SEQUENCE
$DROPSQUENCE="DROP SEQUENCE xxx_pt_marcacao_ponto_seq";
$R_DROPSQUENCE=oci_parse($c,$DROPSQUENCE);
oci_execute($R_DROPSQUENCE);
$R_DROPSQUENCE = oci_commit($c);
//CREATE SEQUENCE
$CREATESEQUENCE="CREATE SEQUENCE xxx_pt_marcacao_ponto_seq
START WITH     1
INCREMENT BY   1
NOCACHE
NOCYCLE";

$R_CREATESEQUENCE=oci_parse($c,$CREATESEQUENCE);
oci_execute($R_CREATESEQUENCE);
$R_CREATESEQUENCE = oci_commit($c);
}



// Aqui você tem que fazer loop para suas empresas

// PARAMETROS
$de = date('d/m/Y', strtotime("-1 days"));
$para = date('d/m/Y');
$sql_loop ="SELECT *
FROM tab_unidade
WHERE ponto_web IS NOT NULL";
$sql_loop = ociparse($c,$sql_loop) or die("ERRO NA ANÁLISE DA CLÁUSULA SQL");
ociexecute($sql_loop,OCI_DEFAULT);
  while($result_loop = @oci_fetch_array($sql_loop)) {
echo "Rodando processo da Empresa: ".$result_loop['RAZAO_SOCIAL']."<BR>";


//SOAP
$client = new SoapClient('http://www.ahgora.com.br/ws/service.php?wsdl');
$function = 'obterBatidas';
$arguments= array('empresa'   => $result_loop['PONTO_WEB'],
 'datai'     => $de,
 'dataf'     => $para);
$options = array('location' => 'http://www.ahgora.com.br/ws/service.php');
$result = $client->__soapCall($function, $arguments, $options);



//Função de Mascara variavel

$cont = count($result)-1;
$i = 0;
$quebra = "\r\n";
while($i <= $cont){
foreach ($result[$i] as $rep ){
$nsr = $rep->NSR;
$nrep = $rep->NREP;
$pis = $rep->PIS;
$data = $rep->Data;
$hora = $rep->Hora;

$carga = $nsr."3".$data.$hora.$pis;
//echo $carga."<BR>";

$sql="insert into xxx_marcacao_ponto
(id_dados, dados)
values
(xxx_marcacao_ponto_seq.nextval, '$carga')";
$sql_result=oci_parse($c,$sql);
oci_execute($sql_result);
$sql_result = oci_commit($c);
flush();
};
$i = $i + 1;

};//Fim Foreach

} //WHEILE $i
echo "Importado para a unidade: ".$i."<BR>";
}

Nenhum comentário:

Postar um comentário