public function actionPedido() { $params = Yii::$app->getRequest()->post(); $usuario = User::findIdentityByAccessToken($params['muli_token']); $arrayProductos = $params['productos']; $valid = false; foreach ($arrayProductos as $productos) { $rutaDiaria = RutaDiaria::find()->where(['id_usuario' => $usuario->id])->andWhere(['fecha' => date('Y-m-d')])->one(); $rutaDiariaComercio = RutaDiariaComercio::find()->where(['id_comercio' => $params['id_comercio']])->andWhere(['id_ruta_diaria' => $rutaDiaria->id])->one(); $pedidoIdProd = Pedido::find()->where(['id_producto' => $productos['id_producto']])->andWhere(['id_ruta_diaria_com' => $rutaDiariaComercio->id])->one(); if ($pedidoIdProd != null) { $pedido = $pedidoIdProd; $pedido->setAttribute('cantidad', $productos['cant']); } else { $pedido = new Pedido(); $pedido->setAttribute('id_producto', $productos['id_producto']); $pedido->setAttribute('id_ruta_diaria_com', $rutaDiariaComercio->id); $pedido->setAttribute('cantidad', $productos['cant']); } if ($pedido->cantidad != 0) { if ($pedido->validate() && $pedido->save()) { $valid = true; } else { throw new BadRequestHttpException(Yii::t('mobile', 'Failed to save route with id: ' . $rutaDiariaComercio->id . '')); } } else { if ($pedido->validate()) { $valid = true; } else { throw new BadRequestHttpException(Yii::t('mobile', 'Failed to save route with id: ' . $rutaDiariaComercio->id . '')); } } } return $valid; }
public function actionStockPedidos($idComercio, $idRutaDiaria) { $rutaDiaria = RutaDiaria::find()->where(['id' => $idRutaDiaria])->one(); $usuario = User::find()->where(['id' => $rutaDiaria->id_usuario])->one(); $rutaDiariaComercio = $this->findRutaDiariaComercio($idComercio, $idRutaDiaria); $datosGrillaStock = []; $datosGrillaPedidos = []; $i = 0; if ($rutaDiariaComercio->getStocks()->count() > 0) { $datosStock = $this->findStockComercio($rutaDiariaComercio->id); foreach ($datosStock as $stock) { $nombreProducto = nombreProducto($stock->id_producto); $datosGrillaStock[$i] = ['tipo' => Yii::t('core', 'Stock'), 'producto' => $nombreProducto, 'cantidad' => $stock->cantidad]; $i++; } } $i = 0; if ($rutaDiariaComercio->getPedidos()->count() > 0) { $datosPedidos = $this->findPedidosComercio($rutaDiariaComercio->id); foreach ($datosPedidos as $pedido) { $nombrePedido = nombreProducto($pedido->id_producto); $datosGrillaPedidos[$i] = ['tipo' => Yii::t('core', 'Order'), 'producto' => $nombrePedido, 'cantidad' => $pedido->cantidad]; $i++; } } return $this->render('stockPedidos', ['model' => $rutaDiariaComercio, 'datosGrillaStock' => $datosGrillaStock, 'datosGrillaPedidos' => $datosGrillaPedidos, 'fecha' => $rutaDiaria->fecha, 'usuario' => $usuario->username, 'ruta' => $rutaDiaria->id]); }
private function findModel($id) { $model = RutaDiaria::findOne($id); $listaRutasComercios = $model->getRutaDiariaComercios(); $listaComercios = []; foreach ($listaRutasComercios as $rutaComercio) { $listaComercios[] = $rutaComercio->getIdComercio(); } return $listaComercios; }
public function actionView($id) { $user = User::findIdentityByAccessToken($id); //->where(['id'=>$id])->one(); if ($user->tieneRutaDiariaActiva()) { $rutaDiaria = RutaDiaria::find()->where(['id_usuario' => $user->id])->andWhere(['fecha' => date('Y-m-d')])->one(); $comercios = $rutaDiaria->getComerciosOrdenados(); return ['status' => 'ok', 'data' => $comercios]; } else { return ['status' => 'error', "mensaje" => Yii::t('core', 'there are no stores available for today')]; } }
public static function actionView($id) { $user = User::findIdentityByAccessToken($id); //find()->where(['id'=>$id])->one(); if ($user->tieneRutaDiariaActiva()) { $rutaDiaria = RutaDiaria::find()->where(['id_usuario' => $user->id])->andWhere(['fecha' => date('Y-m-d')])->one(); $comercios = $rutaDiaria->getComerciosOrdenados(); return ['status' => 'ok', 'requestJson' => sysconfigs::getRutaRequestParaMostrar($user, $comercios)]; } else { return ['status' => 'error', "mensaje" => Yii::t('core', 'there are no routes for today')]; } }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = RutaDiaria::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; } $user = User::findOne(['id' => $this->id_usuario]); $query->andFilterWhere(['id' => $this->id, 'fecha' => $this->fecha]); if ($this->id_usuario != null) { $query->andFilterWhere(['id_usuario' => $user != null ? $user->id : 0]); } return $dataProvider; }
private function existeRutaDiariaPorUsuarioYFecha($idUsuario, $dia) { return RutaDiaria::find()->where(['id_usuario' => $idUsuario])->andWhere(['fecha' => $dia])->count() > 0; }
public function actionRutasRelevadores() { $model = new GraficasForm(); $model->setScenario('relevatorSuccess'); $model->load(Yii::$app->request->post()); $idRelevador = $model->opcionRelevador; $relevador = User::Find()->where(['id' => $model->opcionRelevador])->one(); $cargaAdaptadaParaChart = []; $cargaAdaptadaParaChart[0] = [Yii::t('core', 'Date'), Yii::t('core', 'Accomplishment percentage')]; //die(''. $idRelevador); $rutas = RutaDiaria::find()->where(['id_usuario' => $idRelevador])->all(); //die('Hay rutas: '.count($rutas)); $i = 1; foreach ($rutas as $ruta) { $cargaAdaptadaParaChart[$i] = [$ruta->fecha, $ruta->getCompletitudRecorrido()]; $i++; } if (count($cargaAdaptadaParaChart) > 1) { return $this->render('rutasRelevador', ['nombreRelevador' => $relevador->username, 'arrayCompletitud' => $cargaAdaptadaParaChart]); } else { Yii::$app->getSession()->setFlash('danger', Yii::t('core', 'There are no routes for this relevator')); $this->redirect(['index']); } }
/** * @return \yii\db\ActiveQuery */ public function getRutasDiarias() { return $this->hasMany(RutaDiaria::className(), ['id_usuario' => 'id']); }
public function actionStock() { $params = Yii::$app->getRequest()->post(); $user = User::findIdentityByAccessToken($params['muli_token']); $valid = false; //return $params; $arrayStock = $params['stock']; foreach ($arrayStock as $stockEnv) { $rutaDiaria = RutaDiaria::find()->where(['id_usuario' => $user->id])->andWhere(['fecha' => date('Y-m-d')])->one(); $rutaDiariaComercio = RutaDiariaComercio::find()->where(['id_comercio' => $params['id_comercio']])->andWhere(['id_ruta_diaria' => $rutaDiaria->id])->one(); $stockIdProd = Stock::find()->where(['id_producto' => $stockEnv['id_producto']])->andWhere(['id_ruta_diaria_com' => $rutaDiariaComercio->id])->one(); if ($stockIdProd != null) { $stock = $stockIdProd; $stock->setAttribute('cantidad', $stockEnv['cant']); } else { $stock = new Stock(); $stock->setAttribute('id_ruta_diaria_com', $rutaDiariaComercio->id); $stock->setAttribute('id_producto', $stockEnv['id_producto']); $stock->setAttribute('cantidad', $stockEnv['cant']); } if ($stock->cantidad != 0) { if ($stock->validate()) { if ($stockIdProd != null) { //es un update del Stock, podemos haber realizado ya el calculo de la venta. $rutaDiariaComercioFecha = RutaDiariaComercio::find()->where('ruta_diaria_comercio.id !=' . $rutaDiariaComercio->id)->andWhere('ruta_diaria_comercio.id_ruta_diaria!=' . $rutaDiariaComercio->id_ruta_diaria)->andWhere(['ruta_diaria_comercio.id_comercio' => $rutaDiariaComercio->id_comercio])->joinWith(['idRutaDiaria' => function ($query) { //$query->where('MAX(ruta_diaria.fecha)'); $query->groupBy('ruta_diaria.id')->having('MAX(ruta_diaria.fecha)')->orderBy('fecha DESC'); }])->one(); $stockAnterior = Stock::find()->where(['id_producto' => $stock->id_producto])->andWhere(['id_ruta_diaria_com' => $rutaDiariaComercioFecha->id])->one(); $pedidoAnterior = Pedido::find()->where(['id_producto' => $stock->id_producto])->andWhere(['id_ruta_diaria_com' => $rutaDiariaComercioFecha->id])->one(); if ($stockAnterior != null) { $vendidos = $stockAnterior->cantidad - $stock->cantidad; if ($pedidoAnterior != null) { $vendidos = $vendidos + $pedidoAnterior->cantidad; } $compraProducto = ComercioProducto::find()->where(['id_comercio' => $params['id_comercio']])->andWhere(['id_producto' => $stock->id_producto])->andWhere(['fecha' => date('Y-m-d')])->one(); $compraProducto->setAttribute('vendidos', $vendidos); $compraProducto->save(); } } else { $rutaDiariaComercioFecha = RutaDiariaComercio::find()->where('ruta_diaria_comercio.id !=' . $rutaDiariaComercio->id)->andWhere('ruta_diaria_comercio.id_ruta_diaria!=' . $rutaDiariaComercio->id_ruta_diaria)->andWhere(['ruta_diaria_comercio.id_comercio' => $rutaDiariaComercio->id_comercio])->joinWith(['idRutaDiaria' => function ($query) { //$query->where('MAX(ruta_diaria.fecha)'); $query->groupBy('ruta_diaria.id')->having('MAX(ruta_diaria.fecha)')->orderBy('fecha DESC'); }])->one(); if ($rutaDiariaComercioFecha != null) { //return "existe?:".$stock->id_producto; $stockAnterior = Stock::find()->where(['id_producto' => $stock->id_producto])->andWhere(['id_ruta_diaria_com' => $rutaDiariaComercioFecha->id])->one(); $pedidoAnterior = Pedido::find()->where(['id_producto' => $stock->id_producto])->andWhere(['id_ruta_diaria_com' => $rutaDiariaComercioFecha->id])->one(); if ($stockAnterior != null) { $vendidos = $stockAnterior->cantidad - $stock->cantidad; if ($pedidoAnterior != null) { $vendidos = $vendidos + $pedidoAnterior->cantidad; } $compraProducto = new ComercioProducto(); $compraProducto->setAttribute('vendidos', $vendidos); $compraProducto->setAttribute('id_comercio', $params['id_comercio']); $compraProducto->setAttribute('id_producto', $stock->id_producto); $compraProducto->setAttribute('fecha', date('Y-m-d')); $compraProducto->save(); } } } if ($stock->save()) { $valid = true; } else { $valid = false; } } else { throw new BadRequestHttpException(Yii::t('mobile', 'Failed to save orders data...')); } } else { if ($stock->validate()) { $valid = true; } else { throw new BadRequestHttpException(Yii::t('mobile', 'Failed to save orders data...')); } } } return $valid; }
/** * @return \yii\db\ActiveQuery */ public function getIdRutaDiaria() { return $this->hasOne(RutaDiaria::className(), ['id' => 'id_ruta_diaria']); }