Prechádzať zdrojové kódy

retorno de ESTADO desde getCostAnalysis y validacion para la consulta

EmilianoOrtiz 1 týždeň pred
rodič
commit
b7b1c17d9f

+ 22 - 6
sistema-mantenimiento-back/app/Http/Controllers/CorrectiveMaintenanceController.php

@@ -707,8 +707,8 @@ class CorrectiveMaintenanceController extends Controller
             return $this->responseController->makeResponse(true, 'La orden no está registrada.', [], 404);
         }
 
-        if ($order->OTCO_ESOR !== 'CP') {
-            return $this->responseController->makeResponse(true, 'Solo se puede consultar análisis de costos en órdenes con estado "Cerrado pendiente".', [], 400);
+        if (!in_array($order->OTCO_ESOR, ['CP', 'CE'])) {
+            return $this->responseController->makeResponse(true, 'Solo se puede consultar análisis de costos en órdenes con estado "Cerrado pendiente" o "Cerrado".', [], 400);
         }
 
         $historial = json_decode($order->OTCO_HIES, true);
@@ -851,12 +851,14 @@ class CorrectiveMaintenanceController extends Controller
             $analisisPrevio = json_decode($order->OTCO_ANCO, true);
         }
 
+
         $response = [
             'USUARIOS' => $usuariosParticipantes,
             'TIENE_HERRAMIENTAS' => $tieneHerramientas,
             'TIENE_REFACCIONES' => $tieneRefacciones,
             'TIENE_ANALISIS_PREVIO' => $tieneAnalisisPrevio,
-            'ANALISIS_PREVIO' => $analisisPrevio
+            'ANALISIS_PREVIO' => $analisisPrevio,
+            'ESTADO' => $order->OTCO_ESOR
         ];
 
         if ($tieneHerramientas) {
@@ -949,6 +951,16 @@ class CorrectiveMaintenanceController extends Controller
             'TOTAL' => $form['TOTAL']
         ];
 
+        // Verificar si ya existe análisis previo para determinar acción
+        $analisisPrevio = DB::table('S002V01TOTCO')
+            ->select(['OTCO_ANCO'])
+            ->where([
+                ['OTCO_IDOT', '=', $idOrder],
+                ['OTCO_NULI', '=', $form['linea']]
+            ])->first();
+
+        $esActualizacion = !is_null($analisisPrevio->OTCO_ANCO) && $analisisPrevio->OTCO_ANCO !== '';
+
         $updated = DB::table('S002V01TOTCO')
             ->where([
                 ['OTCO_IDOT', '=', $idOrder],
@@ -969,13 +981,17 @@ class CorrectiveMaintenanceController extends Controller
         $actions = DB::getQueryLog();
         $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
 
+        $accion = $esActualizacion ? 'Actualización' : 'Registro';
+        $verbo = $esActualizacion ? 'actualizó' : 'registró';
+        $mensaje = $esActualizacion ? 'Análisis de costos actualizado exitosamente.' : 'Análisis de costos registrado exitosamente.';
+
         $idac = $this->functionsController->registerActivity(
             $form['linea'],
             'S002V01M09GMCO',
             'S002V01F01GEOP',
             'S002V01P01COOP',
-            'Registro',
-            "El usuario $name (" . $usr->USUA_IDUS . ") registró el análisis de costos de la orden $idOrder.",
+            $accion,
+            "El usuario $name (" . $usr->USUA_IDUS . ") $verbo el análisis de costos de la orden $idOrder.",
             $idUser,
             $nowStr,
             'S002V01S01ORTR'
@@ -983,7 +999,7 @@ class CorrectiveMaintenanceController extends Controller
 
         $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $form['linea']);
 
-        return $this->responseController->makeResponse(false, 'Análisis de costos guardado exitosamente.', []);
+        return $this->responseController->makeResponse(false, $mensaje, []);
     }
 
     public function updateWorkOrder(Request $request)