responseController = new ResponseController(); $this->encController = new EncryptionController(); $this->resourcesController = new ResourcesController(); $this->documentManagementController = new DocumentManagementController(); $this->functionsController = new FunctionsController(); } public function getPaymentMethod($user, $line) { $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line); if ($arrResponseCheckUser['error']) { DB::rollBack(); return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401); } try { $arrPaymentMethod = DB::table('S002V01TMEPA') ->where('MEPA_NULI', '=', $line) ->get([ 'MEPA_IDMP AS ID_METODO_PAGO', 'MEPA_TMPA AS TIPO_METODO_PAGO', 'MEPA_DESC AS DESCRIPCION', 'MEPA_ESTA AS ESTADO', 'MEPA_USRE AS USUARIO_REGISTRA', 'MEPA_FERE AS FECHA_REGISTRA', 'MEPA_USMO AS USUARIO_MODIFICA', 'MEPA_FEMO AS FECHA_MODIFICA', ]); $arrPaymentMethod = json_decode(json_encode($arrPaymentMethod), true); } catch (\Throwable $th) { return $this->responseController->makeResponse(true, "Ocurrió un error al obtener los métodos de pago.", $th->getMessage(), 500); } $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrPaymentMethod, $line); if ($responseCheckLatestUpdate['error']) { return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500); } $arrPaymentMethod = $responseCheckLatestUpdate['response']; return $this->responseController->makeResponse(false, "ÉXITO: Consulta exitosa", $arrPaymentMethod); } public function getPaymentMethodActive($user, $line) { $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line); if ($arrResponseCheckUser['error']) { DB::rollBack(); return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401); } try { $arrPaymentMethod = DB::table('S002V01TMEPA') ->where('MEPA_NULI', '=', $line) ->where('MEPA_ESTA', '=', 'Activo') ->get([ 'MEPA_IDMP AS ID_METODO_PAGO', 'MEPA_TMPA AS C_FORMAPAGO', 'MEPA_DESC AS DESCRIPCION', ]); $arrPaymentMethod = json_decode(json_encode($arrPaymentMethod), true); } catch (\Throwable $th) { return $this->responseController->makeResponse(true, "Ocurrió un error al obtener los métodos de pago.", $th->getMessage(), 500); } return $this->responseController->makeResponse(false, "ÉXITO: Consulta exitosa", $arrPaymentMethod); } public function getPaymentMethodById($idPayment, $user, $line) { $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line); if ($arrResponseCheckUser['error']) { DB::rollBack(); return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401); } $idPayment = $this->encController->decrypt($idPayment); if (is_null($idPayment)) { DB::rollBack(); return $this->responseController->makeResponse(true, "Ocurrió un error al desencriptar el método de pago.", [], 500); } try { $arrPaymentMethod = (array) DB::table('S002V01TMEPA') ->where('MEPA_NULI', '=', $line) ->where('MEPA_ESTA', '=', 'Activo') ->first([ 'MEPA_TMPA AS TIPO_METODO_PAGO', 'MEPA_DESC AS DESCRIPCION', ]); } catch (\Throwable $th) { return $this->responseController->makeResponse(true, "Ocurrió un error al obtener los métodos de pago.", $th->getMessage(), 500); } return $this->responseController->makeResponse(false, "ÉXITO: Consulta exitosa", $arrPaymentMethod); } public function registerPaymentMethod(Request $request) { $validator = Validator::make($request->all(), [ 'TIPO_METODO_PAGO' => 'required|string', 'DESCRIPCION' => '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(); try { $validateRegister = DB::table('S002V01TMEPA')->insert([ 'MEPA_NULI' => $requestData['NUMERO_LINEA'], 'MEPA_TMPA' => $requestData['TIPO_METODO_PAGO'], 'MEPA_DESC' => $requestData['DESCRIPCION'], 'MEPA_USRE' => $user, 'MEPA_FERE' => $currentDate, 'MEPA_FEAR' => DB::raw('CURRENT_TIMESTAMP'), ]); } catch (\Throwable $th) { DB::rollBack(); return $this->responseController->makeResponse(true, "Ocurrió un error al registrar el método de pago.", $th->getMessage(), 500); } if (!$validateRegister) { DB::rollBack(); return $this->responseController->makeResponse(true, "No se pudo registrar el método de pago.", [], 500); } DB::commit(); return $this->responseController->makeResponse(false, "ÉXITO: Registro exitoso"); } public function updatePaymentMethod(Request $request, $idPayment) { $validator = Validator::make($request->all(), [ 'TIPO_METODO_PAGO' => 'required|string', 'DESCRIPCION' => '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(); $idPayment = $this->encController->decrypt($idPayment); if (is_null($idPayment)) { DB::rollBack(); return $this->responseController->makeResponse(true, "Ocurrió un error al desencriptar el método de pago.", [], 500); } $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 { $validateExists = DB::table('S002V01TMEPA') ->where('MEPA_IDMP', '=', $idPayment) ->where('MEPA_ESTA', '=', 'Activo') ->where('MEPA_NULI', '=', $requestData['NUMERO_LINEA']) ->exists(); } catch (\Throwable $th) { DB::rollBack(); return $this->responseController->makeResponse(true, "Ocurrió un error al verificar si existe el método de pago.", [], 401); } if (!$validateExists) { DB::rollBack(); return $this->responseController->makeResponse(true, "El método de pago no existe.", [], 401); } $now = $this->functionsController->now(); $currentDate = $now->toDateTimeString(); try { $validateRegister = DB::table('S002V01TMEPA') ->where('MEPA_IDMP', '=', $idPayment) ->where('MEPA_NULI', '=', $requestData['NUMERO_LINEA']) ->update([ 'MEPA_TMPA' => $requestData['TIPO_METODO_PAGO'], 'MEPA_DESC' => $requestData['DESCRIPCION'], 'MEPA_USMO' => $user, 'MEPA_FEMO' => $currentDate, 'MEPA_FEAR' => DB::raw('CURRENT_TIMESTAMP'), ]); } catch (\Throwable $th) { DB::rollBack(); return $this->responseController->makeResponse(true, "Ocurrió un error al registrar el método de pago.", $th->getMessage(), 500); } if (!$validateRegister) { DB::rollBack(); return $this->responseController->makeResponse(true, "No se pudo registrar el método de pago.", [], 500); } DB::commit(); return $this->responseController->makeResponse(false, "ÉXITO: Modificación exitosa"); } public function deletePaymentMethod(Request $request, $idPayment) { $validator = Validator::make($request->all(), [ '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(); $idPayment = $this->encController->decrypt($idPayment); if (is_null($idPayment)) { DB::rollBack(); return $this->responseController->makeResponse(true, "Ocurrió un error al desencriptar el método de pago.", [], 500); } $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(); try { $validateExists = DB::table('S002V01TMEPA') ->where('MEPA_IDMP', '=', $idPayment) ->where('MEPA_ESTA', '=', 'Activo') ->where('MEPA_NULI', '=', $requestData['NUMERO_LINEA']) ->exists(); } catch (\Throwable $th) { DB::rollBack(); return $this->responseController->makeResponse(true, "Ocurrió un error al verificar si existe el método de pago.", [], 401); } if (!$validateExists) { DB::rollBack(); return $this->responseController->makeResponse(true, "El método de pago no existe.", [], 401); } try { $validateUpdate = DB::table('S002V01TMEPA') ->where('MEPA_IDMP', '=', $idPayment) ->where('MEPA_NULI', '=', $requestData['NUMERO_LINEA']) ->update([ 'MEPA_ESTA' => 'Eliminado', 'MEPA_USMO' => $user, 'MEPA_FEMO' => $currentDate, 'MEPA_FEAR' => DB::raw('CURRENT_TIMESTAMP'), ]); } catch (\Throwable $th) { DB::rollBack(); return $this->responseController->makeResponse(true, "Ocurrió un error al registrar el método de pago.", $th->getMessage(), 500); } if (!$validateUpdate) { DB::rollBack(); return $this->responseController->makeResponse(true, "No se pudo registrar el método de pago.", [], 500); } DB::commit(); return $this->responseController->makeResponse(false, "ÉXITO: Eliminación exitosa"); } }