| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818 |
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Validator;
- use Illuminate\Support\Carbon;
- class CountersActivatorsController extends Controller{
- private $responseController;
- private $encryptionController;
- private $functionsController;
- public function __construct(){
- $this->responseController = new ResponseController();
- $this->encryptionController = new EncryptionController();
- $this->functionsController = new FunctionsController();
- }
- public function getActivators($idUser, $line) {
- DB::enableQueryLog();
- $idUser = $this->encryptionController->decrypt($idUser);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
-
- $activators = DB::table('S002V01TACTI')->select([
- 'ACTI_IDAC AS ID_ACTIVADOR',
- 'ACTI_PRIO AS PRIORIDAD',
- 'ACTI_TIAC AS TIPO_ACTIVADOR',
- 'ACTI_CORE AS ID_CONTADOR',
- 'ACTI_ESTA AS ESTADO'
- ])->get()->all();
- foreach($activators as $key=>$activator){
- $activator->ID_ACTIVADOR = $this->encryptionController->encrypt($activator->ID_ACTIVADOR);
- $activator->ID_CONTADOR = $this->encryptionController->encrypt($activator->ID_CONTADOR);
- $activators[$key] = $activator;
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
- $idac = $this->functionsController->registerActivity(
- $line,
- 'S002V01M06COAC',
- 'S002V01F01GEAC',
- 'S002V01P01COAC',
- 'Consulta',
- "El usuario $name (" . $usr->USUA_IDUS . ") consultó los activadores registrados.",
- $idUser,
- $nowStr,
- 'S002V01S02ACTI'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $line);
- return $this->responseController->makeresponse(false, "EXITO", $activators);
- }
- public function getActivatorsByType($type, $idUser, $line){
- DB::enableQueryLog();
- $idUser = $this->encryptionController->decrypt($idUser);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
-
- $activators = DB::table('S002V01TACTI')->select([
- 'ACTI_IDAC AS IDACTIVADOR',
- 'ACTI_PRIO AS PRIORIDAD',
- 'ACTI_TIAC AS TIPOACTIVACION',
- 'ACTI_COAC AS CONDICIONES'
- ])->where([
- ['ACTI_NULI', '=', $line],
- ['ACTI_TIAC', '=', $type]
- ])->get()->all();
- foreach($activators as $key=>$activator){
- $activator->IDACTIVADOR = $this->encryptionController->encrypt($activator->IDACTIVADOR);
- $activator->PRIORIDAD = $this->encryptionController->encrypt($activator->PRIORIDAD);
- if($activator->TIPOACTIVACION == 'Medida' || $activator->TIPOACTIVACION == 'Valor'){
- $activationConfigArr = json_decode($activator->CONDICIONES, true);
- $magnitude = DB::table('S002V01TMAGN')->where([
- ['MAGN_NULI', '=', $line],
- ['MAGN_IDMA', '=', $activationConfigArr['magnitude']]
- ])->first();
- $unit = DB::table('S002V01TLIME')->where([
- ['LIME_NULI', '=', $line],
- ['LIME_IDME', '=', $activationConfigArr['unit']],
- ['LIME_MAGN', '=', $activationConfigArr['magnitude']],
- ])->first();
- $activationConfigArr['magnitude'] = $magnitude->MAGN_MAGN . " (" . $activationConfigArr['magnitude'] . ")";
- $activationConfigArr['unit'] = $unit->LIME_ACME . " - " . $unit->LIME_NOME . " (" . $activationConfigArr['unit'] . ")";
- $activator->CONDICIONES = json_encode($activationConfigArr);
- }
- $activators[$key] = $activator;
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
- $idac = $this->functionsController->registerActivity(
- $line,
- 'S002V01M06COAC',
- 'S002V01F01GEAC',
- 'S002V01P01COAC',
- 'Consulta',
- "El usuario $name (" . $usr->USUA_IDUS . ") consultó los contadores de tipo $type.",
- $idUser,
- $nowStr,
- 'S002V01S02ACTI'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $line);
- return $this->responseController->makeresponse(false, "EXITO", $activators);
- }
- public function registerActivator(Request $request){
- DB::enableQueryLog();
- $validator = Validator::make($request->all(), [
- 'id_user' => 'required|string',
- 'linea' => 'required|integer',
- 'priority' => 'required|string|in:1,2,3,4',
- 'type' => 'required|string|in:CA,SI,ME,VA',
- 'condition' => 'required|json',
- 'counter' => 'required|string'
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- //$priorities = ['MA' => '1', 'AL' => '2', 'ME' => '3', 'BA' => '4'];
- $types = ['CA' => 'Calendario', 'SI' => 'Sintoma', 'ME' => 'Medida', 'VA' => 'Valor'];
- $form = $request->all();
- $idUser = $this->encryptionController->decrypt($form['id_user']);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $form['linea']],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $idCounter = $this->encryptionController->decrypt($form['counter']);
- if(!$idCounter){
- return $this->responseController->makeResponse(true, 'El ID del contador relacionado no está encriptado correctamente.', [], 400);
- }
- $counter = DB::table('S002V01TCONA')->where([
- ['CONA_NULI', '=', $form['linea']],
- ['CONA_IDCO', '=', $idCounter]
- ])->first();
- if(is_null($counter)){
- return $this->responseController->makeResponse(true, 'El contador relacionado no está registrado.', [], 404);
- }
- $priority = $form['priority'];
- $type = $types[$form['type']];
- $conditionArr = json_decode($form['condition'], true);
- if(count($conditionArr) == 0){
- return $this->responseController->makeResponse(true, 'El arreglo de la condición de activación está vació.', [], 400);
- }else{
- switch($form['type']){
- case 'CA':
- if(count($conditionArr) != 5){
- return $this->responseController->makeResponse(true, 'El arreglo de la condición tiene un formato inválido.', [], 400);
- }
- $keysCA = ['startDate', 'startHour', 'repeat', 'customRepeat', 'color'];
- foreach($keysCA as $key){
- if(!array_key_exists($key, $conditionArr)){
- return $this->responseController->makeResponse(true, "El arreglo de la condición no contiene el elemento '$key'.", [], 400);
- }
- }
- break;
- case 'SI':
- if(count($conditionArr) != 6){
- return $this->responseController->makeResponse(true, 'El arreglo de la condición tiene un formato inválido.', [], 400);
- }
- $keysSI = ['sign', 'startDate', 'startHour', 'repeat', 'customRepeat', 'color'];
- foreach($keysSI as $key){
- if(!array_key_exists($key, $conditionArr)){
- return $this->responseController->makeResponse(true, "El arreglo de la condición no contiene el elemento '$key'.", [], 400);
- }
- }
- $idSymptom = $this->encryptionController->decrypt($conditionArr['sign']);
- if(!$idSymptom){
- return $this->responseController->makeResponse(true, 'El ID del síntoma relacionado no está encriptado correctamente.', [], 400);
- }
- $symptom = DB::table('S002V01TLISI')->where([
- ['LISI_IDSI', '=', $idSymptom],
- ['LISI_NULI', '=', $form['linea']]
- ])->first();
- if(is_null($symptom)){
- return $this->responseController->makeResponse(true, 'El síntoma relacionado no está registrado.', [], 404);
- }else if($symptom->LISI_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'El síntoma relacionado está eliminado.', [], 404);
- }
- $conditionArr['sign'] = $idSymptom;
- break;
- case 'ME':
- if(count($conditionArr) != 7){
- return $this->responseController->makeResponse(true, 'El arreglo de la condición tiene un formato inválido.', [], 400);
- }
- $keysSI = ['minValue', 'maxValue', 'magnitude', 'customMagnitude', 'unit', 'customUnit', 'color'];
- foreach($keysSI as $key){
- if(!array_key_exists($key, $conditionArr)){
- return $this->responseController->makeResponse(true, "El arreglo de la condición no contiene el elemento '$key'.", [], 400);
- }
- }
- $idMagnitude = $this->encryptionController->decrypt($conditionArr['magnitude']);
- if(!$idMagnitude){
- return $this->responseController->makeResponse(true, 'El ID de la magnitud relacionada no está encriptado correctamente.', [], 400);
- }
- $magnitude = DB::table('S002V01TMAGN')->where([
- ['MAGN_NULI', '=', $form['linea']],
- ['MAGN_IDMA', '=', $idMagnitude]
- ])->first();
- if(is_null($magnitude)){
- return $this->responseController->makeResponse(true, 'La magnitud relacionada no está registrado.', [], 404);
- }else if($magnitude->MAGN_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'La magnitud relacionada está eliminada.', [], 404);
- }
- $idUnit = $this->encryptionController->decrypt($conditionArr['unit']);
- if(!$idUnit){
- return $this->responseController->makeResponse(true, 'El ID de la unidad relacionada no está encriptado correctamente.', [], 400);
- }
- $unit = DB::table('S002V01TLIME')->where([
- ['LIME_IDME', '=', $idUnit],
- ['LIME_NULI', '=', $form['linea']],
- ['LIME_MAGN', '=', $idMagnitude],
- ])->first();
- if(is_null($unit)){
- return $this->responseController->makeResponse(true, 'La unidad relacionada no está registrado.', [], 404);
- }else if($unit->LIME_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'La unidad relacionada está eliminada.', [], 404);
- }
- $conditionArr['magnitude'] = $idMagnitude ;
- $conditionArr['unit'] = $idUnit;
- break;
- case 'VA':
- if(count($conditionArr) != 7){
- return $this->responseController->makeResponse(true, 'El arreglo de la condición tiene un formato inválido.', [], 400);
- }
- $keysVA = ['comparison', 'limitValue', 'magnitude', 'customMagnitude', 'unit', 'customUnit', 'color'];
- foreach($keysVA as $key){
- if(!array_key_exists($key, $conditionArr)){
- return $this->responseController->makeResponse(true, "El arreglo de la condición no contiene el elemento '$key'.", [], 400);
- }
- }
- $idMagnitude = $this->encryptionController->decrypt($conditionArr['magnitude']);
- if(!$idMagnitude){
- return $this->responseController->makeResponse(true, 'El ID de la magnitud relacionada no está encriptado correctamente.', [], 400);
- }
- $magnitude = DB::table('S002V01TMAGN')->where([
- ['MAGN_NULI', '=', $form['linea']],
- ['MAGN_IDMA', '=', $idMagnitude]
- ])->first();
- if(is_null($magnitude)){
- return $this->responseController->makeResponse(true, 'La magnitud relacionada no está registrado.', [], 404);
- }else if($magnitude->MAGN_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'La magnitud relacionada está eliminada.', [], 404);
- }
- $idUnit = $this->encryptionController->decrypt($conditionArr['unit']);
- if(!$idUnit){
- return $this->responseController->makeResponse(true, 'El ID de la unidad relacionada no está encriptado correctamente.', [], 400);
- }
- $unit = DB::table('S002V01TLIME')->where([
- ['LIME_IDME', '=', $idUnit],
- ['LIME_NULI', '=', $form['linea']],
- ['LIME_MAGN', '=', $idMagnitude],
- ])->first();
- if(is_null($unit)){
- return $this->responseController->makeResponse(true, 'La unidad relacionada no está registrado.', [], 404);
- }else if($unit->LIME_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'La unidad relacionada está eliminada.', [], 404);
- }
- $conditionArr['magnitude'] = $idMagnitude ;
- $conditionArr['unit'] = $idUnit;
- break;
- default:
- return $this->responseController->makeResponse(true, 'El tipo de contador es inválido.', [], 400);
- break;
- }
- }
- $conditionStr = json_encode($conditionArr);
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- $idCont = DB::table('S002V01TACTI')->insertGetId([
- 'ACTI_NULI' => $form['linea'],
- 'ACTI_PRIO' => $priority,
- 'ACTI_TIAC' => $type,
- 'ACTI_COAC' => $conditionStr,
- 'ACTI_CORE' => $idCounter,
- 'ACTI_USRE' => $idUser,
- 'ACTI_FERE' => $nowStr
- ]);
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
-
- $idac = $this->functionsController->registerActivity(
- $form['linea'],
- 'S002V01M06COAC',
- 'S002V01F01GEAC',
- 'S002V01P02REAC',
- 'Registro',
- "El usuario $name (" . $usr->USUA_IDUS . ") registró el contador #$idCont.",
- $idUser,
- $nowStr,
- 'S002V01S02ACTI'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $form['linea']);
- return $this->responseController->makeResponse(false, 'EXITO.', ['IDCONT' => $idCont]);
- }
- public function getActivator($idActivator, $idUser, $line){
- DB::enableQueryLog();
- $idUser = $this->encryptionController->decrypt($idUser);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
-
- $idActivator = $this->encryptionController->decrypt($idActivator);
- if(!$idActivator){
- return $this->responseController->makeResponse(true, 'El ID del activador solicitado no está encriptado correctamente.', [], 400);
- }
-
- $activator = DB::table('S002V01TACTI')->select([
- 'ACTI_IDAC AS IDACTIVADOR',
- 'ACTI_PRIO AS PRIORIDAD',
- 'ACTI_TIAC AS TIPOACTIVADOR',
- 'ACTI_COAC AS CONDICIONES',
- 'ACTI_CORE AS CONTADOR',
- 'ACTI_ESTA AS ESTADO',
- 'ACTI_USRE AS USRREG',
- 'ACTI_FERE AS FECREG',
- 'ACTI_USMO AS USRMOD',
- 'ACTI_FEMO AS FECMOD',
- ])->where([
- ['ACTI_IDAC', '=', $idActivator],
- ['ACTI_NULI', '=', $line],
- ])->first();
- if(is_null($activator)){
- return $this->responseController->makeResponse(true, 'El activador solicitado no está registrado.', [], 404);
- }
- $activator->IDACTIVADOR = $this->encryptionController->encrypt($activator->IDACTIVADOR);
- $activator->CONTADOR = $this->encryptionController->encrypt($activator->CONTADOR);
-
- $conditionsArr = json_decode($activator->CONDICIONES, true);
- foreach($conditionsArr as $key=>$val){
- $encryptedParams = ['sign', 'magnitude', 'unit'];
- if(in_array($key, $encryptedParams)){
- switch($key){
- case 'sign':
- $symptom = DB::table('S002V01TLISI')->where([
- ['LISI_NULI', '=', $line],
- ['LISI_IDSI', '=', $val]
- ])->first();
- $conditionsArr[$key] = $symptom->LISI_NOSI . " (" . $val . ")";
- break;
- case 'magnitude':
- $magnitude = DB::table('S002V01TMAGN')->where([
- ['MAGN_NULI', '=', $line],
- ['MAGN_IDMA', '=', $val]
- ])->first();
- $conditionsArr[$key] = $magnitude->MAGN_MAGN . " (" . $val . ")";
- break;
- case 'unit':
- $unit = DB::table('S002V01TLIME')->where([
- ['LIME_NULI', '=', $line],
- ['LIME_IDME', '=', $val]
- ])->first();
- $conditionsArr[$key] = $unit->LIME_NOME . " (" . $val . ") - " . $unit->LIME_ACME;
- break;
- }
- }
- }
- $activator->CONDICIONES = json_encode($conditionsArr);
- $usrReg = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $activator->USRREG]
- ])->first();
- $nameReg = $this->functionsController->joinName($usrReg->USUA_NOMB, $usrReg->USUA_APPA, $usrReg->USUA_APMA);
- $activator->USRREG = $nameReg . " (" . $activator->USRREG . ")";
- if(!is_null($activator->USRMOD)){
- $usrMod = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $activator->USRMOD]
- ])->first();
-
- $nameMod = $this->functionsController->joinName($usrMod->USUA_NOMB, $usrMod->USUA_APPA, $usrMod->USUA_APMA);
- $activator->USRMOD = $nameMod . " (" . $activator->USRMOD . ")";
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
- $idac = $this->functionsController->registerActivity(
- $line,
- 'S002V01M06COAC',
- 'S002V01F01GEAC',
- 'S002V01P01COAC',
- 'Consulta',
- "El usuario $name (" . $usr->USUA_IDUS . ") consultó la información del activador #$idActivator",
- $idUser,
- $nowStr,
- 'S002V01S02ACTI'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $line);
- return $this->responseController->makeresponse(false, "EXITO", $activator);
- }
- public function registerCounter(Request $request) {
- DB::enableQueryLog();
- $validator = Validator::make($request->all(), [
- 'id_user' => 'required|string',
- 'linea' => 'required|integer',
- 'scada' => 'required|string',
- 'equipment' => 'required|string',
- 'time_interval' => 'required|numeric',
- 'time_interval_unit' => 'required|string|in:seg,min,hor,dia',
- 'time_interval_tolerance' => 'required|numeric',
- 'time_interval_tolerance_unit' => 'required|string|in:seg,min,hor,dia'
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- $form = $request->all();
- $idUser = $this->encryptionController->decrypt($form['id_user']);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $form['linea']],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $idSCADA = $this->encryptionController->decrypt($form['scada']);
- if(!$idSCADA){
- return $this->responseController->makeResponse(true, 'El ID del SCADA relacionado no está encriptado correctamente.', [], 400);
- }
- $scada = DB::table('S002V01TLISC')->where([
- ['LISC_IDSC', '=', $idSCADA],
- ['LISC_NULI', '=', $form['linea']],
- ])->first();
- if(is_null($scada)){
- return $this->responseController->makeResponse(true, 'El SCADA relacionado no está registrado.', [], 404);
- }
- $equipmentCode = $this->encryptionController->decrypt($form['equipment']);
- if(!$equipmentCode){
- return $this->responseController->makeResponse(true, 'El código del equipamiento relacionado no está encriptado correctamente.', [], 400);
- }
- $equipment = DB::table('S002V01TEQUI')->where([
- ['EQUI_NULI', '=', $form['linea']],
- ['EQUI_COEQ', '=', $equipmentCode],
- ])->first();
- if(is_null($equipment)){
- return $this->responseController->makeResponse(true, 'El equipamiento relacionado no está registrado.', [], 404);
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- $idCont = DB::table('S002V01TCONA')->insertGetId([
- 'CONA_NULI' => $form['linea'],
- 'CONA_INLE' => $form['time_interval'],
- 'CONA_UTIL' => $form['time_interval_unit'],
- 'CONA_TOIN' => $form['time_interval_tolerance'],
- 'CONA_UTTI' => $form['time_interval_tolerance_unit'],
- 'CONA_IDSC' => $idSCADA,
- 'CONA_COEQ' => $equipmentCode,
- 'CONA_COVI' => '[]',
- 'CONA_USRE' => $idUser,
- 'CONA_FERE' => $nowStr,
- ]);
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
-
- $idac = $this->functionsController->registerActivity(
- $form['linea'],
- 'S002V01M06COAC',
- 'S002V01F01GECO',
- 'S002V01P02RECO',
- 'Registro',
- "El usuario $name (" . $usr->USUA_IDUS . ") registró el contador #$idCont.",
- $idUser,
- $nowStr,
- 'S002V01S01CONT'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $form['linea']);
- return $this->responseController->makeResponse(false, 'EXITO.');
- }
- public function getCounters($idUser, $line) {
- DB::enableQueryLog();
- $idUser = $this->encryptionController->decrypt($idUser);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $counters = DB::table('S002V01TCONA')->select([
- 'CONA_IDCO AS ID_CONTADOR',
- 'CONA_IDSC AS ID_SCADA',
- 'LISC_NOSC AS SCADA',
- 'CONA_COEQ AS CODIGO_EQUIPAMIENTO',
- 'EQUI_TIPO AS TIPO_EQUIPAMIENTO',
- 'EQUI_MODE AS MODELO_EQUIPAMIENTO',
- 'EQUI_IDEQ AS ID_EQUIPAMIENTO',
- 'CONA_ESTA AS ESTADO',
- ])->join('S002V01TLISC', 'LISC_IDSC', '=', 'CONA_IDSC')
- ->join('S002V01TEQUI', 'EQUI_COEQ', '=', 'CONA_COEQ')
- ->get()->all();
- foreach($counters as $key=>$counter){
- $activators = DB::table('S002V01TACTI')->where([
- ['ACTI_NULI', '=', $line],
- ['ACTI_CORE', '=', $counter->ID_CONTADOR]
- ])->get()->all();
- $counter->ID_CONTADOR = $this->encryptionController->encrypt($counter->ID_CONTADOR);
- $counter->ID_SCADA = $this->encryptionController->encrypt($counter->ID_SCADA);
- $counter->CODIGO_EQUIPAMIENTO = $this->encryptionController->encrypt($counter->CODIGO_EQUIPAMIENTO);
- $counter->ID_EQUIPAMIENTO = $this->encryptionController->encrypt($counter->ID_EQUIPAMIENTO);
- $counter->TIENE_ACTIVADOR = count($activators) > 0;
- $counter->ACTIVADOR = count($activators) > 0 ? $this->encryptionController->encrypt($activators[0]->ACTI_IDAC) : null;
- $counters[$key] = $counter;
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
- $idac = $this->functionsController->registerActivity(
- $line,
- 'S002V01M06COAC',
- 'S002V01F01GECO',
- 'S002V01P01COCO',
- 'Consulta',
- "El usuario $name (" . $usr->USUA_IDUS . ") consultó los contadores registrados.",
- $idUser,
- $nowStr,
- 'S002V01S01CONT'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $line);
- return $this->responseController->makeresponse(false, "EXITO", $counters);
- }
- public function getCounter($idCounter, $idUser, $line) {
- DB::enableQueryLog();
- $idUser = $this->encryptionController->decrypt($idUser);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $idCounter = $this->encryptionController->decrypt($idCounter);
- if(!$idCounter){
- return $this->responseController->makeResponse(true, 'El ID del contador no está encriptado correctamente.', [], 400);
- }
- $counter = DB::table('S002V01TCONA')->select([
- 'CONA_IDCO AS ID_CONTADOR',
- 'CONA_IDSC AS ID_SCADA',
- 'LISC_NOSC AS SCADA',
- 'CONA_COEQ AS CODIGO_EQUIPAMIENTO',
- 'EQUI_TIPO AS TIPO_EQUIPAMIENTO',
- 'EQUI_MODE AS MODELO_EQUIPAMIENTO',
- 'EQUI_IDEQ AS ID_EQUIPAMIENTO',
- 'CONA_INLE AS INTERVALO',
- 'CONA_UTIL AS UNIDAD_INTERVALO',
- 'CONA_TOIN AS TOLERANCIA_INTERVALO',
- 'CONA_UTTI AS UNIDAD_TOLERANCIA_INTERVALO',
- 'CONA_COVI AS CONTADORES_VINCULADOS',
- 'CONA_ESTA AS ESTADO',
- 'CONA_USRE AS USRREG',
- 'CONA_FERE AS FECREG',
- 'CONA_USMO AS USRMOD',
- 'CONA_FEMO AS FECMOD',
- ])->join('S002V01TLISC', 'LISC_IDSC', '=', 'CONA_IDSC')
- ->join('S002V01TEQUI', 'EQUI_COEQ', '=', 'CONA_COEQ')
- ->where([
- ['CONA_IDCO', '=', $idCounter],
- ['CONA_NULI', '=', $line]
- ])->first();
- if(is_null($counter)){
- return $this->responseController->makeResponse(true, 'El contador solicitado no está registrado.', [], 404);
- }
- $counter->ID_CONTADOR = $this->encryptionController->encrypt($counter->ID_CONTADOR);
- $counter->ID_SCADA = $this->encryptionController->encrypt($counter->ID_SCADA);
- $counter->CODIGO_EQUIPAMIENTO = $this->encryptionController->encrypt($counter->CODIGO_EQUIPAMIENTO);
- $counter->ID_EQUIPAMIENTO = $this->encryptionController->encrypt($counter->ID_EQUIPAMIENTO);
- $relatedCountersArr = json_decode($counter->CONTADORES_VINCULADOS, true);
- foreach($relatedCountersArr as $key=>$counterStr){
- $counterStr = $this->encryptionController->encrypt($counterStr);
- $relatedCountersArr[$key] = $counterStr;
- }
- $relatedCountersStr = json_encode($relatedCountersArr);
- $counter->CONTADORES_VINCULADOS = $relatedCountersStr;
- $usrReg = DB::table('S002V01TUSUA')->where([
- ['USUA_IDUS', '=', $counter->USRREG],
- ['USUA_NULI', '=', $line]
- ])->first();
- $nameReg = $this->functionsController->joinName($usrReg->USUA_NOMB, $usrReg->USUA_APPA, $usrReg->USUA_APMA);
- $counter->USRREG = $nameReg . " (" . $counter->USRREG . ")";
- if(!is_null($counter->USRMOD)){
- $usrMod = DB::table('S002V01TUSUA')->where([
- ['USUA_IDUS', '=', $counter->USRMOD],
- ['USUA_NULI', '=', $line]
- ])->first();
-
- $nameMod = $this->functionsController->joinName($usrMod->USUA_NOMB, $usrMod->USUA_APPA, $usrMod->USUA_APMA);
- $counter->USRMOD = $nameMod . " (" . $counter->USRMOD . ")";
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
- $idac = $this->functionsController->registerActivity(
- $line,
- 'S002V01M06COAC',
- 'S002V01F01GECO',
- 'S002V01P01COCO',
- 'Consulta',
- "El usuario $name (" . $usr->USUA_IDUS . ") consultó el contador #$idCounter.",
- $idUser,
- $nowStr,
- 'S002V01S01CONT'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $line);
- return $this->responseController->makeresponse(false, "EXITO", $counter);
- }
- public function updateCounter(Request $request) {
- DB::enableQueryLog();
- $validator = Validator::make($request->all(), [
- 'id_user' => 'required|string',
- 'linea' => 'required|integer',
- 'scada' => 'required|string',
- 'equipment' => 'required|string',
- 'id_counter' => 'required|string',
- 'time_interval' => 'required|numeric',
- 'time_interval_unit' => 'required|string|in:seg,min,hor,dia',
- 'time_interval_tolerance' => 'required|numeric',
- 'time_interval_tolerance_unit' => 'required|string|in:seg,min,hor,dia'
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- $form = $request->all();
- $idUser = $this->encryptionController->decrypt($form['id_user']);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $form['linea']],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $idSCADA = $this->encryptionController->decrypt($form['scada']);
- if(!$idSCADA){
- return $this->responseController->makeResponse(true, 'El ID del SCADA relacionado no está encriptado correctamente.', [], 400);
- }
- $scada = DB::table('S002V01TLISC')->where([
- ['LISC_IDSC', '=', $idSCADA],
- ['LISC_NULI', '=', $form['linea']],
- ])->first();
- if(is_null($scada)){
- return $this->responseController->makeResponse(true, 'El SCADA relacionado no está registrado.', [], 404);
- }
- $equipmentCode = $this->encryptionController->decrypt($form['equipment']);
- if(!$equipmentCode){
- return $this->responseController->makeResponse(true, 'El código del equipamiento relacionado no está encriptado correctamente.', [], 400);
- }
- $equipment = DB::table('S002V01TEQUI')->where([
- ['EQUI_NULI', '=', $form['linea']],
- ['EQUI_COEQ', '=', $equipmentCode],
- ])->first();
- if(is_null($equipment)){
- return $this->responseController->makeResponse(true, 'El equipamiento relacionado no está registrado.', [], 404);
- }
- $idCounter = $this->encryptionController->decrypt($form['id_counter']);
- if(!$idCounter){
- return $this->responseController->makeResponse(true, 'El ID del contador seleccionado no está encriptado correctamente.', [], 400);
- }
- $counter = DB::table('S002V01TCONA')->where([
- ['CONA_NULI', '=', $form['linea']],
- ['CONA_IDCO', '=', $idCounter]
- ])->first();
- if(is_null($counter)){
- return $this->responseController->makeResponse(true, 'El contador seleccionado no está registrado.', [], 404);
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- DB::table('S002V01TCONA')->where([
- ['CONA_IDCO', '=', $idCounter],
- ['CONA_NULI', '=', $form['linea']]
- ])->update([
- 'CONA_INLE' => $form['time_interval'],
- 'CONA_UTIL' => $form['time_interval_unit'],
- 'CONA_TOIN' => $form['time_interval_tolerance'],
- 'CONA_UTTI' => $form['time_interval_tolerance_unit'],
- 'CONA_IDSC' => $idSCADA,
- 'CONA_USMO' => $idUser,
- 'CONA_FEMO' => $nowStr
- ]);
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
-
- $idac = $this->functionsController->registerActivity(
- $form['linea'],
- 'S002V01M06COAC',
- 'S002V01F01GECO',
- 'S002V01P02RECO',
- 'Actualización',
- "El usuario $name (" . $usr->USUA_IDUS . ") actualizó el contador #$idCounter.",
- $idUser,
- $nowStr,
- 'S002V01S01CONT'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $form['linea']);
- return $this->responseController->makeResponse(false, 'EXITO.');
- }
- public function deleteCounter(Request $request) {
- DB::enableQueryLog();
- $validator = Validator::make($request->all(), [
- 'id_user' => 'required|string',
- 'linea' => 'required|integer',
- 'id_counter' => 'required|string'
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- $form = $request->all();
- $idUser = $this->encryptionController->decrypt($form['id_user']);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $form['linea']],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $idCounter = $this->encryptionController->decrypt($form['id_counter']);
- if(!$idCounter){
- return $this->responseController->makeResponse(true, 'El ID del contador seleccionado no está encriptado correctamente.', [], 400);
- }
- $counter = DB::table('S002V01TCONA')->where([
- ['CONA_NULI', '=', $form['linea']],
- ['CONA_IDCO', '=', $idCounter]
- ])->first();
- if(is_null($counter)){
- return $this->responseController->makeResponse(true, 'El contador seleccionado no está registrado.', [], 404);
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- DB::table('S002V01TCONA')->where([
- ['CONA_IDCO', '=', $idCounter],
- ['CONA_NULI', '=', $form['linea']]
- ])->update([
- 'CONA_ESTA' => 'Eliminado',
- 'CONA_USMO' => $idUser,
- 'CONA_FEMO' => $nowStr
- ]);
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
-
- $idac = $this->functionsController->registerActivity(
- $form['linea'],
- 'S002V01M06COAC',
- 'S002V01F02ELCO',
- '-',
- 'Eliminación',
- "El usuario $name (" . $usr->USUA_IDUS . ") eliminó el contador #$idCounter.",
- $idUser,
- $nowStr,
- 'S002V01S01CONT'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $form['linea']);
- return $this->responseController->makeResponse(false, 'EXITO.');
- }
- public function updateActivator(Request $request) {
- DB::enableQueryLog();
- $validator = Validator::make($request->all(), [
- 'id_user' => 'required|string',
- 'linea' => 'required|integer',
- 'priority' => 'required|string|in:1,2,3,4',
- 'type' => 'required|string|in:CA,SI,ME,VA',
- 'condition' => 'required|json',
- 'counter' => 'required|string',
- 'id_activator' => 'required|string'
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- //$priorities = ['MA' => '1', 'AL' => '2', 'ME' => '3', 'BA' => '4'];
- $types = ['CA' => 'Calendario', 'SI' => 'Sintoma', 'ME' => 'Medida', 'VA' => 'Valor'];
- $form = $request->all();
- $idUser = $this->encryptionController->decrypt($form['id_user']);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $form['linea']],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $idCounter = $this->encryptionController->decrypt($form['counter']);
- if(!$idCounter){
- return $this->responseController->makeResponse(true, 'El ID del contador relacionado no está encriptado correctamente.', [], 400);
- }
- $counter = DB::table('S002V01TCONA')->where([
- ['CONA_NULI', '=', $form['linea']],
- ['CONA_IDCO', '=', $idCounter]
- ])->first();
- if(is_null($counter)){
- return $this->responseController->makeResponse(true, 'El contador relacionado no está registrado.', [], 404);
- }
- $idActivator = $this->encryptionController->decrypt($form['id_activator']);
- if(!$idActivator){
- return $this->responseController->makeResponse(true, 'El ID del activador seleccionado no está encriptado correctamente.', [], 400);
- }
- $activator = DB::table('S002V01TACTI')->where([
- ['ACTI_IDAC', '=', $idActivator],
- ['ACTI_NULI', '=', $form['linea']]
- ])->first();
- if(is_null($activator)){
- return $this->responseController->makeResponse(true, 'El activador seleccionado no está registrado.', [], 404);
- }
- $priority = $form['priority'];
- $type = $types[$form['type']];
- $conditionArr = json_decode($form['condition'], true);
- if(count($conditionArr) == 0){
- return $this->responseController->makeResponse(true, 'El arreglo de la condición de activación está vació.', [], 400);
- }else{
- switch($form['type']){
- case 'CA':
- if(count($conditionArr) != 5){
- return $this->responseController->makeResponse(true, 'El arreglo de la condición tiene un formato inválido.', [], 400);
- }
- $keysCA = ['startDate', 'startHour', 'repeat', 'customRepeat', 'color'];
- foreach($keysCA as $key){
- if(!array_key_exists($key, $conditionArr)){
- return $this->responseController->makeResponse(true, "El arreglo de la condición no contiene el elemento '$key'.", [], 400);
- }
- }
- break;
- case 'SI':
- if(count($conditionArr) != 6){
- return $this->responseController->makeResponse(true, 'El arreglo de la condición tiene un formato inválido.', [], 400);
- }
- $keysSI = ['sign', 'startDate', 'startHour', 'repeat', 'customRepeat', 'color'];
- foreach($keysSI as $key){
- if(!array_key_exists($key, $conditionArr)){
- return $this->responseController->makeResponse(true, "El arreglo de la condición no contiene el elemento '$key'.", [], 400);
- }
- }
- $idSymptom = $this->encryptionController->decrypt($conditionArr['sign']);
- if(!$idSymptom){
- return $this->responseController->makeResponse(true, 'El ID del síntoma relacionado no está encriptado correctamente.', [], 400);
- }
- $symptom = DB::table('S002V01TLISI')->where([
- ['LISI_IDSI', '=', $idSymptom],
- ['LISI_NULI', '=', $form['linea']]
- ])->first();
- if(is_null($symptom)){
- return $this->responseController->makeResponse(true, 'El síntoma relacionado no está registrado.', [], 404);
- }else if($symptom->LISI_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'El síntoma relacionado está eliminado.', [], 404);
- }
- $conditionArr['sign'] = $idSymptom;
- break;
- case 'ME':
- if(count($conditionArr) != 7){
- return $this->responseController->makeResponse(true, 'El arreglo de la condición tiene un formato inválido.', [], 400);
- }
- $keysSI = ['minValue', 'maxValue', 'magnitude', 'customMagnitude', 'unit', 'customUnit', 'color'];
- foreach($keysSI as $key){
- if(!array_key_exists($key, $conditionArr)){
- return $this->responseController->makeResponse(true, "El arreglo de la condición no contiene el elemento '$key'.", [], 400);
- }
- }
- $idMagnitude = $this->encryptionController->decrypt($conditionArr['magnitude']);
- if(!$idMagnitude){
- return $this->responseController->makeResponse(true, 'El ID de la magnitud relacionada no está encriptado correctamente.', [], 400);
- }
- $magnitude = DB::table('S002V01TMAGN')->where([
- ['MAGN_NULI', '=', $form['linea']],
- ['MAGN_IDMA', '=', $idMagnitude]
- ])->first();
- if(is_null($magnitude)){
- return $this->responseController->makeResponse(true, 'La magnitud relacionada no está registrado.', [], 404);
- }else if($magnitude->MAGN_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'La magnitud relacionada está eliminada.', [], 404);
- }
- $idUnit = $this->encryptionController->decrypt($conditionArr['unit']);
- if(!$idUnit){
- return $this->responseController->makeResponse(true, 'El ID de la unidad relacionada no está encriptado correctamente.', [], 400);
- }
- $unit = DB::table('S002V01TLIME')->where([
- ['LIME_IDME', '=', $idUnit],
- ['LIME_NULI', '=', $form['linea']],
- ['LIME_MAGN', '=', $idMagnitude],
- ])->first();
- if(is_null($unit)){
- return $this->responseController->makeResponse(true, 'La unidad relacionada no está registrado.', [], 404);
- }else if($unit->LIME_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'La unidad relacionada está eliminada.', [], 404);
- }
- $conditionArr['magnitude'] = $idMagnitude ;
- $conditionArr['unit'] = $idUnit;
- break;
- case 'VA':
- if(count($conditionArr) != 7){
- return $this->responseController->makeResponse(true, 'El arreglo de la condición tiene un formato inválido.', [], 400);
- }
- $keysVA = ['comparison', 'limitValue', 'magnitude', 'customMagnitude', 'unit', 'customUnit', 'color'];
- foreach($keysVA as $key){
- if(!array_key_exists($key, $conditionArr)){
- return $this->responseController->makeResponse(true, "El arreglo de la condición no contiene el elemento '$key'.", [], 400);
- }
- }
- $idMagnitude = $this->encryptionController->decrypt($conditionArr['magnitude']);
- if(!$idMagnitude){
- return $this->responseController->makeResponse(true, 'El ID de la magnitud relacionada no está encriptado correctamente.', [], 400);
- }
- $magnitude = DB::table('S002V01TMAGN')->where([
- ['MAGN_NULI', '=', $form['linea']],
- ['MAGN_IDMA', '=', $idMagnitude]
- ])->first();
- if(is_null($magnitude)){
- return $this->responseController->makeResponse(true, 'La magnitud relacionada no está registrado.', [], 404);
- }else if($magnitude->MAGN_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'La magnitud relacionada está eliminada.', [], 404);
- }
- $idUnit = $this->encryptionController->decrypt($conditionArr['unit']);
- if(!$idUnit){
- return $this->responseController->makeResponse(true, 'El ID de la unidad relacionada no está encriptado correctamente.', [], 400);
- }
- $unit = DB::table('S002V01TLIME')->where([
- ['LIME_IDME', '=', $idUnit],
- ['LIME_NULI', '=', $form['linea']],
- ['LIME_MAGN', '=', $idMagnitude],
- ])->first();
- if(is_null($unit)){
- return $this->responseController->makeResponse(true, 'La unidad relacionada no está registrado.', [], 404);
- }else if($unit->LIME_ESTA == 'Eliminado'){
- return $this->responseController->makeResponse(true, 'La unidad relacionada está eliminada.', [], 404);
- }
- $conditionArr['magnitude'] = $idMagnitude ;
- $conditionArr['unit'] = $idUnit;
- break;
- default:
- return $this->responseController->makeResponse(true, 'El tipo de contador es inválido.', [], 400);
- break;
- }
- }
- $conditionStr = json_encode($conditionArr);
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- DB::table('S002V01TACTI')->where([
- ['ACTI_IDAC', '=', $idActivator],
- ['ACTI_NULI', '=', $form['linea']]
- ])->update([
- 'ACTI_PRIO' => $priority,
- 'ACTI_TIAC' => $type,
- 'ACTI_COAC' => $conditionStr,
- 'ACTI_CORE' => $idCounter,
- 'ACTI_USMO' => $idUser,
- 'ACTI_FEMO' => $nowStr
- ]);
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
-
- $idac = $this->functionsController->registerActivity(
- $form['linea'],
- 'S002V01M06COAC',
- 'S002V01F01GEAC',
- 'S002V01P02REAC',
- 'Actualización',
- "El usuario $name (" . $usr->USUA_IDUS . ") actualizó el activador #$idActivator.",
- $idUser,
- $nowStr,
- 'S002V01S02ACTI'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $form['linea']);
- return $this->responseController->makeResponse(false, 'EXITO.');
- }
- public function deleteActivator(Request $request) {
- DB::enableQueryLog();
- $validator = Validator::make($request->all(), [
- 'id_user' => 'required|string',
- 'linea' => 'required|integer',
- 'id_activator' => 'required|string'
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- $form = $request->all();
- $idUser = $this->encryptionController->decrypt($form['id_user']);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $form['linea']],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $idActivator = $this->encryptionController->decrypt($form['id_activator']);
- if(!$idActivator){
- return $this->responseController->makeResponse(true, 'El ID del activador seleccionado no está encriptado correctamente.', [], 400);
- }
- $activator = DB::table('S002V01TACTI')->where([
- ['ACTI_IDAC', '=', $idActivator],
- ['ACTI_NULI', '=', $form['linea']]
- ])->first();
- if(is_null($activator)){
- return $this->responseController->makeResponse(true, 'El activador seleccionado no está registrado.', [], 404);
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- DB::table('S002V01TACTI')->where([
- ['ACTI_IDAC', '=', $idActivator],
- ['ACTI_NULI', '=', $form['linea']]
- ])->update([
- 'ACTI_ESTA' => 'Eliminado',
- 'ACTI_USMO' => $idUser,
- 'ACTI_FEMO' => $nowStr
- ]);
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
-
- $idac = $this->functionsController->registerActivity(
- $form['linea'],
- 'S002V01M06COAC',
- 'S002V01F01GEAC',
- 'S002V01P02REAC',
- 'Eliminación',
- "El usuario $name (" . $usr->USUA_IDUS . ") eliminó el activador #$idActivator.",
- $idUser,
- $nowStr,
- 'S002V01S02ACTI'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $form['linea']);
- return $this->responseController->makeResponse(false, 'EXITO.');
- }
- public function getCountersByEquipment($equipmentCode, $idUser, $line) {
- DB::enableQueryLog();
- $idUser = $this->encryptionController->decrypt($idUser);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $equipmentCode = $this->encryptionController->decrypt($equipmentCode);
- if(!$equipmentCode){
- return $this->responseController->makeResponse(true, 'El código del equipamiento relacionado no está encriptado correctamente.', [], 400);
- }
- $equipment = DB::table('S002V01TEQUI')->where([
- ['EQUI_COEQ', '=', $equipmentCode],
- ['EQUI_NULI', '=', $line]
- ])->first();
- if(is_null($equipment)){
- return $this->responseController->makeResponse(true, 'El equipamiento relacionado no está registrado.', [], 404);
- }
- $counters = DB::table('S002V01TCONA')->select([
- 'CONA_IDCO AS ID_CONTADOR',
- 'ACTI_IDAC AS ID_ACTIVADOR',
- 'ACTI_PRIO AS PRIORIDAD',
- 'CONA_ESTA AS ESTADO',
- 'CONA_FERE AS FECREG',
- 'CONA_USRE AS USRREG',
- 'CONA_FEMO AS FECMOD',
- 'CONA_USMO AS USRMOD'
- ])->join('S002V01TACTI', 'ACTI_CORE', '=', 'CONA_IDCO')->where([
- ['CONA_NULI', '=', $line],
- ['CONA_COEQ', '=', $equipmentCode]
- ])->orderBy('CONA_IDCO', 'asc')->get()->all();
- foreach($counters as $key=>$counter){
- $counter->ID_CONTADOR = $this->encryptionController->encrypt($counter->ID_CONTADOR);
- if(!is_null($counter->ID_ACTIVADOR)){
- $counter->ID_ACTIVADOR = $this->encryptionController->encrypt($counter->ID_ACTIVADOR);
- }
- $usrReg = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $counter->USRREG]
- ])->first();
- $nameReg = $this->functionsController->joinName($usrReg->USUA_NOMB, $usrReg->USUA_APPA, $usrReg->USUA_APMA);
- $counter->USRREG = $nameReg . " (" . $counter->USRREG . ")";
- if(!is_null($counter->USRMOD)){
- $usrMod = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $counter->USRMOD]
- ])->first();
- $nameMod = $this->functionsController->joinName($usrMod->USUA_NOMB, $usrMod->USUA_APPA, $usrMod->USUA_APMA);
- $counter->USRMOD = $nameMod . " (" . $counter->USRMOD . ")";
- }
- $counters[$key] = $counter;
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
- $idac = $this->functionsController->registerActivity(
- $line,
- 'S002V01M06COAC',
- 'S002V01F01GECO',
- 'S002V01P01COCO',
- 'Consulta',
- "El usuario $name (" . $usr->USUA_IDUS . ") consultó los contadores relacionados al equipamiento $equipmentCode.",
- $idUser,
- $nowStr,
- 'S002V01S01CONT'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $line);
- return $this->responseController->makeresponse(false, "EXITO", $counters);
- }
- public function getCounterLastMeasure($idCounter, $idUser, $line) {
- DB::enableQueryLog();
- $idUser = $this->encryptionController->decrypt($idUser);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $idCounter = $this->encryptionController->decrypt($idCounter);
- if(!$idCounter){
- return $this->responseController->makeResponse(true, 'El ID del contador no está encriptado correctamente.', [], 400);
- }
- $counter = DB::table('S002V01TCONA')->where([
- ['CONA_IDCO', '=', $idCounter],
- ['CONA_NULI', '=', $line]
- ])->first();
- if(is_null($counter)){
- return $this->responseController->makeResponse(true, 'El contador solicitado no está registrado.', [], 404);
- }
- $measure = DB::table('S002V01TMEDI')->select([
- 'MEDI_IDME AS ID_MEDIDA',
- 'MEDI_CORE AS CONTADOR',
- 'MEDI_VALO AS VALOR',
- 'MEDI_WSRE AS ID_SERVICIO_WEB',
- 'LSWE_URLX AS URL_SERVICIO_WEB',
- 'MEDI_HORE AS HORA_REGISTRO',
- ])->join('S002V01TLSWE', 'LSWE_IDSW', '=', 'MEDI_WSRE')->where([
- ['MEDI_NULI', '=', $line],
- ['MEDI_CORE', '=', $idCounter]
- ])->orderBy('MEDI_HORE', 'desc')->first();
- if(!is_null($measure)){
- $measure->ID_MEDIDA = $this->encryptionController->encrypt($measure->ID_MEDIDA);
- $measure->CONTADOR = $this->encryptionController->encrypt($measure->CONTADOR);
- $measure->ID_SERVICIO_WEB = $this->encryptionController->encrypt($measure->ID_SERVICIO_WEB);
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
- $idac = $this->functionsController->registerActivity(
- $line,
- 'S002V01M06COAC',
- 'S002V01F01GECO',
- 'S002V01P01COCO',
- 'Consulta',
- "El usuario $name (" . $usr->USUA_IDUS . ") consultó las medidas relacionadas al contador #$idCounter.",
- $idUser,
- $nowStr,
- 'S002V01S01CONT'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $line);
- return $this->responseController->makeresponse(false, "EXITO", is_null($measure) ? [] : [$measure]);
- }
- public function getCounterMeasures($idCounter, $order, $direction, $limit, $offset, $idUser, $line) {
- DB::enableQueryLog();
- $idUser = $this->encryptionController->decrypt($idUser);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $idCounter = $this->encryptionController->decrypt($idCounter);
- if(!$idCounter){
- return $this->responseController->makeResponse(true, 'El ID del contador no está encriptado correctamente.', [], 400);
- }
- $counter = DB::table('S002V01TCONA')->where([
- ['CONA_IDCO', '=', $idCounter],
- ['CONA_NULI', '=', $line]
- ])->first();
- if(is_null($counter)){
- return $this->responseController->makeResponse(true, 'El contador solicitado no está registrado.', [], 404);
- }
-
- $enabledOrders = [
- 'ID_MEDIDA' => 'MEDI_IDME',
- 'VALOR' => 'MEDI_VALO',
- 'FECREG' => 'MEDI_HORE'
- ];
- if(!isset($enabledOrders[$order])){
- return $this->responseController->makeResponse(true, 'El orden solicitado para los registros es inválido.', [], 404);
- }
- $orderDB = $enabledOrders[$order];
- $enbaledDirections = [
- 'D' => 'desc',
- 'A' => 'asc'
- ];
- if(!isset($enbaledDirections[$direction])){
- return $this->responseController->makeResponse(true, 'La dirección del orden solicitado para los registros es inválida.', [], 404);
- }
- $directionDB = $enbaledDirections[$direction];
- $limit = intval($limit);
- $offset = intval($offset);
- $measures = DB::table('S002V01TMEDI')->select([
- 'MEDI_IDME AS ID_MEDIDA',
- 'MEDI_CORE AS CONTADOR',
- 'MEDI_VALO AS VALOR',
- 'MEDI_WSRE AS ID_SERVICIO_WEB',
- 'LSWE_URLX AS URL_SERVICIO_WEB',
- 'MEDI_HORE AS HORA_REGISTRO',
- ])->join('S002V01TLSWE', 'LSWE_IDSW', '=', 'MEDI_WSRE')->where([
- ['MEDI_NULI', '=', $line],
- ['MEDI_CORE', '=', $idCounter]
- ])->orderBy($orderDB, $directionDB)
- ->offset($offset)->limit($limit)->get()->all();
- foreach($measures as $key=>$measure){
- $measure->ID_MEDIDA = $this->encryptionController->encrypt($measure->ID_MEDIDA);
- $measure->CONTADOR = $this->encryptionController->encrypt($measure->CONTADOR);
- $measure->ID_SERVICIO_WEB = $this->encryptionController->encrypt($measure->ID_SERVICIO_WEB);
- $measures[$key];
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
- $idac = $this->functionsController->registerActivity(
- $line,
- 'S002V01M06COAC',
- 'S002V01F01GECO',
- 'S002V01P01COCO',
- 'Consulta',
- "El usuario $name (" . $usr->USUA_IDUS . ") consultó las medidas relacionadas al contador #$idCounter.",
- $idUser,
- $nowStr,
- 'S002V01S01CONT'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $line);
- return $this->responseController->makeresponse(false, "EXITO", $measures);
- }
- public function getCounterMeasuresLength($idCounter, $idUser, $line) {
- DB::enableQueryLog();
- $idUser = $this->encryptionController->decrypt($idUser);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $idCounter = $this->encryptionController->decrypt($idCounter);
- if(!$idCounter){
- return $this->responseController->makeResponse(true, 'El ID del contador no está encriptado correctamente.', [], 400);
- }
- $counter = DB::table('S002V01TCONA')->where([
- ['CONA_IDCO', '=', $idCounter],
- ['CONA_NULI', '=', $line]
- ])->first();
- if(is_null($counter)){
- return $this->responseController->makeResponse(true, 'El contador solicitado no está registrado.', [], 404);
- }
- $measures = DB::table('S002V01TMEDI')->select([
- 'MEDI_IDME AS ID_MEDIDA',
- 'MEDI_CORE AS CONTADOR',
- 'MEDI_VALO AS VALOR',
- 'MEDI_WSRE AS ID_SERVICIO_WEB',
- 'LSWE_URLX AS URL_SERVICIO_WEB',
- 'MEDI_HORE AS HORA_REGISTRO',
- ])->join('S002V01TLSWE', 'LSWE_IDSW', '=', 'MEDI_WSRE')->where([
- ['MEDI_NULI', '=', $line],
- ['MEDI_CORE', '=', $idCounter]
- ])->get()->all();
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
- $idac = $this->functionsController->registerActivity(
- $line,
- 'S002V01M06COAC',
- 'S002V01F01GECO',
- 'S002V01P01COCO',
- 'Consulta',
- "El usuario $name (" . $usr->USUA_IDUS . ") consultó las medidas relacionadas al contador #$idCounter.",
- $idUser,
- $nowStr,
- 'S002V01S01CONT'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $line);
- return $this->responseController->makeresponse(false, "EXITO", ['MEASURES_LENGTH' => count($measures)]);
- }
- public function getRelatedCounters($idCounter, $idUser, $line) {
- DB::enableQueryLog();
- $idUser = $this->encryptionController->decrypt($idUser);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $line],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $idCounter = $this->encryptionController->decrypt($idCounter);
- if(!$idCounter){
- return $this->responseController->makeResponse(true, 'El ID del contador no está encriptado correctamente.', [], 400);
- }
- $counter = DB::table('S002V01TCONA')->where([
- ['CONA_IDCO', '=', $idCounter],
- ['CONA_NULI', '=', $line]
- ])->first();
- if(is_null($counter)){
- return $this->responseController->makeResponse(true, 'El contador solicitado no está registrado.', [], 404);
- }
- var_dump($idCounter);
- }
- public function relateCounters(Request $request) {
- DB::enableQueryLog();
- $validator = Validator::make($request->all(), [
- 'id_user' => 'required|string',
- 'linea' => 'required|integer',
- 'id_counter' => 'required|string',
- 'related_counters' => 'required|json'
- ]);
- if($validator->fails()){
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors(
- $validator->errors()->messages()
- ),
- 401
- );
- }
- $form = $request->all();
- $idUser = $this->encryptionController->decrypt($form['id_user']);
- if(!$idUser){
- return $this->responseController->makeResponse(true, 'El ID del usuario que realizó la petición no está encriptado correctamente.', [], 400);
- }
- $usr = DB::table('S002V01TUSUA')->where([
- ['USUA_NULI', '=', $form['linea']],
- ['USUA_IDUS', '=', $idUser],
- ])->first();
- if(is_null($usr)){
- return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
- }
- $idCounter = $this->encryptionController->decrypt($form['id_counter']);
- if(!$idCounter){
- return $this->responseController->makeResponse(true, 'El ID del contador seleccionado no está encriptado correctamente.', [], 400);
- }
- $counter = DB::table('S002V01TCONA')->where([
- ['CONA_NULI', '=', $form['linea']],
- ['CONA_IDCO', '=', $idCounter]
- ])->first();
- if(is_null($counter)){
- return $this->responseController->makeResponse(true, 'El contador seleccionado no está registrado.', [], 404);
- }
- $relatedCountersRegisteredArr = json_decode($counter->CONA_COVI, true);
- $relatedCountersArr = json_decode($form['related_counters'], true);
- if(!is_array($relatedCountersArr)){
- return $this->responseController->makeResponse(true, 'El campo de contadores vinculados no es un arreglo.', [], 400);
- }
- $now = $this->functionsController->now();
- $nowStr = $now->toDateTimeString();
- $relatedCountersArrDec = [];
- foreach($relatedCountersArr as $relatedCounterEnc){
- $relatedCounterDec = $this->encryptionController->decrypt($relatedCounterEnc);
- $relatedCounter = DB::table('S002V01TCONA')->where([
- ['CONA_IDCO', '=', $relatedCounterDec],
- ['CONA_NULI', '=', $form['linea']]
- ])->first();
- if(is_null($relatedCounter)){
- return $this->responseController->makeResponse(true, "El contador #$relatedCounterDec no está registrado.", [], 404);
- }
- if(!in_array($relatedCounter, $relatedCountersRegisteredArr)){
- $relatedCountersRegisteredArr[] = $relatedCounterDec;
- }
- $relatedCounterRelatedCountersArr = json_decode($relatedCounter->CONA_COVI);
- if(!in_array($idCounter, $relatedCounterRelatedCountersArr)){
- $relatedCounterRelatedCountersArr[] = $idCounter;
- }
- $relatedCounterCOVI = json_encode($relatedCounterRelatedCountersArr);
- DB::table('S002V01TCONA')->where([
- ['CONA_IDCO', '=', $relatedCounterDec],
- ['CONA_NULI', '=', $form['linea']]
- ])->update([
- 'CONA_COVI' => $relatedCounterCOVI,
- 'CONA_USMO' => $idUser,
- 'CONA_FEMO' => $nowStr
- ]);
- $relatedCountersArrDec[] = $relatedCounterDec;
- }
- $countersWithRelation = DB::table('S002V01TCONA')->where('CONA_NULI', '=', $form['linea'])
- ->whereJsonContains('CONA_COVI', $idCounter)->get()->all();
- foreach($countersWithRelation as $counterWithRelation){
- if(!in_array($counterWithRelation->CONA_IDCO, $relatedCountersArrDec)){
- $counterWithRelationRelatedCounters = json_decode($counterWithRelation->CONA_COVI, true);
- $counterWithRelationRelatedCountersFn = [];
-
- foreach($counterWithRelationRelatedCounters as $counterWithRelationRelatedCounter){
- if($idCounter != $counterWithRelationRelatedCounter){
- $counterWithRelationRelatedCountersFn[] = $counterWithRelationRelatedCounter;
- }
- }
- $counterWithRelationCOVI = json_encode($counterWithRelationRelatedCountersFn);
- DB::table('S002V01TCONA')->where([
- ['CONA_IDCO', '=', $counterWithRelation->CONA_IDCO],
- ['CONA_NULI', '=', $form['linea']]
- ])->update([
- 'CONA_COVI' => $counterWithRelationCOVI,
- 'CONA_USMO' => $idUser,
- 'CONA_FEMO' => $nowStr
- ]);
- }
- }
- $relatedCountersFn = [];
- foreach($relatedCountersRegisteredArr as $relatedCounterRegistered){
- if(in_array($relatedCounterRegistered, $relatedCountersArrDec) && !in_array($relatedCounterRegistered, $relatedCountersFn)){
- $relatedCountersFn[] = $relatedCounterRegistered;
- }
- }
- $covi = json_encode($relatedCountersFn);
- DB::table('S002V01TCONA')->where([
- ['CONA_IDCO', '=', $idCounter],
- ['CONA_NULI', '=', $form['linea']]
- ])->update([
- 'CONA_COVI' => $covi,
- 'CONA_USMO' => $idUser,
- 'CONA_FEMO' => $nowStr
- ]);
- $actions = DB::getQueryLog();
- $name = $this->functionsController->joinName($usr->USUA_NOMB, $usr->USUA_APPA, $usr->USUA_APMA);
-
- $idac = $this->functionsController->registerActivity(
- $form['linea'],
- 'S002V01M06COAC',
- 'S002V01F01GECO',
- 'S002V01P02RECO',
- 'Actualización',
- "El usuario $name (" . $usr->USUA_IDUS . ") actualizó los contadores vinculados al contador #$idCounter.",
- $idUser,
- $nowStr,
- 'S002V01S01CONT'
- );
- $this->functionsController->registerLog($actions, $idUser, $nowStr, $idac, $form['linea']);
- return $this->responseController->makeResponse(false, 'EXITO.');
- }
- }
|