improve customer api & gui
This commit is contained in:
@@ -22,7 +22,7 @@ class Helper {
|
||||
*/
|
||||
public static function calcStartDatimeDaysSinceToday($start, $format = "datetime" ){
|
||||
$now = time();
|
||||
|
||||
|
||||
if ( $format == "datetime"){
|
||||
$format = "Y-m-d H:i";
|
||||
}else if ( $format == "date") {
|
||||
@@ -30,10 +30,10 @@ class Helper {
|
||||
}else{
|
||||
//use format
|
||||
}
|
||||
|
||||
|
||||
$d = \DateTime::createFromFormat( $format , $start)->getTimeStamp();
|
||||
$days_between = ceil(abs( $now - $d) / 86400 );
|
||||
|
||||
|
||||
return $days_between;
|
||||
}
|
||||
|
||||
@@ -52,8 +52,8 @@ class Helper {
|
||||
*/
|
||||
public static function restrictIfNotAdminTheStartDate($query,$date, $fields = ['transfer.paid_at','transfer.created_at'], $format = 'datetime'){
|
||||
$result = null;
|
||||
|
||||
|
||||
|
||||
|
||||
$needFix = false;
|
||||
if ( !isset($date) || empty($date)){
|
||||
$needFix = true;
|
||||
@@ -63,19 +63,19 @@ class Helper {
|
||||
$needFix = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ( $needFix == true ){
|
||||
$d = Helper::getReceptionVisibilityDays();
|
||||
|
||||
|
||||
$time = date( "Y-m-d H:i:s", strtotime("today -$d day") );
|
||||
|
||||
|
||||
$conditions = [];
|
||||
|
||||
|
||||
foreach ($fields as $f ){
|
||||
$conditions[] = ['>=', $f, $time];
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if ( count($conditions) > 1 ){
|
||||
$andWhereCond = [];
|
||||
$andWhereCond[0] = "or";
|
||||
@@ -87,26 +87,26 @@ class Helper {
|
||||
}else if ( count($conditions) == 1 ){
|
||||
$andWhereCond = $conditions[0];
|
||||
}
|
||||
|
||||
|
||||
// $start_date_condition = ['or',[ '>=', 'transfer.created_at', $time ] ,[ '>=', 'transfer.paid_at', $time] ];
|
||||
if ( isset($andWhereCond)){
|
||||
if ( isset($andWhereCond)){
|
||||
$query->andWhere( $andWhereCond );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
public static function getDateTimeString( ){
|
||||
|
||||
|
||||
return date("Y-m-d H:i:s");
|
||||
}
|
||||
public static function getDateString( ){
|
||||
|
||||
|
||||
return date("Y-m-d");
|
||||
}
|
||||
|
||||
|
||||
public static function getArrayValue($arr,$key,$def){
|
||||
$result = $def;
|
||||
if ( array_key_exists($key, $arr)){
|
||||
@@ -114,8 +114,8 @@ class Helper {
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static function hufRound($m) {
|
||||
$result = round ( $m / 5, 0 ) * 5;
|
||||
return $result;
|
||||
@@ -128,18 +128,18 @@ class Helper {
|
||||
* @param $end
|
||||
*/
|
||||
public static function notInInterval($query, $field, $start, $end) {
|
||||
$query->andFilterWhere ( [
|
||||
$query->andFilterWhere ( [
|
||||
'or',
|
||||
[
|
||||
[
|
||||
'<',
|
||||
$field,
|
||||
isset ( $start ) ? $start : '1900-01-01'
|
||||
isset ( $start ) ? $start : '1900-01-01'
|
||||
],
|
||||
[
|
||||
[
|
||||
'>=',
|
||||
$field,
|
||||
isset ( $end ) ? $end : '3000-01-01'
|
||||
]
|
||||
isset ( $end ) ? $end : '3000-01-01'
|
||||
]
|
||||
] );
|
||||
}
|
||||
|
||||
@@ -150,21 +150,21 @@ class Helper {
|
||||
* @param string $end the end date
|
||||
*/
|
||||
public static function notPaid($query, $field, $start, $end) {
|
||||
$query->andFilterWhere ( [
|
||||
$query->andFilterWhere ( [
|
||||
'or',
|
||||
[
|
||||
[
|
||||
'<',
|
||||
$field,
|
||||
isset ( $start ) ? $start : '1900-01-01'
|
||||
isset ( $start ) ? $start : '1900-01-01'
|
||||
],
|
||||
[
|
||||
[
|
||||
'>=',
|
||||
$field,
|
||||
isset ( $end ) ? $end : '3000-01-01'
|
||||
isset ( $end ) ? $end : '3000-01-01'
|
||||
],
|
||||
[
|
||||
"transfer.status" => Transfer::STATUS_NOT_PAID
|
||||
]
|
||||
[
|
||||
"transfer.status" => Transfer::STATUS_NOT_PAID
|
||||
]
|
||||
] );
|
||||
}
|
||||
|
||||
@@ -175,15 +175,15 @@ class Helper {
|
||||
* @param string $end the end date
|
||||
*/
|
||||
public static function inInterval($query, $field, $start, $end) {
|
||||
$query->andFilterWhere ( [
|
||||
$query->andFilterWhere ( [
|
||||
'>=',
|
||||
$field,
|
||||
$start
|
||||
$start
|
||||
] );
|
||||
$query->andFilterWhere ( [
|
||||
$query->andFilterWhere ( [
|
||||
'<',
|
||||
$field,
|
||||
$end
|
||||
$end
|
||||
] );
|
||||
}
|
||||
|
||||
@@ -194,53 +194,53 @@ class Helper {
|
||||
* @return array the query 'in interval' rule
|
||||
*/
|
||||
public static function queryInIntervalRule($field, $start, $end) {
|
||||
return [
|
||||
return [
|
||||
'and',
|
||||
[
|
||||
[
|
||||
'>=',
|
||||
$field,
|
||||
$start
|
||||
$start
|
||||
],
|
||||
[
|
||||
[
|
||||
'<',
|
||||
$field,
|
||||
$end
|
||||
]
|
||||
$end
|
||||
]
|
||||
];
|
||||
}
|
||||
public static function queryExpireRule($field_start, $field_end, $start, $end) {
|
||||
return [
|
||||
return [
|
||||
'and',
|
||||
[
|
||||
[
|
||||
'<',
|
||||
$field_start,
|
||||
$end
|
||||
$end
|
||||
],
|
||||
[
|
||||
[
|
||||
'>=',
|
||||
$field_end,
|
||||
$start
|
||||
$start
|
||||
],
|
||||
[
|
||||
[
|
||||
'<=',
|
||||
$field_end,
|
||||
$end
|
||||
]
|
||||
$end
|
||||
]
|
||||
];
|
||||
}
|
||||
public static function queryValidRule($field_start, $field_end, $start, $end) {
|
||||
return [
|
||||
return [
|
||||
'and',
|
||||
[
|
||||
[
|
||||
'<',
|
||||
$field_start,
|
||||
$end
|
||||
$end
|
||||
],
|
||||
[
|
||||
[
|
||||
'>=',
|
||||
$field_end,
|
||||
$start
|
||||
]
|
||||
$start
|
||||
]
|
||||
];
|
||||
}
|
||||
public static function sqlInIntervalRule($field, $paramStart, $paramEnd) {
|
||||
@@ -270,35 +270,35 @@ class Helper {
|
||||
public static function queryAccountConstraint($query, $field) {
|
||||
if (! RoleDefinition::isAdmin ()) {
|
||||
$query->innerJoin ( "user_account_assignment", $field . ' = user_account_assignment.id_account' );
|
||||
$query->andWhere ( [
|
||||
'user_account_assignment.id_user' => Yii::$app->user->id
|
||||
$query->andWhere ( [
|
||||
'user_account_assignment.id_user' => Yii::$app->user->id
|
||||
] );
|
||||
}
|
||||
}
|
||||
public static function roleLabels() {
|
||||
return [
|
||||
return [
|
||||
'reception' => Yii::t ( 'common/role', 'Reception' ),
|
||||
'admin' => Yii::t ( 'common/role', 'Administrator' ),
|
||||
'employee' => Yii::t ( 'common/role', 'Alkalmazott' )
|
||||
'employee' => Yii::t ( 'common/role', 'Alkalmazott' )
|
||||
];
|
||||
}
|
||||
public static function roleDefinitions() {
|
||||
return [
|
||||
'employee' => [
|
||||
'canAllow' => [
|
||||
'employee'
|
||||
]
|
||||
return [
|
||||
'employee' => [
|
||||
'canAllow' => [
|
||||
'employee'
|
||||
]
|
||||
],
|
||||
'admin' => [
|
||||
'canAllow' => [
|
||||
'admin' => [
|
||||
'canAllow' => [
|
||||
'admin',
|
||||
'reception',
|
||||
'employee'
|
||||
]
|
||||
'employee'
|
||||
]
|
||||
],
|
||||
'reception' => [
|
||||
'canAllow' => [ ]
|
||||
]
|
||||
'reception' => [
|
||||
'canAllow' => [ ]
|
||||
]
|
||||
];
|
||||
}
|
||||
public static function flash($mode, $message) {
|
||||
@@ -322,26 +322,26 @@ class Helper {
|
||||
public static function isUserCartVisibilityAll() {
|
||||
return \Yii::$app->params ['user_cart_item_visibility'] == 'all';
|
||||
}
|
||||
|
||||
|
||||
public static function getBackendSkin() {
|
||||
return \Yii::$app->params ['backend_skin'] ;
|
||||
}
|
||||
|
||||
|
||||
public static function getCompany() {
|
||||
return \Yii::$app->params ['company'] ;
|
||||
}
|
||||
public static function getCompanyName() {
|
||||
return \Yii::$app->params ['company_name'] ;
|
||||
}
|
||||
|
||||
|
||||
public static function isCompanyMovar() {
|
||||
return \Yii::$app->params ['company'] == 'movar';
|
||||
}
|
||||
|
||||
|
||||
public static function isCompanyGyor() {
|
||||
return \Yii::$app->params ['company'] == 'gyor';
|
||||
}
|
||||
|
||||
|
||||
public static function isUserCartOn() {
|
||||
return \Yii::$app->params ['user_cart_on'] == true;
|
||||
}
|
||||
@@ -353,26 +353,26 @@ class Helper {
|
||||
public static function isTicketTypeDoorAllowedCheckOn() {
|
||||
return \Yii::$app->params ['ticket_type_door_allowed_check_on'] == true;
|
||||
}
|
||||
|
||||
|
||||
public static function getProductSaleDefaultFocus() {
|
||||
return \Yii::$app->params ['product_sale_default_focus'] ;
|
||||
}
|
||||
public static function isProductVisibilityAccount() {
|
||||
return \Yii::$app->params ['product_visiblity'] == 'account';
|
||||
}
|
||||
|
||||
|
||||
public static function isAccountStateClosePreloadMoney() {
|
||||
return \Yii::$app->params ['account_state_close_preload_money'] == true;
|
||||
}
|
||||
|
||||
|
||||
public static function isAccountStateOpenSendMail() {
|
||||
return \Yii::$app->params ['mail_account_state_open'] == true;
|
||||
}
|
||||
|
||||
|
||||
public static function isAccountStateCloseSendMail() {
|
||||
return \Yii::$app->params ['mail_account_state_close'] == true;
|
||||
}
|
||||
|
||||
|
||||
public static function getReceptionVisibilityDays() {
|
||||
return \Yii::$app->params ['reception_visibility_days'] ;
|
||||
}
|
||||
@@ -399,12 +399,16 @@ class Helper {
|
||||
public static function isReceptionTransferIndexEnabled(){
|
||||
return !Helper::isReceptionTransferListToday();
|
||||
}
|
||||
|
||||
|
||||
public static function getGroupTrainingUrl(){
|
||||
return \Yii::$app->params['group_training.url'];
|
||||
}
|
||||
|
||||
public static function getRealUserIp() {
|
||||
$client = @$_SERVER ['HTTP_CLIENT_IP'];
|
||||
$forward = @$_SERVER ['HTTP_X_FORWARDED_FOR'];
|
||||
$remote = $_SERVER ['REMOTE_ADDR'];
|
||||
|
||||
|
||||
if (filter_var ( $client, FILTER_VALIDATE_IP )) {
|
||||
$ip = $client;
|
||||
} elseif (filter_var ( $forward, FILTER_VALIDATE_IP )) {
|
||||
@@ -412,10 +416,10 @@ class Helper {
|
||||
} else {
|
||||
$ip = $remote;
|
||||
}
|
||||
|
||||
|
||||
return $ip;
|
||||
}
|
||||
|
||||
|
||||
public static function url_get_contents ($Url) {
|
||||
if (!function_exists('curl_init')){
|
||||
die('CURL is not installed!');
|
||||
@@ -427,14 +431,14 @@ class Helper {
|
||||
curl_close($ch);
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
public static function getGeoIp() {
|
||||
$ip = Helper::getRealUserIp ();
|
||||
$details = json_decode ( Helper::url_get_contents( "http://ipinfo.io/{$ip}/json" ) );
|
||||
return $details;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static function mkYiiSortItem($field, $column){
|
||||
return [
|
||||
$field => [
|
||||
@@ -454,7 +458,7 @@ class Helper {
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
public static function setBit($val,$index,$bit_on){
|
||||
$flag = +$val;
|
||||
if ( $bit_on ){
|
||||
@@ -471,7 +475,7 @@ class Helper {
|
||||
return $result ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static function generateRandomString($length = 6,$characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWX' ) {
|
||||
$charactersLength = strlen($characters);
|
||||
$randomString = '';
|
||||
@@ -480,7 +484,7 @@ class Helper {
|
||||
}
|
||||
return $randomString;
|
||||
}
|
||||
|
||||
|
||||
public static function getWebUrl(){
|
||||
if ( \Yii::$app->params['development'] == true ){
|
||||
return "http://localhost/fitness-web";
|
||||
@@ -529,5 +533,5 @@ class Helper {
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -64,5 +64,6 @@ return [
|
||||
'ticket_type_door_allowed_check_on' => false,
|
||||
'warn_ticket_expire_in_days_count' => 3,
|
||||
'warn_ticket_expire_in_usage_count' => 3,
|
||||
'inventory.products.only.active' => true
|
||||
'inventory.products.only.active' => true,
|
||||
'group_training.url' => 'https://fitnessadmin.hu'
|
||||
];
|
||||
|
||||
40
common/helpers/AppArrayHelper.php
Normal file
40
common/helpers/AppArrayHelper.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace common\helpers;
|
||||
|
||||
|
||||
class AppArrayHelper
|
||||
{
|
||||
|
||||
|
||||
public static function objectArrayToMap($array, $funcGetId, $funcGetValue){
|
||||
$result = [];
|
||||
|
||||
foreach ($array as $item ){
|
||||
$id = $funcGetId($item);
|
||||
$value = $funcGetValue($item);
|
||||
$result[$id] = $value;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Map an array of object by object id
|
||||
* [obj1,obj2] => [obj1.id => obj1,obj2.id => obj2]
|
||||
* @param $array
|
||||
* @return array
|
||||
*/
|
||||
public static function objectArrayToMapById($array){
|
||||
return AppArrayHelper::objectArrayToMap(
|
||||
$array,
|
||||
function ($item){
|
||||
return $item->id;
|
||||
},
|
||||
function ($item){
|
||||
return $item;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
16
common/helpers/AppDateTimeHelper.php
Normal file
16
common/helpers/AppDateTimeHelper.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
namespace common\helpers;
|
||||
|
||||
class AppDateTimeHelper
|
||||
{
|
||||
|
||||
public static function convertMySqlDatetimeToPhpInteger($dateString){
|
||||
if (!isset($dateString) || empty($dateString)){
|
||||
return null;
|
||||
}
|
||||
$unixTime = strtotime($dateString . " UTC");
|
||||
return $unixTime;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,25 +1,28 @@
|
||||
<?php
|
||||
use yii\helpers\Html;
|
||||
use yii\helpers\Url;
|
||||
use common\components\Helper;
|
||||
|
||||
use frontend\models\PasswordChangeModel;
|
||||
|
||||
/* @var $model PasswordChangeModel */
|
||||
|
||||
|
||||
?>
|
||||
<h1 style="font-size: 12px;">Kedves <?php echo $model->customer->name?>!</h1>
|
||||
<p style="font-size: 12px;">
|
||||
Az Ön új jelszava:
|
||||
</p>
|
||||
<ul style="font-size: 12px;">
|
||||
<li>
|
||||
"<?php echo $model->plainPassword ?>"
|
||||
</li>
|
||||
</ul>
|
||||
<p style="font-size: 12px;">
|
||||
Üdvözlettel:
|
||||
</p>
|
||||
<p style="font-size: 12px;">
|
||||
<?php echo $model->companyName ?>
|
||||
</p>
|
||||
<p>
|
||||
Ez egy automatikus e-mail üzenet, amelyre nem tud válaszolni.
|
||||
</p>
|
||||
<div>Kedves <?php echo $model->customer->name ?>!</div>
|
||||
<p>
|
||||
Az Ön új jelszava:
|
||||
</p>
|
||||
<p>
|
||||
<?php echo $model->plainPassword ?>
|
||||
</p>
|
||||
<p>A bejelentkezéshez kattintson a következő linkre: <a
|
||||
href="<?php echo $model->groupTrainingUrl ?>"><?php echo $model->groupTrainingUrl ?></a></p>
|
||||
<p>
|
||||
Üdvözlettel:
|
||||
</p>
|
||||
<p>
|
||||
<?php echo $model->companyName ?>
|
||||
</p>
|
||||
<p>
|
||||
Ez egy automatikus e-mail üzenet, amelyre nem tud válaszolni.
|
||||
</p>
|
||||
<?php
|
||||
?>
|
||||
|
||||
@@ -161,7 +161,8 @@ class Event extends ActiveRecord
|
||||
* @return EventRegistration[]|ActiveQuery
|
||||
*/
|
||||
public function getActiveEventRegistrations(){
|
||||
return $this->hasMany(EventRegistration::class,['id_event' => 'id'])->andWhere(
|
||||
return $this->hasMany(EventRegistration::class,['id_event' => 'id'])
|
||||
->andWhere(
|
||||
[
|
||||
'event_registration.canceled_at' => null,
|
||||
'event_registration.deleted_at' => null,
|
||||
@@ -169,19 +170,6 @@ class Event extends ActiveRecord
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return EventRegistration[]|ActiveQuery
|
||||
*/
|
||||
public function getActiveEventRegistrationsForCustomer(){
|
||||
return $this->hasMany(EventRegistration::class,['id_event' => 'id'])->andWhere(
|
||||
[
|
||||
'event_registration.canceled_at' => null,
|
||||
'event_registration.deleted_at' => null,
|
||||
'event_registration.id_customer' => \Yii::$app->user->id
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return integer
|
||||
*/
|
||||
|
||||
@@ -57,45 +57,52 @@ class EventRegistration extends \yii\db\ActiveRecord
|
||||
|
||||
public function behaviors()
|
||||
{
|
||||
return ArrayHelper::merge( [
|
||||
return ArrayHelper::merge([
|
||||
[
|
||||
'class' => TimestampBehavior::className(),
|
||||
'value' => function(){ return date('Y-m-d H:i:s' ); }
|
||||
'value' => function () {
|
||||
return date('Y-m-d H:i:s');
|
||||
}
|
||||
]
|
||||
],
|
||||
parent::behaviors());
|
||||
}
|
||||
|
||||
|
||||
public function getEvent(){
|
||||
return $this->hasOne($this->getEventClass(),['id' => 'id_event']);
|
||||
public function getEvent()
|
||||
{
|
||||
return $this->hasOne($this->getEventClass(), ['id' => 'id_event']);
|
||||
}
|
||||
|
||||
public function getCustomer(){
|
||||
return $this->hasOne($this->getCustomerClass(),['id' => 'id_customer']);
|
||||
public function getCustomer()
|
||||
{
|
||||
return $this->hasOne($this->getCustomerClass(), ['id' => 'id_customer']);
|
||||
}
|
||||
|
||||
|
||||
public function getEventClass(){
|
||||
public function getEventClass()
|
||||
{
|
||||
return Event::class;
|
||||
}
|
||||
|
||||
public function getCustomerClass(){
|
||||
public function getCustomerClass()
|
||||
{
|
||||
return Customer::class;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param EventRegistration $eventRegistration
|
||||
*/
|
||||
public static function isActive($eventRegistration){
|
||||
if ( !isset($eventRegistration ) ){
|
||||
public static function isActive($eventRegistration)
|
||||
{
|
||||
if (!isset($eventRegistration)) {
|
||||
return false;
|
||||
}
|
||||
if ( isset($eventRegistration->canceled_at ) ){
|
||||
if (isset($eventRegistration->canceled_at)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( isset($eventRegistration->deleted_at ) ){
|
||||
if (isset($eventRegistration->deleted_at)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -105,32 +112,40 @@ class EventRegistration extends \yii\db\ActiveRecord
|
||||
/**
|
||||
* @param EventRegistration $eventRegistration
|
||||
*/
|
||||
public static function isForCustomer($eventRegistration,$idCustomer){
|
||||
if ( !isset($eventRegistration ) ){
|
||||
public static function isForCustomer($eventRegistration, $idCustomer)
|
||||
{
|
||||
if (!isset($eventRegistration)) {
|
||||
return false;
|
||||
}
|
||||
if ( !isset($eventRegistration->id_customer ) ){
|
||||
if (!isset($eventRegistration->id_customer)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $eventRegistration->id_customer == $idCustomer;
|
||||
return $eventRegistration->id_customer == $idCustomer;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param EventRegistration[] $eventRegistrations
|
||||
*/
|
||||
public static function filterActive($eventRegistrations){
|
||||
return array_filter($eventRegistrations, EventRegistration::class.'::isActive' );
|
||||
public static function filterActive($eventRegistrations)
|
||||
{
|
||||
if (!isset($eventRegistrations)) {
|
||||
return [];
|
||||
}
|
||||
return array_filter($eventRegistrations, EventRegistration::class . '::isActive');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param EventRegistration[] $eventRegistrations
|
||||
*/
|
||||
public static function filterForCustomer($eventRegistrations,$idCustomer){
|
||||
public static function filterForCustomer($eventRegistrations, $idCustomer)
|
||||
{
|
||||
$result = [];
|
||||
foreach ($eventRegistrations as $eventRegistration){
|
||||
if ( EventRegistration::isForCustomer($eventRegistration,$idCustomer)){
|
||||
$result[] = $eventRegistration;
|
||||
if (isset($eventRegistrations)) {
|
||||
foreach ($eventRegistrations as $eventRegistration) {
|
||||
if (EventRegistration::isForCustomer($eventRegistration, $idCustomer)) {
|
||||
$result[] = $eventRegistration;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $result;
|
||||
|
||||
@@ -11,6 +11,7 @@ use yii\helpers\ArrayHelper;
|
||||
*
|
||||
* @property integer $id
|
||||
* @property string $name
|
||||
* @property string $theme
|
||||
* @property string $created_at
|
||||
* @property string $updated_at
|
||||
*/
|
||||
@@ -30,9 +31,10 @@ class EventType extends \yii\db\ActiveRecord
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
[['name'], 'required'],
|
||||
[['name','theme'], 'required'],
|
||||
[['name'], 'unique'],
|
||||
[['name'], 'string', 'max' => 255]
|
||||
[['name'], 'string', 'max' => 255],
|
||||
[['theme'], 'string', 'max' => 50]
|
||||
];
|
||||
}
|
||||
|
||||
@@ -104,4 +106,12 @@ class EventType extends \yii\db\ActiveRecord
|
||||
// TODO: implement bossiness logic to select ticket
|
||||
return $possibleTickets[0];
|
||||
}
|
||||
|
||||
static function themes() {
|
||||
$themes = [];
|
||||
for ($x = 0; $x < 10; $x++) {
|
||||
$themes[$x] = "Színtéma " . ($x+1);
|
||||
}
|
||||
return $themes;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace common\models;
|
||||
|
||||
use common\helpers\AppArrayHelper;
|
||||
use Yii;
|
||||
use yii\behaviors\TimestampBehavior;
|
||||
use yii\helpers\ArrayHelper;
|
||||
|
||||
@@ -3,10 +3,12 @@
|
||||
namespace common\modules\event\manager;
|
||||
|
||||
use common\models\Event;
|
||||
use common\models\EventRegistration;
|
||||
use common\modules\event\models\timetable\TimeTableMonth;
|
||||
use common\modules\event\models\timetable\TimeTableMonthDay;
|
||||
use common\modules\event\models\timetable\TimeTableMonthWeek;
|
||||
use customerapi\models\available\EventInterval;
|
||||
use customerapi\models\details\EventRegistrationView;
|
||||
use DateTime;
|
||||
use Exception;
|
||||
use yii\db\Query;
|
||||
@@ -23,13 +25,14 @@ class EventManager
|
||||
* @throws \yii\base\Exception on any error
|
||||
* @throws StaleObjectException
|
||||
*/
|
||||
public function deleteEvent($id){
|
||||
public function deleteEvent($id)
|
||||
{
|
||||
$event = Event::findOne($id);
|
||||
if ( !isset($event)){
|
||||
if (!isset($event)) {
|
||||
throw new \yii\base\Exception("Event $id not found");
|
||||
}
|
||||
$registrations = $event->eventRegistrations;
|
||||
if ( !isset($registrations) || count($registrations) === 0 ){
|
||||
if (!isset($registrations) || count($registrations) === 0) {
|
||||
$event->delete();
|
||||
} else {
|
||||
$event->deleted_at = time();
|
||||
@@ -43,7 +46,7 @@ class EventManager
|
||||
* @return TimeTableMonth
|
||||
* @throws Exception
|
||||
*/
|
||||
public function loadTimeTable($interval , $activeOrDisplayInterval = "active" )
|
||||
public function loadTimeTable($interval, $activeOrDisplayInterval = "active")
|
||||
{
|
||||
|
||||
$timeTable = new TimeTableMonth();
|
||||
@@ -73,11 +76,11 @@ class EventManager
|
||||
$timeTable->weeks[$weekNumber]->$weekDayName = $timeTableMonthDay;
|
||||
}
|
||||
|
||||
if ( $activeOrDisplayInterval == "active"){
|
||||
if ($activeOrDisplayInterval == "active") {
|
||||
$dateTimeFrom = $interval->firstActiveDate;
|
||||
$to = clone $interval->lastActiveDate;
|
||||
$dateTimeTo = $to->modify('+1 day');
|
||||
}else{
|
||||
} else {
|
||||
// active
|
||||
$dateTimeFrom = $interval->firstDisplayDate;
|
||||
$to = clone $interval->lastDisplayDate;
|
||||
@@ -85,7 +88,7 @@ class EventManager
|
||||
}
|
||||
// get events between active dates
|
||||
|
||||
$events =$this->getEvents($dateTimeFrom,$dateTimeTo);
|
||||
$events = $this->getEvents($dateTimeFrom, $dateTimeTo);
|
||||
|
||||
// set events per day
|
||||
/** @var Event $event */
|
||||
@@ -108,8 +111,8 @@ class EventManager
|
||||
|
||||
/**
|
||||
* Get all active events between the to dates
|
||||
* @param DateTime $fromInc from date inclusive (>=)
|
||||
* @param DateTime $toExcl to date exclusive (<)
|
||||
* @param DateTime $fromInc from date inclusive (>=)
|
||||
* @param DateTime $toExcl to date exclusive (<)
|
||||
* @return Event[]
|
||||
*/
|
||||
public function getEvents($fromInc, $toExcl)
|
||||
@@ -150,18 +153,61 @@ class EventManager
|
||||
public function getEventsForDay($date)
|
||||
{
|
||||
$start = clone $date;
|
||||
$start->setTime(0,0);
|
||||
$start->setTime(0, 0);
|
||||
|
||||
$to = clone $start;
|
||||
$to->modify('+1 day');
|
||||
|
||||
return $this->getEvents($start,$to);
|
||||
return $this->getEvents($start, $to);
|
||||
}
|
||||
|
||||
public function getEvent($id){
|
||||
public function getEvent($id)
|
||||
{
|
||||
return Event::findOne($id);
|
||||
}
|
||||
|
||||
public function findActiveRegistrations($idEvent, $idCustomer = null)
|
||||
{
|
||||
|
||||
$registrations = EventRegistrationView::find()->andWhere(['id_event' => $idEvent, 'id_customer' => \Yii::$app->user->id])->all();
|
||||
$allActiveRegistrations = EventRegistration::filterActive($registrations);
|
||||
if (isset($idCustomer)) {
|
||||
$allActiveRegistrations = EventRegistration::filterForCustomer($allActiveRegistrations, \Yii::$app->user->id);
|
||||
}
|
||||
return $allActiveRegistrations;
|
||||
}
|
||||
|
||||
|
||||
public function findActiveEvent($idEvent, $interval, $withRelatedObjects = false)
|
||||
{
|
||||
$paramEventStartMax = (clone $interval->lastActiveDate);
|
||||
$paramEventStartMax = $paramEventStartMax->modify('+1 day');
|
||||
$paramEventStartMax = $paramEventStartMax->getTimestamp();
|
||||
$query = Event::find()
|
||||
->andWhere(['event.id' => $idEvent])
|
||||
->andWhere(['>=', 'event.start', $interval->firstActiveDate->getTimestamp()])
|
||||
->andWhere(['<', 'event.start', $paramEventStartMax])
|
||||
->andWhere(['event.active' => '1']);
|
||||
|
||||
if ($withRelatedObjects) {
|
||||
$query = $query->innerJoinWith('trainer')
|
||||
->innerJoinWith('eventType')
|
||||
->innerJoinWith('room');
|
||||
}
|
||||
|
||||
|
||||
return $query->one();
|
||||
}
|
||||
|
||||
public function findActiveEvents($interval)
|
||||
{
|
||||
$paramEventStartMax = (clone $interval->lastActiveDate);
|
||||
$paramEventStartMax = $paramEventStartMax->modify('+1 day');
|
||||
$paramEventStartMax = $paramEventStartMax->getTimestamp();
|
||||
return Event::find()
|
||||
->andWhere(['>=', 'event.start', $interval->firstActiveDate->getTimestamp()])
|
||||
->andWhere(['<', 'event.start', $paramEventStartMax])
|
||||
->andWhere(['event.active' => '1'])->all();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user