|
@@ -201,17 +201,127 @@ class ProcessManagementController extends Controller
|
|
|
return $this->responseController->makeResponse(false, "ÉXITO: Workflow actualizado exitosamente");
|
|
return $this->responseController->makeResponse(false, "ÉXITO: Workflow actualizado exitosamente");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public function changeWorkflowStatus(Request $request) {
|
|
|
|
|
+ $validator = Validator::make($request->all(), [
|
|
|
|
|
+ 'ESTADO' => 'required|string|in:Activo,Eliminado',
|
|
|
|
|
+ 'COMENTARIO_CAMBIO' => 'nullable|string',
|
|
|
|
|
+ 'USUARIO' => 'required|string',
|
|
|
|
|
+ 'NUMERO_LINEA' => 'required|integer',
|
|
|
|
|
+ 'ID_WORKFLOW' => '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'];
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ $currentWorkflow = (array) DB::table('S002V01TWORK')
|
|
|
|
|
+ ->where('WORK_IDWO', '=', $requestData['ID_WORKFLOW'])
|
|
|
|
|
+ ->where('WORK_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
|
|
+ ->first([
|
|
|
|
|
+ 'WORK_NOWO',
|
|
|
|
|
+ 'WORK_DESC',
|
|
|
|
|
+ 'WORK_ESTA',
|
|
|
|
|
+ 'WORK_VERS'
|
|
|
|
|
+ ]);
|
|
|
|
|
+ } catch (\Throwable $th) {
|
|
|
|
|
+ DB::rollBack();
|
|
|
|
|
+ return $this->responseController->makeResponse(true, "Ocurrió un error al obtener el workflow.", $th->getMessage(), 500);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (empty($currentWorkflow)) {
|
|
|
|
|
+ DB::rollBack();
|
|
|
|
|
+ return $this->responseController->makeResponse(true, "El workflow no existe.", [], 404);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if ($currentWorkflow['WORK_ESTA'] === $requestData['ESTADO']) {
|
|
|
|
|
+ DB::rollBack();
|
|
|
|
|
+ return $this->responseController->makeResponse(true, "El workflow ya tiene el estado solicitado.", [], 400);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $now = $this->functionsController->now();
|
|
|
|
|
+ $currentDate = $now->toDateTimeString();
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ DB::table('S002V01THWORK')->insert([
|
|
|
|
|
+ 'HWORK_IDWO' => $requestData['ID_WORKFLOW'],
|
|
|
|
|
+ 'HWORK_VERS' => $currentWorkflow['WORK_VERS'],
|
|
|
|
|
+ 'HWORK_NOWO' => $currentWorkflow['WORK_NOWO'],
|
|
|
|
|
+ 'HWORK_DESC' => $currentWorkflow['WORK_DESC'],
|
|
|
|
|
+ 'HWORK_COME' => $requestData['COMENTARIO_CAMBIO'] ?? 'Cambio de estado a: ' . $requestData['ESTADO'],
|
|
|
|
|
+ 'HWORK_USRE' => $user,
|
|
|
|
|
+ 'HWORK_FERE' => $currentDate,
|
|
|
|
|
+ 'HWORK_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
|
|
|
|
|
+ ]);
|
|
|
|
|
+ } catch (\Throwable $th) {
|
|
|
|
|
+ DB::rollBack();
|
|
|
|
|
+ return $this->responseController->makeResponse(true, "Ocurrió un error al registrar el historial.", $th->getMessage(), 500);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ DB::table('S002V01THEWO')->insert([
|
|
|
|
|
+ 'HEWO_IDWO' => $requestData['ID_WORKFLOW'],
|
|
|
|
|
+ 'HEWO_ESTA' => $requestData['ESTADO'],
|
|
|
|
|
+ 'HEWO_USRE' => $user,
|
|
|
|
|
+ 'HEWO_FECH' => $currentDate,
|
|
|
|
|
+ 'HEWO_COME' => $requestData['COMENTARIO_CAMBIO'],
|
|
|
|
|
+ ]);
|
|
|
|
|
+ } catch (\Throwable $th) {
|
|
|
|
|
+ DB::rollBack();
|
|
|
|
|
+ return $this->responseController->makeResponse(true, "Ocurrió un error al registrar el historial de estados.", $th->getMessage(), 500);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ try {
|
|
|
|
|
+ $validateUpdate = DB::table('S002V01TWORK')
|
|
|
|
|
+ ->where('WORK_IDWO', '=', $requestData['ID_WORKFLOW'])
|
|
|
|
|
+ ->where('WORK_NULI', '=', $requestData['NUMERO_LINEA'])
|
|
|
|
|
+ ->update([
|
|
|
|
|
+ 'WORK_ESTA' => $requestData['ESTADO'],
|
|
|
|
|
+ 'WORK_USMO' => $user,
|
|
|
|
|
+ 'WORK_FEMO' => $currentDate,
|
|
|
|
|
+ 'WORK_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
|
|
|
|
|
+ ]);
|
|
|
|
|
+ } catch (\Throwable $th) {
|
|
|
|
|
+ DB::rollBack();
|
|
|
|
|
+ return $this->responseController->makeResponse(true, "Ocurrió un error al cambiar el estado del workflow.", $th->getMessage(), 500);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!$validateUpdate) {
|
|
|
|
|
+ DB::rollBack();
|
|
|
|
|
+ return $this->responseController->makeResponse(true, "No se pudo cambiar el estado del workflow.", [], 500);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ DB::commit();
|
|
|
|
|
+ return $this->responseController->makeResponse(false, "ÉXITO: Estado del workflow cambiado exitosamente");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
public function getWorkflowHistory($idWorkflow, $user, $line) {
|
|
public function getWorkflowHistory($idWorkflow, $user, $line) {
|
|
|
$arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
|
|
$arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
|
|
|
if ($arrResponseCheckUser['error']) {
|
|
if ($arrResponseCheckUser['error']) {
|
|
|
return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
|
|
return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /*
|
|
|
try {
|
|
try {
|
|
|
$idWorkflow = $this->encController->decrypt($idWorkflow);
|
|
$idWorkflow = $this->encController->decrypt($idWorkflow);
|
|
|
} catch (\Throwable $th) {
|
|
} catch (\Throwable $th) {
|
|
|
return $this->responseController->makeResponse(true, 'Ocurrió un error al desencriptar el ID del workflow', $th->getMessage(), 406);
|
|
return $this->responseController->makeResponse(true, 'Ocurrió un error al desencriptar el ID del workflow', $th->getMessage(), 406);
|
|
|
- }
|
|
|
|
|
|
|
+ }*/
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
$arrHistory = DB::table('S002V01THWORK')
|
|
$arrHistory = DB::table('S002V01THWORK')
|
|
@@ -2701,3 +2811,5 @@ class ProcessManagementController extends Controller
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|