public function actionIndex() { $destination = $this->getDestinationAccount(); // pending orders $query = OrderProducts::find()->where('quantity>consumed'); $query->leftJoin('order_shipping', "order_products.order_id = order_shipping.order_id"); $query->andFilterWhere(['order_shipping.shipping_email' => $destination->email]); $query->orderBy(['order_products.order_id' => SORT_DESC, 'order_products.id' => SORT_DESC]); return $this->render('index', ['pending' => $query->all()]); }
public function beforeDelete() { if (parent::beforeDelete()) { if (OrderProducts::find()->where(['product_id' => $this->id])->exists()) { Yii::$app->session->setFlash('products_error', Yii::t('app', 'Cannot delete product <strong>{prod_name}</strong> because it was previosly ordered.', ['prod_name' => $this->getName()])); return false; } else { ProductLang::deleteAll(['product_id' => $this->id]); Yii::$app->session->setFlash('products_info', Yii::t('app', 'Product <strong>{prod_name}</strong> successfully deleted.', ['prod_name' => $this->getName()])); return true; } } else { return false; } }
public function actionIndex() { $provider = $this->getProvider(); $query = OrderProducts::find(); $query->leftJoin('product', 'product.id=order_products.product_id'); $query->leftJoin('order', 'order.id=order_products.order_id'); $query->andFilterWhere(['order.status' => Order::STATUS_APPROVED]); $query->andFilterWhere(['product.provider_id' => $provider->id]); $query->andWhere('order_products.quantity>order_products.consumed'); $query->orderBy(['order.id' => SORT_DESC, 'order_products.id' => SORT_ASC]); $query->limit(10); // top sellers $sql = "select product_id, sum(quantity) as cant from order_products left join simplestore.order on order.id=order_products.order_id left join product on product.id=order_products.product_id where order.status=:approved and product.provider_id=:prov group by product_id order by cant desc limit :limit"; $products = Yii::$app->db->createCommand($sql, [':approved' => Order::STATUS_APPROVED, ':prov' => $provider->id, ':limit' => 10])->queryAll(); return $this->render('index', ['pending' => $query->all(), 'products' => $products]); }
public function calcPrice($orderId) { $orderProds = OrderProducts::find()->where(["order_id" => $orderId])->asArray()->all(); $products = []; if ($orderProds) { foreach ($orderProds as $row) { $products[] = ["product" => Products::find()->with('productToppings')->where(["id" => $row["product_id"]])->asArray()->one(), "toppings" => $row["toppings"], "count" => $row["count"]]; } } return $products; }