#!/usr/bin/perl
#

use DBI;
use Data::Dumper;

$dir_local   ='/home/contratados/mnt';
$dir_local2  ='/home/contratados';
$opciones  ='-o username=msklar\@mecon%larva1976';

# COPIO LOS ARCHIVOS DBF NECESARIOS {{{
$fallo1 = system ("smbmount //dgrh/ottonello  $dir_local $opciones");
if ($fallo1) {
    $address='mmarre@mecon.gov.ar, sotton@mecon.gov.ar, msklar@mecon.gov.ar, hdelbo@mecon.gov.ar';
    $linea = "echo 'Hubo un error con el samba del script de Contratados en portal.mecon.gov.ar' | mail $address ";
    $ret = system ($linea);
    exit;
}
# }}} FIN COPIA DE ARCHIVOS 

# VEO SI LAS FECHAS DE LOS ARCHIVOS ES IGUAL
$variable1 = `ls -l  --time-style=long-iso mnt/Resultados.dbf`;
$variable2 = `ls -l  --time-style=long-iso Resultados.dbf.bak`;
@variable1 = split (/\s+/, $variable1);
@variable2 = split (/\s+/, $variable2);
if (@variable1['5'] eq @variable2['5'] && @variable1['6'] eq @variable2['6']) {
    $address='mmarre@mecon.gov.ar, sotton@mecon.gov.ar, msklar@mecon.gov.ar, eneme@mecon.gov.ar, gagric@mecon.gov.ar, gmeray@mecon.gov.ar';
    $linea = "echo 'Hubo un error. No se actualizo el archivo de contratados para la carga de la intranet. ' | mail $address ";
    $ret = system ($linea);
    system ("smbumount $dir_local");
    exit;
}

#COPIO EL ARCHIVO PARA COMPARAR DESPUES
system ("cp $dir_local/Resultados.dbf ~/Resultados.dbf.bak --preserve=timestamp");

# OBTENGO LOS HANDLERS DE LAS BASES {{{
$dbh_local = DBI->connect("DBI:XBase:$dir_local");
$dbh_mysql = DBI->connect("DBI:mysql:dbname=Contratados;host=intranet-db","intranet","intranet");

$dbh_mysql->do("DELETE FROM Contratados");

$sql_select = 'SELECT * FROM resultados';
	       
$sql_insert = "REPLACE INTO Contratados (nrodoc,tipodoc,nombre,codep,marco_legal,dedicacion,hentra,hsale,oficina,edificio,interno,fevig,febaja,felimita,responsa) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
$re_select = $dbh_local->prepare($sql_select);
$re_insert = $dbh_mysql->prepare($sql_insert);
$re_select->execute();

while ($res = $re_select->fetchrow_hashref()){
   #VERIFICO SI CAMBIARON LA ESTRUCTURA DEL ARCHIVO Resultados.dbf
   if (!exists($res->{NUMDOC})     || !exists($res->{TIPDOC})     || !exists($res->{APELLIDO}) || !exists($res->{NOMBRE})  || 
       !exists($res->{CODIGO_ACT}) || !exists($res->{TIPOCONTRA}) || !exists($res->{PARTIME})  || !exists($res->{HENTRA})  || 
       !exists($res->{HSALE})      || !exists($res->{OFICINA})    || !exists($res->{EDIFICIO}) || !exists($res->{INTERNO}) || 
       !exists($res->{FEVIG})      || !exists($res->{FEBAJA})     || !exists($res->{FELIMITA}) || !exists($res->{RESPONSA})) {
	
	#$address='mmarre@mecon.gov.ar, sotton@mecon.gov.ar, msklar@mecon.gov.ar, eneme@mecon.gov.ar, gagric@mecon.gov.ar, gmeray@mecon.gov.ar';
	$address='mmarre@mecon.gov.ar';
	$linea = "echo 'Hubo un error. Se Modifico la estructura del archivo Resultados.dbf.\nMientras no se deje como la version anterior este proceso va a fallar.\nSi esto pasa, cambia la linea para que les mande un mail a todos. ' | mail $address ";
	$ret = system ($linea);
	$dbh_local->disconnect();
	system ("smbumount $dir_local");
	exit;
   }
#   print Dumper($res);
#   last;
   $re_insert->execute($res->{NUMDOC}, $res->{TIPDOC}, $res->{APELLIDO}.' '.$res->{NOMBRE},$res->{CODIGO_ACT},$res->{TIPOCONTRA},
                       $res->{PARTIME},$res->{HENTRA},$res->{HSALE},$res->{OFICINA},$res->{EDIFICIO},$res->{INTERNO},$res->{FEVIG},
		       $res->{FEBAJA},$res->{FELIMITA},$res->{RESPONSA});
}

$dbh_local->disconnect();

system ("smbumount $dir_local");

1;


