22-04-1395، 11:39 ق.ظ
صفحات: 1 2
22-04-1395، 11:44 ق.ظ
خوب شما میخواین میزان فروش هر محصول رو نمایش بدین قاعدتاً با Orders کار دارین ولی از اونجا که ازطریق جدول واسط راحتتر میشه بدست آورد، میتونید با این جدول کار کنید. مثال:
// Yii 1.1 $orderCount = Orderproducts::model()->count(array( 'condition' => 'product_id=:productId', 'params' => array(':product_id' => $model->id) )); // Yii 2 $orderCount = Orderproducts::find()->where(['product_id' => $model->id])->count();
22-04-1395، 12:07 ب.ظ
پس اول با جدول کالاها باید وارد بشم؟
من چنتا کار میخوام انجام بدم یکی اینکه میزان فروش در یک بازه زمانی چقدر بوده.اگه از orderproducts وارد بشم چطوری به تاریخ فاکتور که توی orders هست دسترسی داشته باشم.
یکم پیچیده میشه چون همزمان با دو سه تا جدول کار دارم.
من چنتا کار میخوام انجام بدم یکی اینکه میزان فروش در یک بازه زمانی چقدر بوده.اگه از orderproducts وارد بشم چطوری به تاریخ فاکتور که توی orders هست دسترسی داشته باشم.
یکم پیچیده میشه چون همزمان با دو سه تا جدول کار دارم.
22-04-1395، 12:24 ب.ظ
میتونید برای هرکدوم کوئری جدا بزنید یا از Join استفاده کنید. اگه با Yii1.1 کار میکنید از CDbCriteria و متد with استفاده کنید و اگه با Yii2 کار میکنید باید از ActiveQuery استفاده کنید.
23-04-1395، 04:52 ب.ظ
هر کاری میکنم اون چیزی که میخوام بیرون نمیاد ازش.
من میخوام اینکارو انجام بده
$criteria = new CDbCriteria; $criteria->select = '*, SUM(o.amount) as amount_sum, SUM(oP.quantity) as quantity_sum'; $criteria->with = array('orderproducts'=>array('alias'=>'oP'), 'orders'=>array('alias'=>'o')); $criteria->together = true; $criteria->distinct = true; $criteria->group = 'o.id, oP.product_id, t.id'; if(!empty($_GET['email'])){ $email = CHtml::encode($_GET['email']); if($user = Users::model()->findByAttributes(array('email'=>$email))){ $criteria->addSearchCondition('o.user_id', $user->id); } } Tools::debug(Products::model()->findAll($criteria));
24-04-1395، 08:44 ق.ظ
دقیقاً چه گزارشی میخواین بدست بیارین؟
24-04-1395، 09:43 ق.ظ
گزارش فروش.
لیست کالاها بیاد و بگه کلا چن تا فروخته شده و کل فاکتورها رو جمع بزنه.
یعنی amount رو از جدول orders و quantity رو از جدول orderproducts برای هر محصول و اگه خواستم بگم فلان کاربر چن تا خریده فقط لیست محصولاتی بیاد که اون خریده.
لیست کالاها بیاد و بگه کلا چن تا فروخته شده و کل فاکتورها رو جمع بزنه.
یعنی amount رو از جدول orders و quantity رو از جدول orderproducts برای هر محصول و اگه خواستم بگم فلان کاربر چن تا خریده فقط لیست محصولاتی بیاد که اون خریده.
24-04-1395، 09:50 ق.ظ
خوب چندین مدل گزارش فروش داریم. دقیقاً چه گزارشی میخواین؟ گزارش فروش یک کالای خاص؟ گزارش خریدهای یک مشتری خاص؟ گزارش فروش همه کالاها به تفکیک هر کالا؟ لطفاً مشکل رو دقیق بیان کنید.
24-04-1395، 10:17 ق.ظ
در اصل من گزارش فروش همه کالاها به تفکیک هر کالا رو میخوام و یه امکان دیگه که میخوام داشته باشه اینه که اگه یک کاربر خاص رو انتخاب کردیم فقط کالاهایی که اون خریده گزارشش بیاد و همه کالاها نیان.
اینا رو هم گزاشتم توی مدل products
اینا رو هم گزاشتم توی مدل products
'orders' => array(self::MANY_MANY, 'Orders', 'orderproducts(product_id, order_id)'), 'orderproducts' => array(self::HAS_MANY, 'Orderproducts', 'product_id'),
24-04-1395، 10:39 ق.ظ
خوب شما برای اینکه بدونید یه کاربر چندتا فروش داشته میتونید اینطوری عمل کنید:
برای فروش هر محصول هم میتونید از ریلیشن STAT استفاده کنید: http://www.yiiframework.com/doc/guide/1....ical-query
برای جمع فروش کل هم میتونید با Yii::app()->db کوئری دستی بزنید.
$orderCount = Orders::model()->count('user_id=:userId AND paid=1', array(':userId' => $user->id));
برای فروش هر محصول هم میتونید از ریلیشن STAT استفاده کنید: http://www.yiiframework.com/doc/guide/1....ical-query
برای جمع فروش کل هم میتونید با Yii::app()->db کوئری دستی بزنید.
24-04-1395، 11:22 ق.ظ
ریلیشن STAT چی هست؟ کارش چیه؟ با HAS_MENY چه تفاوتی داره؟
24-04-1395، 11:24 ق.ظ
توی لینکی که گذاشتم توضیح داده. کارهای آماری انجام میده که در حالت پیشفرض بجای اینکه خود رکوردهای وابسته رو برگردونه تعدادشون رو اعلام میکنه ولی میشه تغییرش داد طوری که بعنوان مثال مجموع یا میانگین ستون خاصی رو محاسبه و اعلام کنه.
24-04-1395، 11:28 ق.ظ
این درسته؟
'quantityCount'=>array(self::STAT, 'Orderproducts', 'product_id'),
24-04-1395، 11:31 ق.ظ
خیر. این فقط داره میگه چند رکورد برای این محصول توی جدول Orderproducts وجود داشته. نمیاد فیلد quantity اونها رو جمع بزنه. درواقع داره میگه که این محصول توی چندتا فاکتور ثبت شده.
24-04-1395، 11:33 ق.ظ
لینکی که دادم رو به دقت بخونید. انتهای همین بخش STAT توضیح داده که چطور کاستومایزش کنید.
صفحات: 1 2