2020-11-19 22:47:44 +01:00
< ? php
require_once ( 'dbutils.php' );
2020-11-19 23:10:26 +01:00
defined ( 'T_ORDER' ) || define ( 'T_ORDER' , 0 );
defined ( 'T_BILL' ) || define ( 'T_BILL' , 1 );
defined ( 'T_REMOVE' ) || define ( 'T_REMOVE' , 2 );
defined ( 'T_BILLSTORNO' ) || define ( 'T_BILLSTORNO' , 3 );
defined ( 'T_BILLSTORNOREMOVE' ) || define ( 'T_BILLSTORNOREMOVE' , 4 );
defined ( 'T_FROM_TABLE' ) || define ( 'T_FROM_TABLE' , 5 );
defined ( 'T_TO_TABLE' ) || define ( 'T_TO_TABLE' , 6 );
2020-11-19 22:47:44 +01:00
class CommonUtils {
var $dbutils ;
2020-11-19 23:00:05 +01:00
private static $plugins = null ;
2020-11-19 22:47:44 +01:00
2020-11-19 23:00:05 +01:00
function __construct () {
$this -> dbutils = new DbUtils ();
// $this->products = new Products(); --> endless loop!
2020-11-19 22:47:44 +01:00
// $this->lastSettingOfDisplayMode = "all";
2020-11-19 23:00:05 +01:00
//error_reporting(E_ALL);
}
public static function setPluginConfig ( $plugins ) {
self :: $plugins = $plugins ;
2020-11-19 22:47:44 +01:00
}
2020-11-19 23:12:35 +01:00
public static $g_units_arr =
array (
array ( " text " => " Stück " , " value " => 0 , " id " => " piece " ),
array ( " text " => " Eingabe " , " value " => 1 , " id " => " piece " ),
array ( " text " => " kg " , " value " => 2 , " id " => " kg " ),
array ( " text " => " gr " , " value " => 3 , " id " => " gr " ),
array ( " text " => " mg " , " value " => 4 , " id " => " mg " ),
array ( " text " => " l " , " value " => 5 , " id " => " l " ),
array ( " text " => " ml " , " value " => 6 , " id " => " ml " ),
array ( " text " => " m " , " value " => 7 , " id " => " m " )
);
public static function g_units_export_arr () {
return array ();
}
2020-11-19 22:47:44 +01:00
function verifyLastBillId ( $pdo , $nextIdToUse ) {
if ( $nextIdToUse == 1 ) {
return true ;
}
2020-11-19 23:00:05 +01:00
if ( is_null ( $pdo )) {
$pdo = $this -> dbutils -> openDbAndReturnPdo ();
2020-11-19 22:47:44 +01:00
}
$nextIdToUse = intval ( $nextIdToUse );
2020-11-19 23:00:05 +01:00
$sql = " SELECT value,signature FROM %work% WHERE item=? " ;
$stmt = $pdo -> prepare ( $this -> dbutils -> resolveTablenamesInSqlString ( $sql ));
$stmt -> execute ( array ( " lastbillid " ));
$row = $stmt -> fetchObject ();
2020-11-19 22:47:44 +01:00
$lastBillid = intval ( $row -> value );
2020-11-19 23:00:05 +01:00
$lastBillInc = $lastBillid + 1 ;
2020-11-19 22:47:44 +01:00
if ( $lastBillInc != $nextIdToUse ) {
return false ;
} else {
2020-11-19 23:12:18 +01:00
$sql = " SELECT id FROM %bill% WHERE id=? " ;
$stmt = $pdo -> prepare ( $this -> dbutils -> resolveTablenamesInSqlString ( $sql ));
$stmt -> execute ( array ( $nextIdToUse ));
if ( $stmt -> rowCount () > 0 ) {
2020-11-19 23:00:05 +01:00
return false ;
2020-11-19 22:47:44 +01:00
} else {
2020-11-19 23:12:18 +01:00
// is there a gap or does the previous id exist?
2020-11-19 22:47:44 +01:00
$sql = " SELECT id FROM %bill% WHERE id=? " ;
2020-11-19 23:00:05 +01:00
$stmt = $pdo -> prepare ( $this -> dbutils -> resolveTablenamesInSqlString ( $sql ));
2020-11-19 23:12:18 +01:00
$stmt -> execute ( array ( $nextIdToUse - 1 ));
if ( $stmt -> rowCount () != 1 ) {
2020-11-19 22:47:44 +01:00
return false ;
} else {
2020-11-19 23:12:18 +01:00
return true ;
2020-11-19 23:00:05 +01:00
}
2020-11-19 22:47:44 +01:00
}
2020-11-19 23:12:18 +01:00
2020-11-19 22:47:44 +01:00
}
}
2020-11-19 23:12:07 +01:00
2020-11-19 22:47:44 +01:00
function getKeyFromWorkTable ( $pdo , $key ) {
$sql = " SELECT signature FROM %work% WHERE item=? " ;
$stmt = $pdo -> prepare ( $this -> dbutils -> resolveTablenamesInSqlString ( $sql ));
$stmt -> execute ( array ( $key ));
$row = $stmt -> fetchObject ();
return ( $row -> signature );
}
2020-11-19 23:12:07 +01:00
public static function setMd5OfLastBillidInWorkTable ( $pdo ) {
$sql = " SELECT value FROM %work% where item=? " ;
$r = self :: fetchSqlAll ( $pdo , $sql , array ( " lastbillid " ));
if ( count ( $r ) > 0 ) {
$maxid = $r [ 0 ][ " value " ];
$signature = md5 ( " B( $maxid ) " );
$sql = " UPDATE %work% SET signature=? WHERE item=? " ;
self :: execSql ( $pdo , $sql , array ( $signature , " lastbillid " ));
}
}
2020-11-19 22:47:44 +01:00
function setLastBillIdInWorkTable ( $pdo , $lastBillId ) {
2020-11-19 23:00:05 +01:00
if ( is_null ( $pdo )) {
$pdo = $this -> dbutils -> openDbAndReturnPdo ();
2020-11-19 22:47:44 +01:00
}
2020-11-19 23:12:07 +01:00
$signature = md5 ( " B( $lastBillId ) " );
2020-11-19 23:00:05 +01:00
$sql = " UPDATE %work% SET value=?, signature=? WHERE item=? " ;
2020-11-19 22:47:44 +01:00
$stmt = $pdo -> prepare ( $this -> dbutils -> resolveTablenamesInSqlString ( $sql ));
$stmt -> execute ( array ( $lastBillId , $signature , " lastbillid " ));
}
function verifyBill ( $pdo , $id ) {
if ( is_null ( $pdo )) {
$pdo = $this -> dbutils -> openDbAndReturnPdo ();
}
2020-11-19 23:10:09 +01:00
$sql = " SELECT billdate,brutto,ROUND(netto,2) as netto,userid,IF(tax is not null, tax, '0.00') as tax,signature,status FROM %bill% WHERE id=? " ;
2020-11-19 23:00:05 +01:00
$stmt = $pdo -> prepare ( $this -> dbutils -> resolveTablenamesInSqlString ( $sql ));
$stmt -> execute ( array ( $id ));
$row = $stmt -> fetchObject ();
2020-11-19 22:47:44 +01:00
$billdate = $row -> billdate ;
$brutto = $row -> brutto ;
$netto = $row -> netto ;
$tax = $row -> tax ;
$userid = $row -> userid ;
$signature = $row -> signature ;
2020-11-19 23:03:29 +01:00
$status = $row -> status ;
2020-11-19 23:12:07 +01:00
return ( self :: verifyBillByValues ( $pdo , $billdate , $brutto , $netto , $userid , $signature , $status ));
2020-11-19 22:47:44 +01:00
}
2020-11-19 23:12:07 +01:00
public static function verifyBillByValues ( $pdo , $billdate , $brutto , $netto , $userid , $signature , $status ) {
2020-11-19 23:03:29 +01:00
if (( $status == " c " ) && ( $brutto == 0.00 )) {
// workaround - the signature for cash inserts of vaue 0.00 are sometimes incorrect
return true ;
}
2020-11-19 23:00:05 +01:00
if ( is_null ( $signature )) {
return false ;
2020-11-19 22:47:44 +01:00
}
if ( is_null ( $pdo )) {
2020-11-19 23:12:07 +01:00
$pdo = DbUtils :: openDbAndReturnPdoStatic ();
2020-11-19 22:47:44 +01:00
}
2020-11-19 23:00:05 +01:00
$brutto = number_format ( $brutto , 2 , " . " , '' );
$netto = number_format ( $netto , 2 , " . " , '' );
2020-11-19 23:12:07 +01:00
$data = " D( $billdate )B( $brutto )N( $netto )T(0)U( $userid ) " ;
$md5OfData = md5 ( $data );
if ( $signature != $md5OfData ) {
2020-11-19 23:00:05 +01:00
return false ;
} else {
return true ;
2020-11-19 22:47:44 +01:00
}
}
2020-11-19 23:12:07 +01:00
public static function calcSignaturesForAllBills ( $pdo ) {
$sql = " SELECT id,billdate,brutto,netto,userid FROM %bill% " ;
$r = CommonUtils :: fetchSqlAll ( $pdo , $sql );
$sql = " UPDATE %bill% SET signature=? WHERE id=? " ;
foreach ( $r as $b ) {
$bruttostr = number_format ( $b [ " brutto " ], 2 , " . " , '' );
$nettostr = number_format ( $b [ " netto " ], 2 , " . " , '' );
$theTime = $b [ " billdate " ];
$userid = $b [ " userid " ];
$data = md5 ( " D( $theTime )B( $bruttostr )N( $nettostr )T(0)U( $userid ) " );
CommonUtils :: execSql ( $pdo , $sql , array ( $data , $b [ " id " ]));
}
}
2020-11-19 22:47:44 +01:00
2020-11-19 23:12:07 +01:00
public static function calcSignatureForBill ( $theTime , $brutto , $netto , $userid ) {
2020-11-19 22:47:44 +01:00
// now calculate the signature for the bill entry
$bruttostr = number_format ( $brutto , 2 , " . " , '' );
$nettostr = number_format ( $netto , 2 , " . " , '' );
2020-11-19 23:12:07 +01:00
$data = " D( $theTime )B( $bruttostr )N( $nettostr )T(0)U( $userid ) " ;
$signature = md5 ( $data );
2020-11-19 22:47:44 +01:00
return $signature ;
}
function createGridTableWithSqrtSizeOfButtons ( $inputArray ) {
2020-11-19 23:00:05 +01:00
// create a table that is optimal (sqrt-like size)
2020-11-19 22:47:44 +01:00
$numberOfIcons = count ( $inputArray );
if ( $numberOfIcons == 0 ) {
// no items to display
return ;
2020-11-19 23:00:05 +01:00
}
$numberOfCols = ceil ( sqrt ( $numberOfIcons ));
$porcentageWidth = floor ( 100 / $numberOfCols );
echo '<table class=gridtable>' ;
2020-11-19 22:47:44 +01:00
$colcounter = 0 ;
for ( $index = 0 ; $index < $numberOfIcons ; $index ++ ) {
2020-11-19 23:00:05 +01:00
if ( $colcounter == 0 ) {
echo " <tr><td> " ;
2020-11-19 22:47:44 +01:00
}
$anEntry = $inputArray [ $index ];
$textOfButton = $anEntry [ " textOfButton " ]; #
$onClickMethod = $anEntry [ " onClickMethod " ]; // With parameters!
$button = '<input type="button" value="' . $textOfButton . '"' ;
$button = $button . ' onclick="' . $onClickMethod . '"' ;
$button = $button . ' style="height: 50px; width:' . $porcentageWidth . '%; font-size:20px; background-color:#b3b3c9" />' ;
echo $button ;
$colcounter ++ ;
if ( $colcounter == $numberOfCols ) {
$colcounter = 0 ;
echo " </tr> " ;
}
2020-11-19 23:00:05 +01:00
}
echo " </tr> " ;
2020-11-19 22:47:44 +01:00
echo " </table> " ;
}
function createGridTableWithSqrtSizeOfStyleButtons ( $inputArray ) {
$this -> createGridTableWithSqrtSizeOfStyleButtonsAndHeader ( $inputArray , '' , 'dummy' );
}
2020-11-19 22:54:51 +01:00
function getTableNameFromId ( $pdo , $tableid ) {
2020-11-19 22:47:44 +01:00
if ( is_null ( $tableid ) || ( $tableid == 0 )) {
return " - " ; // togo
2020-11-19 23:00:05 +01:00
}
2020-11-19 22:54:51 +01:00
$sql = " SELECT tableno FROM %resttables% WHERE id=? " ;
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
$stmt -> execute ( array ( $tableid ));
2020-11-19 23:00:05 +01:00
$row = $stmt -> fetchObject ();
return $row -> tableno ;
2020-11-19 22:47:44 +01:00
}
2020-11-19 22:54:51 +01:00
function getCurrentPriceLevel ( $pdo ) {
2020-11-19 22:47:44 +01:00
$sql = " SELECT setting FROM %config% WHERE name='pricelevel' " ;
2020-11-19 22:54:51 +01:00
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
$stmt -> execute ();
$row = $stmt -> fetchObject ();
$pricelevelid = $row -> setting ;
2020-11-19 22:47:44 +01:00
2020-11-19 22:54:51 +01:00
$sql = " SELECT id,name FROM %pricelevel% WHERE id=? " ;
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
$stmt -> execute ( array ( $pricelevelid ));
$row = $stmt -> fetchObject ();
$pricelevelname = $row -> name ;
2020-11-19 22:47:44 +01:00
return ( array ( " id " => $pricelevelid , " name " => $pricelevelname ));
}
2020-11-19 23:00:05 +01:00
function createGridTableWithSqrtSizeOfStyleButtonsAndHeader ( $inputArray , $headline , $headercolor ) {
// create a table that is optimal (sqrt-like size)
2020-11-19 22:47:44 +01:00
$numberOfIcons = count ( $inputArray );
2020-11-19 23:00:05 +01:00
if ( $numberOfIcons == 0 ) {
// no items to display
return ;
}
$numberOfCols = ceil ( sqrt ( $numberOfIcons ));
$porcentageWidth = floor ( 100.0 / $numberOfCols );
2020-11-19 22:47:44 +01:00
echo '<table class=gridtable>' ;
// Headline
if ( $headline <> '' ) {
echo '<tr><th style="background-color:#' . $headercolor . '">' . $headline . '</th>' ;
}
2020-11-19 23:00:05 +01:00
$colcounter = 0 ;
for ( $index = 0 ; $index < $numberOfIcons ; $index ++ ) {
if ( $colcounter == 0 ) {
echo " <tr><td> " ;
}
$anEntry = $inputArray [ $index ];
$textOfButton = $anEntry [ " textOfButton " ]; #
2020-11-19 22:47:44 +01:00
$onClickMethod = $anEntry [ " onClickMethod " ]; // With parameters!
2020-11-19 23:00:05 +01:00
$style = $anEntry [ " style " ];
2020-11-19 22:47:44 +01:00
$button = '<input type="button" value="' . $textOfButton . '"' ;
2020-11-19 23:00:05 +01:00
$button = $button . ' onclick="' . $onClickMethod . '"' ;
$button = $button . ' style="' . $style . '; width:' . $porcentageWidth . '%;" />' ;
echo $button ;
$colcounter ++ ;
if ( $colcounter == $numberOfCols ) {
$colcounter = 0 ;
echo " </tr> " ;
}
}
echo " </tr> " ;
echo " </table> " ;
2020-11-19 22:47:44 +01:00
}
2020-11-19 23:00:05 +01:00
function getCurrency () {
$pdo = $this -> dbutils -> openDbAndReturnPdo ();
2020-11-19 22:47:44 +01:00
2020-11-19 23:00:05 +01:00
$sql = " SELECT setting from %config% where name='currency' " ;
$stmt = $pdo -> prepare ( $this -> dbutils -> resolveTablenamesInSqlString ( $sql ));
$stmt -> execute ();
$row = $stmt -> fetchObject ();
if ( $row != null ) {
return $row -> setting ;
2020-11-19 22:47:44 +01:00
} else {
return " Euro " ;
2020-11-19 23:00:05 +01:00
}
}
2020-11-19 23:11:33 +01:00
public static function getRowSqlObject ( $pdo , $sql , $params = null ) {
2020-11-19 23:00:55 +01:00
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
if ( is_null ( $params )) {
$stmt -> execute ();
} else {
$stmt -> execute ( $params );
}
return ( $stmt -> fetchObject ());
}
2020-11-19 23:11:33 +01:00
public static function fetchSqlAll ( $pdo , $sql , $params = null ) {
2020-11-19 23:00:58 +01:00
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
if ( is_null ( $params )) {
$stmt -> execute ();
} else {
$stmt -> execute ( $params );
}
2020-11-19 23:10:06 +01:00
return ( $stmt -> fetchAll ( PDO :: FETCH_ASSOC ));
2020-11-19 23:00:58 +01:00
}
2020-11-19 23:00:55 +01:00
public static function execSql ( $pdo , $sql , $params ) {
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
if ( is_null ( $params )) {
$stmt -> execute ();
} else {
$stmt -> execute ( $params );
}
}
2020-11-19 23:03:23 +01:00
public static function getConfigValueStmt ( $pdo , $stmt , $item , $default ) {
$stmt -> execute ( array ( $item ));
$row = $stmt -> fetchObject ();
if ( $row -> countid == 0 ) {
return $default ;
} else {
return self :: getExistingConfigValue ( $pdo , $item );
}
}
2020-11-19 23:00:05 +01:00
public static function getConfigValue ( $pdo , $item , $default ) {
$sql = " SELECT count(id) as countid FROM %config% WHERE name=? " ;
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
$stmt -> execute ( array ( $item ));
2020-11-19 23:14:10 +01:00
$row = $stmt -> fetchObject ();
2020-11-19 23:00:05 +01:00
if ( $row -> countid == 0 ) {
return $default ;
} else {
2020-11-19 23:00:35 +01:00
return self :: getExistingConfigValue ( $pdo , $item );
2020-11-19 23:00:05 +01:00
}
}
2020-11-19 23:14:10 +01:00
public static function getConfigValueAtClosingTime ( $pdo , $item , $default , $closingid ) {
if ( is_null ( $closingid )) {
return self :: getConfigValue ( $pdo , $item , $default );
} else {
$sql1 = " SELECT MAX(H.id) from %hist% H,%histconfig% C,%config% CO WHERE H.refid=C.id AND (H.action=2 OR H.action=6) AND C.configid=CO.id AND CO.name=? AND H.clsid <= ? " ;
$sql = " SELECT setting FROM %histconfig% HCO,%hist% H WHERE H.refid=HCO.id AND H.id=( $sql1 ) " ;
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
$stmt -> execute ( array ( $item , $closingid ));
$r = $stmt -> fetchAll ( PDO :: FETCH_ASSOC );
if ( count ( $r ) == 0 ) {
return $default ;
} else {
return $r [ 0 ][ " setting " ];
}
}
}
public static function getConfigValueAtDateTime ( $pdo , $item , $default , $datetime ) {
$sql1 = " SELECT MAX(HC.id) as hcid FROM %hist% H, %histconfig% HC, %config% C WHERE date < ? and H.refid=HC.id AND HC.configid=C.id AND (H.action=2 OR H.action=6) AND C.name=? " ;
$sql = " SELECT setting FROM %histconfig% where id=( $sql1 ) " ;
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
$stmt -> execute ( array ( $datetime , $item ));
$r = $stmt -> fetchAll ( PDO :: FETCH_ASSOC );
if ( count ( $r ) == 0 ) {
return $default ;
} else {
return $r [ 0 ][ " setting " ];
}
}
2020-11-19 23:00:31 +01:00
public static function getExistingConfigValue ( $pdo , $item ) {
$sql = " SELECT setting FROM %config% WHERE name=? " ;
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
$stmt -> execute ( array ( $item ));
$row = $stmt -> fetchObject ();
return $row -> setting ;
}
2020-11-19 23:00:05 +01:00
public static function callPlugin ( $pdo , $fct , $condition ) {
try {
if ( ! is_null ( self :: $plugins )) {
if ( array_key_exists ( $fct , self :: $plugins )) {
$plugin = self :: $plugins -> $fct ;
if (( $plugin -> execution ) === $condition ) {
$cls = $plugin -> PluginClass ;
$fct = $plugin -> PluginFct ;
$call = " Plugin \\ $cls :: $fct " ;
call_user_func ( $call , $pdo );
return true ;
}
}
}
} catch ( Exception $e ) { }
return false ;
2020-11-19 22:47:44 +01:00
}
2020-11-19 23:00:18 +01:00
2020-11-19 23:03:29 +01:00
public static function log ( $pdo , $component , $message ) {
$dblog = self :: getConfigValue ( $pdo , " dblog " , 1 );
if ( $dblog == 1 ) {
2020-11-19 23:12:59 +01:00
date_default_timezone_set ( DbUtils :: getTimeZoneDb ( $pdo ));
2020-11-19 23:03:29 +01:00
$currentTime = date ( 'Y-m-d H:i:s' );
$sql = " INSERT INTO %log% (date,component,message) VALUES(?,?,?) " ;
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
$stmt -> execute ( array ( $currentTime , $component , $message ));
}
2020-11-19 23:00:18 +01:00
}
2020-11-19 23:03:29 +01:00
2020-11-19 23:00:18 +01:00
public static function getLog ( $pdo ) {
$sql = " SELECT date,component,message FROM %log% " ;
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
$stmt -> execute ();
$result = $stmt -> fetchAll ();
$txt = " " ;
foreach ( $result as $aLogLine ) {
$txt .= $aLogLine [ " date " ] . " ; " . $aLogLine [ " component " ] . " ; " . $aLogLine [ " message " ] . " \n " ;
}
return $txt ;
}
public static function getLastLog ( $pdo ) {
$sql = " SELECT date,component,message FROM %log% WHERE DATE_SUB(NOW(),INTERVAL 2 HOUR) <= date " ;
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
$stmt -> execute ();
$result = $stmt -> fetchAll ();
$txt = " " ;
foreach ( $result as $aLogLine ) {
$txt .= $aLogLine [ " date " ] . " ; " . $aLogLine [ " component " ] . " ; " . $aLogLine [ " message " ] . " \n " ;
}
return $txt ;
}
public static function keepOnlyLastLog ( $pdo ) {
$sql = " DELETE FROM %log% WHERE DATE_SUB(NOW(),INTERVAL 2 HOUR) > date " ;
$stmt = $pdo -> prepare ( DbUtils :: substTableAlias ( $sql ));
$stmt -> execute ();
}
2020-11-19 23:03:43 +01:00
public static function strEndsWith ( $haystack , $needle )
{
return $needle === " " || substr ( $haystack , - strlen ( $needle )) === $needle ;
}
2020-11-19 23:10:26 +01:00
public static function startsWith ( $aText , $needle )
{
return $needle === " " || strpos ( $aText , $needle ) === 0 ;
}
2020-11-19 23:12:35 +01:00
public static function caseOfSqlUnitSelection ( $pdo ) {
$decpoint = htmlspecialchars ( CommonUtils :: getConfigValue ( $pdo , " decpoint " , " . " ));
$unit = " CASE " ;
foreach ( CommonUtils :: $g_units_arr as $aUnit ) {
if ( $aUnit [ " value " ] > 1 ) {
$unit .= " WHEN Q.unit=' " . $aUnit [ " value " ] . " ' THEN CONCAT(REPLACE(unitamount,'.',' $decpoint '),' " . $aUnit [ " text " ] . " ',' ') " ;
}
}
$unit .= " ELSE '' " ;
$unit .= " END " ;
return $unit ;
}
2020-11-19 23:12:37 +01:00
public static function scaleImg ( $fn , $maxDim ) {
list ( $width , $height , $type , $attr ) = getimagesize ( $fn );
$size = getimagesize ( $fn );
$ratio = $size [ 0 ] / $size [ 1 ]; // width/height
if ( $ratio > 1 ) {
$width = $maxDim ;
$height = $maxDim / $ratio ;
} else {
$width = $maxDim * $ratio ;
$height = $maxDim ;
}
$src = imagecreatefromstring ( file_get_contents ( $fn ));
$dst = imagecreatetruecolor ( $width , $height );
imagealphablending ( $dst , false );
imagesavealpha ( $dst , true );
$transparent = imagecolorallocatealpha ( $dst , 255 , 255 , 255 , 127 );
imagefilledrectangle ( $dst , 0 , 0 , $width , $height , $transparent );
imagecopyresampled ( $dst , $src , 0 , 0 , 0 , 0 , $width , $height , $size [ 0 ], $size [ 1 ]);
imagedestroy ( $src );
ob_start ();
imagepng ( $dst ); // adjust format as needed
$imagedata = ob_get_contents ();
ob_end_clean ();
imagedestroy ( $dst );
return $imagedata ;
}
2020-11-19 23:10:26 +01:00
2020-11-19 23:14:02 +01:00
public static function getFirstSqlQuery ( $pdo , $sql , $params , $default ) {
$result = self :: fetchSqlAll ( $pdo , $sql , $params );
if ( count ( $result ) > 0 ) {
return $result [ 0 ][ " value " ];
} else {
return $default ;
}
}
2020-11-19 23:14:10 +01:00
public static function canMasterDataBeChanged ( $pdo ) {
$sql = " SELECT COUNT(id) as countid FROM %queue% WHERE clsid is null " ;
$res = CommonUtils :: fetchSqlAll ( $pdo , $sql );
if ( intval ( $res [ 0 ][ " countid " ]) > 0 ) {
return false ;
} else {
return true ;
}
}
2020-11-19 23:03:29 +01:00
}