CondicionantesController.php 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace app\modules\publico\controllers;
  3. use common\data\Respuesta;
  4. use common\rest\JsonController;
  5. use v1\models\Municipio;
  6. use v1\models\Producto;
  7. use yii\db\Query;
  8. class CondicionantesController extends JsonController {
  9. public function actionIndex() {
  10. $fin = intval($this->req->get("fin", "0"));
  11. $tipo = intval($this->req->get("tipo", "0"));
  12. $estadoOrigen = intval($this->req->get("origen", 0));
  13. $ciudad = intval($this->req->get("ciudad", 0));
  14. $producto = intval($this->req->get("producto", 0));
  15. $condicionante = (new Query())
  16. ->select("{{Condicionante}}.[[id]],{{Condicionante}}.[[titulo]],{{Condicionante}}.[[descripcion]]")
  17. ->from("Condicionante")
  18. ->andWhere(["{{Condicionante}}.[[eliminado]]" => null]);
  19. if ($producto > 0) {
  20. $producto = Producto::find()
  21. ->andWhere(["idSagarhpa" => $producto])
  22. ->one();
  23. $condicionante
  24. ->andWhere(["OR", ["{{Condicionante}}.[[idProducto]]" => $producto->id], ["{{Condicionante}}.[[idProducto]]" => $producto->idPadre]]);
  25. }
  26. $municipio = Municipio::find()
  27. ->andWhere(["clave" => $ciudad])
  28. ->one();
  29. /* # En el front no se pueden elegir ciudades*/
  30. if ($ciudad > 0) {
  31. $condicionante
  32. ->leftJoin("CondicionanteDestino", "{{CondicionanteDestino}}.[[idCondicionante]] = {{Condicionante}}.[[id]]")
  33. ->leftJoin("Estado", "{{Estado}}.[[id]] = {{CondicionanteDestino}}.[[idDestino]]")
  34. ->innerJoin("Municipio", "{{Municipio}}.[[idEstado]] = {{Estado}}.[[id]]")
  35. ->innerJoin("NivelMunicipio", "{{NivelMunicipio}}.[[idMunicipio]] = {{Municipio}}.[[id]]")
  36. ->andWhere(["{{Municipio}}.[[clave]]" => $ciudad])
  37. ->andWhere(["{{NivelMunicipio}}.[[idNivel]]" => "{{Condicionante}}.[[idNivel]]"])
  38. ->andWhere(["{{Municipio}}.[[eliminado]]" => null]);
  39. }
  40. // if ($estadoOrigen > 0 && $ciudad === 0) {
  41. // $condicionante
  42. // ->leftJoin("CondicionanteOrigen", "{{CondicionanteOrigen}}.[[idCondicionante]] = {{Condicionante}}.[[id]]")
  43. // ->leftJoin("Estado", "{{Estado}}.[[id]] = {{CondicionanteOrigen}}.[[idOrigen]]")
  44. // ->andWhere(["{{Estado}}.[[idSagarhpa]]" => $estadoOrigen])
  45. // ->andWhere(["{{Estado}}.[[eliminado]]" => null]);
  46. // }
  47. if ($fin > 0) {
  48. $condicionante
  49. ->leftJoin("CondicionanteFin", "{{CondicionanteFin}}.[[idCondicionante]] = {{Condicionante}}.[[id]]")
  50. ->leftJoin("FinMovilizacion", "{{CondicionanteFin}}.[[idFin]] = {{FinMovilizacion}}.[[id]]")
  51. ->andWhere(["{{FinMovilizacion}}.[[idSagarhpa]]" => $fin, "{{FinMovilizacion}}.[[eliminado]]" => null]);
  52. }
  53. if ($tipo > 0) {
  54. $condicionante
  55. ->leftJoin("CondicionanteTipo", "{{CondicionanteTipo}}.[[idCondicionante]] = {{Condicionante}}.[[id]]")
  56. ->leftJoin("TipoMovilizacion", "{{CondicionanteTipo}}.[[idTipo]] = {{TipoMovilizacion}}.[[id]]")
  57. ->andWhere(["{{TipoMovilizacion}}.[[idSagarhpa]]" => $tipo, "{{TipoMovilizacion}}.[[eliminado]]" => null]);
  58. }
  59. if ($ciudad > 0) {
  60. $condicionante->orderBy(["{{Municipio}}.[[nombre]]" => SORT_DESC]);
  61. }
  62. return (new Respuesta($condicionante));
  63. }
  64. }