/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Comercios::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['idComercio' => $this->idComercio, 'latitud' => $this->latitud, 'longitud' => $this->longitud, 'prioridad' => $this->prioridad]); $query->andFilterWhere(['like', 'nombre', $this->nombre])->andFilterWhere(['like', 'direccion', $this->direccion]); return $dataProvider; }
public function actionStock($id) { $idStockDeComercio = array(); $arrayNombresProductos = array(); $cantStockDeComercio = array(); $conjuntoComercios = ArrayHelper::toArray(Comercios::find()->all()); $conjuntoStock = ArrayHelper::toArray(Stock::find()->all()); foreach ($conjuntoComercios as $value) { if ($value['idComercio'] == $id) { $nomComercio = $value['nombre']; } } foreach ($conjuntoStock as $value) { if ($value['nombreComercio'] == $nomComercio) { array_push($arrayNombresProductos, $value['nombreProducto']); //obtengo los nombres de los productos del stock de ese comercio array_push($idStockDeComercio, $value['idStock']); array_push($cantStockDeComercio, $value['cantidadEnStock']); } } return $this->render('stock', ['comerciostock' => $arrayNombresProductos, 'nombreComercio' => $nomComercio, 'idStockDeComercio' => $idStockDeComercio, 'cantStockDeComercio' => $cantStockDeComercio]); }
use yii\helpers\ArrayHelper; use yii\helpers\Url; use backend\models\Rutas; use yii\helpers\Json; use backend\models\Comercios; ?> <div class="ruta-view"> <?php echo '<div class="body-content">'; echo "<h4>Descripcion de la ruta del dia seleccionado <small>"; echo '</small></h4>'; echo '<table>'; $rutaArray = json_decode($rutaDelDia['ordenComercios']); $conjuntoComercios = ArrayHelper::toArray(Comercios::find()->all()); $rutaDeComercios = array(); $longitud = count($rutaArray); for ($i = 0; $i < $longitud; $i++) { echo '<div class="row">'; echo "<br>"; $id = $rutaArray[$i]; foreach ($conjuntoComercios as $value) { if ($value['idComercio'] == $id) { array_push($rutaDeComercios, $value); echo Html::a(Yii::t('app', $value['nombre']), ['../web/ruta/view?id=' . $id], ['class' => 'btn btn-default']); } } echo "</br>"; echo '</div>'; }
public function actionObtenernombrecomercios($dia, $id) { $Relevador = array(); $comerciosParaRelevar = array(); $buleano = true; $conjuntoComercios = ArrayHelper::toArray(Comercios::find()->all()); //todos los comercios de la db $conjuntoRelevadores = ArrayHelper::toArray(Relevadores::find()->all()); //todos los relevadores de la db $conjuntoRutas = ArrayHelper::toArray(Rutas::find()->all()); foreach ($conjuntoRutas as $value) { if ($value["idRelevador"] == $id && $value['diaDeRelevamiento'] == $dia) { $buleano = false; } } if ($buleano == true) { //obtengo el relevador que seleccione en el dropdownlist foreach ($conjuntoRelevadores as $value) { if ($value["idRelevador"] == $id) { $Relevador = $value; } } $distanciaMayorActual = 0; foreach ($conjuntoComercios as $value) { $latitudeFrom = $Relevador['latitud']; $longitudeFrom = $Relevador['longitud']; $latitudeTo = $value['latitud']; $longitudeTo = $value['longitud']; $theta = $longitudeFrom - $longitudeTo; $dist = sin(deg2rad($latitudeFrom)) * sin(deg2rad($latitudeTo)) + cos(deg2rad($latitudeFrom)) * cos(deg2rad($latitudeTo)) * cos(deg2rad($theta)); $dist = acos($dist); $dist = rad2deg($dist); $miles = $dist * 60 * 1.1515; $distancia = $miles * 1.609344 . 'km'; if ($distancia <= $Relevador['kmARecorrer']) { $kk = array(); $kk = json_decode($value['diasParaRelevar']); foreach ($kk as $value2) { if ($value2 == $dia) { array_push($comerciosParaRelevar, $value['nombre']); } } } } if (empty($comerciosParaRelevar)) { return "no existen comercios que esten dentro del rango de recorrido del relevador o de dias para relevarlo..."; } else { echo JSON::encode($comerciosParaRelevar); } } else { return "Ya existe una ruta para este relevador este dia"; } }
/** * Lists all Comercios models. * @return mixed */ public function actionIndex() { $dataProvider = new ActiveDataProvider(['query' => Comercios::find()]); return $this->render('index', ['dataProvider' => $dataProvider]); }