ok
Direktori : /home2/selectio/public_html/mm-tailor-billing/app/libraries/ |
Current File : /home2/selectio/public_html/mm-tailor-billing/app/libraries/Tec.php |
<?php defined('BASEPATH') or exit('No direct script access allowed'); /* * ============================================================================== * Author : Mian Saleem * Email : saleem@tecdiary.com * Web : http://tecdiary.com * ============================================================================== */ class Tec { public function __construct() { } public function __get($var) { return get_instance()->$var; } public function barcode($text = null, $bcs = 'code128', $height = 74, $stext = 1, $get_be = false) { $drawText = ($stext != 1) ? false : true; $this->load->library('tec_barcode', '', 'bc'); return $this->bc->generate($text, $bcs, $height, $drawText, $get_be); } public function clear_tags($str) { return htmlentities(strip_tags($str, '<span><div><a><br><p><b><i><u><img><blockquote><small><ul><ol><li><hr><big><pre><code><strong><em><table><tr><td><th><tbody><thead><tfoot><h3><h4><h5><h6>'), ENT_QUOTES | ENT_XHTML | ENT_HTML5, 'UTF-8'); } public function dd() { die("<script type='text/javascript'>setTimeout(function(){ window.top.location.href = '" . ($_SERVER['HTTP_REFERER'] ?? site_url('pos')) . "'; }, 10);</script>"); } public function decode_html($str) { return html_entity_decode($str, ENT_QUOTES | ENT_XHTML | ENT_HTML5, 'UTF-8'); } public function exlusiveTax($price, $rate) { return $this->formatDecimal((($price * $rate) / 100), 4); } public function formatDecimal($number, $decimals = null) { if (!is_numeric($number)) { return null; } if (!$decimals) { $decimals = $this->Settings->decimals; } return number_format($number, $decimals, '.', ''); } public function formatMoney($number, $decimal = false) { if ($this->Settings->sac) { return ($this->Settings->display_symbol == 1 ? $this->Settings->symbol : '') . $this->formatSAC($this->formatDecimal($number)) . ($this->Settings->display_symbol == 2 ? $this->Settings->symbol : ''); } $decimals = $decimal !== false ? $decimal : $this->Settings->decimals; $ts = $this->Settings->thousands_sep == '0' ? ' ' : $this->Settings->thousands_sep; $ds = $this->Settings->decimals_sep; return ($this->Settings->display_symbol == 1 ? $this->Settings->symbol : '') . number_format($number, $decimals, $ds, $ts) . ($this->Settings->display_symbol == 2 ? $this->Settings->symbol : ''); } public function formatNumber($number, $decimals = null) { if (!$decimals) { $decimals = $this->Settings->decimals; } if ($this->Settings->sac) { return $this->formatSAC($this->formatDecimal($number, $decimals)); } $ts = $this->Settings->thousands_sep == '0' ? ' ' : $this->Settings->thousands_sep; $ds = $this->Settings->decimals_sep; return number_format($number, $decimals, $ds, $ts); } public function formatQuantity($number, $decimals = null) { if (!$decimals) { $decimals = $this->Settings->qty_decimals; } if ($this->Settings->sac) { return $this->formatSAC($this->formatDecimal($number, $decimals)); } $ts = $this->Settings->thousands_sep == '0' ? ' ' : $this->Settings->thousands_sep; $ds = $this->Settings->decimals_sep; return number_format($number, $decimals, $ds, $ts); } public function formatSAC($num) { $pos = strpos((string) $num, '.'); if ($pos === false) { $decimalpart = '00'; } else { $decimalpart = substr($num, $pos + 1, 2); $num = substr($num, 0, $pos); } if (strlen($num) > 3 & strlen($num) <= 12) { $last3digits = substr($num, -3); $numexceptlastdigits = substr($num, 0, -3); $formatted = $this->makecomma($numexceptlastdigits); $stringtoreturn = $formatted . ',' . $last3digits . '.' . $decimalpart; } elseif (strlen($num) <= 3) { $stringtoreturn = $num . '.' . $decimalpart; } elseif (strlen($num) > 12) { $stringtoreturn = number_format($num, 2); } if (substr($stringtoreturn, 0, 2) == '-,') { $stringtoreturn = '-' . substr($stringtoreturn, 2); } return $stringtoreturn; } public function get_base64($file_name) { $type = pathinfo($file_name, PATHINFO_EXTENSION); $data = file_get_contents($file_name); $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data); return $base64; } public function getUser($user_id = null) { return $this->site->getUser($user_id); } public function getUsers() { return $this->site->getUsers(); } public function hrld($ldate) { if ($ldate) { return date($this->Settings->dateformat . ' ' . $this->Settings->timeformat, strtotime($ldate)); } return false; } public function hrsd($sdate) { if ($sdate) { return date($this->Settings->dateformat, strtotime($sdate)); } return FASLE; } public function in_group($check_group, $id = false) { if (!$id) { $id = $this->session->userdata('user_id'); } $group = $this->site->getUserGroup($id); if ($group && $group->name === $check_group) { return true; } return false; } public function inclusiveTax($price, $rate) { // return $this->formatDecimal(($price * ($rate / 100)), 4); return $this->formatDecimal($price - ($price / (100 + $rate) * 100), 4); } public function logged_in() { return (bool) $this->session->userdata('identity'); } public function makecomma($input) { if (strlen($input) <= 2) { return $input; } $length = substr($input, 0, strlen($input) - 2); $formatted_input = $this->makecomma($length) . ',' . substr($input, -2); return $formatted_input; } public function parse_scale_barcode($barcode) { if (strlen($barcode) == $this->Settings->ws_barcode_chars) { $price = false; $weight = false; if ($this->Settings->ws_barcode_type == 'price') { try { $price = substr($barcode, $this->Settings->price_start - 1, $this->Settings->price_chars); $price = $this->Settings->price_divide_by ? $price / $this->Settings->price_divide_by : $price; } catch (\Exception $e) { $price = 0; } } else { try { $weight = substr($barcode, $this->Settings->weight_start - 1, $this->Settings->weight_chars); $weight = $this->Settings->weight_divide_by ? $weight / $this->Settings->weight_divide_by : $weight; } catch (\Exception $e) { $weight = 0; } } $item_code = substr($barcode, $this->Settings->item_code_start - 1, $this->Settings->item_code_chars); return ['item_code' => $item_code, 'price' => $price, 'weight' => $weight, 'strict' => true]; } return $barcode; } public function print_arrays() { $args = func_get_args(); echo '<pre>'; foreach ($args as $arg) { print_r($arg); } echo '</pre>'; die(); } public function roundNumber($number, $toref = null) { switch ($toref) { case 1: $rn = round($number * 20) / 20; break; case 2: $rn = round($number * 2) / 2; break; case 3: $rn = round($number); break; case 4: $rn = ceil($number); break; default: $rn = $number; } return $rn; } public function send_email($to, $subject, $message, $from = null, $from_name = null, $attachment = null, $cc = null, $bcc = null) { list($user, $domain) = explode('@', $to); if ($domain != 'tecdiary.com' || DEMO) { $this->load->library('tec_mail'); return $this->tec_mail->send_mail($to, $subject, $message, $from, $from_name, $attachment, $cc, $bcc); } return false; } public function send_json($data) { header('Content-Type: application/json'); die(json_encode($data)); exit; } public function unset_data($ud) { if ($this->session->userdata($ud)) { $this->session->unset_userdata($ud); return true; } return false; } public function unzip($source, $destination = './') { // @chmod($destination, 0777); $zip = new ZipArchive; if ($zip->open(str_replace('//', '/', $source)) === true) { $zip->extractTo($destination); $zip->close(); } // @chmod($destination,0755); return true; } public function view_rights($check_id, $js = null, $page = null) { if (!$this->Admin) { if ($check_id != $this->session->userdata('user_id')) { $this->session->set_flashdata('error', $this->data['access_denied']); if ($js) { die("<script type='text/javascript'>setTimeout(function(){ window.top.location.href = '" . ($page ? $page : ($_SERVER['HTTP_REFERER'] ?? site_url('welcome'))) . "'; }, 10);</script>"); } redirect($page ? $page : ($_SERVER['HTTP_REFERER'] ?? 'welcome')); } } return true; } public function zip($source = null, $destination = './', $output_name = 'sma', $limit = 5000) { if (!$destination || trim($destination) == '') { $destination = './'; } $this->_rglobRead($source, $input); $maxinput = count($input); $splitinto = (($maxinput / $limit) > round($maxinput / $limit, 0)) ? round($maxinput / $limit, 0) + 1 : round($maxinput / $limit, 0); for ($i = 0; $i < $splitinto; $i++) { $this->_zip(array_slice($input, ($i * $limit), $limit, true), $i, $destination, $output_name); } unset($input); } private function _rglobRead($source, &$array = []) { if (!$source || trim($source) == '') { $source = '.'; } foreach ((array)glob($source . '/*/') as $key => $value) { $this->_rglobRead(str_replace('//', '/', $value), $array); } $hidden_files = glob($source . '.*') and $htaccess = preg_grep('/\.htaccess$/', $hidden_files); $files = array_merge(glob($source . '*.*'), $htaccess); foreach ($files as $key => $value) { $array[] = str_replace('//', '/', $value); } } private function _zip($array, $part, $destination, $output_name = 'sma') { $zip = new ZipArchive; @mkdir($destination, 0777, true); if ($zip->open(str_replace('//', '/', "{$destination}/{$output_name}" . ($part ? '_p' . $part : '') . '.zip'), ZipArchive::CREATE)) { foreach ((array)$array as $key => $value) { $zip->addFile($value, str_replace(['../', './'], null, $value)); } $zip->close(); } } }