DB == null ) { $this->DB = new DB(); } return $this->DB; } public function DBSelect($empresaId) { if($this->DBSelect == null || $this->activeEmpresaId != $empresaId) { $this->DBSelect = new DB(false, $empresaId); $this->activeEmpresaId = $empresaId; } return $this->DBSelect; } function RoundNumber($number) { return round($number, 6); } function TruncateFloat($number, $digitos) { $raiz = 10; $multiplicador = pow ($raiz,$digitos); $resultado = ((int)($number * $multiplicador)) / $multiplicador; return number_format($resultado, $digitos,'.',''); } function FormatSeconds($sec, $padHours = false) { $hms = ""; $hours = intval(intval($sec) / 3600); $hms .= ($padHours) ? str_pad($hours, 2, "0", STR_PAD_LEFT). ":" : $hours. ":"; $minutes = intval(($sec / 60) % 60); $hms .= str_pad($minutes, 2, "0", STR_PAD_LEFT). ":"; $seconds = intval($sec % 60); $hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT); return $hms; } function FormatMins($mins) { if($mins > 60) { $horas = floor($mins / 60); $mins = $mins - ($horas * 60); return $horas."h ".$mins."m"; } else { return $mins."m"; } } function FormatFecha($date) { $meses = array(1 => "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"); $trozos = explode("-",$date); $trozos[1] = $meses[(int)$trozos[1]]; $trozos[2] = substr($trozos[2],0,2); return $trozos[2]." de ".$trozos[1]." de ".$trozos[0]; } function FormatHora($hora) { $trozos = explode(":",$hora); return $trozos[0].":".$trozos[1]." hrs"; } function FormatFechaHora($date) { $meses = array(1 => "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"); $trozos = explode(" ",$date); $fecha = $trozos[0]; $hora = $trozos[1]; $trozosFecha = explode("-",$fecha); $trozosFecha[1] = $meses[(int)$trozosFecha[1]]; $trozosFecha[2] = substr($trozosFecha[2],0,2); $fechaFormateada = $trozosFecha[2]." de ".$trozosFecha[1]." de ".$trozosFecha[0]; $trozosHora = explode(":",$hora); $horaFormateada = $trozosHora[0].":".$trozosHora[1]." hrs"; return $fechaFormateada." ".$horaFormateada; } function FormatFechaServidor($date) { $trozos = explode("/",$date); $trozos[1] = (strlen($trozos[1]) == 1) ? "0".$trozos[1] : $trozos[1]; $trozos[0] = (strlen($trozos[0]) == 1) ? "0".$trozos[0] : $trozos[0]; return $trozos[2]."-".$trozos[1]."-".$trozos[0]; } function GetMonth($mes, $format = null) { $meses = array(1 => "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"); $mesesAbrev = array(1 => "Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"); if($format == "abreviado") return $mesesAbrev[(int)$mes]; else return $meses[(int)$mes]; } function GetLetters($string) { preg_match_all('/([a-zA-Z]+)/',$string,$results); return implode('', $results[0]); } function GetNumbers($string) { preg_match_all('/([0-9]+)/',$string,$results); return implode('', $results[0]); } function ValidateString($value, $max_chars=50, $minChars = 1, $field = "Atributo") { if(strlen($value) > $max_chars || strlen($value) < $minChars) { return $this->setError(10001, "error", "", $field); } else { return true; } }//validateString function ValidateInteger($value, $max = null, $min = null, $field = "Atributo") { if(ctype_digit((string)$value) == false) { return $this->setError(10020, "error", "", $field); } else { return true; } }//ValidateInteger function ValidateFloat($value, $field) { if(!is_numeric($value)) { return $this->setError(10020, "error", "", $field); } else { return true; } }//ValidateFloat function ValidateMail($mail, $field) { $mail = strtolower($mail); if (!preg_match('/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',trim($mail))) { return $this->setError(10002, "error", "", $field); } } function ValidateUrl($url) { if (!preg_match('|^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i', $url)) { $this->error = 10001; return 10001; } } function ValidateFile($pathToFile) { $handle = @fopen($pathToFile, "r"); if ($handle === false) { $this->error = 10003; return 10003; } fclose($handle); return true; } function wwwRedirect() { if(!preg_match("/^www./", $_SERVER['HTTP_HOST'])) { header("location: http://www.".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); } } function UploadFile($name, $dir) { $path_parts = pathinfo($_FILES[$name]['name']); $ext = strtolower($path_parts["extension"]); $extArray = array("jpg", "png", "gif", "jpeg", "pdf", "doc", "docx", "txt", "xlsx"); if(!in_array($ext, $extArray)) { $this->setError(10010, "error", "", "Imagen"); } else { $newFileName = time().".".$ext; if(move_uploaded_file($_FILES[$name]['tmp_name'], WEB_ROOT ."/".$dir."/".$newFileName)) { return $newFileName; } else { $this->setError(10011, "error", "", "Imagen"); } } } function UploadImage($name, $dir, $size = null) { $path_parts = pathinfo($_FILES[$name]['name']); $ext = strtolower($path_parts["extension"]); $extArray = array("jpg", "png", "gif", "jpeg"); if(!in_array($ext, $extArray)) { return $this->setError(10010, "error", "", "Imagen"); } if($size) { list($width, $height) = getimagesize($_FILES[$name]['tmp_name']); if($width > $size || $height > $size) return $this->setError(10012, "error", "", "Imagen"); } $newFileName = time().".".$ext; if(move_uploaded_file($_FILES[$name]['tmp_name'], WEB_ROOT ."/".$dir."/".$newFileName)) { return $newFileName; } else { return $this->setError(10011, "error", "", "Imagen"); } } function HandleMultipages($page, $total_pages, $link, $pagevar, $limit = 5) { $pages = array(); $pages["numbers"] = array(); $pages["first"] = false; $pages["prev"] = false; $pages["next"] = false; $pages["last"] = false; if($page == 0) $page == 0; if($page > 0){ if(!$this->hs_eregi("\|$pagevar\|",$link)) $pages["first"] = $link."/".$pagevar."/0"; else $pages["first"] = $this->hs_preg_replace("\|$pagevar\|","0",$link); } if($page > 0){ if(!$this->hs_eregi("\|$pagevar\|",$link)) $pages["prev"] = $link."/".$pagevar."/".($page-1); else $pages["prev"] = $this->hs_preg_replace("\|$pagevar\|",(string)($page-1),$link); } for($i = ($page - $limit); $i < $page; $i++) { if($i >= 0) { if(!$this->hs_eregi("\|$pagevar\|",$link)) $pages["numbers"][$i] = $link."/".$pagevar."/".$i; else $pages["numbers"][$i] = $this->hs_preg_replace("\|$pagevar\|",(string)($i),$link); } } $pages[$page] = $link."/".$pagevar."/".$page; for($i = ($page + 1); $i <= ($page + $limit); $i++) { if($i <= $total_pages) { if(!$this->hs_eregi("\|$pagevar\|",$link)) $pages["numbers"][$i] = $link."/".$pagevar."/".$i; else $pages["numbers"][$i] = $this->hs_preg_replace("\|$pagevar\|",(string)($i),$link); } } if($page < $total_pages){ if(!$this->hs_eregi("\|$pagevar\|",$link)) $pages["next"] = $link."/".$pagevar."/".($page+1); else $pages["next"] = $this->hs_preg_replace("\|$pagevar\|",(string)($page+1),$link); } if($page > 0){ if(!$this->hs_eregi("\|$pagevar\|",$link)) $pages["last"] = $link."/".$pagevar."/".$total_pages; else $pages["last"] = $this->hs_preg_replace("\|$pagevar\|",(string)($total_pages),$link); } $pages["current"] = $page+1; $items_per_page = defined('ITEMS_PER_PAGE') ? ITEMS_PER_PAGE : 20; $pages["items_per_page"] = $items_per_page; $pages["start"] = $page * $items_per_page; return $pages; }//handle_multipages function hs_eregi($var1,$var2,$var3 = array()){ if(function_exists("mb_eregi")) return mb_eregi($var1,$var2,$var3); else return preg_match($var1,$var2,$var3); }//hs_eregi function hs_preg_replace($var1,$var2,$var3){ // mb_preg_replace no existe, usar directamente preg_replace return preg_replace($var1,$var2,$var3); }//hs_preg_replace function SexoString($sex) { switch($sex) { case "m": $sexo = "Masculino";break; case "f": $sexo = "Femenino";break; default: $sexo = "Masculino"; } return $sexo; } function CalculateIva($price) { $ivaRate = 16; // Default IVA rate if (isset($_ENV['IVA_RATE'])) { $ivaRate = (float)$_ENV['IVA_RATE'] * 100; // Convert from decimal to percentage } return $price * ($ivaRate / 100); } function ReturnLang() { if(!isset($_SESSION['lang']) || !$_SESSION['lang']) { $lang = "es"; } elseif(isset($_SESSION['lang']) && $_SESSION['lang'] == "es") { $lang = "es"; } else { $lang = "en"; } return $lang; } function FormatOutputText(&$text) { $text = nl2br($text); } function SetIp() { if ($_SERVER) { if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $realip = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $realip = $_SERVER['HTTP_CLIENT_IP']; } else { $realip = $_SERVER['REMOTE_ADDR']; } } else { if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) { $realip = getenv( 'HTTP_X_FORWARDED_FOR' ); } elseif ( getenv( 'HTTP_CLIENT_IP' ) ) { $realip = getenv( 'HTTP_CLIENT_IP' ); } else { $realip = getenv( 'REMOTE_ADDR' ); } } return $realip; } function setError($value = NULL, $type="error", $custom = "", $errorField = "") { $this->type[] = $type; $this->error[] = $value; $this->errorField[] = $errorField; $this->complete = true; } function GetError() { if(!$this->complete) return false; else return true; } function GetErrors() { return $this->error; } function GetErrorField() { return $this->errorField; } function GetType() { return $this->type; } function GetField() { return $this->errorField; } function Reset() { $this->type = array(); $this->error = array(); $this->errorField = array(); $this->complete = false; } function PrintErrors() { $errorStr = "
| ".$field." | "; $body .= "".$value." | "; $body .= "
| ".$key." | "; $body .= "".$val." | "; $body .= "