Пример #1
0
 public function login()
 {
     if ($this->validate()) {
         $user = $this->user;
         $user->lastLoginAt = DateUtil::getDateTime();
         $user->save();
         return Yii::$app->user->login($user, 0);
     }
     return false;
 }
 public static function createForOrderId($orderId, $payment)
 {
     // Set Attributes
     $user = Yii::$app->user->getIdentity();
     $txn = new PaypalTransaction();
     $txn->createdBy = $user->id;
     $txn->parentId = $orderId;
     $txn->parentType = CartGlobal::TYPE_ORDER;
     $txn->intent = $payment->intent;
     $txn->code = $payment->getId();
     $txn->createdAt = DateUtil::getDateTime();
     $txn->save();
     return $txn;
 }
 public static function getSalesData($duration)
 {
     $dates = [];
     $transactions = [];
     $transactionskv = [];
     $amount = [];
     $statusPaid = [Order::STATUS_PAID, Order::STATUS_DELIVERED];
     $statusPaid = join(",", $statusPaid);
     $orderTable = CartTables::TABLE_ORDER;
     $txnTable = CartTables::TABLE_ORDER_TRANSACTION;
     $query = new Query();
     $query->select(["date(`{$txnTable}`.`createdAt`) as date", 'sum( amount ) as amount']);
     $query->from($txnTable);
     $query->join('LEFT JOIN', $orderTable, "orderId = `{$orderTable}`.`id`");
     $query->where(" {$orderTable}.status in ( {$statusPaid} )");
     switch ($duration) {
         case 0:
             // Current Week - Starting with Sun
             $dates = DateUtil::getCurrentWeekDates();
             $transactions = $query->andWhere("YEARWEEK( `{$txnTable}`.`createdAt` ) = YEARWEEK( CURRENT_DATE ) ")->groupBy(['date'])->all();
             break;
         case 1:
             // Last Week - Starting with Sun
             $dates = DateUtil::getLastWeekDates();
             $transactions = $query->andWhere("YEARWEEK( `{$txnTable}`.`createdAt` ) = YEARWEEK( CURRENT_DATE - INTERVAL 7 DAY ) ")->groupBy(['date'])->all();
             break;
         case 2:
             // This Month
             $dates = DateUtil::getCurrentMonthDates();
             $transactions = $query->andWhere("MONTH( `{$txnTable}`.`createdAt` ) = ( MONTH( NOW() ) ) AND YEAR( `{$txnTable}`.`createdAt` ) = YEAR( NOW() ) ")->groupBy(['date'])->all();
             break;
         case 3:
             // Last Month
             $dates = DateUtil::getLastMonthDates();
             $transactions = $query->andWhere("MONTH( `{$txnTable}`.`createdAt` ) = ( MONTH( NOW() ) - 1 ) AND YEAR( `{$txnTable}`.`createdAt` ) = YEAR( NOW() ) ")->groupBy(['date'])->all();
             break;
     }
     foreach ($transactions as $transaction) {
         $transactionskv[$transaction['date']] = $transaction['amount'];
     }
     foreach ($dates as $date) {
         if (isset($transactionskv[$date])) {
             $amount[] = $transactionskv[$date];
         } else {
             $amount[] = 0;
         }
     }
     return $amount;
 }
 function register($googleUser)
 {
     $user = new User();
     $date = DateUtil::getDateTime();
     $user->email = $googleUser->email;
     $user->firstName = $googleUser->given_name;
     $user->lastName = $googleUser->family_name;
     $user->newsletter = 0;
     $user->registeredAt = $date;
     $user->status = User::STATUS_ACTIVE;
     $user->generateVerifyToken();
     $user->generateAuthKey();
     $user->save();
     return $user;
 }
 public static function create($orderId, $code, $type, $mode, $amount, $message)
 {
     // Set Attributes
     $user = Yii::$app->user->getIdentity();
     $transaction = new OrderTransaction();
     $transaction->createdBy = $user->id;
     $transaction->orderId = $orderId;
     $transaction->code = $code;
     $transaction->type = $type;
     $transaction->mode = $mode;
     $transaction->amount = $amount;
     $transaction->description = $message;
     $transaction->createdAt = DateUtil::getDateTime();
     $transaction->save();
     // Return OrderTransaction
     return $transaction;
 }
