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