PartialDeliveriesController.php 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Http\Controllers\ResponseController;
  4. use App\Http\Controllers\EncryptionController;
  5. use App\Http\Controllers\ResourcesController;
  6. use App\Http\Controllers\DocumentManagementController;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Carbon;
  9. use Illuminate\Support\Facades\DB;
  10. use Illuminate\Support\Facades\Validator;
  11. class PartialDeliveriesController extends Controller
  12. {
  13. private $responseController;
  14. private $encController;
  15. private $resourcesController;
  16. private $documentManagementController;
  17. public function __construct(){
  18. $this->responseController = new ResponseController();
  19. $this->encController = new EncryptionController();
  20. $this->resourcesController = new ResourcesController();
  21. $this->documentManagementController = new DocumentManagementController();
  22. }
  23. public function getPartialDeliveries($user, $line) {
  24. $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
  25. if ($arrResponseCheckUser['error']) {
  26. DB::rollBack();
  27. return $this->responseController->makeResponse(true, 'ERR_WAREHOUSE_GETBY000:'.$arrResponseCheckUser['msg'], [], 401);
  28. }
  29. try {
  30. $getPartial = DB::table('S002V01THIOR')
  31. ->where('HIOR_ESOR', '=', 'Recibido Parcial')
  32. ->where('HIOR_NULI', '=', $line)
  33. ->get([
  34. 'HIOR_IDHO AS ID_HISTORIAL_ORDEN',
  35. 'HIOR_NUOR AS NUMERO_ORDEN',
  36. 'HIOR_ESOR AS ESTADO_ORDEN',
  37. 'HIOR_DESC AS DESCRIPCION',
  38. 'HIOR_EVID AS EVIDENCIA',
  39. 'HIOR_POEN AS PORCENTAJE_ENTREGA',
  40. 'HIOR_ESTA AS ESTADO',
  41. 'HIOR_USRE AS USUARIO_REGISTRA',
  42. 'HIOR_FERE AS FECHA_REGISTRA',
  43. 'HIOR_USMO AS USUARIO_MODIFICA',
  44. 'HIOR_FEMO AS FECHA_MODIFICA',
  45. ]);
  46. $arrPartial = json_decode(json_encode($getPartial), true);
  47. } catch (\Throwable $th) {
  48. return $this->responseController->makeResponse(true, "Ocurrió un error al momento de obtener los registros.", $th->getMessage(), 500);
  49. }
  50. $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrPartial, $line);
  51. if ($responseCheckLatestUpdate['error']) {
  52. return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
  53. }
  54. $arrPartial = $responseCheckLatestUpdate['response'];
  55. foreach ($arrPartial as $keyHistoryOrder => $historyOrder) {
  56. if ( !is_null($historyOrder['EVIDENCIA']) ) {
  57. $arrEvidence = json_decode($historyOrder['EVIDENCIA']);
  58. $arrUrlImage = array();
  59. foreach ($arrEvidence as $key => $imagen) {
  60. $responseDocument = $this->documentManagementController->privateGetPublicDocumentURL($imagen, $user, $line);
  61. if ($responseDocument['error']) {
  62. return $this->responseController->makeResponse(true, "Ocurrió un error al obtener la URL de la imágen.", [], 500);
  63. }
  64. $arrUrlImage[] = $responseDocument['response']['public_uri'];
  65. }
  66. $historyOrder['EVIDENCIA'] = $arrUrlImage;
  67. }
  68. $arrPartial[$keyHistoryOrder] = $historyOrder;
  69. }
  70. return $this->responseController->makeResponse(false, "ÉXITO: Consulta exitosa", $arrPartial);
  71. }
  72. }