예제 #1
2
 /**
  * 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));
     }
 }
예제 #2
0
 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/");
     }
 }
예제 #3
0
 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));
 }
예제 #4
0
 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));
     }
 }
예제 #6
0
파일: _form.php 프로젝트: shakyapranin/IMS
		<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));
 }
예제 #9
0
 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'));
 }
예제 #10
0
 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);
         }
     }
 }
예제 #11
0
 public function beforeDelete()
 {
     Transaction::model()->updateAll(array('invoice_id' => NULL), 'invoice_id = :invoice_id', array(':invoice_id' => $this->id));
     return parent::beforeDelete();
 }
예제 #12
0
 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();
         }
     }
 }
예제 #13
0
 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;
 }
예제 #14
0
 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);
 }