<?php /** * This is the model class for table "bill". * * The followings are the available columns in table 'bill': * @property integer $id * @property string $code * @property integer $mid * @property double $lati * @property double $longi * @property string $pay_date * @property string $send_date * @property string $status * @property integer $idpay * @property string $detail * @property string $created * @property integer $statusAll */ class Bill extends CActiveRecord { /** * @return string the associated database table name */ public function tableName() { return 'bill'; } /** * @return array validation rules for model attributes. */ public function rules() { // NOTE: you should only define rules for those attributes that // will receive user inputs. return array( // array('mid, created', 'required'), // array('mid, idpay, statusAll', 'numerical', 'integerOnly'=>true), // array('lati, longi', 'numerical'), // array('code', 'length', 'max'=>50), // array('status', 'length', 'max'=>4), // array('pay_date, send_date, detail', 'safe'), // // The following rule is used by search(). // // @todo Please remove those attributes that should not be searched. // array('id, code, mid, lati, longi, pay_date, send_date, status, idpay, detail, created, statusAll', 'safe', 'on'=>'search'), ); } /** * @return array relational rules. */ public function relations() { // NOTE: you may need to adjust the relation name and the related // class name for the relations automatically generated below. return array( 'member' => array(self::BELONGS_TO, 'member', 'mid'), 'bankfood' => array(self::BELONGS_TO, 'bankfood', 'detail'), 'orders' => array(self::BELONGS_TO, 'orders', 'id'), 'payment' => array(self::BELONGS_TO, 'payment', 'idpay') ); } /** * @return array customized attribute labels (name=>label) */ public function attributeLabels() { return array( 'id' => 'ID', 'code' => 'Code', 'mid' => 'Mid', 'lati' => 'Lati', 'longi' => 'Longi', 'pay_date' => 'Pay Date', 'send_date' => 'Send Date', 'status' => 'Status', 'idpay' => 'Idpay', 'detail' => 'Detail', 'created' => 'Created', 'statusAll' => 'Status All', ); } /** * Retrieves a list of models based on the current search/filter conditions. * * Typical usecase: * - Initialize the model fields with values from filter form. * - Execute this method to get CActiveDataProvider instance which will filter * models according to data in model fields. * - Pass data provider to CGridView, CListView or any similar widget. * * @return CActiveDataProvider the data provider that can return the models * based on the search/filter conditions. */ public function search() { // @todo Please modify the following code to remove attributes that should not be searched. $criteria=new CDbCriteria; $criteria->compare('id',$this->id); $criteria->compare('code',$this->code,true); $criteria->compare('mid',$this->mid); $criteria->compare('lati',$this->lati); $criteria->compare('longi',$this->longi); $criteria->compare('pay_date',$this->pay_date,true); $criteria->compare('send_date',$this->send_date,true); $criteria->compare('status',$this->status,true); $criteria->compare('idpay',$this->idpay); $criteria->compare('detail',$this->detail,true); $criteria->compare('created',$this->created,true); $criteria->compare('statusAll',$this->statusAll); return new CActiveDataProvider($this, array( 'criteria'=>$criteria, )); } static function getStatus($data) { if ($data == 'wait') { return 'รอ'; } else if ($data == 'pay') { return 'จ่าย'; } else { return 'ส่ง'; } } static function getStatusPay($data) { if ($data != 'pay') { return "รอชำระเงิน";//CHtml::link("ยังไม่จ่ายเงิน",array("Site/payForm","id"=>$data->id,"idbank"=>$data->detail)); } else { return 'ชำระเงินแล้ว'; } } static function getStatusPayAdmin($data) { if ($data == null) { return "";//CHtml::link("ยังไม่จ่ายเงิน",array("Site/payForm","id"=>$data->id,"idbank"=>$data->detail)); } else { return "ชำระเงินแล้ว"; } } static function getStatusAll($data) { if ($data == '0') { return 'รอ'; } else if ($data == '1') { return 'กำลังทำอหาร'; } else if ($data == '2') { return 'กำลังส่ง'; }else{ return 'เสร็จสิ้น'; } } static function getStatusimg($data) { if ($data == '0') { return "<br><b>รอรับรายการ".CHtml::image('images/icon/cheff.png',"",array("width"=>80)); } else if ($data == '1') { return "<br><b>กำลังทำอาหาร".CHtml::image('images/icon/cooking3.png',"",array("width"=>80)); } else { return "<br><b>กำลังจัดส่ง".CHtml::image('images/icon/delivery_food.png',"",array("width"=>80)); } } //ค้นหารายการซ่อมกรองตาม วัน เดือน ปี ได้ public function searchFood($year,$month){ $year-543; $criteria=new CDbCriteria(); $criteria->addCondition("YEAR(created) = $year"); $criteria->addCondition("MONTH(created) = $month"); return new CActiveDataProvider($this,array( "criteria"=>$criteria, "pagination"=>false )); } public function countPay($month, $year) { $criteria = new CDbCriteria(); $criteria->addCondition("YEAR(created) = $year"); $criteria->addCondition("MONTH(created) = $month"); $criteria->addCondition("status IN ('pay')"); return $this->count($criteria); } public function countComplete($month, $year) { $criteria = new CDbCriteria(); $criteria->addCondition("YEAR(created) = $year"); $criteria->addCondition("MONTH(created) = $month"); $criteria->addCondition("statusAll IN ('3')"); return $this->count($criteria); } public function countWait($month, $year) { $criteria = new CDbCriteria(); $criteria->addCondition("YEAR(created) = $year"); $criteria->addCondition("MONTH(created) = $month"); $criteria->addCondition("statusAll NOT IN ('3','2','1')"); return $this->count($criteria); } public function countMoney($month, $year) { $sum= Yii::app()->db->createCommand() ->select('SUM( food.price * orders.qty ) AS my_sum') ->from('orders') ->join('bill','orders.bill_id=bill.id') ->join('food','orders.food_id=food.id') ->where('YEAR( bill.created )='.$year.' AND MONTH(bill.created)='.$month) ->queryRow(); return $sum['my_sum']; } ///******************** ค้นหาตามช่วง เวลา วันเริมต้นถึงวันที่สิ้นสุด ******///// public function countCompleteDate($dateStart, $dateEnd) { $criteria = new CDbCriteria(); $criteria->addCondition("created >= '$dateStart'"); $criteria->addCondition("created <= '$dateEnd'"); $criteria->addCondition("statusAll IN ('3')"); return $this->count($criteria); } public function searchFoodDate($dateStart,$dateEnd){ $criteria = new CDbCriteria(); $criteria->condition = 'created >= :dateStart and created <= :dateEnd'; $criteria->params = array( 'dateStart' => $dateStart,'dateEnd'=>$dateEnd); return new CActiveDataProvider($this,array( "criteria"=>$criteria, "pagination"=>false )); } public function countPayDate($dateStart, $dateEnd) { $criteria = new CDbCriteria(); $criteria->addCondition("created >= '$dateStart'"); $criteria->addCondition("created <= '$dateEnd'"); $criteria->addCondition("status IN ('pay')"); return $this->count($criteria); } public function countWaitDate($dateStart, $dateEnd) { $criteria = new CDbCriteria(); $criteria->addCondition("created >= '$dateStart'"); $criteria->addCondition("created <= '$dateEnd'"); $criteria->addCondition("statusAll IN ('0')"); return $this->count($criteria); } public function countWaitDate2($dateStart, $dateEnd) { $criteria = new CDbCriteria(); $criteria->addCondition("created >= '$dateStart'"); $criteria->addCondition("created <= '$dateEnd'"); $criteria->addCondition("statusAll IN ('1')"); return $this->count($criteria); } public function countMoneyDate($dateStart, $dateEnd) { $sum= Yii::app()->db->createCommand() ->select('SUM( food.price * orders.qty ) AS my_sum') ->from('orders') ->join('bill','orders.bill_id=bill.id') ->join('food','orders.food_id=food.id') ->where(' bill.created >='."'$dateStart'".' AND bill.created <='."'$dateEnd'") ->queryRow(); return $sum['my_sum']; } public function countSumAll() { $sum= Yii::app()->db->createCommand() ->select('SUM( food.price * orders.qty ) AS my_sum') ->from('orders') ->join('bill','orders.bill_id=bill.id') ->join('food','orders.food_id=food.id') ->where('statusAll=3') ->queryRow(); return $sum['my_sum']; } public function countSumWait() { $criteria = new CDbCriteria(); $criteria->addCondition("statusAll IN ('0','1','2','3')"); return $this->count($criteria); } public function countSumMemberWait() { $criteria = new CDbCriteria(); $criteria->addCondition("statusAll IN ('0')"); return $this->count($criteria); } public static function model($className=__CLASS__) { return parent::model($className); } }