2018-12-08 21:33:54 +01:00
< ? php
/* Copyright ( C ) 2008 Laurent Destailleur < eldy @ users . sourceforge . net >
* Copyright ( C ) 2009 Regis Houssin < regis . houssin @ capnetworks . com >
* Copyright ( C ) 2016 Marcos García < marcosgdf @ gmail . com >
2018-12-15 18:27:38 +01:00
* Copyright ( C ) 2018 Andreu Bisquerra < jove @ bisquerra . com >
2018-12-08 21:33:54 +01:00
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
2019-09-23 21:55:30 +02:00
* along with this program . If not , see < https :// www . gnu . org / licenses />.
2018-12-08 21:33:54 +01:00
*/
/**
* \file cashcontrol / class / cashcontrol . class . php
2019-01-07 19:35:20 +01:00
* \ingroup cashdesk | takepos
2018-12-15 19:20:30 +01:00
* \brief This file is CRUD class file ( Create / Read / Update / Delete ) for cash fence table
2018-12-08 21:33:54 +01:00
*/
/**
2018-12-15 19:20:30 +01:00
* Class to manage cash fence
2018-12-08 21:33:54 +01:00
*/
2018-12-15 19:46:51 +01:00
class CashControl extends CommonObject
2018-12-08 21:33:54 +01:00
{
2018-12-15 19:20:30 +01:00
/**
* @ var string ID to identify managed object
*/
2018-12-17 11:41:59 +01:00
public $element = 'cashcontrol' ;
2018-12-15 19:20:30 +01:00
/**
* @ var string Name of table without prefix where object is stored
*/
public $table_element = 'pos_cash_fence' ;
/**
* @ var int Does pos_cash_fence support multicompany module ? 0 = No test on entity , 1 = Test with field entity , 2 = Test with link by societe
*/
public $ismultientitymanaged = 1 ;
/**
* @ var int Does pos_cash_fence support extrafields ? 0 = No , 1 = Yes
*/
public $isextrafieldmanaged = 0 ;
/**
* @ var string String with name of icon for pos_cash_fence . Must be the part after the 'object_' into object_pos_cash_fence . png
*/
2020-04-09 16:36:39 +02:00
public $picto = 'cash-register' ;
2018-12-15 19:20:30 +01:00
2020-04-10 10:59:32 +02:00
public $fields = array (
2019-05-08 01:09:38 +02:00
'rowid' => array ( 'type' => 'integer' , 'label' => 'ID' , 'enabled' => 1 , 'visible' =>- 2 , 'notnull' => 1 , 'position' => 10 ),
2018-12-17 11:41:59 +01:00
'entity' => array ( 'type' => 'integer' , 'label' => 'Entity' , 'enabled' => 1 , 'visible' => 0 , 'notnull' => 1 , 'position' => 15 ),
'ref' => array ( 'type' => 'varchar(64)' , 'label' => 'Ref' , 'enabled' => 1 , 'visible' => 1 , 'notnull' => 1 , 'position' => 18 ),
2019-05-08 01:09:38 +02:00
'posmodule' => array ( 'type' => 'varchar(30)' , 'label' => 'Module' , 'enabled' => 1 , 'visible' => 1 , 'notnull' => 1 , 'position' => 19 ),
2020-01-24 16:14:52 +01:00
'posnumber' => array ( 'type' => 'varchar(30)' , 'label' => 'Terminal' , 'enabled' => 1 , 'visible' => 1 , 'notnull' => 1 , 'position' => 20 , 'css' => 'center' ),
2018-12-17 11:41:59 +01:00
'label' => array ( 'type' => 'varchar(255)' , 'label' => 'Label' , 'enabled' => 1 , 'visible' => 0 , 'position' => 24 ),
2019-05-08 01:09:38 +02:00
'opening' => array ( 'type' => 'price' , 'label' => 'Opening' , 'enabled' => 1 , 'visible' => 1 , 'position' => 25 ),
'cash' => array ( 'type' => 'price' , 'label' => 'Cash' , 'enabled' => 1 , 'visible' => 1 , 'position' => 30 ),
'cheque' => array ( 'type' => 'price' , 'label' => 'Cheque' , 'enabled' => 1 , 'visible' => 1 , 'position' => 33 ),
'card' => array ( 'type' => 'price' , 'label' => 'CreditCard' , 'enabled' => 1 , 'visible' => 1 , 'position' => 36 ),
'year_close' => array ( 'type' => 'integer' , 'label' => 'Year close' , 'enabled' => 1 , 'visible' => 1 , 'notnull' => 1 , 'position' => 50 , 'css' => 'center' ),
'month_close' => array ( 'type' => 'integer' , 'label' => 'Month close' , 'enabled' => 1 , 'visible' => 1 , 'position' => 55 , 'css' => 'center' ),
'day_close' => array ( 'type' => 'integer' , 'label' => 'Day close' , 'enabled' => 1 , 'visible' => 1 , 'position' => 60 , 'css' => 'center' ),
'date_valid' => array ( 'type' => 'datetime' , 'label' => 'DateValidation' , 'enabled' => 1 , 'visible' =>- 1 , 'notnull' => 1 , 'position' => 490 ),
2018-12-17 11:41:59 +01:00
'date_creation' => array ( 'type' => 'datetime' , 'label' => 'DateCreation' , 'enabled' => 1 , 'visible' =>- 1 , 'notnull' => 1 , 'position' => 500 ),
'tms' => array ( 'type' => 'timestamp' , 'label' => 'Tms' , 'enabled' => 1 , 'visible' => 0 , 'notnull' => 1 , 'position' => 505 ),
'import_key' => array ( 'type' => 'varchar(14)' , 'label' => 'Import key' , 'enabled' => 1 , 'visible' => 0 , 'position' => 510 ),
'status' => array ( 'type' => 'integer' , 'label' => 'Status' , 'enabled' => 1 , 'visible' => 1 , 'position' => 1000 , 'notnull' => 1 , 'index' => 1 , 'arrayofkeyval' => array ( '0' => 'Brouillon' , '1' => 'Validated' )),
2018-12-15 19:20:30 +01:00
);
2018-12-08 21:33:54 +01:00
public $id ;
public $opening ;
public $status ;
public $year_close ;
public $month_close ;
public $day_close ;
public $posmodule ;
public $posnumber ;
2018-12-16 16:47:09 +01:00
public $cash ;
public $cheque ;
public $card ;
2019-11-10 11:01:28 +01:00
2019-11-10 11:02:44 +01:00
/**
* @ var integer | string $date_valid
*/
2018-12-17 11:41:59 +01:00
public $date_valid ;
2019-11-01 10:44:29 +01:00
2019-11-01 10:42:14 +01:00
/**
2019-11-01 11:16:20 +01:00
* @ var integer | string date_creation
*/
2018-12-17 11:41:59 +01:00
public $date_creation ;
2019-11-01 10:44:29 +01:00
2019-11-10 11:02:44 +01:00
/**
* @ var integer | string $date_modification
*/
2018-12-17 11:41:59 +01:00
public $date_modification ;
2018-12-08 21:33:54 +01:00
2018-12-16 17:53:23 +01:00
const STATUS_DRAFT = 0 ;
2018-12-17 10:37:56 +01:00
const STATUS_VALIDATED = 1 ;
2020-04-10 10:59:32 +02:00
const STATUS_CLOSED = 1 ; // For the moment CLOSED = VALIDATED
2018-12-16 17:53:23 +01:00
2018-12-15 19:20:30 +01:00
2018-12-08 21:33:54 +01:00
/**
* Constructor
*
* @ param DoliDB $db Database handler
*/
public function __construct ( DoliDB $db )
{
$this -> db = $db ;
}
/**
* Create in database
*
* @ param User $user User that create
* @ param int $notrigger 0 = launch triggers after , 1 = disable triggers
* @ return int < 0 if KO , Id of created object if OK
*/
public function create ( User $user , $notrigger = 0 )
{
global $conf ;
$error = 0 ;
2018-12-16 16:47:09 +01:00
// Clean data
2020-04-10 10:59:32 +02:00
if ( empty ( $this -> cash )) $this -> cash = 0 ;
if ( empty ( $this -> cheque )) $this -> cheque = 0 ;
if ( empty ( $this -> card )) $this -> card = 0 ;
2018-12-16 16:47:09 +01:00
2018-12-08 21:33:54 +01:00
// Insert request
$sql = " INSERT INTO " . MAIN_DB_PREFIX . " pos_cash_fence ( " ;
$sql .= " entity " ;
2018-12-15 19:46:51 +01:00
//$sql .= ", ref";
2018-12-08 21:33:54 +01:00
$sql .= " , opening " ;
2018-12-17 11:41:59 +01:00
$sql .= " , status " ;
2018-12-08 21:33:54 +01:00
$sql .= " , date_creation " ;
$sql .= " , posmodule " ;
2018-12-15 18:27:38 +01:00
$sql .= " , posnumber " ;
2018-12-16 16:47:09 +01:00
$sql .= " , day_close " ;
$sql .= " , month_close " ;
$sql .= " , year_close " ;
$sql .= " , cash " ;
$sql .= " , cheque " ;
$sql .= " , card " ;
2018-12-08 21:33:54 +01:00
$sql .= " ) VALUES ( " ;
2018-12-15 19:46:51 +01:00
//$sql .= "'(PROV)', ";
2018-12-08 21:33:54 +01:00
$sql .= $conf -> entity ;
2018-12-19 15:40:01 +01:00
$sql .= " , " . ( is_numeric ( $this -> opening ) ? $this -> opening : 0 );
2020-04-10 10:59:32 +02:00
$sql .= " , 0 " ; // Draft by default
2018-12-15 19:46:51 +01:00
$sql .= " , ' " . $this -> db -> idate ( dol_now ()) . " ' " ;
2018-12-16 12:59:59 +01:00
$sql .= " , ' " . $this -> db -> escape ( $this -> posmodule ) . " ' " ;
$sql .= " , ' " . $this -> db -> escape ( $this -> posnumber ) . " ' " ;
2018-12-16 16:47:09 +01:00
$sql .= " , " . ( $this -> day_close > 0 ? $this -> day_close : " null " );
$sql .= " , " . ( $this -> month_close > 0 ? $this -> month_close : " null " );
$sql .= " , " . $this -> year_close ;
$sql .= " , " . $this -> cash ;
$sql .= " , " . $this -> cheque ;
$sql .= " , " . $this -> card ;
2018-12-08 21:33:54 +01:00
$sql .= " ) " ;
$this -> db -> begin ();
dol_syslog ( get_class ( $this ) . " ::create " , LOG_DEBUG );
$resql = $this -> db -> query ( $sql );
if ( ! $resql ) {
$error ++ ;
$this -> errors [] = " Error " . $this -> db -> lasterror ();
}
if ( ! $error ) {
$this -> id = $this -> db -> last_insert_id ( MAIN_DB_PREFIX . " pos_cash_fence " );
2018-12-16 14:59:51 +01:00
$sql = 'UPDATE ' . MAIN_DB_PREFIX . 'pos_cash_fence SET ref = rowid where rowid = ' . $this -> id ;
$this -> db -> query ( $sql );
2018-12-08 21:33:54 +01:00
}
// Commit or rollback
if ( $error ) {
foreach ( $this -> errors as $errmsg ) {
dol_syslog ( get_class ( $this ) . " ::create " . $errmsg , LOG_ERR );
$this -> error .= ( $this -> error ? ', ' . $errmsg : $errmsg );
}
$this -> db -> rollback ();
return - 1 * $error ;
} else {
$this -> db -> commit ();
return $this -> id ;
}
}
2018-12-15 18:27:38 +01:00
/**
2018-12-17 03:25:45 +01:00
* Validate cash fence
2018-12-15 18:27:38 +01:00
*
* @ param User $user User
* @ param number $notrigger No trigger
* @ return int < 0 if KO , > 0 if OK
*/
2018-12-17 03:25:45 +01:00
public function valid ( User $user , $notrigger = 0 )
2018-12-08 21:33:54 +01:00
{
2020-04-10 10:59:32 +02:00
global $conf , $langs ;
2018-12-17 03:25:45 +01:00
require_once DOL_DOCUMENT_ROOT . '/core/lib/files.lib.php' ;
2018-12-08 21:33:54 +01:00
$error = 0 ;
2018-12-17 03:25:45 +01:00
// Protection
if ( $this -> status == self :: STATUS_VALIDATED )
{
dol_syslog ( get_class ( $this ) . " ::valid action abandonned: already validated " , LOG_WARNING );
return 0 ;
}
/*
2018-12-17 11:41:59 +01:00
$posmodule = $this -> posmodule ;
if ( ! empty ( $user -> rights -> $posmodule -> use ))
{
$this -> error = 'NotEnoughPermissions' ;
dol_syslog ( get_class ( $this ) . " ::valid " . $this -> error , LOG_ERR );
return - 1 ;
}
*/
2018-12-17 03:25:45 +01:00
2020-04-10 10:59:32 +02:00
$now = dol_now ();
2018-12-17 03:25:45 +01:00
2018-12-08 21:33:54 +01:00
// Update request
2018-12-16 17:53:23 +01:00
$sql = " UPDATE " . MAIN_DB_PREFIX . " pos_cash_fence " ;
2020-04-10 10:59:32 +02:00
$sql .= " SET status = " . self :: STATUS_VALIDATED . " , " ;
$sql .= " date_valid=' " . $this -> db -> idate ( $now ) . " ', " ;
$sql .= " fk_user_valid = " . $user -> id ;
$sql .= " WHERE rowid= " . $this -> id ;
2018-12-16 17:53:23 +01:00
2018-12-08 21:33:54 +01:00
$this -> db -> begin ();
2018-12-16 17:53:23 +01:00
dol_syslog ( get_class ( $this ) . " ::close " , LOG_DEBUG );
2018-12-08 21:33:54 +01:00
$resql = $this -> db -> query ( $sql );
if ( ! $resql ) {
$error ++ ;
$this -> errors [] = " Error " . $this -> db -> lasterror ();
}
if ( ! $error ) {
2018-12-17 11:41:59 +01:00
$this -> status = self :: STATUS_VALIDATED ;
$this -> date_valid = $now ;
$this -> fk_user_valid = $user -> id ;
2018-12-08 21:33:54 +01:00
}
2020-04-10 10:59:32 +02:00
if ( ! $error && ! $notrigger )
2018-12-16 17:53:23 +01:00
{
// Call trigger
2020-04-10 10:59:32 +02:00
$result = $this -> call_trigger ( 'CASHCONTROL_VALIDATE' , $user );
2018-12-16 17:53:23 +01:00
if ( $result < 0 ) $error ++ ;
// End call triggers
}
2018-12-08 21:33:54 +01:00
// Commit or rollback
if ( $error ) {
foreach ( $this -> errors as $errmsg ) {
dol_syslog ( get_class ( $this ) . " ::create " . $errmsg , LOG_ERR );
$this -> error .= ( $this -> error ? ', ' . $errmsg : $errmsg );
}
$this -> db -> rollback ();
return - 1 * $error ;
} else {
$this -> db -> commit ();
return $this -> id ;
}
}
2018-12-15 18:27:38 +01:00
2018-12-08 21:33:54 +01:00
/**
2018-12-17 11:41:59 +01:00
* Load object in memory from the database
2018-12-08 21:33:54 +01:00
*
2018-12-17 11:41:59 +01:00
* @ param int $id Id object
* @ param string $ref Ref
* @ return int < 0 if KO , 0 if not found , > 0 if OK
2018-12-08 21:33:54 +01:00
*/
2018-12-17 11:41:59 +01:00
public function fetch ( $id , $ref = null )
2018-12-08 21:33:54 +01:00
{
2018-12-17 11:41:59 +01:00
$result = $this -> fetchCommon ( $id , $ref );
2020-04-10 10:59:32 +02:00
if ( $result > 0 && ! empty ( $this -> table_element_line )) $this -> fetchLines ();
2018-12-17 11:41:59 +01:00
return $result ;
2018-12-08 21:33:54 +01:00
}
2018-12-15 19:46:51 +01:00
2020-03-15 13:57:31 +01:00
/**
* Update object into database
*
* @ param User $user User that modifies
* @ param bool $notrigger false = launch triggers after , true = disable triggers
* @ return int < 0 if KO , > 0 if OK
*/
public function update ( User $user , $notrigger = false )
{
return $this -> updateCommon ( $user , $notrigger );
}
2019-01-03 14:18:02 +01:00
/**
* Delete object in database
*
* @ param User $user User that deletes
* @ param bool $notrigger false = launch triggers after , true = disable triggers
* @ return int < 0 if KO , > 0 if OK
*/
public function delete ( User $user , $notrigger = false )
{
return $this -> deleteCommon ( $user , $notrigger );
//return $this->deleteCommon($user, $notrigger, 1);
}
2018-12-17 11:41:59 +01:00
2018-12-17 10:37:56 +01:00
/**
* Return label of the status
*
* @ param int $mode 0 = long label , 1 = short label , 2 = Picto + short label , 3 = Picto , 4 = Picto + long label , 5 = Short label + Picto , 6 = Long label + Picto
* @ return string Label of status
*/
2019-01-27 15:20:16 +01:00
public function getLibStatut ( $mode = 0 )
2018-12-17 10:37:56 +01:00
{
return $this -> LibStatut ( $this -> status , $mode );
}
// phpcs:disable PEAR.NamingConventions.ValidFunctionName.ScopeNotCamelCaps
/**
* Return the status
*
* @ param int $status Id status
* @ param int $mode 0 = long label , 1 = short label , 2 = Picto + short label , 3 = Picto , 4 = Picto + long label , 5 = Short label + Picto , 6 = Long label + Picto
* @ return string Label of status
*/
2019-01-27 15:20:16 +01:00
public function LibStatut ( $status , $mode = 0 )
2018-12-17 10:37:56 +01:00
{
// phpcs:enable
2019-11-01 12:52:03 +01:00
if ( empty ( $this -> labelStatus ) || empty ( $this -> labelStatusShort ))
2018-12-17 10:37:56 +01:00
{
global $langs ;
//$langs->load("mymodule");
2019-11-01 12:52:03 +01:00
$this -> labelStatus [ 0 ] = $langs -> trans ( 'Draft' );
$this -> labelStatus [ 1 ] = $langs -> trans ( 'Closed' );
$this -> labelStatusShort [ 0 ] = $langs -> trans ( 'Draft' );
$this -> labelStatusShort [ 1 ] = $langs -> trans ( 'Closed' );
2018-12-17 10:37:56 +01:00
}
2019-10-31 22:11:26 +01:00
$statusType = 'status0' ;
if ( $status == self :: STATUS_VALIDATED ) $statusType = 'status6' ;
2019-11-01 12:52:03 +01:00
return dolGetStatus ( $this -> labelStatus [ $status ], $this -> labelStatusShort [ $status ], '' , $statusType , $mode );
2018-12-17 10:37:56 +01:00
}
2018-12-15 19:46:51 +01:00
/**
2019-05-08 01:09:38 +02:00
* Return clicable link of object ( with eventually picto )
2018-12-15 19:46:51 +01:00
*
2019-05-08 01:09:38 +02:00
* @ param int $withpicto Add picto into link
* @ param string $option On what the link point to ( 'nolink' , ... )
* @ param int $notooltip 1 = Disable tooltip
* @ param string $morecss Add more css on link
* @ param int $save_lastsearch_value - 1 = Auto , 0 = No save of lastsearch_values when clicking , 1 = Save lastsearch_values whenclicking
* @ return string String with URL
2018-12-15 19:46:51 +01:00
*/
2019-05-08 01:09:38 +02:00
public function getNomUrl ( $withpicto = 0 , $option = '' , $notooltip = 0 , $morecss = '' , $save_lastsearch_value = - 1 )
2018-12-15 19:46:51 +01:00
{
global $conf , $langs , $hookmanager ;
2019-05-08 01:09:38 +02:00
2020-04-10 10:59:32 +02:00
if ( ! empty ( $conf -> dol_no_mouse_hover )) $notooltip = 1 ; // Force disable tooltips
2018-12-15 19:46:51 +01:00
2020-04-10 10:59:32 +02:00
$result = '' ;
2019-05-08 01:09:38 +02:00
2020-04-10 10:59:32 +02:00
$newref = ( $this -> ref ? $this -> ref : $this -> id );
2018-12-15 19:46:51 +01:00
2020-04-10 10:59:32 +02:00
$label = '<u>' . $langs -> trans ( " CashFence " ) . '</u>' ;
$label .= '<br>' ;
$label .= '<b>' . $langs -> trans ( 'Ref' ) . ':</b> ' . ( $this -> ref ? $this -> ref : $this -> id );
2018-12-15 19:46:51 +01:00
2019-05-08 01:09:38 +02:00
$url = DOL_URL_ROOT . '/compta/cashcontrol/cashcontrol_card.php?id=' . $this -> id ;
2018-12-15 19:46:51 +01:00
2019-05-08 01:09:38 +02:00
if ( $option != 'nolink' )
{
// Add param to save lastsearch_values or not
2020-04-10 10:59:32 +02:00
$add_save_lastsearch_values = ( $save_lastsearch_value == 1 ? 1 : 0 );
if ( $save_lastsearch_value == - 1 && preg_match ( '/list\.php/' , $_SERVER [ " PHP_SELF " ])) $add_save_lastsearch_values = 1 ;
if ( $add_save_lastsearch_values ) $url .= '&save_lastsearch_values=1' ;
2018-12-15 19:46:51 +01:00
}
2020-04-10 10:59:32 +02:00
$linkclose = '' ;
2019-05-08 01:09:38 +02:00
if ( empty ( $notooltip ))
{
2020-04-10 10:59:32 +02:00
if ( ! empty ( $conf -> global -> MAIN_OPTIMIZEFORTEXTBROWSER ))
2019-05-08 01:09:38 +02:00
{
2020-04-10 10:59:32 +02:00
$label = $langs -> trans ( " ShowMyObject " );
$linkclose .= ' alt="' . dol_escape_htmltag ( $label , 1 ) . '"' ;
2019-05-08 01:09:38 +02:00
}
2020-04-10 10:59:32 +02:00
$linkclose .= ' title="' . dol_escape_htmltag ( $label , 1 ) . '"' ;
$linkclose .= ' class="classfortooltip' . ( $morecss ? ' ' . $morecss : '' ) . '"' ;
2019-05-08 01:09:38 +02:00
/*
$hookmanager -> initHooks ( array ( 'myobjectdao' ));
$parameters = array ( 'id' => $this -> id );
$reshook = $hookmanager -> executeHooks ( 'getnomurltooltip' , $parameters , $this , $action ); // Note that $action and $object may have been modified by some hooks
if ( $reshook > 0 ) $linkclose = $hookmanager -> resPrint ;
*/
2020-05-21 15:05:19 +02:00
} else $linkclose = ( $morecss ? ' class="' . $morecss . '"' : '' );
2018-12-15 19:46:51 +01:00
$linkstart = '<a href="' . $url . '"' ;
2020-04-10 10:59:32 +02:00
$linkstart .= $linkclose . '>' ;
$linkend = '</a>' ;
2018-12-15 19:46:51 +01:00
2019-05-08 01:09:38 +02:00
$result .= $linkstart ;
2020-04-10 10:59:32 +02:00
if ( $withpicto ) $result .= img_object (( $notooltip ? '' : $label ), ( $this -> picto ? $this -> picto : 'generic' ), ( $notooltip ? (( $withpicto != 2 ) ? 'class="paddingright"' : '' ) : 'class="' . (( $withpicto != 2 ) ? 'paddingright ' : '' ) . 'classfortooltip"' ), 0 , 0 , $notooltip ? 0 : 1 );
if ( $withpicto != 2 ) $result .= $this -> ref ;
2019-05-08 01:09:38 +02:00
$result .= $linkend ;
//if ($withpicto != 2) $result.=(($addlabel && $this->label) ? $sep . dol_trunc($this->label, ($addlabel > 1 ? $addlabel : 0)) : '');
2018-12-15 19:46:51 +01:00
global $action ;
$hookmanager -> initHooks ( array ( 'cashfencedao' ));
2020-04-10 10:59:32 +02:00
$parameters = array ( 'id' => $this -> id , 'getnomurl' => $result );
$reshook = $hookmanager -> executeHooks ( 'getNomUrl' , $parameters , $this , $action ); // Note that $action and $object may have been modified by some hooks
2018-12-15 19:46:51 +01:00
if ( $reshook > 0 ) { $result = $hookmanager -> resPrint ;
} else { $result .= $hookmanager -> resPrint ;
}
return $result ;
}
2019-02-03 15:21:21 +01:00
}