|
|
@@ -0,0 +1,109 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+// Variables de conexión
|
|
|
+$host = 'localhost';
|
|
|
+$dbname = 'samqa';
|
|
|
+$username = 'root';
|
|
|
+$password = 'root';
|
|
|
+$api_url = 'http://192.168.2.25:8000/api/emitNotification';
|
|
|
+
|
|
|
+// Conexión a BD MySQL
|
|
|
+try {
|
|
|
+ $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
|
|
|
+ $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
|
|
+} catch (PDOException $e) {
|
|
|
+ die("Error de conexión: " . $e->getMessage());
|
|
|
+}
|
|
|
+
|
|
|
+// Función para seleccionar usuario
|
|
|
+function selectUser($users)
|
|
|
+{
|
|
|
+ // Implementar lógica de selección según condición
|
|
|
+ // Si ninguno cumple la condición, retorna '1'
|
|
|
+ //return !empty($users) ? $users[0] : '1';
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+// Función para enviar notificación
|
|
|
+function emitNotinotification($module, $title, $message, $buttons, $users)
|
|
|
+{
|
|
|
+ global $api_url;
|
|
|
+
|
|
|
+ $data = [
|
|
|
+ 'module' => $module,
|
|
|
+ 'title' => $title,
|
|
|
+ 'message' => $message,
|
|
|
+ 'buttons' => $buttons,
|
|
|
+ 'users' => $users
|
|
|
+ ];
|
|
|
+
|
|
|
+ $ch = curl_init($api_url);
|
|
|
+ curl_setopt($ch, CURLOPT_POST, true);
|
|
|
+ curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
|
|
+ curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
|
|
|
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
|
+
|
|
|
+ $response = curl_exec($ch);
|
|
|
+ $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
|
|
+ curl_close($ch);
|
|
|
+
|
|
|
+ return $httpCode === 200;
|
|
|
+}
|
|
|
+
|
|
|
+// Consulta SOVA
|
|
|
+$stmt = $pdo->prepare("
|
|
|
+ SELECT s.SOVA_IDSV, s.SOVA_INEX, t.TAWO_USAV
|
|
|
+ FROM S002V01TSOVA s
|
|
|
+ JOIN S002V01TTAWO t ON s.SOVA_IDET = t.TAWO_IDTA
|
|
|
+ WHERE s.SOVA_ESTA = 'Pendiente de envio'
|
|
|
+");
|
|
|
+$stmt->execute();
|
|
|
+$sovaResults = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
+
|
|
|
+foreach ($sovaResults as $row) {
|
|
|
+ $sovaData = json_decode($row['SOVA_INEX'], true)[0];
|
|
|
+ $users = json_decode($row['TAWO_USAV'], true);
|
|
|
+ $iduser = selectUser($users);
|
|
|
+
|
|
|
+ $success = emitNotinotification(
|
|
|
+ 'S002V01M03GEPR',
|
|
|
+ "La tarea: {$sovaData['nombre_t']} secuencia {$sovaData['secuencia']} requiere validación",
|
|
|
+ "La tarea: {$sovaData['nombre_t']} secuencia {$sovaData['secuencia']} del workflow: {$sovaData['nombre_w']}, requiere validación timeout: {$sovaData['timeout']}.",
|
|
|
+ [
|
|
|
+ ['BOTON' => 'Ver todas las solicitudes', 'FUNCION' => 'getValidateApplications', 'PARAMETROS' => [$iduser, "1"]],
|
|
|
+ ['BOTON' => 'Validar', 'FUNCION' => 'asignStateToApplication', 'PARAMETROS' => [$iduser, "1", $sovaData['idtask'], "Aprobada"]],
|
|
|
+ ['BOTON' => 'Rechazar', 'FUNCION' => 'getValidateApplications', 'PARAMETROS' => [$iduser, "1", $sovaData['idtask'], "Rechazada"]]
|
|
|
+ ],
|
|
|
+ [$iduser]
|
|
|
+ );
|
|
|
+
|
|
|
+ if ($success) {
|
|
|
+ $updateStmt = $pdo->prepare("UPDATE S002V01TSOVA SET SOVA_ESTA = 'Pendiente' WHERE SOVA_IDSV = ?");
|
|
|
+ $updateStmt->execute([$row['SOVA_IDSV']]);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Consulta NOWF
|
|
|
+$stmt = $pdo->prepare("SELECT NOWF_IDNE, NOWF_INEX, NOWF_USNO FROM S002V01TNOEJ WHERE NOWF_ESTA = 'pendiente de envio'");
|
|
|
+$stmt->execute();
|
|
|
+$nowfResults = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
|
|
+
|
|
|
+foreach ($nowfResults as $row) {
|
|
|
+ $nowfData = json_decode($row['NOWF_INEX'], true)[0];
|
|
|
+ $usersNoti = json_decode($row['NOWF_USNO'], true);
|
|
|
+
|
|
|
+ $success = emitNotinotification(
|
|
|
+ 'S002V01M03GEPR',
|
|
|
+ "La tarea: {$nowfData['nombre_t']} secuencia {$nowfData['secuencia']} ha sido ejecutada",
|
|
|
+ "La tarea: {$nowfData['nombre_t']} secuencia {$nowfData['secuencia']} del workflow: {$nowfData['nombre_w']}, ha sido ejecutada.",
|
|
|
+ [],
|
|
|
+ $usersNoti
|
|
|
+ );
|
|
|
+
|
|
|
+ if ($success) {
|
|
|
+ $updateStmt = $pdo->prepare("UPDATE S002V01TNOEJ SET NOWF_ESTA = 'Enviada' WHERE NOWF_IDNE = ?");
|
|
|
+ $updateStmt->execute([$row['NOWF_IDNE']]);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+echo "Script ejecutado correctamente\n";
|