From e30bb082fa3e144bc881c5badc626a2d221759bf Mon Sep 17 00:00:00 2001 From: Roland Schneider Date: Thu, 29 Sep 2016 18:38:53 +0200 Subject: [PATCH] Remove trigger condition - maximalize enter count with ticket --- backend/controllers/CardController.php | 14 +++++++++++--- common/models/Card.php | 9 +++++++++ console/controllers/TicketController.php | 4 ++++ trigger_door_log_flag_out.sql | 7 +++++++ 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/backend/controllers/CardController.php b/backend/controllers/CardController.php index 2aff649..78b57de 100644 --- a/backend/controllers/CardController.php +++ b/backend/controllers/CardController.php @@ -389,10 +389,18 @@ class CardController extends \backend\controllers\BackendController { $command = $connection->createCommand( Ticket::$SQL_UPDATE ); $result = $command->execute(); \Yii::info("Tickets updated: " . $result ); - - \Yii::$app->session->setFlash('success', 'Módosított bérletek száma: ' . $result); - + + $command = $connection->createCommand( Card::$SQL_CLEARS_STATUS_DOOR ); + $result = $command->execute(); + \Yii::info("Door flag cleared: " . $result ); + + $command = $connection->createCommand( Card::$SQL_FIX_KEY_STATUS ); + $result = $command->execute(); + \Yii::info("Key flag fixed: " . $result ); + + + } return $this->render("recalculate"); diff --git a/common/models/Card.php b/common/models/Card.php index c2625d8..7b87adc 100644 --- a/common/models/Card.php +++ b/common/models/Card.php @@ -44,6 +44,15 @@ class Card extends \common\models\BaseFitnessActiveRecord UPDATE card set flag = ( flag & ~(1 << 1 ) ), flag_out= ( flag_out & ~(1 << 1 ) ) where card.type <> 50 "; + public static $SQL_FIX_KEY_STATUS = " + update card as c1 + left join card_key_assignment k + on k.id_card = c1.id_card + set flag = CASE WHEN k.id_key is null then (c1.flag | 1 << 2) else ( c1.flag & ~(1 << 2 ) ) end, + flag_out = CASE WHEN k.id_key is null then ( c1.flag_out & ~(1 << 2 )) else (c1.flag_out | 1 << 2 ) end + WHERE c1.type <> 50 + "; + public static $SQL_CLEARS_STATUS_DOOR_IN = " UPDATE card set flag = ( flag & ~(1 << 1 ) ) WHERE card.type <> 50 and card.id_card = :id "; diff --git a/console/controllers/TicketController.php b/console/controllers/TicketController.php index 4170913..a063c97 100644 --- a/console/controllers/TicketController.php +++ b/console/controllers/TicketController.php @@ -28,6 +28,10 @@ class TicketController extends Controller { $command = $connection->createCommand ( Ticket::$SQL_UPDATE ); $result = $command->execute (); \Yii::info ( "Tickets updated: " . $result ); + + + $command = $connection->createCommand ( Card::$SQL_FIX_KEY_STATUS ); + $result = $command->execute (); } /** diff --git a/trigger_door_log_flag_out.sql b/trigger_door_log_flag_out.sql index 722680e..d10ed0b 100644 --- a/trigger_door_log_flag_out.sql +++ b/trigger_door_log_flag_out.sql @@ -120,6 +120,11 @@ begin -- alapertelmezesben a belépés engedélyezve van set @p_allow_enter = true; + + + /* + -- NAPI TÖBSZÖRI BELÉPÉS FIGYELÉSE ITT - CSAK MÉSGEM KELLETT + set @p_allow_multiple_enter = true; set @p_count_all = 0; @@ -143,6 +148,7 @@ begin THEN set @p_allow_enter = false; END IF; + */ INSERT INTO devlog ( msg) values( concat( 'Kilépés: Aktuális bérlet/belépések száma/többszire belépés on/belépés on: ' , coalesce(@p_mo_ticket_id,''),'/', coalesce(@p_count_all,'') , '/', coalesce(@p_allow_multiple_enter,''),'/', coalesce(@p_allow_enter,'' ) ) ); @@ -151,6 +157,7 @@ begin flag_out = ( flag_out | 1 << 1 ) , -- nem léphet ki ( 1. bit beállíátsa 1-re ) flag = case when @p_allow_enter then ( flag & ~(1 << 1) ) else ( flag | 1 << 1 ) end WHERE type <> 50 and id_card = New.id_card; + END IF; -- BELÉPÉS van folyamatban - kilépés flag_out bekapcsolása, belépés flag kikapcsolása