Ejemplo n.º 1
0
 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()]);
 }
Ejemplo n.º 2
0
 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;
     }
 }
Ejemplo n.º 3
0
 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]);
 }
Ejemplo n.º 4
0
 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;
 }