/** * What to do when this action will be called. * * Just render the `index` view file from current controller. */ public function run() { if (Yii::app()->user->isGuest) { $this->controller->layout = '//layouts/landing'; $this->controller->render('landing'); } else { $this->controller->layout = '//layouts/main'; $user = Yii::app()->user->data(); $balance = Balance::model()->findAllByAttributes(array('id_user' => $user->id)); $transactions = Transaction::model()->findAllByAttributes(array('id_user' => $user->id), new CDbCriteria(array('order' => 'create_time DESC', 'limit' => 10))); $this->controller->render('home', array('transactions' => $transactions, 'balance' => $balance)); } }
public function actionconfirm() { if (!isset($_POST['result']) || !isset($_POST['x_invoice']) || !isset($_POST['x_iduser']) || !isset($_POST['x_document'])) { Yii::app()->user->setFlash('error', Yii::t('translation', 'Error unexpexted')); $this->redirect(Yii::app()->request->baseUrl . "/deposit/"); } $user = Yii::app()->user->data(); $invo = Invoices::model()->findByAttributes(array('id_user' => $user->id, 'invoice_number' => $_POST['x_invoice'])); if (!is_null($invo)) { $invo->astropay_result = $_POST['result']; $invo->status = $_POST['result'] - 5; $invo->id_astropay = $_POST['x_document']; $invo->save(); $tran = Transaction::model()->findByAttributes(array('id_trans' => $invo->id_trans)); switch ($invo->astropay_result) { case 6: $tran->status = 2; break; case 7: $tran->status = 0; break; case 8: $tran->status = 2; break; case 9: $tran->status = 1; break; } $tran->save(); $this->redirect(Yii::app()->request->baseUrl . "/deposit/"); } else { Yii::app()->user->setFlash('error', Yii::t('translation', 'Error unexpexted')); $this->redirect(Yii::app()->request->baseUrl . "/deposit/"); } }
function historyAction() { $userId = $this->signedInUser()->id; if ($this->isGuest()) { $this->redirect("Site", "login"); } $boughtItems = Transaction::model()->findAll(array("userId" => $userId)); $items = array_map(function ($tran) { return $tran->getItem(); }, $boughtItems); return $this->render("history.html.haml", array("items" => $items)); }
public function hasTransaction($attribute, $param) { if (!$this->hasErrors()) { if ($this->method == 'all') { $hasTr = Transaction::model()->findAll('customer_id=:cid and invoice_id is null', array(':cid' => $this->cid)); } else { if ($this->method == 'not_all') { $hasTr = Transaction::model()->findAll('customer_id=:cid and invoice_id is null and MONTH(FROM_UNIXTIME(created)) = :month', array(':cid' => $this->cid, ':month' => $this->trans_month)); } else { if ($this->method == 'custom') { $hasTr = $this->trans_id; } } } if (count($hasTr) == 0) { $this->addError('', 'Invoice cannot created because there\'s no transaction available '); } } }
public function actionIndex() { if (Yii::app()->user->isGuest) { $this->render('index'); } else { $user = Yii::app()->user->data(); $criteria = new CDbCriteria(); $criteria->condition = 'id_user = :id'; $criteria->order = 'update_time DESC, create_time DESC'; $criteria->params = array(':id' => $user->id); $count = Transaction::model()->count($criteria); $pages = new CPagination($count); $pages->setPageSize(Yii::app()->params['defaultListPerPage']); $pages->applyLimit($criteria); // the trick is here! $transactions = Transaction::model()->findAll($criteria); $this->render('transactions', array('transactions' => $transactions, 'pages' => $pages)); } }
<div class="row"> <?php echo $form->labelEx($model, 'acquisition_date'); ?> <?php if ($model->isNewRecord == '1') { $model->acquisition_date = date('Y-m-d'); } ?> <?php $form->widget('zii.widgets.jui.CJuiDatePicker', array('model' => $model, 'attribute' => 'acquisition_date', 'value' => $model->acquisition_date, 'options' => array('showButtonPanel' => true, 'changeYear' => true, 'dateFormat' => 'yy-mm-dd'))); ?> <?php echo $form->error($model, 'acquisition_date'); ?> </div><!-- row --> <!-- <label><?php echo GxHtml::encode($model->getRelationLabel('transactions')); ?> </label> <?php echo $form->checkBoxList($model, 'transactions', GxHtml::encodeEx(GxHtml::listDataEx(Transaction::model()->findAllAttributes(null, true)), false, true)); ?> --> <?php echo GxHtml::submitButton(Yii::t('app', 'Save')); $this->endWidget(); ?> </div><!-- form -->
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer the ID of the model to be loaded */ public function loadModel($id) { $model = Transaction::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
public function actionView($id) { $model = Transaction::model()->findByPk($id); $this->render('view', array('model' => $model)); }
public function actionRemoveproperty($id) { $userId = Yii::app()->user->getState('id'); //all users can remove itself from property member's list if (!UserAccessTable::checkUser2PropertyAccess($userId, $id, UserAccessTable::GUEST)) { Yii::app()->request->redirect(basePath('app/gallery')); } $user2property = User2property::model()->findByAttributes(array('userId' => $userId, 'propertyId' => $id)); if ($user2property->getAttribute('access') != UserAccessTable::OWNER) { //email to member (NOT admin) $this->layout = "emailmaster"; $body = $this->render("../emails/emailItselfRemove", array('name' => $user2property->user->getAttribute('firstname') . ' ' . $user2property->user->getAttribute('lastname'), 'propertyName' => $user2property->property->getAttribute('property_name')), true); MailHelper::send($body, "SharedKey - Removed Property", array($user2property->user->getAttribute('email'))); //clear calendar events first $calendar = new Calendar(); $calendar = $calendar->findAllByAttributes(array('linkid' => $user2property->getAttribute('id'))); foreach ($calendar as $cal) { $cal->delete(); } //for not property Administrator we just remove a link to property $user2property->delete(); if ($this->_isAllUserPropertiesDeactivated($userId)) { //removed last property need remove user $this->removeUser($userId); return; } Yii::app()->request->redirect(basePath('app/properties')); return; } //member is administrator we need cancel RecurringPaymentsProfile and deactivate property //lets find last transaction $transaction = Transaction::model()->findByAttributes(array('userid' => $userId, 'propertyid' => $id)); if (!$transaction) { //no previous transactions not need to refund } $userApi = sharedkeyApi::create('usersAPI'); $userEmail = Yii::app()->user->getState('email'); $userApi->addParams(array('email' => $userEmail)); $byEmail = json_decode($userApi->byEmail('get')); $userData = (array) $byEmail->data; $userData['property_id'] = $id; //close RecurringPaymentsProfile if ($transaction) { YII::app()->user->setState("addPropertyEmailed", true); $temp = PayPalHelper::cancelRecurringPaymentsProfile($transaction->getAttribute('pp_PROFILEID'), $userData); } //do deactivated $property = Properties::model()->findByPk($id); $property->isdeactivated = 1; $property->edt = new CDbExpression('NOW()'); //$property->trialPeriodStartDate = null; $property->save(); $this->layout = "emailmaster"; //mail to admin $token = uniqid(); $body = $this->render("../emails/emailAdminAfterRemove", array('name' => Yii::app()->user->getState('firstname') . ' ' . Yii::app()->user->getState('lastname'), 'propertyName' => $property->getAttribute('property_name'), 'url' => basePathByHost("/app/changeactiveproperty/" . $property->getAttribute("id")) . '?token=' . $token), true); MailHelper::send($body, "SharedKey - Removed Property", array($userEmail)); //informative other user about property deactivated $users2properties = User2property::model()->with('user')->findAll('propertyId=:propertyId', array(':propertyId' => $id)); foreach ($users2properties as $key => $u2p) { if ($u2p->getAttribute('access') == UserAccessTable::OWNER) { continue; } } if ($this->_isAllUserPropertiesDeactivated($userId)) { $user = User::model()->find('id=:id', array(':id' => $userId)); $user->verificationToken = $token; $user->save(); $this->redirect(basePath('user/logout')); return; } Yii::app()->request->redirect(basePath('app/properties')); }
function processAccounts(&$accounts, $from_dt, $to_dt, $accts, $depth = 0) { foreach ($accts as $acct) { $ph = $acct->placeholder; $account = array('name' => $acct->name, 'depth' => $depth, 'placeholder' => $ph); if (!isset($ph)) { $trans = Transaction::model()->findAll("created < '{$from_dt}' and account_id = " . $acct->id); $obal = 0; foreach ($trans as $tr) { if ('credit' === $tr->type) { $obal += $tr->amount; } else { $obal -= $tr->amount; } } $trans = Transaction::model()->findAll("created between '{$from_dt}' and '{$to_dt}' and account_id = " . $acct->id); $cr = $deb = 0; foreach ($trans as $tr) { if ('credit' === $tr->type) { $cr += $tr->amount; } else { $deb += $tr->amount; } } $cbal = $obal + $cr - $deb; $account['obal'] = $obal; $account['credit'] = $cr; $account['debit'] = $deb; $account['cbal'] = $cbal; } array_push($accounts, $account); $children = $acct->childAccounts; if ($children) { processAccounts($accounts, $from_dt, $to_dt, $children, $depth + 1); } } }
public function beforeDelete() { Transaction::model()->updateAll(array('invoice_id' => NULL), 'invoice_id = :invoice_id', array(':invoice_id' => $this->id)); return parent::beforeDelete(); }
public function afterSave() { if ($this->isNewRecord) { //for the tracker $tracker = new OrderTracking('OrderCreated'); $tracker->shipments_id = $this->primaryKey; $tracker->save(); //for shipment event $shipment_event = new ShipmentEvent(); $shipment_event->shipment_id = $this->id; $shipment_event->status = $this->shipping_status; $shipment_event->event_time = $this->event_time; if ($this->getScenario() == 'api-requestpickup') { $shipment_event->user_id = 0; } else { $shipment_event->user_id = Yii::app()->user->id; } $shipment_event->setScenario('order'); $shipment_event->save(); if (!empty($this->customer_id)) { $trans = new Transaction(); $trans->shipment_id = $this->id; $trans->customer_id = $this->customer_id; $trans->created = $this->created; $trans->charges = $this->shipping_charges; $trans->total = $this->charges; $trans->save(); } } else { if ($this->getScenario() != 'event') { $shipment_event = new ShipmentEvent(); $shipment_event->shipment_id = $this->id; $shipment_event->status = $this->shipping_status; $shipment_event->event_time = time(); $shipment_event->user_id = Yii::app()->user->id; $shipment_event->with_mde = 1; $shipment_event->setScenario('order'); $shipment_event->save(); } if (!empty($this->customer_id)) { $trans = Transaction::model()->findByAttributes(array('shipment_id' => $this->id)); $trans->shipment_id = $this->id; $trans->customer_id = $this->customer_id; $trans->created = $this->created; $trans->charges = $this->shipping_charges; $trans->total = $this->charges; $trans->save(); } } }
public function getStock($upToDate = '') { $criteria = new CDbCriteria(); $criteria->select = "SUM(Qty) AS Qty"; if ($upToDate != '') { $criteria->condition = "(Oper <> '1' OR OperDate = '0000-00-00' OR (Oper = 1 AND AffectStock = 1)) AND OperDate <= '" . $upToDate . "' AND item_id = '" . $this->id . "'"; } else { $criteria->condition = "(Oper <> '1' OR OperDate = '0000-00-00' OR (Oper = 1 AND AffectStock = 1)) AND item_id = '" . $this->id . "'"; } $stock = Transaction::model()->query($criteria); return $stock->Qty; }
public function actionGenerate($id) { $html2pdf = Yii::app()->ePdf->HTML2PDF(); $model = $this->loadModel($id); $invoice_transaction = Transaction::model()->findAllByAttributes(array('invoice_id' => $id)); $total_amount = 0; foreach ($invoice_transaction as $key) { $total_amount = $total_amount + $key->total; } $customer = Customer::model()->findByPk($model->customer_id); $html2pdf->WriteHTML($this->renderPartial('pdf_invoice', array('customer' => $customer, 'model' => $model, 'invoice_transaction' => $invoice_transaction, 'total_amount' => $total_amount), true)); $html2pdf->Output('document.pdf', EYiiPdf::OUTPUT_TO_BROWSER); }