SolicitudController.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace excel\controllers;
  3. use app\models\Solicitud;
  4. use excel\web\Controller;
  5. use v1\models\RecursoRevision;
  6. class SolicitudController extends Controller {
  7. public function actionIndex() {
  8. $inicio = $this->req->get("inicio", "");
  9. $fin = $this->req->get("fin", "");
  10. $query = Solicitud::find();
  11. if (!empty($inicio) & !empty($fin)) {
  12. $query->andWhere([
  13. "AND",
  14. [">=", "recepcion", $inicio],
  15. ["<=", "recepcion", $fin],
  16. ]);
  17. }
  18. $query->andWhere(['eliminado' => null]);
  19. if ($query->count() === 0)
  20. throw new \yii\web\NotFoundHttpException("No se encontrarón Solicitudes");
  21. $array = [];
  22. $titulos = [
  23. 'Tipo de Acceso',
  24. 'Folio de la Solicitud',
  25. 'Sujeto Obligado',
  26. 'Estado Actual',
  27. 'Fecha de Recepción',
  28. 'DT',
  29. 'DR',
  30. 'DA',
  31. 'DT-RR',
  32. 'DR-RR',
  33. ];
  34. $campos = [
  35. 'tipoAcceso',
  36. 'folioSolicitud',
  37. 'sujetoObligado',
  38. 'estadoActual',
  39. 'fechaRecepción',
  40. 'dt',
  41. 'dr',
  42. 'da',
  43. 'dtrr',
  44. 'drrr',
  45. ];
  46. foreach ($query->each() as $solicitud) {
  47. $recursosRevision = RecursoRevision::find()
  48. ->andWhere(['eliminado' => null, 'idSolicitud' => $solicitud->id])
  49. ->orderBy('creado');
  50. array_push($array, [
  51. 'tipoAcceso' => $recursosRevision->count() > 0 ? 'RR' : 'S',
  52. 'folioSolicitud' => "{$solicitud->folio} ",
  53. 'sujetoObligado' => $solicitud->sujetoObligado->nombre,
  54. 'estadoActual' => $solicitud->estatus->nombre,
  55. 'fechaRecepción' => date("d/m/Y", strtotime($solicitud->recepcion)),
  56. 'dt' => $solicitud->diasTranscurridos,
  57. 'dr' => $solicitud->diasRestantes,
  58. 'da' => $solicitud->diasAtencion,
  59. 'dtrr' => $recursosRevision->one() ? $recursosRevision->one()->diasTranscurridos : "-",
  60. 'drrr' => $recursosRevision->one() ? $recursosRevision->one()->diasRestantes : "-",
  61. ]);
  62. foreach ($recursosRevision->each() as $recurso){
  63. array_push($array, [
  64. 'tipoAcceso' => "",
  65. 'folioSolicitud' => "{$solicitud->folio} ",
  66. 'sujetoObligado' => $solicitud->sujetoObligado->nombre,
  67. 'estadoActual' => $solicitud->estatus->nombre,
  68. 'fechaRecepción' => date("d/m/Y", strtotime($solicitud->recepcion)),
  69. 'dt' => $solicitud->diasTranscurridos,
  70. 'dr' => $solicitud->diasRestantes,
  71. 'da' => $solicitud->diasAtencion,
  72. 'dtrr' => $recursosRevision->one() ? $recursosRevision->one()->diasTranscurridos : "-",
  73. 'drrr' => $recursosRevision->one() ? $recursosRevision->one()->diasRestantes : "-",
  74. ]);
  75. }
  76. }
  77. $fecha = date("d/m/Y");
  78. $nombre = "Solicitud " . $fecha;
  79. $titulo = "Solicitud " . $fecha;
  80. $pestania = "Solicitudes";
  81. return $this->Excel($titulo, $pestania, $nombre, $titulos, $campos, $array, false, $isArray = true);
  82. }
  83. }