diff --git a/application/Contract/ContractController.php b/application/Contract/ContractController.php index 40e3c17db..245c51ecf 100644 --- a/application/Contract/ContractController.php +++ b/application/Contract/ContractController.php @@ -398,10 +398,10 @@ class ContractController extends mfBaseController { $contract_data['matchcode'] = trim($r->matchcode); $contract_data['termination_id'] = $r->termination_id; $contract_data['amount'] = 1; - $contract_data['price'] = $r->price; - $contract_data['price_setup'] = $r->price_setup; - $contract_data['price_nne'] = $r->price_nne; - $contract_data['price_nbe'] = $r->price_nbe; + $contract_data['price'] = Layout::commaToDot(trim($r->price)); + $contract_data['price_setup'] = Layout::commaToDot(trim($r->price_setup)); + $contract_data['price_nne'] = Layout::commaToDot(trim($r->price_nne)); + $contract_data['price_nbe'] = Layout::commaToDot(trim($r->price_nbe)); $contract_data['note'] = trim($r->note); /* diff --git a/lib/FronkDB/FronkDB.php b/lib/FronkDB/FronkDB.php index 553bd838c..1ee61c59e 100644 --- a/lib/FronkDB/FronkDB.php +++ b/lib/FronkDB/FronkDB.php @@ -1,319 +1,340 @@ host=$host; - $this->user=$user; - $this->pass=$pass; - $this->db=$db; - - if(!$host) $this->host=FRONKDB_DBHOST; - if(!$user) $this->user=FRONKDB_DBUSER; - if(!$pass) $this->pass=FRONKDB_DBPASS; - if(!$db) $this->db=FRONKDB_DBNAME; - - $this->connect(); - $this->log = mfLoghandler::singleton(); - } - - public static function singleton($host=false,$user=false,$pass=false,$db=false) { - $instance_name = $host.$user.$db; - if(!$instance_name) { - $instance_name = "default"; + //private static $instance; + + public function __construct($host = false, $user = false, $pass = false, $db = false) { + $this->host = $host; + $this->user = $user; + $this->pass = $pass; + $this->db = $db; + + if(!$host) $this->host = FRONKDB_DBHOST; + if(!$user) $this->user = FRONKDB_DBUSER; + if(!$pass) $this->pass = FRONKDB_DBPASS; + if(!$db) $this->db = FRONKDB_DBNAME; + + $this->connect(); + $this->log = mfLoghandler::singleton(); + } + + public static function singleton($host = false, $user = false, $pass = false, $db = false) { + $instance_name = $host . $user . $db; + if(!$instance_name) { + $instance_name = "default"; + } + + if(!isset(self::$instances[$instance_name])) { + //echo "new FronkDB instance $instance_name\n"; + $c = __CLASS__; + self::$instances[$instance_name] = new $c($host, $user, $pass, $db); + } + return self::$instances[$instance_name]; + } + + private function connect() { + //echo "FronkDB connection to ".$this->host." (".$this->user.", ".$this->db.")\n"; + if(!$this->link) { + $this->link = mysqli_connect($this->host, $this->user, $this->pass, $this->db) or die("Error connecting to database..." . mysqli_error($this->link)); + } + mysqli_select_db($this->link, $this->db) or die("Error connecting to database..." . mysqli_error($this->link)); + if(function_exists("mysqli_set_charset")) { + mysqli_set_charset($this->link, 'utf8mb4'); + } else { + $this->query("SET NAMES utf8mb4"); + } } - - if(!isset(self::$instances[$instance_name])) { - //echo "new FronkDB instance $instance_name\n"; - $c = __CLASS__; - self::$instances[$instance_name] = new $c($host,$user,$pass,$db); - } - return self::$instances[$instance_name]; - } - - private function connect() { - //echo "FronkDB connection to ".$this->host." (".$this->user.", ".$this->db.")\n"; - if(!$this->link) { - $this->link=mysqli_connect($this->host,$this->user,$this->pass,$this->db) or die("Error connecting to database...".mysqli_error($this->link)); - } - mysqli_select_db($this->link,$this->db) or die("Error connecting to database...".mysqli_error($this->link)); - if(function_exists("mysqli_set_charset")) { - mysqli_set_charset($this->link,'utf8mb4'); - } else { - $this->query("SET NAMES utf8mb4"); - } - } public function reconnect() { $this->instances = []; $this->link = false; $this->connect(); } - - public function disconnect() { - if($this->link) { - mysqli_close($this->link); - $this->link=false; - } - } - - public function escape($string) { - return mysqli_real_escape_string($this->link,$string); - } - - public function query($sql,$print_error=false) { - if(!$this->link) { - $this->connect(); - } - if(FRONKDB_SQLDEBUG==true) { - /*$this->log->debug("[FronkDB] ================"); - $this->log->debug("[FronkDB] START SQL QUERY"); - $bt = debug_backtrace(); - foreach($bt as $n => $b) { - $this->log->debug($n.") ".$b["file"]."(".$b['line']."): ".$b['class']."->".$b['function']."()" ); - }*/ - $this->log->debug("[FronkDB] $sql"); - //$this->log->debug("[FronkDB] END SQL QUERY"); - //echo "$sql\n"; - } - - try { - if($this->result=mysqli_query($this->link,$sql)) { - return $this->result; - } else { - $this->lastError=mysqli_error($this->link); - if($print_error) { - echo "Error in SQL-query:
\n".$sql."
\n".$this->lastError."
\n"; + public function disconnect() { + if($this->link) { + mysqli_close($this->link); + $this->link = false; } - $this->log->warn("SQL Query failed: $sql"); - return false; - } - } catch (\Exception $e) { - $this->log->warn("SQL Query Exception ".$e->getCode().": ". $e->getMessage()."\nQuery was:\n$sql"); - throw $e; } - } - public function getLastError() { - return $this->lastError; - } + public function escape($string) { + return mysqli_real_escape_string($this->link, $string); + } - public function num_rows($_res=false) { - $rows=false; - $res=$this->result; + public function query($sql, $print_error = false) { + if(!$this->link) { + $this->connect(); + } - if($_res) - $res=$_res; + if(FRONKDB_SQLDEBUG == true) { + /*$this->log->debug("[FronkDB] ================"); + $this->log->debug("[FronkDB] START SQL QUERY"); + $bt = debug_backtrace(); + foreach($bt as $n => $b) { + $this->log->debug($n.") ".$b["file"]."(".$b['line']."): ".$b['class']."->".$b['function']."()" ); + }*/ + $this->log->debug("[FronkDB] $sql"); + //$this->log->debug("[FronkDB] END SQL QUERY"); + //echo "$sql\n"; + } - if(!$res) - return 0; + try { + $this->result = mysqli_query($this->link, $sql); + $return = $this->result; + $log_query = false; - if($rows=mysqli_num_rows($res)) - return $rows; + // check for errors + if(!$this->result) { + $return = false; + $this->lastError = mysqli_error($this->link); + if($print_error) { + echo "Error in SQL-query:
\n" . $sql . "
\n" . $this->lastError . "
\n"; + } + $this->log->warn("SQL Last Error: ".$this->lastError); + } - return 0; - } + // check for warnings + if(mysqli_warning_count($this->link) > 0) { + $log_query = true; + $warning = mysqli_get_warnings($this->link); + if($warning !== false) { + do { + $this->log->warn("SQL Warning: ".$warning->errno." - ".$warning->message); + } while ($warning->next()); + } + } - public function fetch_array($_res=false) { - $array=false; - $res=$this->result; + if($log_query) { + $this->log->warn("SQL Query was: $sql"); + } - if($_res) - $res=$_res; + return $return; - if(!$res) - return false; + } catch(Exception $e) { + $this->log->warn("SQL Query Exception " . $e->getCode() . ": " . $e->getMessage() . "\nQuery was:\n$sql\n".$e->getTraceAsString()); + throw $e; + } + } - if($array=mysqli_fetch_assoc($res)) - return $array; + public function getLastError() { + return $this->lastError; + } - return false; - } + public function num_rows($_res = false) { + $rows = false; + $res = $this->result; - public function fetch_object($_res=false) { - $obj=false; - $res=$this->result; + if($_res) + $res = $_res; - if($_res) - $res=$_res; + if(!$res) + return 0; - if(!$res) - return false; + if($rows = mysqli_num_rows($res)) + return $rows; - if($obj=mysqli_fetch_object($res)) - return $obj; + return 0; + } - return false; - } + public function fetch_array($_res = false) { + $array = false; + $res = $this->result; - public function insert($_table,$_data,$_forcestr=array(),$options=array()) { - if(empty($_table)) { - $this->lastError="Error constructing INSERT: tablename ommited"; - return false; - } + if($_res) + $res = $_res; - $table=$_table; + if(!$res) + return false; - $fields=""; - $values=""; - $STRINGS=$_forcestr; + if($array = mysqli_fetch_assoc($res)) + return $array; - // Build INSERT + return false; + } - foreach ($_data as $f=>$v) { - $_Q="'"; - if(is_string($v)) { - $v=$this->escape($v); - } - if(is_numeric($v)) { - if(!in_array($f,$STRINGS)) { - $_Q=""; - } - } - if($v === null) { - $_Q = ''; - $v = "NULL"; - } + public function fetch_object($_res = false) { + $obj = false; + $res = $this->result; - $fields.=",`$f`"; - $values.=",".$_Q.$v.$_Q; - } + if($_res) + $res = $_res; - $fields=preg_replace('/^,/','',$fields); - $values=preg_replace('/^,/','',$values); + if(!$res) + return false; - $SQLstr="INSERT INTO `$table` ($fields) VALUES($values)"; + if($obj = mysqli_fetch_object($res)) + return $obj; - if(!$this->query($SQLstr)) { - return false; - } + return false; + } - return true; - } + public function insert($_table, $_data, $_forcestr = array(), $options = array()) { + if(empty($_table)) { + $this->lastError = "Error constructing INSERT: tablename ommited"; + return false; + } - public function update($_table,$_data,$_where,$_forcestr=array()) { - if(empty($_table)) { - $this->lastError="Error constructing UPDATE: tablename ommited"; - return false; - } + $table = $_table; - if(empty($_where)) { - $this->lastError="Security breach on all decks! UPDATE without WHERE clause."; - return false; - } + $fields = ""; + $values = ""; + $STRINGS = $_forcestr; - $table=$_table; + // Build INSERT - $Pairs=""; - $where="WHERE $_where"; - $STRINGS=$_forcestr; + foreach($_data as $f => $v) { + $_Q = "'"; + if(is_string($v)) { + $v = $this->escape($v); + } + if(is_numeric($v)) { + if(!in_array($f, $STRINGS)) { + $_Q = ""; + } + } + if($v === null) { + $_Q = ''; + $v = "NULL"; + } + + $fields .= ",`$f`"; + $values .= "," . $_Q . $v . $_Q; + } + + $fields = preg_replace('/^,/', '', $fields); + $values = preg_replace('/^,/', '', $values); + + $SQLstr = "INSERT INTO `$table` ($fields) VALUES($values)"; + + if(!$this->query($SQLstr)) { + return false; + } + + return true; + } + + public function update($_table, $_data, $_where, $_forcestr = array()) { + if(empty($_table)) { + $this->lastError = "Error constructing UPDATE: tablename ommited"; + return false; + } + + if(empty($_where)) { + $this->lastError = "Security breach on all decks! UPDATE without WHERE clause."; + return false; + } + + $table = $_table; + + $Pairs = ""; + $where = "WHERE $_where"; + $STRINGS = $_forcestr; - // Build field/value pairs string + // Build field/value pairs string - foreach($_data as $f => $v) - { - $_Q="'"; - if(is_string($v)) { - $v=$this->escape($v); - } - if(is_numeric($v)) { - if(!in_array($f,$STRINGS)) { - $_Q=''; - } - } - if($v === null) { - $_Q = ''; - $v = "NULL"; - } + foreach($_data as $f => $v) { + $_Q = "'"; + if(is_string($v)) { + $v = $this->escape($v); + } + if(is_numeric($v)) { + if(!in_array($f, $STRINGS)) { + $_Q = ''; + } + } + if($v === null) { + $_Q = ''; + $v = "NULL"; + } - $Pairs.=", `$f`=".$_Q.$v.$_Q; - } + $Pairs .= ", `$f`=" . $_Q . $v . $_Q; + } - $Pairs=preg_replace('/^,/','',$Pairs); + $Pairs = preg_replace('/^,/', '', $Pairs); - $SQLstr="UPDATE `$table` SET $Pairs $where"; - - if(!$this->query($SQLstr)) { - return false; - } + $SQLstr = "UPDATE `$table` SET $Pairs $where"; - return true; + if(!$this->query($SQLstr)) { + return false; + } - } + return true; - public function select($_table,$_fields="*",$_where="") { - $table=$_table; - $fields=$_fields; - $where=""; + } - if(!empty($_where)) { - $where="WHERE $_where"; - } + public function select($_table, $_fields = "*", $_where = "") { + $table = $_table; + $fields = $_fields; + $where = ""; - if(empty($_table)) { - $this->lastError="No table specified"; - return false; - } + if(!empty($_where)) { + $where = "WHERE $_where"; + } - if(empty($_fields)) - $fields="*"; + if(empty($_table)) { + $this->lastError = "No table specified"; + return false; + } - if(!is_array($fields)) { - $fields=preg_split('/ ?, ?/',$fields); - } - - $fstr = ""; + if(empty($_fields)) + $fields = "*"; - foreach($fields as $f) - { - $fstr.=",`$f`"; - if($f=="*") $fstr="*"; - } + if(!is_array($fields)) { + $fields = preg_split('/ ?, ?/', $fields); + } - $fstr=preg_replace('/^,/','',$fstr); - $SQLstr="SELECT $fstr FROM `$table` $where"; - - if($res=$this->query($SQLstr)) { - return $res; - } + $fstr = ""; - return false; + foreach($fields as $f) { + $fstr .= ",`$f`"; + if($f == "*") $fstr = "*"; + } - } - - public function delete($_table,$_where,$_limit=false) { - if(empty($_where)) { - $this->lastError="Security breach on all decks! DELETE without WHERE clause!"; - return false; - } - - if(empty($_table)) { - $this->lastError="Keine Tabelle angegeben!"; - return false; - } - - $table=$_table; - $where=$_where; - $limit=""; - if($_limit) { - $limit="LIMIT $_limit"; - } - - $sql="DELETE FROM `$table` WHERE $where $limit"; - //echo $sql; - if($this->query($sql)) { - return true; - } else { - return false; - } - } + $fstr = preg_replace('/^,/', '', $fstr); + $SQLstr = "SELECT $fstr FROM `$table` $where"; + + if($res = $this->query($SQLstr)) { + return $res; + } + + return false; + + } + + public function delete($_table, $_where, $_limit = false) { + if(empty($_where)) { + $this->lastError = "Security breach on all decks! DELETE without WHERE clause!"; + return false; + } + + if(empty($_table)) { + $this->lastError = "Keine Tabelle angegeben!"; + return false; + } + + $table = $_table; + $where = $_where; + $limit = ""; + if($_limit) { + $limit = "LIMIT $_limit"; + } + + $sql = "DELETE FROM `$table` WHERE $where $limit"; + //echo $sql; + if($this->query($sql)) { + return true; + } else { + return false; + } + } }