/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Carropedido::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(['idCarroPedido' => $this->idCarroPedido, 'pedido_idPedido' => $this->pedido_idPedido, 'producto_idProducto' => $this->producto_idProducto, 'cantidad' => $this->cantidad]); return $dataProvider; }
public function actionSaveItemsPedido() { $idPedido = $_POST['idPedido']; $data = $_POST['data']; $borrados = $_POST['borrados']; $lista_productos_a_borrar = json_decode($borrados, true); $lista_productos_seleccionados = json_decode($data, true); foreach (array_values($lista_productos_a_borrar) as $idProducto) { $carropedido = Carropedido::find()->where(['pedido_idPedido' => $idPedido, 'producto_idProducto' => $idProducto]); if ($carropedido->exists()) { $carropedido->one()->delete(); } } foreach ($lista_productos_seleccionados as $producto) { $idProducto = $producto['idProducto']; $carropedido = Carropedido::find()->where(['pedido_idPedido' => $idPedido, 'producto_idProducto' => $idProducto]); if ($carropedido->exists()) { $carropedido = $carropedido->one(); $carropedido->cantidad = $producto['cantidad']; } else { $carropedido = new Carropedido(); $carropedido->pedido_idPedido = $idPedido; $carropedido->producto_idProducto = $idProducto; $carropedido->cantidad = $producto['cantidad']; } $carropedido->save(); } }