Yii::t('common/user-sold-item', 'Id User Sold Item'), 'id_user' => Yii::t('common/user-sold-item', 'Id User'), 'id_transfer' => Yii::t('common/user-sold-item', 'Id Transfer'), ]; } public function getAccount(){ $this->hasOne(Transfer::className(), ["id_transfer" => "id_transfer"]); } public function getUser(){ $this->hasOne(User::className(), ["id" => "id_user"]); } public static function read($user){ $query = UserSoldItem::find(); $query->andWhere(['id_user' => $user->id_user]); $result = $query->all(); } public static function readTotalForAccount($idUser,$idAccount){ $query = new Query(); $query->addSelect( [ new Expression( ' COALESCE(sum( transfer.money ) ,0) as money /** total unpaid reception cart */' ) ]); $query->innerJoin('transfer','user_sold_item.id_transfer = transfer.id_transfer'); $query->from('user_sold_item'); $query->andFilterWhere([ 'transfer.id_account' => $idAccount, ]); $query->andFilterWhere(['user_sold_item.id_user' => $idUser]); return $query->scalar(); } /** * @param common\models\User $user * */ public static function payout( $user, $idTransfers = null ) { //apply transfer object //delete cart $sql = "UPDATE transfer AS t INNER JOIN user_sold_item AS s ON t.id_transfer = s.id_transfer SET t.paid_by = ".$user->id.", t.status = " . Transfer::STATUS_PAID . ", t.paid_at = '" . date('Y-m-d H:i:s' ) ."'" . " WHERE t.status = " . Transfer::STATUS_NOT_PAID . " and s.id_user =" . $user->id ; if ( isset($idTransfers)){ $sql .= " and t.id_transfer in ( '" . implode("','", $idTransfers )."' )"; } $q1 = Yii::$app->db->createCommand($sql); $q1->execute(); if ( isset($idTransfers) ){ UserSoldItem::deleteAll(['and' ,['id_user' => Yii::$app->user->id] ,['in','id_transfer',$idTransfers] ]); }else{ UserSoldItem::deleteAll(['id_user' => Yii::$app->user->id]); } } }