BudgetManagementController.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Facades\DB;
  5. use Illuminate\Support\Facades\Validator;
  6. class BudgetManagementController extends Controller
  7. {
  8. private $responseController;
  9. private $encController;
  10. private $resourcesController;
  11. private $documentManagementController;
  12. private $functionsController;
  13. public function __construct() {
  14. $this->responseController = new ResponseController();
  15. $this->encController = new EncryptionController();
  16. $this->resourcesController = new ResourcesController();
  17. $this->documentManagementController = new DocumentManagementController();
  18. $this->functionsController = new FunctionsController();
  19. }
  20. public function getPaymentMethod($user, $line) {
  21. $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
  22. if ($arrResponseCheckUser['error']) {
  23. DB::rollBack();
  24. return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
  25. }
  26. try {
  27. $arrPaymentMethod = DB::table('S002V01TMEPA')
  28. ->where('MEPA_NULI', '=', $line)
  29. ->get([
  30. 'MEPA_IDMP AS ID_METODO_PAGO',
  31. 'MEPA_TMPA AS TIPO_METODO_PAGO',
  32. 'MEPA_DESC AS DESCRIPCION',
  33. 'MEPA_ESTA AS ESTADO',
  34. 'MEPA_USRE AS USUARIO_REGISTRA',
  35. 'MEPA_FERE AS FECHA_REGISTRA',
  36. 'MEPA_USMO AS USUARIO_MODIFICA',
  37. 'MEPA_FEMO AS FECHA_MODIFICA',
  38. ]);
  39. $arrPaymentMethod = json_decode(json_encode($arrPaymentMethod), true);
  40. } catch (\Throwable $th) {
  41. return $this->responseController->makeResponse(true, "Ocurrió un error al obtener los métodos de pago.", $th->getMessage(), 500);
  42. }
  43. $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrPaymentMethod, $line);
  44. if ($responseCheckLatestUpdate['error']) {
  45. return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
  46. }
  47. $arrPaymentMethod = $responseCheckLatestUpdate['response'];
  48. return $this->responseController->makeResponse(false, "ÉXITO: Consulta exitosa", $arrPaymentMethod);
  49. }
  50. public function getPaymentMethodActive($user, $line) {
  51. $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
  52. if ($arrResponseCheckUser['error']) {
  53. DB::rollBack();
  54. return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
  55. }
  56. try {
  57. $arrPaymentMethod = DB::table('S002V01TMEPA')
  58. ->where('MEPA_NULI', '=', $line)
  59. ->where('MEPA_ESTA', '=', 'Activo')
  60. ->get([
  61. 'MEPA_IDMP AS ID_METODO_PAGO',
  62. 'MEPA_TMPA AS C_FORMAPAGO',
  63. 'MEPA_DESC AS DESCRIPCION',
  64. ]);
  65. $arrPaymentMethod = json_decode(json_encode($arrPaymentMethod), true);
  66. } catch (\Throwable $th) {
  67. return $this->responseController->makeResponse(true, "Ocurrió un error al obtener los métodos de pago.", $th->getMessage(), 500);
  68. }
  69. return $this->responseController->makeResponse(false, "ÉXITO: Consulta exitosa", $arrPaymentMethod);
  70. }
  71. public function getPaymentMethodById($idPayment, $user, $line) {
  72. $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
  73. if ($arrResponseCheckUser['error']) {
  74. DB::rollBack();
  75. return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
  76. }
  77. $idPayment = $this->encController->decrypt($idPayment);
  78. if (is_null($idPayment)) {
  79. DB::rollBack();
  80. return $this->responseController->makeResponse(true, "Ocurrió un error al desencriptar el método de pago.", [], 500);
  81. }
  82. try {
  83. $arrPaymentMethod = (array) DB::table('S002V01TMEPA')
  84. ->where('MEPA_NULI', '=', $line)
  85. ->where('MEPA_ESTA', '=', 'Activo')
  86. ->first([
  87. 'MEPA_TMPA AS TIPO_METODO_PAGO',
  88. 'MEPA_DESC AS DESCRIPCION',
  89. ]);
  90. } catch (\Throwable $th) {
  91. return $this->responseController->makeResponse(true, "Ocurrió un error al obtener los métodos de pago.", $th->getMessage(), 500);
  92. }
  93. return $this->responseController->makeResponse(false, "ÉXITO: Consulta exitosa", $arrPaymentMethod);
  94. }
  95. public function registerPaymentMethod(Request $request) {
  96. $validator = Validator::make($request->all(), [
  97. 'TIPO_METODO_PAGO' => 'required|string',
  98. 'DESCRIPCION' => 'required|string',
  99. 'USUARIO' => 'required|string',
  100. 'NUMERO_LINEA' => 'required|integer',
  101. ]);
  102. if ($validator->fails()) {
  103. return $this->responseController->makeResponse(
  104. true,
  105. "Se encontraron uno o más errores.",
  106. $this->responseController->makeErrors($validator->errors()->messages()),
  107. 401
  108. );
  109. }
  110. DB::beginTransaction();
  111. $requestData = $request->all();
  112. $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
  113. if ($arrResponseCheckUser['error']) {
  114. DB::rollBack();
  115. return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
  116. }
  117. $user = $arrResponseCheckUser['response'];
  118. $now = $this->functionsController->now();
  119. $currentDate = $now->toDateTimeString();
  120. try {
  121. $validateRegister = DB::table('S002V01TMEPA')->insert([
  122. 'MEPA_NULI' => $requestData['NUMERO_LINEA'],
  123. 'MEPA_TMPA' => $requestData['TIPO_METODO_PAGO'],
  124. 'MEPA_DESC' => $requestData['DESCRIPCION'],
  125. 'MEPA_USRE' => $user,
  126. 'MEPA_FERE' => $currentDate,
  127. 'MEPA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
  128. ]);
  129. } catch (\Throwable $th) {
  130. DB::rollBack();
  131. return $this->responseController->makeResponse(true, "Ocurrió un error al registrar el método de pago.", $th->getMessage(), 500);
  132. }
  133. if (!$validateRegister) {
  134. DB::rollBack();
  135. return $this->responseController->makeResponse(true, "No se pudo registrar el método de pago.", [], 500);
  136. }
  137. DB::commit();
  138. return $this->responseController->makeResponse(false, "ÉXITO: Registro exitoso");
  139. }
  140. public function updatePaymentMethod(Request $request, $idPayment) {
  141. $validator = Validator::make($request->all(), [
  142. 'TIPO_METODO_PAGO' => 'required|string',
  143. 'DESCRIPCION' => 'required|string',
  144. 'USUARIO' => 'required|string',
  145. 'NUMERO_LINEA' => 'required|integer',
  146. ]);
  147. if ($validator->fails()) {
  148. return $this->responseController->makeResponse(
  149. true,
  150. "Se encontraron uno o más errores.",
  151. $this->responseController->makeErrors($validator->errors()->messages()),
  152. 401
  153. );
  154. }
  155. DB::beginTransaction();
  156. $requestData = $request->all();
  157. $idPayment = $this->encController->decrypt($idPayment);
  158. if (is_null($idPayment)) {
  159. DB::rollBack();
  160. return $this->responseController->makeResponse(true, "Ocurrió un error al desencriptar el método de pago.", [], 500);
  161. }
  162. $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
  163. if ($arrResponseCheckUser['error']) {
  164. DB::rollBack();
  165. return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
  166. }
  167. $user = $arrResponseCheckUser['response'];
  168. try {
  169. $validateExists = DB::table('S002V01TMEPA')
  170. ->where('MEPA_IDMP', '=', $idPayment)
  171. ->where('MEPA_ESTA', '=', 'Activo')
  172. ->where('MEPA_NULI', '=', $requestData['NUMERO_LINEA'])
  173. ->exists();
  174. } catch (\Throwable $th) {
  175. DB::rollBack();
  176. return $this->responseController->makeResponse(true, "Ocurrió un error al verificar si existe el método de pago.", [], 401);
  177. }
  178. if (!$validateExists) {
  179. DB::rollBack();
  180. return $this->responseController->makeResponse(true, "El método de pago no existe.", [], 401);
  181. }
  182. $now = $this->functionsController->now();
  183. $currentDate = $now->toDateTimeString();
  184. try {
  185. $validateRegister = DB::table('S002V01TMEPA')
  186. ->where('MEPA_IDMP', '=', $idPayment)
  187. ->where('MEPA_NULI', '=', $requestData['NUMERO_LINEA'])
  188. ->update([
  189. 'MEPA_TMPA' => $requestData['TIPO_METODO_PAGO'],
  190. 'MEPA_DESC' => $requestData['DESCRIPCION'],
  191. 'MEPA_USMO' => $user,
  192. 'MEPA_FEMO' => $currentDate,
  193. 'MEPA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
  194. ]);
  195. } catch (\Throwable $th) {
  196. DB::rollBack();
  197. return $this->responseController->makeResponse(true, "Ocurrió un error al registrar el método de pago.", $th->getMessage(), 500);
  198. }
  199. if (!$validateRegister) {
  200. DB::rollBack();
  201. return $this->responseController->makeResponse(true, "No se pudo registrar el método de pago.", [], 500);
  202. }
  203. DB::commit();
  204. return $this->responseController->makeResponse(false, "ÉXITO: Modificación exitosa");
  205. }
  206. public function deletePaymentMethod(Request $request, $idPayment) {
  207. $validator = Validator::make($request->all(), [
  208. 'USUARIO' => 'required|string',
  209. 'NUMERO_LINEA' => 'required|integer',
  210. ]);
  211. if ($validator->fails()) {
  212. return $this->responseController->makeResponse(
  213. true,
  214. "Se encontraron uno o más errores.",
  215. $this->responseController->makeErrors($validator->errors()->messages()),
  216. 401
  217. );
  218. }
  219. DB::beginTransaction();
  220. $requestData = $request->all();
  221. $idPayment = $this->encController->decrypt($idPayment);
  222. if (is_null($idPayment)) {
  223. DB::rollBack();
  224. return $this->responseController->makeResponse(true, "Ocurrió un error al desencriptar el método de pago.", [], 500);
  225. }
  226. $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
  227. if ($arrResponseCheckUser['error']) {
  228. DB::rollBack();
  229. return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
  230. }
  231. $user = $arrResponseCheckUser['response'];
  232. $now = $this->functionsController->now();
  233. $currentDate = $now->toDateTimeString();
  234. try {
  235. $validateExists = DB::table('S002V01TMEPA')
  236. ->where('MEPA_IDMP', '=', $idPayment)
  237. ->where('MEPA_ESTA', '=', 'Activo')
  238. ->where('MEPA_NULI', '=', $requestData['NUMERO_LINEA'])
  239. ->exists();
  240. } catch (\Throwable $th) {
  241. DB::rollBack();
  242. return $this->responseController->makeResponse(true, "Ocurrió un error al verificar si existe el método de pago.", [], 401);
  243. }
  244. if (!$validateExists) {
  245. DB::rollBack();
  246. return $this->responseController->makeResponse(true, "El método de pago no existe.", [], 401);
  247. }
  248. try {
  249. $validateUpdate = DB::table('S002V01TMEPA')
  250. ->where('MEPA_IDMP', '=', $idPayment)
  251. ->where('MEPA_NULI', '=', $requestData['NUMERO_LINEA'])
  252. ->update([
  253. 'MEPA_ESTA' => 'Eliminado',
  254. 'MEPA_USMO' => $user,
  255. 'MEPA_FEMO' => $currentDate,
  256. 'MEPA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
  257. ]);
  258. } catch (\Throwable $th) {
  259. DB::rollBack();
  260. return $this->responseController->makeResponse(true, "Ocurrió un error al registrar el método de pago.", $th->getMessage(), 500);
  261. }
  262. if (!$validateUpdate) {
  263. DB::rollBack();
  264. return $this->responseController->makeResponse(true, "No se pudo registrar el método de pago.", [], 500);
  265. }
  266. DB::commit();
  267. return $this->responseController->makeResponse(false, "ÉXITO: Eliminación exitosa");
  268. }
  269. }