Merge branch 'release/v.0.1.07'
This commit is contained in:
@@ -101,4 +101,11 @@ class DateUtil
|
||||
return $formatter->asDatetime($dateTimeObject);
|
||||
}
|
||||
|
||||
public static function parseDate($dateString){
|
||||
|
||||
$date = \DateTime::createFromFormat("Y.m.d", $dateString, new \DateTimeZone( 'UTC'));
|
||||
$date->setTime(0, 0, 0);
|
||||
return $date;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace common\components;
|
||||
|
||||
use common\models\TicketType;
|
||||
use common\models\Transfer;
|
||||
use \Yii;
|
||||
|
||||
@@ -348,6 +349,10 @@ class Helper {
|
||||
public static function isKeyRequired() {
|
||||
return \Yii::$app->params ['key_required'] == true;
|
||||
}
|
||||
|
||||
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'] ;
|
||||
@@ -489,5 +494,40 @@ class Helper {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $start \DateTime datetime
|
||||
* @param $ticketType \common\models\TicketType the ticket type
|
||||
*/
|
||||
public static function getTicketExpirationDate($start,$ticketType){
|
||||
$result = new \DateTime();
|
||||
$result->setTimezone(new \DateTimeZone("UTC") );
|
||||
$result->setTimestamp($start->getTimestamp());
|
||||
|
||||
|
||||
$unitCount = $ticketType->time_unit_count;
|
||||
$unitType = $ticketType->time_unit_type;
|
||||
|
||||
switch ($unitType){
|
||||
case TicketType::TIME_UNIT_DAY:
|
||||
$result->add(new \DateInterval("P".$unitCount."D"));
|
||||
$result->sub(new \DateInterval("P1D"));
|
||||
break;
|
||||
case TicketType::TIME_UNIT_MONTH:
|
||||
$result->add(new \DateInterval("P".$unitCount."M"));
|
||||
$result->sub(new \DateInterval("P1D"));
|
||||
break;
|
||||
case TicketType::TIME_UNIT_MONTH_REFERENCE:
|
||||
if ( $unitCount > 1 ){
|
||||
$result->add(new \DateInterval("P". ($unitCount -1 )."M"));
|
||||
}
|
||||
$result->sub(new \DateInterval("P1D"));
|
||||
break;
|
||||
}
|
||||
|
||||
$result->setTime(0, 0, 0);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,7 +5,7 @@ return [
|
||||
'supportEmail' => 'rocho02@gmail.com',
|
||||
'infoEmail' => 'info@rocho-net.hu',
|
||||
'user.passwordResetTokenExpire' => 3600,
|
||||
'version' => 'v0.1.07',
|
||||
'version' => 'v0.1.08',
|
||||
'company' => 'movar',//gyor
|
||||
'company_name' => "Freimann Kft.",
|
||||
'product_visiblity' => 'account',// on reception which products to display. account or global
|
||||
@@ -60,5 +60,6 @@ return [
|
||||
*/
|
||||
'key_toggle_door_log_enabled' => false,
|
||||
//if key required for entry trough the door
|
||||
'key_required' => true
|
||||
'key_required' => true,
|
||||
'ticket_type_door_allowed_check_on' => false
|
||||
];
|
||||
|
||||
@@ -34,10 +34,11 @@ class Card extends \common\models\BaseFitnessActiveRecord
|
||||
const TYPE_EMPLOYEE = 50;
|
||||
|
||||
|
||||
public static $FLAG_TICKET = 0;
|
||||
public static $FLAG_DOOR = 1;
|
||||
public static $FLAG_KEY = 2;
|
||||
public static $FLAG_STATUS = 3;
|
||||
public static $FLAG_TICKET = 0; //has valid ticket
|
||||
public static $FLAG_DOOR = 1; //door in/out order
|
||||
public static $FLAG_KEY = 2; //key status
|
||||
public static $FLAG_STATUS = 3; //allowed/disabled
|
||||
public static $FLAG_DOOR_ALLOWED = 4; //ticket type allows door
|
||||
|
||||
/**
|
||||
* This script is used in daily scripts, to clear the flag door log status
|
||||
@@ -65,6 +66,15 @@ class Card extends \common\models\BaseFitnessActiveRecord
|
||||
UPDATE card set flag = ( flag & ~(1 << 1 ) ) WHERE card.type <> 50 and card.id_card = :id
|
||||
";
|
||||
|
||||
public static function SQL_CLEAR_STATUS_DOOR_ALLOWED_FLAG(){
|
||||
return "UPDATE card set flag = ( flag & ~(1 << " . Card::$FLAG_DOOR_ALLOWED. " ) ) WHERE card.type <> 50 ";
|
||||
}
|
||||
|
||||
public static function SQL_CLEAR_STATUS_DOOR_ALLOWED_FLAG_FOR_CARD(){
|
||||
return Card::SQL_CLEAR_STATUS_DOOR_ALLOWED_FLAG() . " and card.id_card = :id ";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
@@ -227,6 +237,15 @@ class Card extends \common\models\BaseFitnessActiveRecord
|
||||
|
||||
$command = $db->createCommand(Card::$SQL_CLEARS_STATUS_DOOR_IN,[':id' => $id]);
|
||||
$command->execute();
|
||||
|
||||
if ( Helper::isTicketTypeDoorAllowedCheckOn()) {
|
||||
$command = $db->createCommand(Ticket::SQL_UPDATE_DOOR_ALLOWED_FLAG_FOR_CARD(), [':id' => $id]);
|
||||
$command->execute();
|
||||
}else{
|
||||
$command = $db->createCommand(Card::SQL_CLEAR_STATUS_DOOR_ALLOWED_FLAG_FOR_CARD(), [':id' => $id]);
|
||||
$command->execute();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function beforeSave($insert) {
|
||||
@@ -279,6 +298,11 @@ class Card extends \common\models\BaseFitnessActiveRecord
|
||||
return Helper::isBitOn($this->flag_out,Card::$FLAG_KEY);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* if flag is on, door entry is not allowed.
|
||||
*/
|
||||
public function isFlagDoorAllowed(){
|
||||
return Helper::isBitOn($this->flag,Card::$FLAG_DOOR_ALLOWED);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace common\models;
|
||||
|
||||
use common\components\Helper;
|
||||
use Yii;
|
||||
use yii\helpers\Url;
|
||||
use yii\helpers\VarDumper;
|
||||
@@ -54,6 +55,43 @@ class Log extends BaseFitnessActiveRecord
|
||||
public static $TYPE_TOWEL_IN = 190;
|
||||
public static $TYPE_TOWEL_OUT = 200;
|
||||
public static $TYPE_CRUD = 210;
|
||||
public static $TYPE_TICKET_UPDATED_BY_ADMIN = 220;
|
||||
|
||||
|
||||
public static function getTypes(){
|
||||
return [
|
||||
|
||||
Log::$TYPE_INFO => "Info",
|
||||
Log::$TYPE_ERR => "Hiba",
|
||||
Log::$TYPE_TICKET_USAGE_FIRST => "Bérlet használat",
|
||||
Log::$TYPE_TICKET_USAGE_MULTIPLE => "Többszöri bérlet használat",
|
||||
Log::$TYPE_LOGIN => "Bejelentkezés",
|
||||
Log::$TYPE_DEFAULT_ACCOUNT=> "Alapértelmezett kassza",
|
||||
Log::$TYPE_CREATE_CUSTOMER=> "Új vendég",
|
||||
Log::$TYPE_PROCUREMENT_UPDATE => "Beszerzés módosítás",
|
||||
Log::$TYPE_TICKET_COUNT_MOVE_OUT => "Ki mozgás",
|
||||
Log::$TYPE_WASTE => "Selejt",
|
||||
Log::$TYPE_NEWSLETTER_SUBSCRIBE => "Feliratkozás hirlevélre",
|
||||
Log::$TYPE_NEWSLETTER_UNSUBSCRIBE => "Leiratkozás hírlevélről",
|
||||
Log::$TYPE_NEWSLETTER_SENT => "Hirlevél elküldve",
|
||||
Log::$TYPE_TICKET_EXPIRE_SENT => "Bérlet lejáart figyelmeztetés elküldve",
|
||||
Log::$TYPE_NEWSLETTER_SEND_START => "Hirlevél küldés start",
|
||||
Log::$TYPE_NEWSLETTER_SEND_END => "Hirlevél küldés vége",
|
||||
Log::$TYPE_KEY_ASSIGN => "Kulcs kiadás",
|
||||
Log::$TYPE_KEY_UNASSIGN => "Kulcs visszaadás",
|
||||
Log::$TYPE_TOWEL_IN => "Törölköző ki",
|
||||
Log::$TYPE_TOWEL_OUT => "Törölköző vissza",
|
||||
Log::$TYPE_CRUD => "CRUD",
|
||||
Log::$TYPE_TICKET_UPDATED_BY_ADMIN => "Bérlet módosítás"
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
public function getTypeName(){
|
||||
$types = Log::getTypes();
|
||||
return Helper::getArrayValue($types,$this->type,null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
@@ -132,5 +170,47 @@ class Log extends BaseFitnessActiveRecord
|
||||
$model->id_user = 1;
|
||||
$model->save(false);
|
||||
}
|
||||
|
||||
|
||||
public function getUser(){
|
||||
return $this->hasOne( User::className(), ["id" =>"id_user" ] );
|
||||
}
|
||||
|
||||
public function getTicket(){
|
||||
return $this->hasOne( Ticket::className(), ["id_ticket" =>"id_ticket" ] );
|
||||
}
|
||||
|
||||
public function getCustomer(){
|
||||
return $this->hasOne( Customer::className(), ["id_customer" =>"id_customer" ] );
|
||||
}
|
||||
|
||||
public function getMoneyMovement(){
|
||||
return $this->hasOne( MoneyMovement::className(), ["id_money_movement" =>"id_money_movement" ] );
|
||||
}
|
||||
|
||||
|
||||
public function getUserName(){
|
||||
$user = $this->user;
|
||||
if ( isset($user)){
|
||||
return $user->username;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getCustomerName(){
|
||||
$customer = $this->customer;
|
||||
if ( isset($customer)){
|
||||
return $customer->name;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getTicketName(){
|
||||
$ticket = $this->ticket;
|
||||
if ( isset($ticket)){
|
||||
return $ticket->ticketTypeName;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -32,6 +32,8 @@ use common\components\Helper;
|
||||
* @property string $created_at
|
||||
* @property string $updated_at
|
||||
* @property int id_contract
|
||||
* @property integer $original_price
|
||||
* @property string $original_end;
|
||||
*
|
||||
* @property \common\models\Card card
|
||||
*/
|
||||
@@ -73,8 +75,25 @@ class Ticket extends \common\models\BaseFitnessActiveRecord
|
||||
,c1.flag = case when t.id_card is null then ( c1.flag | 1 << 0 ) else ( c1.flag & ~(1 << 0) ) end
|
||||
, c1.id_ticket_current = case when t.id_ticket is null then null else t.id_ticket end
|
||||
WHERE c1.type <> 50 and c1.id_card = :id";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function SQL_UPDATE_DOOR_ALLOWED_FLAG(){
|
||||
return "
|
||||
UPDATE card c
|
||||
LEFT JOIN ticket t on c.id_ticket_current = t.id_ticket
|
||||
LEFT JOIN ticket_type tt on t.id_ticket_type = tt.id_ticket_type
|
||||
set
|
||||
c.flag = case when tt.door_allowed <> 1 then ( c.flag | 1 << 4 ) else ( c.flag & ~(1 << 4) ) end
|
||||
WHERE c.type <> 50
|
||||
";
|
||||
}
|
||||
|
||||
public static function SQL_UPDATE_DOOR_ALLOWED_FLAG_FOR_CARD(){
|
||||
return Ticket::SQL_UPDATE_DOOR_ALLOWED_FLAG() . " and c.id_card = :id";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
*/
|
||||
@@ -124,6 +143,8 @@ class Ticket extends \common\models\BaseFitnessActiveRecord
|
||||
'id_card' => Yii::t('backend/ticket','Card'),
|
||||
'id_customer' => Yii::t('backend/ticket','Customer'),
|
||||
'payment_method' => Yii::t('common/transfer', 'Fizetési mód'),
|
||||
'original_price' => Yii::t('common/transfer', 'Eredeti ár'),
|
||||
'original_end' => Yii::t('common/transfer', 'Eredeti érvényesség vége'),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -135,6 +156,10 @@ class Ticket extends \common\models\BaseFitnessActiveRecord
|
||||
public function getContract(){
|
||||
return $this->hasOne( Contract::className(), ["id_contract" =>"id_contract" ] );
|
||||
}
|
||||
|
||||
public function getTransfer(){
|
||||
return $this->hasOne( Transfer::className(), ["id_object" =>"id_ticket"] )->andWhere(['transfer.type' => Transfer::TYPE_TICKET]);
|
||||
}
|
||||
|
||||
public function getCardNumber(){
|
||||
$result = "";
|
||||
@@ -395,6 +420,4 @@ class Ticket extends \common\models\BaseFitnessActiveRecord
|
||||
Card::updateCardFlagTicket($this->id_card);;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ use yii\helpers\ArrayHelper;
|
||||
* @property integer installment_enabled
|
||||
* @property integer installment_count
|
||||
* @property integer installment_money
|
||||
* @property integer door_allowed
|
||||
* @property string $created_at
|
||||
* @property string $updated_at
|
||||
*/
|
||||
@@ -38,6 +39,9 @@ class TicketType extends \common\models\BaseFitnessActiveRecord {
|
||||
|
||||
const INSTALLMENT_OFF = 0;
|
||||
const INSTALLMENT_ON = 1;
|
||||
|
||||
const FLAG_DOOR_ALLOWED_OFF = 0;
|
||||
const FLAG_DOOR_ALLOWED_ON = 1;
|
||||
|
||||
/**
|
||||
* @inheritdoc
|
||||
@@ -104,6 +108,13 @@ class TicketType extends \common\models\BaseFitnessActiveRecord {
|
||||
|
||||
[['installment_money',], 'integer'],
|
||||
[['installment_count',], 'integer'],
|
||||
|
||||
////////////////
|
||||
//door_allowed
|
||||
////////////////
|
||||
[['door_allowed',], 'integer'],
|
||||
[['door_allowed',], 'in', 'range' => [ self::FLAG_DOOR_ALLOWED_OFF, self::FLAG_DOOR_ALLOWED_ON ]],
|
||||
|
||||
];
|
||||
}
|
||||
|
||||
@@ -128,6 +139,7 @@ class TicketType extends \common\models\BaseFitnessActiveRecord {
|
||||
'installment_enabled' => Yii::t('common/ticket_type', 'Részlet fizetés a brutto áron felül'),
|
||||
'installment_count' => Yii::t('common/ticket_type', 'Havi részletek száma'),
|
||||
'installment_money' => Yii::t('common/ticket_type', 'Havi részlet összege'),
|
||||
'door_allowed' => Yii::t('common/ticket_type', 'Forgóvilla'),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -188,6 +200,11 @@ class TicketType extends \common\models\BaseFitnessActiveRecord {
|
||||
public function isStudent(){
|
||||
return $this->flag_student == ( self::FLAG_STUDENT_ON);
|
||||
}
|
||||
|
||||
public function isDoor(){
|
||||
return $this->door_allowed == ( self::FLAG_STUDENT_ON);
|
||||
}
|
||||
|
||||
public function isInstallment(){
|
||||
return $this->installment_enabled == ( self::INSTALLMENT_ON);
|
||||
}
|
||||
|
||||
@@ -197,6 +197,13 @@ class Transfer extends \common\models\BaseFitnessActiveRecord {
|
||||
"id_transfer" => "id_transfer"
|
||||
] );
|
||||
}
|
||||
|
||||
public function getCustomer(){
|
||||
return $this->hasOne ( Customer::className (), [
|
||||
"id_customer" => "id_customer"
|
||||
] );
|
||||
}
|
||||
|
||||
public function getSale() {
|
||||
return $this->hasOne ( Sale::className (), [
|
||||
"id_sale" => "id_object"
|
||||
|
||||
Reference in New Issue
Block a user