|
|
@@ -0,0 +1,546 @@
|
|
|
+<?php
|
|
|
+/*
|
|
|
+ Desarrollador: Ing. Jean Jairo Benitez Meza
|
|
|
+ Ultima Modificación: 11/04/2023
|
|
|
+ Módulo: Analisis de Fallas
|
|
|
+*/
|
|
|
+namespace App\Http\Controllers;
|
|
|
+
|
|
|
+use App\Http\Controllers\Controller;
|
|
|
+use App\Http\Controllers\ResponseController;
|
|
|
+use App\Http\Controllers\EncryptionController;
|
|
|
+use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Carbon;
|
|
|
+use Illuminate\Support\Facades\DB;
|
|
|
+use Illuminate\Support\Facades\Validator;
|
|
|
+use App\Http\Controllers\FunctionsController;
|
|
|
+
|
|
|
+class FailureLogController extends Controller
|
|
|
+{
|
|
|
+ private $responseController;
|
|
|
+ private $encController;
|
|
|
+ private $functionsController;
|
|
|
+
|
|
|
+ public function __construct( ) {
|
|
|
+ $this->responseController = new ResponseController();
|
|
|
+ $this->encController = new EncryptionController();
|
|
|
+ $this->functionsController = new FunctionsController();
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getFailureLog($user, $line) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ $getFailureLog = DB::table('S002V01TBIFA')
|
|
|
+ ->where('BIFA_NULI', '=', $line)
|
|
|
+ ->where('LIFA_NULI', '=', $line)
|
|
|
+ ->where('LISI_NULI', '=', $line)
|
|
|
+ ->where('LIME_NULI', '=', $line)
|
|
|
+ ->where('LIFA_ESTA', '=', 'Activo')
|
|
|
+ ->where('LISI_ESTA', '=', 'Activo')
|
|
|
+ ->where('LIME_ESTA', '=', 'Activo')
|
|
|
+ ->join('S002V01TLIFA', 'LIFA_IDFA', '=', 'BIFA_IDFA')
|
|
|
+ ->join('S002V01TLISI', 'LISI_IDSI', '=', 'BIFA_IDSI')
|
|
|
+ ->join('S002V01TLIME', 'LIME_IDME', '=', 'BIFA_IDME')
|
|
|
+ ->get([
|
|
|
+ 'BIFA_NUFA AS NUMERO_FALLA',
|
|
|
+ 'BIFA_COEQ AS CODIGO_EQUIPAMIENTO',
|
|
|
+ 'BIFA_ESFA AS ESTADO_FALLA',
|
|
|
+ 'LIFA_IDFA AS ID_FALLA',
|
|
|
+ 'LIFA_NOFA AS NOMBRE_FALLA',
|
|
|
+ 'LIFA_NIVE AS NIVEL_CRITICIDAD_FALLA',
|
|
|
+ 'LIFA_CAUS AS CAUSA_FALLA',
|
|
|
+ 'LISI_IDSI AS ID_SINTOMA',
|
|
|
+ 'LISI_NOSI AS NOMBRE_SINTOMA',
|
|
|
+ 'LISI_CLAS AS CLASIFICACION_SINTOMA',
|
|
|
+ 'LISI_CAUS AS CAUSA_SINTOMA',
|
|
|
+ 'BIFA_CAUS AS CAUSA',
|
|
|
+ 'BIFA_FEFA AS FECHA_FALA',
|
|
|
+ 'BIFA_CLAS AS CLASIFICACION',
|
|
|
+ 'BIFA_REPA AS REPARABLE',
|
|
|
+ 'BIFA_DESO AS SOLUCION',
|
|
|
+ 'BIFA_COME AS COMENTARIOS',
|
|
|
+ 'BIFA_VAOB AS VALOR_OBTENIDO',
|
|
|
+ 'LIME_IDME AS ID_MEDIDA',
|
|
|
+ 'LIME_NOME AS NOMBRE_MEDIDA',
|
|
|
+ 'LIME_ACME AS ACRONIMO_MEDIDA',
|
|
|
+ 'BIFA_ESTA AS ESTADO',
|
|
|
+ 'BIFA_USRE AS USUARIO_REGISTRA',
|
|
|
+ 'BIFA_FERE AS FECHA_REGISTRA',
|
|
|
+ 'BIFA_USMO AS USUARIO_MODIFICA',
|
|
|
+ 'BIFA_FEMO AS FECHA_MODIFICA',
|
|
|
+ ]);
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_GET000: No se pudo realizar la consulta a la base.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ $arrFailureLog = json_decode( json_encode( $getFailureLog ), true );
|
|
|
+
|
|
|
+ $arrEquipmentCode = array_column($arrFailureLog, 'CODIGO_EQUIPAMIENTO');
|
|
|
+ $arrEquipmentCode = array_unique($arrEquipmentCode);
|
|
|
+
|
|
|
+ $count = 0;
|
|
|
+ $arrEquipmentFailureLog = array();
|
|
|
+ foreach ($arrEquipmentCode as $keyEquipmentCode => $equipmentCode) {
|
|
|
+ $lastUpdate = '';
|
|
|
+ $lastUser = '';
|
|
|
+ $lastState = '';
|
|
|
+ $lastClassification = '';
|
|
|
+ $amountFailures = 0;
|
|
|
+ foreach ($arrFailureLog as $keyFailureLog => $failureLog) {
|
|
|
+ if ( $equipmentCode === $failureLog['CODIGO_EQUIPAMIENTO'] ) {
|
|
|
+
|
|
|
+ $tempLastUpdate = '';
|
|
|
+ $tempLastUser = '';
|
|
|
+ if ( is_null($failureLog['FECHA_MODIFICA']) ) {
|
|
|
+ $tempLastUpdate = $failureLog['FECHA_REGISTRA'];
|
|
|
+ $tempLastUser = $failureLog['USUARIO_REGISTRA'];
|
|
|
+ } else {
|
|
|
+ $tempLastUpdate = $failureLog['FECHA_MODIFICA'];
|
|
|
+ $tempLastUser = $failureLog['USUARIO_MODIFICA'];
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($lastUpdate === '') {
|
|
|
+ $lastUpdate = $tempLastUpdate;
|
|
|
+ $lastUser = $tempLastUser;
|
|
|
+ $lastState = $failureLog['ESTADO_FALLA'];
|
|
|
+ $lastClassification = $failureLog['CLASIFICACION'];
|
|
|
+ } else {
|
|
|
+ $carTempLastUpdate = Carbon::create($tempLastUpdate);
|
|
|
+ $carLastState = Carbon::create($lastUpdate);
|
|
|
+
|
|
|
+ if ($carTempLastUpdate->greaterThan($carLastState)) {
|
|
|
+ $lastUpdate = $tempLastUpdate;
|
|
|
+ $lastUser = $tempLastUser;
|
|
|
+ $lastState = $failureLog['ESTADO_FALLA'];
|
|
|
+ $lastClassification = $failureLog['CLASIFICACION'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $amountFailures ++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $arrEquipmentFailureLog[$count]['CODIGO_EQUIPAMIENTO'] = $equipmentCode;
|
|
|
+ $arrEquipmentFailureLog[$count]['ULTIMA_MODIFICACION'] = $lastUpdate;
|
|
|
+ $arrEquipmentFailureLog[$count]['ULTIMO_USUARIO'] = $lastUser;
|
|
|
+ $arrEquipmentFailureLog[$count]['ESTADO_ACTUAL'] = $lastState;
|
|
|
+ $arrEquipmentFailureLog[$count]['CLASIFICACION_ACTUAL'] = $lastClassification;
|
|
|
+ $arrEquipmentFailureLog[$count]['CANTIDAD_FALLAS'] = $amountFailures;
|
|
|
+
|
|
|
+ $count++;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrEquipmentFailureLog);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getHistoryFailureEquipment($equipment, $user, $line) {
|
|
|
+ try {
|
|
|
+ $equipment = $this->encController->decrypt($equipment);
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_GETHISTORY_GETEQUIPMENT000", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ $getFailuresLog = DB::table('S002V01TBIFA')
|
|
|
+ ->where('BIFA_COEQ', '=', $equipment)
|
|
|
+ ->where('BIFA_NULI', '=', $line)
|
|
|
+ ->where('BIFA_ESTA', '=', 'Activo')
|
|
|
+ ->where('LIFA_ESTA', '=', 'Activo')
|
|
|
+ ->where('LISI_ESTA', '=', 'Activo')
|
|
|
+ ->where('LIME_ESTA', '=', 'Activo')
|
|
|
+ ->join('S002V01TLIFA', 'LIFA_IDFA', '=', 'BIFA_IDFA')
|
|
|
+ ->join('S002V01TLISI', 'LISI_IDSI', '=', 'BIFA_IDSI')
|
|
|
+ ->join('S002V01TLIME', 'LIME_IDME', '=', 'BIFA_IDME')
|
|
|
+ ->get([
|
|
|
+ 'BIFA_NUFA AS NUMERO_FALLA',
|
|
|
+ 'LIFA_IDFA AS ID_FALLA',
|
|
|
+ 'LIFA_NOFA AS NOMBRE_FALLA',
|
|
|
+ 'LIFA_NIVE AS NIVEL_CRITICIDAD_FALLA',
|
|
|
+ 'LISI_IDSI AS ID_SINTOMA',
|
|
|
+ 'LISI_NOSI AS NOMBRE_SINTOMA',
|
|
|
+ 'LISI_CLAS AS CLASIFICACION_SINTOMA',
|
|
|
+ 'BIFA_CAUS AS CAUSA',
|
|
|
+ 'BIFA_FEFA AS FECHA_FALA',
|
|
|
+ 'BIFA_CLAS AS CLASIFICACION',
|
|
|
+ 'BIFA_REPA AS REPARABLE',
|
|
|
+ 'BIFA_USRE AS USUARIO_REGISTRA',
|
|
|
+ 'BIFA_FERE AS FECHA_REGISTRA',
|
|
|
+ 'BIFA_USMO AS USUARIO_MODIFICA',
|
|
|
+ 'BIFA_FEMO AS FECHA_MODIFICA',
|
|
|
+ ]);
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_GETHISTORY_GETEQUIPMENT001: No se pudo realizar la consulta a la base.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ $arrFailureLogTemp = json_decode( json_encode( $getFailuresLog ), true );
|
|
|
+
|
|
|
+ $arrFailureLog = array();
|
|
|
+ foreach ($arrFailureLogTemp as $keyFailureLogTemp => $failureLogTemp) {
|
|
|
+ $numero_falla = $failureLogTemp['NUMERO_FALLA'];
|
|
|
+
|
|
|
+ $nombre_falla = $failureLogTemp['NOMBRE_FALLA'].' ('.$failureLogTemp['ID_FALLA'].')';
|
|
|
+
|
|
|
+ $nivel_criticidad_falla = $failureLogTemp['NUMERO_FALLA'];
|
|
|
+
|
|
|
+ $nombre_sintoma = $failureLogTemp['NUMERO_FALLA'];
|
|
|
+
|
|
|
+ $clasificacion_sintoma = $failureLogTemp['NUMERO_FALLA'];
|
|
|
+
|
|
|
+ $causa = $failureLogTemp['NUMERO_FALLA'];
|
|
|
+
|
|
|
+ $fecha_fala = $failureLogTemp['NUMERO_FALLA'];
|
|
|
+
|
|
|
+ $clasificacion = $failureLogTemp['NUMERO_FALLA'];
|
|
|
+
|
|
|
+ $reparable = $failureLogTemp['NUMERO_FALLA'];
|
|
|
+
|
|
|
+ $usuario_registra = $failureLogTemp['NUMERO_FALLA'];
|
|
|
+
|
|
|
+ $fecha_registra = $failureLogTemp['NUMERO_FALLA'];
|
|
|
+
|
|
|
+
|
|
|
+ $arrFailureLog[] = [
|
|
|
+ 'NUMERO_FALLA' => $numero_falla,
|
|
|
+ 'NOMBRE_FALLA' => $nombre_falla,
|
|
|
+ 'NIVEL_CRITICIDAD_FALLA' => $nivel_criticidad_falla,
|
|
|
+ 'NOMBRE_SINTOMA' => $nombre_sintoma,
|
|
|
+ 'CLASIFICACION_SINTOMA' => $clasificacion_sintoma,
|
|
|
+ 'CAUSA' => $causa,
|
|
|
+ 'FECHA_FALA' => $fecha_fala,
|
|
|
+ 'CLASIFICACION' => $clasificacion,
|
|
|
+ 'REPARABLE' => $reparable,
|
|
|
+ 'USUARIO_REGISTRA' => $usuario_registra,
|
|
|
+ 'FECHA_REGISTRA' => $fecha_registra,
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ return $arrFailureLog;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getFailureLogActives($user, $line) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ $getFailureLog = DB::table('S002V01TBIFA')
|
|
|
+ ->where('BIFA_NULI', '=', $line)
|
|
|
+ ->where('LIFA_NULI', '=', $line)
|
|
|
+ ->where('LISI_NULI', '=', $line)
|
|
|
+ ->where('LIME_NULI', '=', $line)
|
|
|
+ ->where('BIFA_ESTA', '=', 'Activo')
|
|
|
+ ->where('LIFA_ESTA', '=', 'Activo')
|
|
|
+ ->where('LISI_ESTA', '=', 'Activo')
|
|
|
+ ->where('LIME_ESTA', '=', 'Activo')
|
|
|
+ ->join('S002V01TLIFA', 'LIFA_IDFA', '=', 'BIFA_IDFA')
|
|
|
+ ->join('S002V01TLISI', 'LISI_IDSI', '=', 'BIFA_IDSI')
|
|
|
+ ->join('S002V01TLIME', 'LIME_IDME', '=', 'BIFA_IDME')
|
|
|
+ ->get([
|
|
|
+ 'BIFA_NUFA AS NUMERO_FALLA',
|
|
|
+ 'BIFA_COEQ AS CODIGO_EQUIPAMIENTO',
|
|
|
+ 'LIFA_IDFA AS ID_FALLA',
|
|
|
+ 'LIFA_NOFA AS NOMBRE_FALLA',
|
|
|
+ 'LIFA_NIVE AS NIVEL_CRITICIDAD_FALLA',
|
|
|
+ 'LIFA_CAUS AS CAUSA_FALLA',
|
|
|
+ 'LISI_IDSI AS ID_SINTOMA',
|
|
|
+ 'LISI_NOSI AS NOMBRE_SINTOMA',
|
|
|
+ 'LISI_CLAS AS CLASIFICACION_SINTOMA',
|
|
|
+ 'LISI_CAUS AS CAUSA_SINTOMA',
|
|
|
+ 'BIFA_CAUS AS CAUSA',
|
|
|
+ 'BIFA_FEFA AS FECHA_FALA',
|
|
|
+ 'BIFA_CLAS AS CLASIFICACION',
|
|
|
+ 'BIFA_REPA AS REPARABLE',
|
|
|
+ 'BIFA_DESO AS SOLUCION',
|
|
|
+ 'BIFA_COME AS COMENTARIOS',
|
|
|
+ 'BIFA_VAOB AS VALOR_OBTENIDO',
|
|
|
+ 'LIME_IDME AS ID_MEDIDA',
|
|
|
+ 'LIME_NOME AS NOMBRE_MEDIDA',
|
|
|
+ 'LIME_ACME AS ACRONIMO_MEDIDA',
|
|
|
+ 'BIFA_USRE AS USUARIO_REGISTRA',
|
|
|
+ 'BIFA_FERE AS FECHA_REGISTRA',
|
|
|
+ 'BIFA_USMO AS USUARIO_MODIFICA',
|
|
|
+ 'BIFA_FEMO AS FECHA_MODIFICA',
|
|
|
+ ]);
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_GETACTIVE000: No se pudo realizar la consulta a la base.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ $arrFailureLog = json_decode( json_encode( $getFailureLog ), true );
|
|
|
+
|
|
|
+ return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrFailureLog);
|
|
|
+ }
|
|
|
+ public function registerFailureLog(Request $request) {
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
+ 'CODIGO_EQUIPAMIENTO' => 'required|string',
|
|
|
+ 'ID_FALLA' => 'required|integer',
|
|
|
+ // 'ID_SINTOMA' => 'required|integer',
|
|
|
+ 'CAUSA' => 'required|string',
|
|
|
+ 'FECHA_FALA' => 'required|string',
|
|
|
+ 'CLASIFICACION' => 'required|string',
|
|
|
+ 'REPARABLE' => 'required|string',
|
|
|
+ 'SOLUCION' => 'required|string',
|
|
|
+ 'COMENTARIOS' => 'required|string',
|
|
|
+ 'VALOR_OBTENIDO' => 'required|string',
|
|
|
+ 'ID_MEDIDA' => 'required|string',
|
|
|
+ 'USUARIO' => 'required|string',
|
|
|
+ 'NUMERO_LINEA' => 'required|string',
|
|
|
+ ]);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return $this->responseController->makeResponse(
|
|
|
+ true,
|
|
|
+ "ERR_FAILURELOG_REG000: Se encontraron uno o más errores.",
|
|
|
+ $this->responseController->makeErrors($validator->errors()->messages()),
|
|
|
+ 401
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ DB::beginTransaction();
|
|
|
+ $requestData = $request->all();
|
|
|
+
|
|
|
+ try {
|
|
|
+ $user = $this->encController->decrypt($requestData['USUARIO']);
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_REG001: No se pudo obtener el usuario.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ $validateExistsFailureList = DB::table('S002V01TLIFA')
|
|
|
+ ->where('LIFA_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
+ ->where('LIFA_IDFA', '=', $requestData['ID_FALLA'])
|
|
|
+ ->where('LIFA_ESTA', '=', 'Activo')
|
|
|
+ ->exists();
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_REG002: Ocurrió un error al consultar la lista de fallas.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ if ( !$validateExistsFailureList ) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_REG003: No existe la falla #".$requestData['ID_FALLA']." en la lista de fallas.", [], 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ( !is_null($requestData['ID_SINTOMA']) && $requestData['ID_SINTOMA'] !== '' ) {
|
|
|
+ try {
|
|
|
+ $validateExistsSymptomList = DB::table('S002V01TLISI')
|
|
|
+ ->where('LISI_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
+ ->where('LISI_IDSI', '=', $requestData['ID_SINTOMA'])
|
|
|
+ ->where('LISI_ESTA', '=', 'Activo')
|
|
|
+ ->exists();
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_REG004: Ocurrió un error al consultar la lista de síntomas.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ if ( !$validateExistsSymptomList ) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_REG005: No existe el síntoma #".$requestData['ID_SINTOMA']." en la lista de síntomas.", [], 500);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ $validateExistsMeasure = DB::table('S002V01TLIME')
|
|
|
+ ->where('LIME_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
+ ->where('LIME_IDME', '=', $requestData['ID_MEDIDA'])
|
|
|
+ ->where('LIME_ESTA', '=', 'Activo')
|
|
|
+ ->exists();
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_REG006: Ocurrió un error al consultar la lista de medidas.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ if ( !$validateExistsMeasure ) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_REG007: No existe la medida #".$requestData['ID_MEDIDA']." en la lista de medidas.", [], 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ $validateExistsEquipment = DB::table('S002V01TEQUI')
|
|
|
+ ->where('EQUI_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
+ ->where('EQUI_COEQ', '=', $requestData['CODIGO_EQUIPAMIENTO'])
|
|
|
+ ->exists();
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_REG008: Ocurrió un error al consultar los equipamientos.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ if ( !$validateExistsEquipment ) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_REG009: No existe el equipamiento ".$requestData['CODIGO_EQUIPAMIENTO']." en la lista de equipamientos.", [], 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ $now = $this->functionsController->now();
|
|
|
+ $currentDate = $now->toDateTimeString();
|
|
|
+
|
|
|
+ try {
|
|
|
+ $validateInsert = DB::table('S002V01TBIFA')->insert([
|
|
|
+ 'BIFA_NULI' => $requestData['NUMERO_LINEA'],
|
|
|
+ 'BIFA_COEQ' => $requestData['CODIGO_EQUIPAMIENTO'],
|
|
|
+ 'BIFA_IDFA' => $requestData['ID_FALLA'],
|
|
|
+ 'BIFA_IDSI' => $requestData['ID_SINTOMA'],
|
|
|
+ 'BIFA_CAUS' => $requestData['CAUSA'],
|
|
|
+ 'BIFA_FEFA' => $requestData['FECHA_FALA'],
|
|
|
+ 'BIFA_CLAS' => $requestData['CLASIFICACION'],
|
|
|
+ 'BIFA_REPA' => $requestData['REPARABLE'],
|
|
|
+ 'BIFA_DESO' => $requestData['SOLUCION'],
|
|
|
+ 'BIFA_COME' => $requestData['COMENTARIOS'],
|
|
|
+ 'BIFA_VAOB' => $requestData['VALOR_OBTENIDO'],
|
|
|
+ 'BIFA_IDME' => $requestData['ID_MEDIDA'],
|
|
|
+ 'BIFA_USRE' => $user,
|
|
|
+ 'BIFA_FERE' => $currentDate,
|
|
|
+ 'BIFA_FEAR' => DB::raw('CURRENT_TIMESTAMP')
|
|
|
+ ]);
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_REG010: Ocurrió un error al intentar registrar la falla en la base de datos.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ if ( !$validateInsert ) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_REG011: No se pudo registrar la falla.", [], 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ DB::commit();
|
|
|
+ return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
|
|
|
+ }
|
|
|
+ public function updateFailureLog(Request $request) {
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
+ 'NUMERO_FALLA' => 'required|integer',
|
|
|
+ 'CODIGO_EQUIPAMIENTO' => 'required|string',
|
|
|
+ 'ID_FALLA' => 'required|integer',
|
|
|
+ // 'ID_SINTOMA' => 'required|integer',
|
|
|
+ 'CAUSA' => 'required|string',
|
|
|
+ 'FECHA_FALA' => 'required|string',
|
|
|
+ 'CLASIFICACION' => 'required|string',
|
|
|
+ 'REPARABLE' => 'required|string',
|
|
|
+ 'SOLUCION' => 'required|string',
|
|
|
+ 'COMENTARIOS' => 'required|string',
|
|
|
+ 'VALOR_OBTENIDO' => 'required|string',
|
|
|
+ 'ID_MEDIDA' => 'required|string',
|
|
|
+ 'USUARIO' => 'required|string',
|
|
|
+ 'NUMERO_LINEA' => 'required|string',
|
|
|
+ ]);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return $this->responseController->makeResponse(
|
|
|
+ true,
|
|
|
+ "ERR_FAILURELOG_UPD000: Se encontraron uno o más errores.",
|
|
|
+ $this->responseController->makeErrors($validator->errors()->messages()),
|
|
|
+ 401
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ DB::beginTransaction();
|
|
|
+ $requestData = $request->all();
|
|
|
+
|
|
|
+ try {
|
|
|
+ $user = $this->encController->decrypt($requestData['USUARIO']);
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD001: No se pudo obtener el usuario.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ $validateExistsFailureLog = DB::table('S002V01TBIFA')
|
|
|
+ ->where('BIFA_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
+ ->where('BIFA_NUFA', '=', $requestData['NUMERO_FALLA'])
|
|
|
+ ->where('BIFA_ESTA', '=', 'Activo')
|
|
|
+ ->exists();
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD002: Ocurrió un error al consultar la bitácora de fallas.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ if ( !$validateExistsFailureLog ) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD003: No existe la falla #".$requestData['NUMERO_FALLA']." en la bitácora de fallas.", [], 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ $validateExistsFailureList = DB::table('S002V01TLIFA')
|
|
|
+ ->where('LIFA_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
+ ->where('LIFA_IDFA', '=', $requestData['ID_FALLA'])
|
|
|
+ ->where('LIFA_ESTA', '=', 'Activo')
|
|
|
+ ->exists();
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD004: Ocurrió un error al consultar la lista de fallas.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ if ( !$validateExistsFailureList ) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD005: No existe la falla #".$requestData['ID_FALLA']." en la lista de fallas.", [], 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ( !is_null($requestData['ID_SINTOMA']) && $requestData['ID_SINTOMA'] !== '' ) {
|
|
|
+ try {
|
|
|
+ $validateExistsSymptomList = DB::table('S002V01TLISI')
|
|
|
+ ->where('LISI_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
+ ->where('LISI_IDSI', '=', $requestData['ID_SINTOMA'])
|
|
|
+ ->where('LISI_ESTA', '=', 'Activo')
|
|
|
+ ->exists();
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD006: Ocurrió un error al consultar la lista de síntomas.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ if ( !$validateExistsSymptomList ) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD007: No existe el síntoma #".$requestData['ID_SINTOMA']." en la lista de síntomas.", [], 500);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ $validateExistsMeasure = DB::table('S002V01TLIME')
|
|
|
+ ->where('LIME_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
+ ->where('LIME_IDME', '=', $requestData['ID_MEDIDA'])
|
|
|
+ ->where('LIME_ESTA', '=', 'Activo')
|
|
|
+ ->exists();
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD008: Ocurrió un error al consultar la lista de medidas.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ if ( !$validateExistsMeasure ) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD009: No existe la medida #".$requestData['ID_MEDIDA']." en la lista de medidas.", [], 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ $validateExistsEquipment = DB::table('S002V01TEQUI')
|
|
|
+ ->where('EQUI_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
+ ->where('EQUI_COEQ', '=', $requestData['CODIGO_EQUIPAMIENTO'])
|
|
|
+ ->exists();
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD010: Ocurrió un error al consultar los equipamientos.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ if ( !$validateExistsEquipment ) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD011: No existe el equipamiento ".$requestData['CODIGO_EQUIPAMIENTO']." en la lista de equipamientos.", [], 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ $now = $this->functionsController->now();
|
|
|
+ $currentDate = $now->toDateTimeString();
|
|
|
+
|
|
|
+ try {
|
|
|
+ $validateUpdate = DB::table('S002V01TBIFA')
|
|
|
+ ->where('BIFA_NUFA', '=', $requestData['NUMERO_FALLA'])
|
|
|
+ ->where('BIFA_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
+ ->update([
|
|
|
+ 'BIFA_COEQ' => $requestData['CODIGO_EQUIPAMIENTO'],
|
|
|
+ 'BIFA_IDFA' => $requestData['ID_FALLA'],
|
|
|
+ 'BIFA_IDSI' => $requestData['ID_SINTOMA'],
|
|
|
+ 'BIFA_CAUS' => $requestData['CAUSA'],
|
|
|
+ 'BIFA_FEFA' => $requestData['FECHA_FALA'],
|
|
|
+ 'BIFA_CLAS' => $requestData['CLASIFICACION'],
|
|
|
+ 'BIFA_REPA' => $requestData['REPARABLE'],
|
|
|
+ 'BIFA_DESO' => $requestData['SOLUCION'],
|
|
|
+ 'BIFA_COME' => $requestData['COMENTARIOS'],
|
|
|
+ 'BIFA_VAOB' => $requestData['VALOR_OBTENIDO'],
|
|
|
+ 'BIFA_IDME' => $requestData['ID_MEDIDA'],
|
|
|
+ 'BIFA_USMO' => $user,
|
|
|
+ 'BIFA_FEMO' => $currentDate,
|
|
|
+ 'BIFA_FEAR' => DB::raw('CURRENT_TIMESTAMP')
|
|
|
+ ]);
|
|
|
+ } catch (\Throwable $th) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD012: Ocurrió un error al intentar modificar la falla en la base de datos.", $th->getMessage(), 500);
|
|
|
+ }
|
|
|
+ if ( !$validateUpdate ) {
|
|
|
+ DB::rollBack();
|
|
|
+ return $this->responseController->makeResponse(true, "ERR_FAILURELOG_UPD013: No se pudo modificar la bitácora de falla.", [], 500);
|
|
|
+ }
|
|
|
+
|
|
|
+ DB::commit();
|
|
|
+ return $this->responseController->makeResponse(false, "ÉXITO: Modificación Exitosa");
|
|
|
+ }
|
|
|
+}
|