DispatchController.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347
  1. <?php
  2. /*
  3. Desarrollador: Ing. Jean Jairo Benitez Meza
  4. Ultima Modificación: 11/04/2023
  5. Módulo: Gestión de Adquisiciones
  6. */
  7. namespace App\Http\Controllers;
  8. use App\Http\Controllers\Controller;
  9. use App\Http\Controllers\ResponseController;
  10. use App\Http\Controllers\EncryptionController;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Support\Carbon;
  13. use Illuminate\Support\Facades\DB;
  14. use Illuminate\Support\Facades\Validator;
  15. class DispatchController extends Controller {
  16. private $responseController;
  17. private $encController;
  18. private $functionsController;
  19. public function __construct() {
  20. $this->responseController = new ResponseController();
  21. $this->encController = new EncryptionController();
  22. $this->functionsController = new FunctionsController();
  23. }
  24. public function getDispatch($user, $line) {
  25. try {
  26. $arrDispatch = DB::table('S002V01TDESP')
  27. ->where("DESP_NULI", "=", $line)
  28. ->get([
  29. 'DESP_IDDE', // Número de despacho
  30. 'DESP_NODE', // Nombre del despacho
  31. 'DESP_NOMB', // Nombre del despacho
  32. 'DESP_CALL', // Calle
  33. 'DESP_NUEX', // Número exterior
  34. 'DESP_NUIN', // Número interior
  35. 'DESP_COPO', // Código postal
  36. 'DESP_COLO', // Colonia
  37. 'DESP_MUNI', // Municipio
  38. 'DESP_ENTI', // Entidad
  39. 'DESP_PAIS', // Pais
  40. 'DESP_ESTA', // Estado
  41. 'DESP_USRE', // Usuario Registra
  42. 'DESP_FERE', // Fecha Registra
  43. 'DESP_USMO', // Usuario Modifica
  44. 'DESP_FEMO', // Fecha Modifica
  45. ]);
  46. } catch (\Throwable $th) {
  47. return $this->responseController->makeResponse(true, "ERR_DISPATCH_GET000: No se pudo realizar la consulta a la base.", $th->getMessage(), 500);
  48. }
  49. return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrDispatch);
  50. }
  51. public function getDispatchActive($user, $line) {
  52. try {
  53. $arrDispatch = DB::table('S002V01TDESP')
  54. ->where("DESP_NULI", "=", $line)
  55. ->get([
  56. 'DESP_IDDE', // Número de despacho
  57. 'DESP_NODE', // Nombre del despacho
  58. 'DESP_NOMB', // Nombre del despacho
  59. 'DESP_CALL', // Calle
  60. 'DESP_NUEX', // Número exterior
  61. 'DESP_NUIN', // Número interior
  62. 'DESP_COPO', // Código postal
  63. 'DESP_COLO', // Colonia
  64. 'DESP_MUNI', // Municipio
  65. 'DESP_ENTI', // Entidad
  66. 'DESP_PAIS', // Pais
  67. 'DESP_USRE', // Usuario Registra
  68. 'DESP_FERE', // Fecha Registra
  69. 'DESP_USMO', // Usuario Modifica
  70. 'DESP_FEMO', // Fecha Modifica
  71. ]);
  72. } catch (\Throwable $th) {
  73. return $this->responseController->makeResponse(true, "ERR_DISPATCH_GET000: No se pudo realizar la consulta a la base.", $th->getMessage(), 500);
  74. }
  75. return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrDispatch);
  76. }
  77. public function getDispatchById($idDispatch, $user, $line) {
  78. try {
  79. $arrDispatch = DB::table('S002V01TDESP')
  80. ->where("DESP_IDDE", "=", $idDispatch)
  81. ->where("DESP_NULI", "=", $line)
  82. ->where("DESP_ESTA", "=", "Activo")
  83. ->first([
  84. 'DESP_IDDE',
  85. 'DESP_NODE',
  86. 'DESP_NOMB',
  87. 'DESP_APPA',
  88. 'DESP_APMA',
  89. 'DESP_LADA',
  90. 'DESP_TELE',
  91. 'DESP_CORR',
  92. 'DESP_CALL',
  93. 'DESP_NUEX',
  94. 'DESP_NUIN',
  95. 'DESP_COPO',
  96. 'DESP_LOCA',
  97. 'DESP_COLO',
  98. 'DESP_MUNI',
  99. 'DESP_ENTI',
  100. 'DESP_PAIS',
  101. 'DESP_COME',
  102. 'DESP_USRE',
  103. 'DESP_FERE',
  104. 'DESP_USMO',
  105. 'DESP_FEMO',
  106. 'DESP_FEAR',
  107. ]);
  108. } catch (\Throwable $th) {
  109. return $this->responseController->makeResponse(true, "ERR_DISPATCH_GETBYID000: No se pudo realizar la consulta a la base.", $th->getMessage(), 500);
  110. }
  111. return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrDispatch);
  112. }
  113. public function registerDispatch(Request $request) {
  114. $validator = Validator::make($request->all(), [
  115. // 'ID_DESPACHO' => 'required|string',
  116. 'NOMBRE_DESPACHO' => 'required|string',
  117. 'NOMBRE_RESPONSABLE' => 'required|string',
  118. 'APELLIDO_PATERNO' => 'required|string',
  119. // 'APELLIDO_MATERNO' => 'required|string',
  120. 'LADA' => 'required|string',
  121. 'TELEFONO' => 'required|string',
  122. 'CORREO_ELECTRONICO' => 'required|string',
  123. 'CALLE' => 'required|string',
  124. 'NUMERO_EXTERIOR' => 'required|string',
  125. // 'NUMERO_INTERIOR' => 'required|string',
  126. 'CODIGO_POSTAL' => 'required|string',
  127. 'COLONIA' => 'required|string',
  128. 'LOCALIDAD' => 'required|string',
  129. 'MUNICIPIO' => 'required|string',
  130. 'ENTIDAD_FEDERATIVA' => 'required|string',
  131. 'PAIS' => 'required|string',
  132. // 'COMENTARIOS' => 'required|string',
  133. 'USUARIO' => 'required|string',
  134. 'LINE_NUMBER' => 'required|string',
  135. ]);
  136. if ($validator->fails()) {
  137. return $this->responseController->makeResponse(
  138. true,
  139. "ERR_DISPATCH_REG000: Se encontraron uno o más errores.",
  140. $this->responseController->makeErrors($validator->errors()->messages()),
  141. 401
  142. );
  143. }
  144. DB::beginTransaction();
  145. $requestData = $request->all();
  146. try {
  147. $user = $this->encController->decrypt($requestData['USUARIO']);
  148. } catch (\Throwable $th) {
  149. DB::rollBack();
  150. return $this->responseController->makeResponse(true, "ERR_DISPATCH_REG001: Ocurrió un error al obtener el contenido.", $th->getMessage(), 500);
  151. }
  152. $now = $this->functionsController->now();
  153. $currentDate = $now->toDateTimeString();
  154. try {
  155. $responseRequest = DB::table('S002V01TDESP')->insert([
  156. 'DESP_NULI' => $requestData['LINE_NUMBER'],
  157. 'DESP_NODE' => $requestData['NOMBRE_DESPACHO'],
  158. 'DESP_NOMB' => $requestData['NOMBRE_RESPONSABLE'],
  159. 'DESP_APPA' => $requestData['APELLIDO_PATERNO'],
  160. 'DESP_APMA' => $requestData['APELLIDO_MATERNO'],
  161. 'DESP_LADA' => $requestData['LADA'],
  162. 'DESP_TELE' => $requestData['TELEFONO'],
  163. 'DESP_CORR' => $requestData['CORREO_ELECTRONICO'],
  164. 'DESP_CALL' => $requestData['CALLE'],
  165. 'DESP_NUEX' => $requestData['NUMERO_EXTERIOR'],
  166. 'DESP_NUIN' => $requestData['NUMERO_INTERIOR'],
  167. 'DESP_COPO' => $requestData['CODIGO_POSTAL'],
  168. 'DESP_COLO' => $requestData['COLONIA'],
  169. 'DESP_LOCA' => $requestData['LOCALIDAD'],
  170. 'DESP_MUNI' => $requestData['MUNICIPIO'],
  171. 'DESP_ENTI' => $requestData['ENTIDAD_FEDERATIVA'],
  172. 'DESP_PAIS' => $requestData['PAIS'],
  173. 'DESP_COME' => $requestData['COMENTARIOS'],
  174. 'DESP_USRE' => $user,
  175. 'DESP_FERE' => $currentDate,
  176. 'DESP_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
  177. ]);
  178. } catch (\Throwable $th) {
  179. DB::rollBack();
  180. return $this->responseController->makeResponse(true, "ERR_DISPATCH_REG002: Ocurrió un error al momento de insertar los datos en la base de datos.", $th->getMessage(), 500);
  181. }
  182. if ( !$responseRequest ) {
  183. DB::rollBack();
  184. return $this->responseController->makeResponse(true, "ERR_DISPATCH_REG003: Ocurrió un error al insertar el despacho", [], 500);
  185. }
  186. DB::commit();
  187. return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
  188. }
  189. public function updateDispatch(Request $request) {
  190. $validator = Validator::make($request->all(), [
  191. 'ID_DESPACHO' => 'required|string',
  192. 'NOMBRE_DESPACHO' => 'required|string',
  193. 'NOMBRE_RESPONSABLE' => 'required|string',
  194. 'APELLIDO_PATERNO' => 'required|string',
  195. // 'APELLIDO_MATERNO' => 'required|string',
  196. 'LADA' => 'required|string',
  197. 'TELEFONO' => 'required|string',
  198. 'CORREO_ELECTRONICO' => 'required|string',
  199. 'CALLE' => 'required|string',
  200. 'NUMERO_EXTERIOR' => 'required|string',
  201. // 'NUMERO_INTERIOR' => 'required|string',
  202. 'CODIGO_POSTAL' => 'required|string',
  203. 'COLONIA' => 'required|string',
  204. 'LOCALIDAD' => 'required|string',
  205. 'MUNICIPIO' => 'required|string',
  206. 'ENTIDAD_FEDERATIVA' => 'required|string',
  207. 'PAIS' => 'required|string',
  208. // 'COMENTARIOS' => 'required|string',
  209. 'USUARIO' => 'required|string',
  210. 'LINE_NUMBER' => 'required|string',
  211. ]);
  212. if ($validator->fails()) {
  213. return $this->responseController->makeResponse(
  214. true,
  215. "ERR_DISPATCH_UPD000: Se encontraron uno o más errores.",
  216. $this->responseController->makeErrors($validator->errors()->messages()),
  217. 401
  218. );
  219. }
  220. DB::beginTransaction();
  221. $requestData = $request->all();
  222. try {
  223. $user = $this->encController->decrypt($requestData['USUARIO']);
  224. } catch (\Throwable $th) {
  225. DB::rollBack();
  226. return $this->responseController->makeResponse(true, "ERR_DISPATCH_UPD001: Ocurrió un error al obtener el contenido.", $th->getMessage(), 500);
  227. }
  228. $now = $this->functionsController->now();
  229. $currentDate = $now->toDateTimeString();
  230. try {
  231. $responseRequest = DB::table('S002V01TDESP')
  232. ->where('DESP_IDDE', '=', $requestData['ID_DESPACHO'],)
  233. ->where('DESP_NULI', '=', $requestData['LINE_NUMBER'])
  234. ->update([
  235. 'DESP_NODE' => $requestData['NOMBRE_DESPACHO'],
  236. 'DESP_NOMB' => $requestData['NOMBRE_RESPONSABLE'],
  237. 'DESP_APPA' => $requestData['APELLIDO_PATERNO'],
  238. 'DESP_APMA' => $requestData['APELLIDO_MATERNO'],
  239. 'DESP_LADA' => $requestData['LADA'],
  240. 'DESP_TELE' => $requestData['TELEFONO'],
  241. 'DESP_CORR' => $requestData['CORREO_ELECTRONICO'],
  242. 'DESP_CALL' => $requestData['CALLE'],
  243. 'DESP_NUEX' => $requestData['NUMERO_EXTERIOR'],
  244. 'DESP_NUIN' => $requestData['NUMERO_INTERIOR'],
  245. 'DESP_COPO' => $requestData['CODIGO_POSTAL'],
  246. 'DESP_LOCA' => $requestData['LOCALIDAD'],
  247. 'DESP_COLO' => $requestData['COLONIA'],
  248. 'DESP_MUNI' => $requestData['MUNICIPIO'],
  249. 'DESP_ENTI' => $requestData['ENTIDAD_FEDERATIVA'],
  250. 'DESP_PAIS' => $requestData['PAIS'],
  251. 'DESP_COME' => $requestData['COMENTARIOS'],
  252. 'DESP_USMO' => $user,
  253. 'DESP_FEMO' => $currentDate,
  254. 'DESP_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
  255. ]);
  256. } catch (\Throwable $th) {
  257. DB::rollBack();
  258. return $this->responseController->makeResponse(true, "ERR_DISPATCH_UPD002: Ocurrió un error al momento de modificar los datos en la base de datos.", $th->getMessage(), 500);
  259. }
  260. if ( !$responseRequest ) {
  261. DB::rollBack();
  262. return $this->responseController->makeResponse(true, "ERR_DISPATCH_UPD003: Ocurrió un error al modificar el despacho", [], 500);
  263. }
  264. DB::commit();
  265. return $this->responseController->makeResponse(false, "ÉXITO: Modificación Exitoso");
  266. }
  267. public function deleteDispatch(Request $request) {
  268. $validator = Validator::make($request->all(), [
  269. 'ID_DESPACHO' => 'required|string',
  270. 'USUARIO' => 'required|string',
  271. 'NUMERO_LINEA' => 'required|string',
  272. ]);
  273. if ($validator->fails()) {
  274. return $this->responseController->makeResponse(
  275. true,
  276. "ERR_DISPATCH_DEL000: Se encontraron uno o más errores.",
  277. $this->responseController->makeErrors($validator->errors()->messages()),
  278. 401
  279. );
  280. }
  281. DB::beginTransaction();
  282. $requestData = $request->all();
  283. try {
  284. $user = $this->encController->decrypt($requestData['USUARIO']);
  285. } catch (\Throwable $th) {
  286. DB::rollBack();
  287. return $this->responseController->makeResponse(true, "ERR_DISPATCH_DEL001: Ocurrió un error al obtener el contenido.", $th->getMessage(), 500);
  288. }
  289. $now = $this->functionsController->now();
  290. $currentDate = $now->toDateTimeString();
  291. try {
  292. $responseRequest = DB::table('S002V01TDESP')
  293. ->where('DESP_IDDE', '=', $requestData['ID_DESPACHO'],)
  294. ->where('DESP_NULI', '=', $requestData['NUMERO_LINEA'])
  295. ->update([
  296. 'DESP_ESTA' => 'Eliminado',
  297. 'DESP_USMO' => $user,
  298. 'DESP_FEMO' => $currentDate,
  299. 'DESP_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
  300. ]);
  301. } catch (\Throwable $th) {
  302. DB::rollBack();
  303. return $this->responseController->makeResponse(true, "ERR_DISPATCH_DEL002: Ocurrió un error al momento de eliminar los datos en la base de datos.", $th->getMessage(), 500);
  304. }
  305. if ( !$responseRequest ) {
  306. DB::rollBack();
  307. return $this->responseController->makeResponse(true, "ERR_DISPATCH_DEL003: Ocurrió un error al eliminar el despacho", [], 500);
  308. }
  309. DB::commit();
  310. return $this->responseController->makeResponse(false, "ÉXITO: Eliminación Exitosa");
  311. }
  312. }