60 lines
1.8 KiB
PHP
60 lines
1.8 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Klasa obsługuje tokeny wykonania dla historii.
|
|
* Zadaniem metod zawartych w tej klasie, jest rozpoznanie i zezwolenie na 1 wykonanie kodu dla danego produktu.
|
|
*/
|
|
class stPriceHistoryToken
|
|
{
|
|
|
|
public function __construct($product)
|
|
{
|
|
$this->product = $product;
|
|
}
|
|
|
|
/**
|
|
* Generuj token produktu.
|
|
* @return int INT token wywołania - ID produktu jako generator tokena
|
|
*/
|
|
public function getExecuteToken()
|
|
{
|
|
// do zablokowania wielokrotnego wywolania dla 1 produktu
|
|
if ($this->product->getId() > 0) {
|
|
// product id > 0 dla edycji, dla dodania nie ma go
|
|
$token = $this->product->getCode();
|
|
} else {
|
|
$token = 0;
|
|
}
|
|
|
|
return $token;
|
|
}
|
|
|
|
/**
|
|
* Metoda sprawdz, czy dane zadanie jest wywołane tylko 1 raz. Np. toda save() - która wywołuj ten kod
|
|
* wykonywana jest 4x, zabezpieczemnie ogranicza wykonanie kodu do 1 wywołania -> rel: STX-844
|
|
* @param int $token
|
|
* @return bool true - można wykonać zadanie, jest to pierwsze wywyłanie, false - nie można, kolejne wywołanie
|
|
*/
|
|
public function allowExecuteToken($token)
|
|
{
|
|
global $product_price_history_execute_tokens;
|
|
if (! is_array($product_price_history_execute_tokens)) $product_price_history_execute_tokens = array();
|
|
if (! array_key_exists($token, $product_price_history_execute_tokens)) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Zapamiętaj wykonanie zadania z podanym tokenem
|
|
* @param $token int token ID produktu
|
|
* @return null
|
|
*/
|
|
public function saveExecuteToken($token)
|
|
{
|
|
global $product_price_history_execute_tokens;
|
|
$product_price_history_execute_tokens[$token] = true;
|
|
return NULL;
|
|
}
|
|
} |