AVISO: Si el mismo código se actualiza varias veces es porque se encuentra repetido en el archivo subido.
prepare("INSERT INTO user_brigades (
fk_id_brigade,
parroquia,
ciudad,
comunidad,
fk_id_user,
info_cod
) VALUES (?, ?, ?, ?, ?, ?)");
// ON CONFLICT(email) DO UPDATE SET name = EXCLUDED.name, surname = EXCLUDED.surname
if (isset($_FILES['dataCliente'])) {
if ($xlsx = SimpleXLSX::parse($_FILES['dataCliente']['tmp_name'])) {
$array_fields_name = array();
foreach ($xlsx->rows() as $k => $fields) {
if ($k == 0) {
$array_fields_name = $fields;
continue; // skip first row
}
// param where | fk_id_brigade
$param = (isset($fields[0]) ? $fields[0] : '0');
$param = str_replace(["\r\n", "\n", "\r"], '', $param);
$param = strtoupper($param);
// echo '-'.$param .'-
';
$dim = $xlsx->dimension();
$cols = $dim[0];
$array_fields = array();
$total_xlsx = $dim[1] - 1;
$pass = 1;
$pass_2 = 1;
// echo $fields[0];
// return;
if ($param != "") {
// saber si existe en brigadistas
$r = UserBrigadesData::getByIdUser($param);
// print_r($r);
// echo "XXX
";
if ($r == 'null') {
// saber si existe la brigada
if ($fields[0] != "") {
$brigada = BrigadeData::getByIdXlsx($fields[1]);
} else {
$brigada = 'null';
}
// saber si existe el usuario final
if ($fields[2] != "") {
$user = FinalUsersData::getById($fields[2]);
// print_r($user);
// echo "
";
} else {
$user = 'null';
}
for ($i = 0; $i < $cols - 1; $i++) {
$data_field = $array_fields_name[$i];
$data_var = (isset($fields[$i]) ? $fields[$i] : "");
// empty($data_var) ? $data_var = "NULL" : $data_var;
// ==== comentar para subir sin constraint ====
if ($data_field == "fk_id_brigade") {
// echo "fk_id_brigade: ",$data_var."
";
if ($brigada != 'null' && $brigada->id == $data_var) {
$pass = 1;
}
}
if ($data_field == "fk_id_user") {
// echo "fk_id_user: ",$data_var."
";
if ($user != 'null' && $user->id == $data_var) {
$pass_2 = 1;
}
}
// ================================
$array_fields[] = $data_var;
// echo ($i+1)."--".$data_var."--
";
}
$stmt_insert->bindParam(1, $array_fields[1]);
$stmt_insert->bindParam(2, $array_fields[5]);
$stmt_insert->bindParam(3, $array_fields[6]);
$stmt_insert->bindParam(4, $array_fields[7]);
$stmt_insert->bindParam(5, $array_fields[2], PDO::PARAM_INT);
$stmt_insert->bindParam(6, $array_fields[8]);
// si existe la brigada y el usuario final
if ($pass == 1 && $pass_2 == 1) {
$stmt_insert->execute();
echo "NUEVO REGISTRO:: " . $array_fields[3] . "
";
} else if ($pass == 0) {
echo "No existe una brigada con ID: " . $array_fields[1] . ".
";
}
// si existe el usuario
if ($pass_2 == 0) {
echo "No existe un usuario final con ID: " . $array_fields[2] . ".
";
}
// echo $stmt_insert->queryString."
";
} else {
for ($i = 0; $i < $cols - 1; $i++) {
$array_fields[] = (isset($fields[$i]) ? $fields[$i] : "");
$val_field = (isset($fields[$i]) ? $fields[$i] : "");
$val_field = str_replace("'", "", $val_field);
$data_field = $array_fields_name[$i];
if ($data_field != "") {
if ($val_field != $r->$data_field) {
if ($data_field != "fk_id_user" && $data_field != "fk_id_brigade") {
$data_q = $r->$data_field;
$r->$data_field = $val_field;
echo "Actualizado:$param > $data_field : ($data_q) -POR- ($val_field)
";
}
}
}
}
// $result = $r->updatePgXLSX();
}
}
echo "";
}
ExecutorPg::doit('UPDATE public.user_brigades SET municipio = final_users.user_municipio FROM final_users WHERE user_brigades.fk_id_user = final_users.id;');
ExecutorPg::doit('UPDATE public.user_brigades SET parroquia = infocentros.parroquia FROM infocentros WHERE user_brigades.info_cod = infocentros.cod;');
ExecutorPg::doit('UPDATE public.user_brigades SET ciudad = infocentros.ciudad FROM infocentros WHERE user_brigades.info_cod = infocentros.cod;');
ExecutorPg::doit('UPDATE public.user_brigades SET comunidad = infocentros.direccion FROM infocentros WHERE user_brigades.info_cod = infocentros.cod;');
ExecutorPg::doit('UPDATE public.user_brigades SET fk_id_brigade = brigades.id FROM brigades WHERE brigades.info_cod = user_brigades.info_cod;');
ExecutorPg::doit("SELECT setval(pg_get_serial_sequence('user_brigades', 'id'),COALESCE((SELECT MAX(id) FROM user_brigades), 1));");
} else {
echo SimpleXLSX::parseError();
}
}
?>