Exemplo n.º 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'];
    $data2 = array("0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0");
    //error_log($tipo);
    //error_log($archivo);
    //valida que sí ingresen un archivo
    if (empty($archivo)) {
        $result = "<b>Debe de especificar un archivo con el bot&oacute;n Examinar...<b>";
        return $result;
    }
    // valida que sólo sean archivos .csv
    if (substr($archivo, -4, 4) != ".csv") {
        $result = "<b>Revise si el archivo cargado cumple con el formato .csv<b>";
        return $result;
    }
    //Aunque el archivo se llame igual que uno previo se carga.
    $prefijo = substr(md5(uniqid(rand())), 0, 6);
    //error_log($prefijo);
    if ($archivo != "") {
        // guardamos el archivo a la carpeta "datos"
        $destino = $RUTA_A . "/datos/Referencias/Presupuesto/" . $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 = "";
    $fp = fopen($destino, "r");
    if ($fp !== false) {
        $Presupuesto = new Presupuesto();
        $CentroCosto = new CentroCosto();
        $Concepto = new ConceptoGasto();
        $Sociedad = new Sociedad();
        while ($data = fgetcsv($fp, 0, ",")) {
            /*Se valida que cada registro del archov que se lea contenga 15 columnas,
            		en caso contrario se omite ese registro*/
            //error_log("------------".count($data));
            if (count($data) != 16) {
                continue;
            }
            /*for($i=0;$i<count($data);$i++){
            			error_log($i."-".$data[$i]);
            		}*/
            $row_resultSoc = $Sociedad->Busca_idSociedad($data[0]);
            //$row_resultCC=$CentroCosto->Busca_CeCoXCodigo($data[0]);
            $row_resultCC = $CentroCosto->Busca_CeCoXCodigo($data[1], $row_resultSoc);
            if (empty($row_resultCC)) {
                $no_registrados = $no_registrados . "<br>[" . $data[1] . "][" . $data[2] . "],";
                $result = mostrarResultados($registros, $actualizaciones, $no_registrados, $no_actualizados);
                //return $result= $result." El Centro de Costos ".$data[0]." no ha sido registrado";
                continue;
            } else {
                $row_resultC = $Concepto->Busca_ConceptoXIdentificadorAndCeco($data[3], $row_resultCC, $data[2]);
                if (empty($row_resultC)) {
                    $no_registrados = $no_registrados . "<br>[" . $data[1] . "][" . $data[2] . "],";
                    $result = mostrarResultados($registros, $actualizaciones, $no_registrados, $no_actualizados);
                    //return $result= $result." El Concepto con identificador ".$data[1]." no ha sido registrado";
                    continue;
                } else {
                    //error_log("ok----concepto_id------".$row_resultC['cg_id']);
                    if (isset($_POST['carga_inicial'])) {
                        $tipo_presupuesto = 1;
                    }
                    if (isset($_POST['modificar_presupuesto'])) {
                        $tipo_presupuesto = 2;
                    }
                    $row_result = $Presupuesto->Existe_Presupuesto($row_resultC["cg_id"], $tipo_presupuesto);
                    $row_result_1 = $Presupuesto->Existe_Presupuesto($row_resultC["cg_id"], 1);
                    $row_result_2 = $Presupuesto->Existe_Presupuesto($row_resultC["cg_id"], 2);
                    $row_result_3 = $Presupuesto->Existe_Presupuesto($row_resultC["cg_id"], 3);
                }
            }
            $data = dar_formato($data);
            if (empty($row_result)) {
                //hay que insertar el registro
                //error_log("NO existe ---------------------------");
                if ($tipo_presupuesto == 2) {
                    //hay que insertar el registro
                    $Presupuesto->Nuevo_Presupuesto($row_resultC["cg_id"], 2, $data2);
                    $Presupuesto->Actualiza_Presupuesto($row_result_2["p_id"], $row_resultC["cg_id"], 2, $data, 1);
                    $registros++;
                } else {
                    if ($Presupuesto->Nuevo_Presupuesto($row_resultC["cg_id"], $tipo_presupuesto, $data) > 0) {
                        //si regresa el id del registro
                        $registros++;
                    } else {
                        $no_registrados = $no_registrados . "<br>[" . $data[1] . "][" . $data[2] . "],";
                    }
                }
            } else {
                //hay que actualizar el presupuesto
                //error_log("SI existe ---------------------------".date("m"));
                //$pDisponible = $data[4] - $row_result["pp_presupuesto_utilizado"]; //Presupuesto nuevo - Presupuesto Utilizado
                if ($Presupuesto->Actualiza_Presupuesto($row_result["p_id"], $row_resultC["cg_id"], $tipo_presupuesto, $data, 2)) {
                    $actualizaciones++;
                } else {
                    $no_actualizados = $no_actualizados . "<br>[" . $data[1] . "][" . $data[2] . "],";
                }
            }
            if ($tipo_presupuesto == 1) {
                if (empty($row_result_2)) {
                    //hay que insertar el registro
                    $Presupuesto->Nuevo_Presupuesto($row_resultC["cg_id"], 2, $data);
                } else {
                    $Presupuesto->Actualiza_Presupuesto($row_result_2["p_id"], $row_resultC["cg_id"], 2, $data, 0);
                }
                if (empty($row_result_3)) {
                    //hay que insertar el registro
                    $Presupuesto->Nuevo_Presupuesto($row_resultC["cg_id"], 3, $data);
                } else {
                    $Presupuesto->Actualiza_Presupuesto($row_result_3["p_id"], $row_resultC["cg_id"], 3, $data, 0);
                }
            }
            if ($tipo_presupuesto == 2) {
                if (empty($row_result_1)) {
                    //hay que insertar el registro
                    $Presupuesto->Nuevo_Presupuesto($row_resultC["cg_id"], 1, $data2);
                }
                if (empty($row_result_3)) {
                    //hay que insertar el registro
                    $Presupuesto->Nuevo_Presupuesto($row_resultC["cg_id"], 3, $data2);
                    $Presupuesto->Actualiza_Presupuesto($row_result_3["p_id"], $row_resultC["cg_id"], 3, $data, 1);
                } else {
                    $Presupuesto->Actualiza_Presupuesto($row_result_3["p_id"], $row_resultC["cg_id"], 3, $data, 1);
                }
            }
        }
    }
    fclose($fp);
    return mostrarResultados($registros, $actualizaciones, $no_registrados, $no_actualizados);
}