Пример #1
0
function cargarPresupuesto($RUTA_A)
{
    require_once "{$RUTA_A}/functions/Presupuesto.php";
    // obtenemos los datos del archivo
    $tipo = $_FILES["archivo"]['type'];
    $archivo = $_FILES["archivo"]['name'];
    //valida que sí ingresen un archivo
    if (empty($archivo)) {
        $result = "<b>Debe de especificar un archivo con el botón Examinar...<b>";
        return $result;
    }
    // valida que sólo sean archivos .cvs
    if (substr($archivo, -4, 4) != ".csv") {
        $result = "<b>Por favor verifique el tipo de archivo. El archivo debe ser guardado con extensión .csv<b>";
        return $result;
    }
    //Aunque el archivo se llame igual que uno previo se carga.
    $prefijo = substr(md5(uniqid(rand())), 0, 6);
    if ($archivo != "") {
        // guardamos el archivo a la carpeta "datos"
        $destino = $RUTA_A . "/datos/" . $prefijo . "_" . $archivo;
        if (copy($_FILES['archivo']['tmp_name'], $destino)) {
            $result = "Archivo colocado: <b>" . $archivo . "</b>";
        } else {
            return "<b>Error al subir el archivo</b>";
        }
    } else {
        return "<b>Error al subir el archivo</b>";
    }
    $registros = 0;
    $actualizaciones = 0;
    $no_registrados = "";
    $no_actualizados = "";
    $i = 0;
    $fp = fopen($destino, "r");
    if ($fp !== FALSE) {
        $Presupuesto = new Presupuesto();
        $CentroCosto = new CentroCosto();
        $Concepto = new Concepto();
        $data = fgetcsv($fp, 0, ",");
        while ($data) {
            $i++;
            $empresa = $data[0];
            $ceco = $data[1];
            $finicial = $data[2];
            $ffinal = $data[3];
            $monto = $data[4];
            $row_resultCC = $CentroCosto->Busca_CeCoXCodigo($ceco, $empresa);
            if (empty($row_resultCC)) {
                echo "El Centro de Costos " . $ceco . " para la empresa" . $empresa . " no existe. Linea no. " . $i . " </br>";
            } else {
                $fechaI = explode("/", $finicial);
                $fechaF = explode("/", $ffinal);
                $FI = $fechaI[2] . "-" . $fechaI[1] . "-" . $fechaI[0];
                $FF = $fechaF[2] . "-" . $fechaF[1] . "-" . $fechaF[0];
                $cc_id = $row_resultCC["cc_id"];
                $row_resultPP = $Presupuesto->Existe_PP($cc_id, $FI, $FF);
                if (empty($row_resultPP)) {
                    if ($Presupuesto->Nuevo_Presupuesto($cc_id, $FI, $FF, $monto) > 0) {
                        $registros++;
                    } else {
                        $no_actualizados = $no_actualizados . "[" . $data[0] . "][" . $data[1] . "],";
                    }
                } else {
                    $pDisponible = $monto - $row_resultPP["pp_presupuesto_utilizado"];
                    if ($Presupuesto->Actualiza_Presupuesto($row_resultPP["pp_id"], $data[4], $pDisponible)) {
                        $actualizaciones++;
                    } else {
                        $no_actualizados = $no_actualizados . "[" . $data[0] . "][" . $data[1] . "],";
                    }
                }
            }
            $data = fgetcsv($fp, 0, ",");
        }
    }
    fclose($fp);
    return mostrarResultados($registros, $actualizaciones, $no_registrados, $no_actualizados);
}