CondicionantesController.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <?php
  2. namespace app\modules\publico\controllers;
  3. use common\data\Respuesta;
  4. use common\rest\JsonController;
  5. use yii\db\Query;
  6. class CondicionantesController extends JsonController {
  7. public function actionIndex() {
  8. $fin = intval($this->req->get("fin", 0));
  9. $tipo = intval($this->req->get("tipo", 0));
  10. $estado = intval($this->req->get("estado", 0));
  11. $ciudad = intval($this->req->get("ciudad", 0));
  12. $condicionante = null;
  13. if ($fin > 0 || $tipo > 0 || $estado > 0 || $ciudad > 0) {
  14. $condicionante = (new Query())
  15. ->select("{{Condicionante}}.[[id]],{{Condicionante}}.[[titulo]],{{Condicionante}}.[[descripcion]]")
  16. ->from("Condicionante")
  17. ->andWhere(["{{Condicionante}}.[[eliminado]]" => null]);
  18. }
  19. if ($estado > 0 && $ciudad > 0) {
  20. $condicionante
  21. ->leftJoin("CondicionanteDestino", "{{CondicionanteDestino}}.[[idCondicionante]] = {{Condicionante}}.[[id]]")
  22. ->leftJoin("Estado", "{{Estado}}.[[id]] = {{CondicionanteDestino}}.[[idDestino]]")
  23. ->innerJoin("Municipio", "{{Municipio}}.[[idEstado]] = {{Estado}}.[[id]]")
  24. ->andWhere(["{{Estado}}.[[idSagarhpa]]" => $estado, "{{Municipio}}.[[clave]]" => $ciudad])
  25. ->andWhere(["{{Estado}}.[[eliminado]]" => null, "{{Municipio}}.[[eliminado]]" => null]);
  26. }
  27. if ($estado > 0 && $ciudad === 0) {
  28. $condicionante
  29. ->leftJoin("CondicionanteDestino", "{{CondicionanteDestino}}.[[idCondicionante]] = {{Condicionante}}.[[id]]")
  30. ->leftJoin("Estado", "{{Estado}}.[[id]] = {{CondicionanteDestino}}.[[idDestino]]")
  31. ->andWhere(["{{Estado}}.[[idSagarhpa]]" => $estado])
  32. ->andWhere(["{{Estado}}.[[eliminado]]" => null]);
  33. }
  34. if ($ciudad > 0 && $estado === 0) {
  35. $condicionante
  36. ->leftJoin("CondicionanteDestino", "{{CondicionanteDestino}}.[[idCondicionante]] = {{Condicionante}}.[[id]]")
  37. ->leftJoin("Estado", "{{Estado}}.[[id]] = {{CondicionanteDestino}}.[[idDestino]]")
  38. ->innerJoin("Municipio", "{{Municipio}}.[[idEstado]] = {{Estado}}.[[id]]")
  39. ->andWhere(["{{Municipio}}.[[eliminado]]" => null]);
  40. }
  41. if ($fin > 0) {
  42. $condicionante
  43. ->leftJoin("CondicionanteFin", "{{CondicionanteFin}}.[[idCondicionante]] = {{Condicionante}}.[[id]]")
  44. ->leftJoin("FinMovilizacion", "{{CondicionanteFin}}.[[idFin]] = {{FinMovilizacion}}.[[id]]")
  45. ->andWhere(["{{FinMovilizacion}}.[[idSagarhpa]]" => $fin, "{{FinMovilizacion}}.[[eliminado]]" => null]);
  46. }
  47. if ($tipo > 0) {
  48. $condicionante
  49. ->leftJoin("CondicionanteTipo", "{{CondicionanteTipo}}.[[idCondicionante]] = {{Condicionante}}.[[id]]")
  50. ->leftJoin("TipoMovilizacion", "{{CondicionanteTipo}}.[[idTipo]] = {{TipoMovilizacion}}.[[id]]")
  51. ->andWhere(["{{TipoMovilizacion}}.[[idSagarhpa]]" => $tipo, "{{TipoMovilizacion}}.[[eliminado]]" => null]);
  52. }
  53. if ($condicionante !== null) {
  54. $condicionante->all();
  55. }
  56. return (new Respuesta($condicionante));
  57. }
  58. }