Пример #6
0
 /**
  * The method process the submitted form and save all the form fields except captcha field.
  */
 public function processFormSubmit($form)
 {
     $date = DateUtil::getDateTime();
     $attributes = parent::getFormAttributes();
     $fields = $attributes['fields'];
     $attribs = [];
     $user = Yii::$app->user->getIdentity();
     $formSubmit = new FormSubmit();
     $formSubmit->formId = $form->id;
     $formSubmit->submittedAt = $date;
     if (isset($user)) {
         $formSubmit->submittedBy = $user->id;
     }
     // Collect fields to save in json format
     foreach ($fields as $field) {
         $fieldName = $field->name;
         // Convert CheckBox array to csv
         if ($field->isCheckboxGroup()) {
             $this->{$fieldName} = join(",", $this->{$fieldName});
         }
         if ($field->compress) {
             $attribs[$field->name] = $this->{$fieldName};
         }
     }
     $formSubmit->data = json_encode($attribs);
     // save form submit
     $formSubmit->save();
     // Get Form Submit Id
     $formSubmitId = $formSubmit->id;
     // Save Form Fields
     foreach ($fields as $field) {
         if (!$field->compress) {
             $formSubmitField = new FormSubmitField();
             $formSubmitField->formSubmitId = $formSubmitId;
             $formSubmitField->name = $field->name;
             $fieldName = $field->name;
             $formSubmitField->value = $this->{$fieldName};
             $formSubmitField->save();
         }
     }
     return $formSubmit;
 }
Пример #7
0
 /**
  * The method registers website users and set their status to new at start. It also generate verification token.
  * @param RegisterForm $registerForm
  * @return User
  */
 public static function register($registerForm)
 {
     $user = new User();
     $date = DateUtil::getDateTime();
     $user->email = $registerForm->email;
     $user->username = $registerForm->username;
     $user->firstName = $registerForm->firstName;
     $user->lastName = $registerForm->lastName;
     $user->newsletter = $registerForm->newsletter;
     $user->registeredAt = $date;
     $user->status = User::STATUS_NEW;
     $user->generatePassword($registerForm->password);
     $user->generateVerifyToken();
     $user->generateAuthKey();
     $user->save();
     // Add to mailing list
     if ($user->newsletter) {
         NewsletterMemberService::create($user->email, $user->getName());
     }
     return $user;
 }
Пример #8
0
 /**
  * @param ModelContent $content
  * @param CmgFile $banner
  * @return Page
  */
 public static function update($content, $publish = false, $banner = null, $video = null)
 {
     // template
     if (isset($content->templateId) && $content->templateId <= 0) {
         unset($content->templateId);
     }
     $contentToUpdate = self::findById($content->id);
     $contentToUpdate->copyForUpdateFrom($content, ['bannerId', 'templateId', 'summary', 'content', 'seoName', 'seoDescription', 'seoKeywords', 'seoRobot']);
     // publish
     if ($publish && !isset($contentToUpdate->publishedAt)) {
         $date = DateUtil::getDateTime();
         $contentToUpdate->publishedAt = $date;
     }
     // banner, video
     if (isset($banner)) {
         FileService::saveImage($banner, ['model' => $contentToUpdate, 'attribute' => 'bannerId']);
     }
     if (isset($video)) {
         FileService::saveImage($video, ['model' => $contentToUpdate, 'attribute' => 'videoId']);
     }
     // Update Content
     $contentToUpdate->update();
     return $contentToUpdate;
 }
Пример #9
0
 public function login()
 {
     if ($this->validate()) {
         $user = $this->user;
         if ($this->admin) {
             $user->loadPermissions();
             if (!$user->isPermitted(CoreGlobal::PERM_ADMIN)) {
                 $this->addError("email", Yii::$app->cmgCoreMessage->getMessage(CoreGlobal::ERROR_NOT_ALLOWED));
                 return false;
             }
         }
         $user->lastLoginAt = DateUtil::getDateTime();
         $user->save();
         return Yii::$app->user->login($user, $this->rememberMe ? 3600 * 24 * 30 : 0);
     }
     return false;
 }
Пример #10
0
 /**
  * The method create user.
  * @param User $user
  * @param CmgFile $avatar
  * @return User
  */
 public static function create($user, $avatar = null)
 {
     // Set Attributes
     $user->registeredAt = DateUtil::getDateTime();
     $user->status = User::STATUS_NEW;
     // Generate Tokens
     $user->generateVerifyToken();
     $user->generateAuthKey();
     if (isset($avatar)) {
         // Save Avatar
         FileService::saveImage($avatar, ['model' => $user, 'attribute' => 'avatarId']);
     }
     // Create User
     $user->save();
     // Add to mailing list
     if ($user->newsletter) {
         NewsletterMemberService::create($user->email, $user->getName());
     }
     return $user;
 }