| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738 |
- <?php
- /*
- Desarrollador: Ing. Jean Jairo Benitez Meza
- Ultima Modificación: 11/04/2023
- Módulo: Formularios Dinámicos
- */
- 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;
- use App\Http\Controllers\ResourcesController;
- use Illuminate\Support\Facades\Schema;
- class DynamicFormController extends Controller
- {
- private $responseController;
- private $encController;
- private $functionsController;
- private $resourcesController;
- public function __construct(){
- $this->responseController = new ResponseController();
- $this->encController = new EncryptionController();
- $this->functionsController = new FunctionsController();
- $this->resourcesController = new ResourcesController();
- }
- public function getForms($user, $line){
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try{
- $arrForms = DB::table('S002V01TFODI')
- ->where('FODI_NULI', '=', $line)
- ->join('S002V01TMODU', 'MODU_IDMO', '=', 'FODI_IDMO')
- ->get([
- 'FODI_NUFO AS CODIGO_FORMULARIO',
- 'FODI_TIRE AS TITULO_REGISTRO',
- 'FODI_TIMO AS TITULO_MODIFICACION',
- 'MODU_NOMO AS MODULO',
- 'FODI_ESTA AS ESTADO',
- 'FODI_WOFL AS WORKFLOW',
- 'FODI_USRE AS USUARIO_REGISTRA',
- 'FODI_FERE AS FECHA_REGISTRA',
- 'FODI_USMO AS USUARIO_MODIFICA',
- 'FODI_FEMO AS FECHA_MODIFICA',
- ]);
- $arrForms = json_decode(json_encode($arrForms), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, "ERR_DYNFORM_GET000: No se pudo realizar la consulta a la base.", $th->getMessage(), 500);
- }
- $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrForms, $line);
- if ($responseCheckLatestUpdate['error']) {
- return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
- }
- $arrForms = $responseCheckLatestUpdate['response'];
- return $this->responseController->makeResponse(false, "ÉXITO", $arrForms);
- }
- public function getInformationDataSelect($tableName, $columnValue, $columnName, $user, $line){
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
-
- $tableName = $this->encController->decrypt($tableName);
- if (is_null($tableName)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el nombre de la tabla.', [], 500);
- }
- $columnValue = $this->encController->decrypt($columnValue);
- if (is_null($columnValue)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la columna del valor.', [], 500);
- }
- $columnName = $this->encController->decrypt($columnName);
- if (is_null($columnName)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener la columna del nombre.', [], 500);
- }
- $arrResponseNumberLine = $this->getNumberLineColumn($tableName);
- if ($arrResponseNumberLine['error']) {
- return $this->responseController->makeResponse(true, $arrResponseNumberLine['msg'], $arrResponseNumberLine['response'], 500);
- }
- $numberLineColumn = $arrResponseNumberLine['response'];
- try {
- $arrColumn = DB::table($tableName)
- ->where($numberLineColumn, '=', $line)
- ->get([
- "{$columnValue} AS VALOR_CAMPO",
- "{$columnName} AS NOMBRE_CAMPO",
- ]);
- $arrColumn = json_decode(json_encode($arrColumn), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, "Ocurrió un error al obtener las columnas de la tabla {$tableName}.", $th->getMessage(), 500);
- }
- return $this->responseController->makeResponse(false, "ÉXITO", $arrColumn);
- }
- public function registerForms(Request $request) {
- $validator = Validator::make($request->all(), [
- 'MODULO' => 'required|string',
- 'REGISTRO_FORMULARIO' => 'required|string',
- 'MODIFICA_FORMULARIO' => 'required|string',
- 'TABLA' => 'required|array',
- 'COLUMNAS' => 'required|array',
- 'DATA_FORM' => 'required|array',
- 'INFO_VALIDATE' => 'required|array',
- 'PERSONALITY_COLUMNS' => 'array',
- 'NUMERO_LINEA' => 'required|integer',
- 'USUARIO' => 'required|string'
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- $dataForm = [
- 'DATA_BASE' => [
- 'TABLA' => $requestData['TABLA'],
- 'COLUMNAS' =>$requestData['COLUMNAS'],
- ],
- 'PERSONALITY_COLUMNS' => $requestData['PERSONALITY_COLUMNS'],
- 'INFO_VALIDATE' => $requestData['INFO_VALIDATE'],
- 'COMPONENTS' => $requestData['DATA_FORM'],
- ];
- $strDataForm = json_encode($dataForm);
-
- try {
- $validateRegister = DB::table('S002V01TFODI')->insert([
- 'FODI_NULI' => $requestData['NUMERO_LINEA'],
- 'FODI_IDMO' => $requestData['MODULO'],
- 'FODI_TIRE' => $requestData['REGISTRO_FORMULARIO'],
- 'FODI_TIMO' => $requestData['MODIFICA_FORMULARIO'],
- 'FODI_DAFO' => $strDataForm,
- 'FODI_USRE' => $user,
- 'FODI_FERE' => $currentDate,
- 'FODI_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "Ocurrió un error al registrar los datos del formulario dinámico.", $th->getMessage(), 401);
- }
-
- if (!$validateRegister) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "No se pudo registrar los datos del formulario dinámico.", [], 401);
- }
-
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
- }
- public function getFormById($idForm, $user, $line) {
-
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $idForm = $this->encController->decrypt($idForm);
- if (is_null($idForm)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el identificador del formulario.', [], 500);
- }
- try {
- $exists = DB::table('S002V01TFODI')
- ->where('FODI_NUFO', '=', $idForm)
- ->where('FODI_NULI', '=', $line)
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "Ocurrió un error al verificar el formulario dinámico.", $th->getMessage(), 401);
- }
- if (!$exists) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "El formulario dinámico no existe.", [], 401);
- }
- try {
- $arrForms = DB::table('S002V01TFODI')
- ->where('FODI_NUFO', '=', $idForm)
- ->where('FODI_NULI', '=', $line)
- ->first([
- 'FODI_NUFO AS NUMERO_FORMULARIO',
- 'FODI_IDMO AS ID_MODULO',
- 'FODI_TIRE AS TITULO_REGISTRO',
- 'FODI_TIMO AS TITULO_MODIFICACION',
- 'FODI_DAFO AS DATOS_FORMULARIO',
- 'FODI_ESTA AS ESTADO',
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener los datos del formulario.', $th->getMessage(), 500);
- }
- $arrForms->DATOS_FORMULARIO = json_decode($arrForms->DATOS_FORMULARIO);
- return $this->responseController->makeResponse(false, "ÉXITO", $arrForms);
- }
- public function updateForms(Request $request, $idForm) {
- $validator = Validator::make($request->all(), [
- 'MODULO' => 'required|string',
- 'REGISTRO_FORMULARIO' => 'required|string',
- 'MODIFICA_FORMULARIO' => 'required|string',
- 'TABLA' => 'required|array',
- 'COLUMNAS' => 'required|array',
- 'DATA_FORM' => 'required|array',
- 'INFO_VALIDATE' => 'required|array',
- 'PERSONALITY_COLUMNS' => 'array',
- 'NUMERO_LINEA' => 'required|integer',
- 'USUARIO' => 'required|string'
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- $idForm = $this->encController->decrypt($idForm);
- if (is_null($idForm)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el identificador del formulario.', [], 500);
- }
- try {
- $exists = DB::table('S002V01TFODI')
- ->where('FODI_NUFO', '=', $idForm)
- ->where('FODI_NULI', '=', $requestData['NUMERO_LINEA'])
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "Ocurrió un error al verificar el formulario dinámico.", $th->getMessage(), 401);
- }
- if (!$exists) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "El formulario dinámico no existe.", [], 401);
- }
- $dataForm = [
- 'DATA_BASE' => [
- 'TABLA' => $requestData['TABLA'],
- 'COLUMNAS' =>$requestData['COLUMNAS'],
- ],
- 'PERSONALITY_COLUMNS' => $requestData['PERSONALITY_COLUMNS'],
- 'INFO_VALIDATE' => $requestData['INFO_VALIDATE'],
- 'COMPONENTS' => $requestData['DATA_FORM'],
- ];
- $strDataForm = json_encode($dataForm);
-
- try {
- $validateUpdate = DB::table('S002V01TFODI')
- ->where('FODI_NUFO', '=', $idForm)
- ->where('FODI_NULI', '=', $requestData['NUMERO_LINEA'])
- ->update([
- 'FODI_IDMO' => $requestData['MODULO'],
- 'FODI_TIRE' => $requestData['REGISTRO_FORMULARIO'],
- 'FODI_TIMO' => $requestData['MODIFICA_FORMULARIO'],
- 'FODI_DAFO' => $strDataForm,
- 'FODI_USMO' => $user,
- 'FODI_FEMO' => $currentDate,
- 'FODI_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "Ocurrió un error al modificar los datos del formulario dinámico.", $th->getMessage(), 401);
- }
-
- if (!$validateUpdate) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "No se pudo modificar los datos del formulario dinámico.", [], 401);
- }
-
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
- }
- public function registerDynamicForm(Request $request) {
- $validator = Validator::make($request->all(), [
- 'IDFORM' => 'required|string',
- 'DATAFORM' => 'required',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $idForm = $this->encController->decrypt($requestData['IDFORM']);
- if (is_null($idForm)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el identificador del formulario.', [], 500);
- }
- $arrDataInsert = [];
- $arrDataInsertPersonality = [];
- foreach ($requestData['DATAFORM'] as $keyColumn => $dataForm) {
- $codeTable = substr($keyColumn, 0, 4);
- $table = "S002V01T{$codeTable}";
- if (strlen($keyColumn) === 9) {
- $arrDataInsert[$table][$keyColumn] = $dataForm;
- } else if (strlen($keyColumn) === 25) {
- $arrDataInsertPersonality[$table][$keyColumn] = $dataForm;
- } else {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "El formato de la columna {$dataForm} no es válido.", [], 500);
- }
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- foreach ($arrDataInsert as $table => $dataColumn) {
- $codeTable = substr($table, 8, 12);
-
- if ( !empty((array) $arrDataInsertPersonality) ) {
- $INEX = "{$codeTable}_INEX";
- $dataColumn[$INEX] = json_encode($arrDataInsertPersonality[$table]);
- }
- $NULI = "{$codeTable}_NULI";
- $FERE = "{$codeTable}_FERE";
- $USFE = "{$codeTable}_USRE";
- $FEAR = "{$codeTable}_FEAR";
- $dataColumn[$NULI] = $requestData['NUMERO_LINEA'];
- $dataColumn[$FERE] = $currentDate;
- $dataColumn[$USFE] = $user;
- $dataColumn[$FEAR] = DB::raw('CURRENT_TIMESTAMP');
- try {
- $validateRegister = DB::table($table)->insert($dataColumn);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "Ocurrió un error al registrar el formulario en la tabla {$table}.", $th->getMessage(), 500);
- }
- if (!$validateRegister) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "No se pudo registrar el formulario en la tabla {$table}.", [], 500);
- }
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
- }
- public function getFormDataById(Request $request, $idForm, $user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $idForm = $this->encController->decrypt($idForm);
- if (is_null($idForm)) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el identificador del formulario.', [], 500);
- }
- $requestData = $request->all();
- try {
- $exists = DB::table('S002V01TFODI')
- ->where('FODI_NUFO', '=', $idForm)
- ->where('FODI_NULI', '=', $line)
- ->exists();
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "Ocurrió un error al verificar el formulario dinámico.", $th->getMessage(), 401);
- }
- if (!$exists) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "El formulario dinámico no existe.", [], 401);
- }
- try {
- $arrForms = DB::table('S002V01TFODI')
- ->where('FODI_NUFO', '=', $idForm)
- ->where('FODI_NULI', '=', $line)
- ->first([
- 'FODI_NUFO AS NUMERO_FORMULARIO',
- 'FODI_IDMO AS ID_MODULO',
- 'FODI_TIRE AS TITULO_REGISTRO',
- 'FODI_TIMO AS TITULO_MODIFICACION',
- 'FODI_DAFO AS DATOS_FORMULARIO',
- 'FODI_ESTA AS ESTADO',
- ]);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener los datos del formulario.', $th->getMessage(), 500);
- }
- $arrForms->DATOS_FORMULARIO = json_decode($arrForms->DATOS_FORMULARIO);
- $arrWhere = [];
- foreach ($requestData['VALUES'] as $value) {
- $codeTable = substr($value['COLUMN'], 0, 4);
- $tableName = "S002V01T{$codeTable}";
- $arrWhere[$tableName][] = [ $value['COLUMN'], '=', $value['VALUE'] ];
- }
- $arrValues = [];
- foreach ($arrWhere as $table => $where) {
- try {
- $arrValues[$table] = DB::table($table)->where($where)->first();
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener los datos del formulario.', $th->getMessage(), 500);
- }
- }
- foreach ($arrForms->DATOS_FORMULARIO->DATA_BASE->TABLA as $key => $table) {
- $arrColumnsValue = (array) $arrValues[$table];
- $codeTable = substr($table, 8, 12);
- $columnInformationExtra = "{$codeTable}_INEX";
- if (array_key_exists($columnInformationExtra, $arrColumnsValue) && !is_null($arrColumnsValue[$columnInformationExtra])) {
- $arrExtraColumn = (array) json_decode($arrColumnsValue[$columnInformationExtra]);
- foreach ($arrForms->DATOS_FORMULARIO->COMPONENTS as $key => $dataComponent) {
- $columns = $dataComponent->COMPONENT->COLUMNA;
- if (array_key_exists($columns, $arrExtraColumn) && array_key_exists('VALOR_DEFECTO', (array) $dataComponent->COMPONENT)) {
- $dataComponent->COMPONENT->VALOR_DEFECTO = $arrExtraColumn[$columns];
- }
- }
- }
- foreach ($arrForms->DATOS_FORMULARIO->COMPONENTS as $key => $dataComponent) {
- $columns = $dataComponent->COMPONENT->COLUMNA;
- if (array_key_exists($columns, $arrColumnsValue) && array_key_exists('VALOR_DEFECTO', (array) $dataComponent->COMPONENT)) {
- $dataComponent->COMPONENT->VALOR_DEFECTO = $arrColumnsValue[$columns];
- }
- }
- }
- return $this->responseController->makeResponse(false, "ÉXITO", $arrForms);
- }
- public function updateDynamicForm(Request $request) {
- $validator = Validator::make($request->all(), [
- 'IDFORM' => 'required|string',
- 'DATAFORM' => 'required',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- 'WHERE' => 'required|array',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $idForm = $this->encController->decrypt($requestData['IDFORM']);
- if (is_null($idForm)) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, 'Ocurrió un error al obtener el identificador del formulario.', [], 500);
- }
- $arrDataUpdate = [];
- $arrDataUpdatePersonality = [];
- foreach ($requestData['DATAFORM'] as $keyColumn => $dataForm) {
- $codeTable = substr($keyColumn, 0, 4);
- $table = "S002V01T{$codeTable}";
- if (strlen($keyColumn) === 9) {
- $arrDataUpdate[$table][$keyColumn] = $dataForm;
- } else if (strlen($keyColumn) === 25) {
- $arrDataUpdatePersonality[$table][$keyColumn] = $dataForm;
- } else {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "El formato de la columna {$dataForm} no es válido.", [], 500);
- }
- }
- $arrWhere = [];
- foreach ($requestData['WHERE'] as $value) {
- $codeTable = substr($value['COLUMN'], 0, 4);
- $tableName = "S002V01T{$codeTable}";
- $arrWhere[$tableName][] = [ $value['COLUMN'], '=', $value['VALUE'] ];
- }
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- foreach ($arrDataUpdate as $table => $dataColumn) {
- $codeTable = substr($table, 8, 12);
-
- if ( !empty((array) $arrDataUpdatePersonality) ) {
- $INEX = "{$codeTable}_INEX";
- $dataColumn[$INEX] = json_encode($arrDataUpdatePersonality[$table]);
- }
- $NULI = "{$codeTable}_NULI";
- $FEMO = "{$codeTable}_FEMO";
- $USMO = "{$codeTable}_USMO";
- $FEAR = "{$codeTable}_FEAR";
- $dataColumn[$NULI] = $requestData['NUMERO_LINEA'];
- $dataColumn[$FEMO] = $currentDate;
- $dataColumn[$USMO] = $user;
- $dataColumn[$FEAR] = DB::raw('CURRENT_TIMESTAMP');
- $contentWhere = $arrWhere[$table];
- try {
- $validateWhere = DB::table($table)->where($contentWhere)->update($dataColumn);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "Ocurrió un error al registrar el formulario en la tabla {$table}.", $th->getMessage(), 500);
- }
- if (!$validateWhere) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "No se pudo registrar el formulario en la tabla {$table}.", [], 500);
- }
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Modificación Exitosa");
-
- }
- public function getTables($user, $line) {
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- try {
- $arrTables = DB::table('S002V01TTABL')
- ->where('TABL_NULI', '=', $line)
- ->where('TABL_ESTA', '=', 'Activo')
- ->get([
- 'TABL_IDTA AS CODIGO_TABLA',
- 'TABL_NOMB AS NOMBRE_TABLA',
- ]);
- $arrTables = json_decode(json_encode($arrTables), true);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(true, "ERR_TABLE_GET000: Ocurrió un error al consultar los datos.", $th->getMessage(), 500);
- }
- foreach ($arrTables as $key => $table) {
- $arrDataColumns = DB::select("SHOW FULL COLUMNS FROM {$table['NOMBRE_TABLA']}");
- $arrColumns = array();
- foreach ($arrDataColumns as $dataColumn) {
- $arrColumns[] = [
- 'COLUMN' => $dataColumn->Field,
- 'TYPE_COLUMN' => $dataColumn->Type,
- 'COMMENTS' => $dataColumn->Comment,
- 'NULLABLE' => $dataColumn->Null,
- ];
- }
- $table['COLUMNS'] = $arrColumns;
- $arrTables[$key] = $table;
- }
- return $this->responseController->makeResponse(false, "ÉXITO", $arrTables);
- }
- public function registerTable(Request $request) {
- $validator = Validator::make($request->all(), [
- 'TABLA' => 'required|string',
- 'USUARIO' => 'required|string',
- 'NUMERO_LINEA' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->responseController->makeResponse(
- true,
- "Se encontraron uno o más errores.",
- $this->responseController->makeErrors($validator->errors()->messages()),
- 401
- );
- }
- DB::beginTransaction();
- $requestData = $request->all();
- $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
- if ($arrResponseCheckUser['error']) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
- }
- $user = $arrResponseCheckUser['response'];
- $now = $this->functionsController->now();
- $currentDate = $now->toDateTimeString();
- $requestData['TABLA'] = $this->encController->decrypt($requestData['TABLA']);
- if (is_null($requestData['TABLA'])) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "Ocurrió un error al desencriptar el nombre de la tabla.", [], 500);
- }
- try {
- $validateInsert = DB::table('S002V01TTABL')->insert([
- 'TABL_NULI' => $requestData['NUMERO_LINEA'],
- 'TABL_NOMB' => $requestData['TABLA'],
- 'TABL_USRE' => $user,
- 'TABL_FERE' => $currentDate,
- 'TABL_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
- ]);
- } catch (\Throwable $th) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "Ocurrió un error al insertar el nombre de la tabla.", $th->getMessage(), 500);
- }
-
- if (!$validateInsert) {
- DB::rollBack();
- return $this->responseController->makeResponse(true, "No se pudo insertar el nombre de la tabla.", [], 500);
- }
- DB::commit();
- return $this->responseController->makeResponse(false, "ÉXITO: Registro correcto");
- }
- private function getNumberLineColumn(string $table) {
- $arrResponse = array('error' => false, 'msg' => 'ÉXITO: Consulta exitosa', 'response' => null);
- $table = trim($table);
- if ( strlen($table) !== 12 ) {
- $arrResponse['error'] = true;
- $arrResponse['msg'] = "El formato de la tabla no es correcto.";
- return $arrResponse;
- }
- try {
- $columns = DB::getSchemaBuilder()->getColumnListing($table);
- } catch (\Throwable $th) {
- $arrResponse['error'] = true;
- $arrResponse['msg'] = "Ocurrió un error al obtener las columnas de la tabla {$table}.";
- return $arrResponse;
- }
- $codeTable = substr($table, 8, 12);
- $codeNumberLine = "{$codeTable}_NULI";
- if ( in_array($codeNumberLine, $columns) ) {
- $arrResponse['error'] = true;
- $arrResponse['msg'] = "El número de línea no existe en la tabla {$table}";
- return $arrResponse;
- }
- $arrResponse['response'] = $codeNumberLine;
- return $arrResponse;
- }
- }
|