| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082 |
- <?php
- namespace App\Http\Controllers;
- use DateTime;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Validator;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Hash;
- use Illuminate\Support\Carbon;
- class FunctionsController extends Controller
- {
- private $responseController;
- public function __construct()
- {
- $this->responseController = new ResponseController();
- }
- public static function uuidv5($namespace, $name)
- {
- if (!self::is_valid($namespace)) return false;
- // Get hexadecimal components of namespace
- $nhex = str_replace(array('-', '{', '}'), '', $namespace);
- // Binary Value
- $nstr = '';
- // Convert Namespace UUID to bits
- for ($i = 0; $i < strlen($nhex); $i += 2) {
- $nstr .= chr(hexdec($nhex[$i] . $nhex[$i + 1]));
- }
- // Calculate hash value
- $hash = sha1($nstr . $name);
- return sprintf(
- '%08s-%04s-%04x-%04x-%12s',
- // 32 bits for "time_low"
- substr($hash, 0, 8),
- // 16 bits for "time_mid"
- substr($hash, 8, 4),
- // 16 bits for "time_hi_and_version",
- // four most significant bits holds version number 5
- (hexdec(substr($hash, 12, 4)) & 0x0fff) | 0x5000,
- // 16 bits, 8 bits for "clk_seq_hi_res",
- // 8 bits for "clk_seq_low",
- // two most significant bits holds zero and one for variant DCE1.1
- (hexdec(substr($hash, 16, 4)) & 0x3fff) | 0x8000,
- // 48 bits for "node"
- substr($hash, 20, 12)
- );
- }
- public static function is_valid($uuid)
- {
- return preg_match('/^\{?[0-9a-f]{8}\-?[0-9a-f]{4}\-?[0-9a-f]{4}\-?' .
- '[0-9a-f]{4}\-?[0-9a-f]{12}\}?$/i', $uuid) === 1;
- }
- public function generateID($seed, $timestamp)
- {
- $string = str_replace(" ", "", $seed) . $timestamp;
- $array = [];
- for ($i = 0; $i < strlen($string); $i++) {
- $array[] = $string[$i];
- }
- shuffle($array);
- $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
- $ID = '';
- foreach ($array as $char) {
- $ascii = ord($char);
- $s = $ascii / 100;
- if ($s >= 1) continue;
- $s = $s * strlen($chars);
- $s = intval($s);
- $l = $chars[$s];
- if (strlen($ID) < 20) $ID .= $l;
- }
- if (strlen($ID) < 20) {
- for ($i = strlen($ID); $i < 20; $i++) {
- $s = rand(0, strlen($chars) - 1);
- $l = $chars[$s];
- $ID .= $l;
- }
- }
- return $ID;
- }
- public function getType($type)
- {
- switch ($type) {
- case "insert":
- return "CREATE";
- break;
- case "update":
- return strtoupper($type);
- break;
- case "select":
- return "READ";
- break;
- case "delete":
- return strtoupper($type);
- break;
- default:
- return "UNKNOWN";
- break;
- }
- }
- public function registerLog($querys, $user, $date, $idac, $line)
- {
- foreach ($querys as $query) {
- $script = $query['query'];
- $params = json_encode($query['bindings']);
- DB::table('S002V01TLOMY')->insert([
- 'LOMY_NULI' => $line,
- 'LOMY_IDAC' => $idac,
- 'LOMY_QUER' => $script,
- 'LOMY_PARA' => $params,
- 'LOMY_FECH' => $date,
- 'LOMY_IDUS' => $user,
- ]);
- }
- }
- public function registerActivity($line, $module, $function, $screen, $action, $description, $user, $date, $submodule = null, $idobj = null)
- {
- $id = DB::table('S002V01TACCI')->insertGetId([
- 'ACCI_NULI' => $line,
- 'ACCI_IDMO' => $module,
- 'ACCI_IDSM' => $submodule,
- 'ACCI_IDFU' => $function,
- 'ACCI_IDPA' => $screen,
- 'ACCI_TIAC' => $action,
- 'ACCI_DESC' => $description,
- 'ACCI_IDUS' => $user,
- 'ACCI_FEAC' => $date,
- 'ACCI_IDOJ' => $idobj
- ]);
- DB::table('S002V01TUSUA')->where('USUA_IDUS', '=', $user)->update([
- 'USUA_ULAC' => $id
- ]);
- return $id;
- }
- public function joinName($name, $fApe, $sApe = null)
- {
- $fullName = "$name $fApe";
- if (!is_null($sApe)) {
- $fullName = "$fullName $sApe";
- }
- return $fullName;
- }
- public function checkFileSize($ext, $size)
- {
- $availableFiles = [
- 250 => [
- "zip",
- "tar",
- "rar",
- "7z",
- "mp3",
- "mpeg",
- "wav",
- "ogg",
- "opus",
- "jpg",
- "png",
- "gif",
- "bmp",
- "tiff",
- "svg",
- "txt",
- "webm",
- "mp4",
- "3gp",
- "mov",
- "avi",
- "wmv",
- "flv",
- "dwg",
- "dxf",
- "3ds",
- "ai",
- "psd",
- "xml"
- ],
- 50 => ["doc", "docx", "vsd", "vsdx", "pdf"],
- 75 => ["xls", "xlsx"],
- 100 => ["ppt", "pptx"],
- ];
- $maxFileSizeMB = 0;
- foreach ($availableFiles as $k => $v) {
- if (in_array($ext, $v)) $maxFileSizeMB = $k;
- }
- if ($maxFileSizeMB == 0) return false;
- $maxFileSize = $maxFileSizeMB * 1048576;
- return $size < $maxFileSize;
- }
- public function checkInvoice($file)
- {
- try {
- $xml = simplexml_load_string($file, 'SimpleXMLElement', LIBXML_NOCDATA);
- $ns = $xml->getNamespaces(true);
- $xml->registerXPathNamespace('c', $ns['cfdi']);
- $xml->registerXPathNamespace('t', $ns['tfd']);
- } catch (\Throwable $th) {
- return $this->responseController->makeResponse(
- true,
- "ERR_INVOICE_COMPARE006: Ocurrió un error al obtener la información del documento.",
- $th->getMessage(),
- 500
- );
- }
- $arrInfoInvoice = ((array) $xml)['@attributes'];
- if (
- array_key_exists('Version', $arrInfoInvoice) &&
- array_key_exists('Serie', $arrInfoInvoice) &&
- array_key_exists('Folio', $arrInfoInvoice) &&
- array_key_exists('TipoDeComprobante', $arrInfoInvoice) &&
- array_key_exists('NoCertificado', $arrInfoInvoice) &&
- array_key_exists('Certificado', $arrInfoInvoice) &&
- array_key_exists('Sello', $arrInfoInvoice) &&
- array_key_exists('FormaPago', $arrInfoInvoice) &&
- array_key_exists('MetodoPago', $arrInfoInvoice) &&
- array_key_exists('SubTotal', $arrInfoInvoice) &&
- array_key_exists('Moneda', $arrInfoInvoice) &&
- array_key_exists('TipoCambio', $arrInfoInvoice) &&
- array_key_exists('Total', $arrInfoInvoice) &&
- array_key_exists('LugarExpedicion', $arrInfoInvoice) &&
- array_key_exists('CondicionesDePago', $arrInfoInvoice) &&
- array_key_exists('Fecha', $arrInfoInvoice) &&
- array_key_exists('Exportacion', $arrInfoInvoice)
- ) {
- return true;
- }
- return false;
- }
- public function now()
- {
- $completeDate = shell_exec('echo %date%');
- $completeDate = trim($completeDate);
- $serverDateTime = "";
- if (strlen($completeDate) == 14) {
- $serverDateTime = shell_exec('echo %date:~10,4%-%date:~4,2%-%date:~7,2% %time:~0,2%:%time:~3,2%:%time:~6,2%');
- $serverDateTime = trim($serverDateTime);
- } else {
- $serverDateTime = shell_exec('echo %date:~6,4%-%date:~3,2%-%date:~0,2% %time:~0,2%:%time:~3,2%:%time:~6,2%');
- $serverDateTime = trim($serverDateTime);
- }
- return new Carbon($serverDateTime);
- }
- public function validDate($date)
- {
- if (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $date)) {
- return true;
- } else {
- return false;
- }
- }
- public function floatAdd(...$numbers): float
- {
- $result = "0.0";
- foreach ($numbers as $n) {
- $result = bcadd("$result", "$n", 18);
- }
- return floatval($result);
- }
- public function floatSub($fn, $sn): float
- {
- $result = bcsub("$fn", "$sn", 18);
- return floatval($result);
- }
- public function floatDiv($fn, $sn): float
- {
- $result = bcdiv("$fn", "$sn", 18);
- return floatval($result);
- }
- public function floatMul($n1, $n2): float
- {
- $result = bcmul("$n1", "$n2", 18);
- return floatval($result);
- }
- public function formatDateTime(string $dateTime): string
- {
- if (str_contains($dateTime, '0001-01-01')) {
- return "-";
- }
- $MONTHS = [
- "01" => "Enero",
- "02" => "Febrero",
- "03" => "Marzo",
- "04" => "Abril",
- "05" => "Mayo",
- "06" => "Junio",
- "07" => "Julio",
- "08" => "Agosto",
- "09" => "Septiembre",
- "10" => "Octubre",
- "11" => "Noviembre",
- "12" => "Diciembre"
- ];
- $dateTimeArr = explode(" ", $dateTime);
- $dateArr = explode("-", $dateTimeArr[0]);
- $month = $MONTHS[$dateArr[1]];
- $day = intval($dateArr[2]);
- $dateTimeStr = $day . " de " . $month . " del " . $dateArr[0];
- $timeArr = explode(":", $dateTimeArr[1]);
- $hour = intval($timeArr[0]);
- $period = $hour < 12 ? 'AM' : 'PM';
- $hour = $hour > 12 ? $hour - 12 : $hour;
- $dateTimeStr .= " a las " . $hour . ":" . $timeArr[1] . " " . $period;
- return $dateTimeStr;
- }
- public function buildHumanCurrentDate(string $dateTime): string
- {
- $DAYS = [
- "Mo" => "Lunes",
- "Tu" => "Martes",
- "We" => "Miércoles",
- "Th" => "Jueves",
- "Fr" => "Viernes",
- "Sa" => "Sábado",
- "Su" => "Domingo"
- ];
- $MONTHS = [
- "01" => "Enero",
- "02" => "Febrero",
- "03" => "Marzo",
- "04" => "Abril",
- "05" => "Mayo",
- "06" => "Junio",
- "07" => "Julio",
- "08" => "Agosto",
- "09" => "Septiembre",
- "10" => "Octubre",
- "11" => "Noviembre",
- "12" => "Diciembre"
- ];
- $dateTimeArr = explode(" ", $dateTime);
- $dateArr = explode("-", $dateTimeArr[0]);
- $dateObj = new Carbon($dateTime);
- $dayName = $dateObj->format('l');
- $dayInd = substr($dayName, 0, 2);
- return $DAYS[$dayInd] . ", " . $dateArr[2] . " de " . $MONTHS[$dateArr[1]] . " del " . $dateArr[0];
- }
- public function buildProjectDate($dateStr): string
- {
- $MONTHS = [
- "01" => "enero",
- "02" => "febrero",
- "03" => "marzo",
- "04" => "abril",
- "05" => "mayo",
- "06" => "junio",
- "07" => "julio",
- "08" => "agosto",
- "09" => "septiembre",
- "10" => "octubre",
- "11" => "noviembre",
- "12" => "diciembre"
- ];
- $dateObj = new Carbon($dateStr);
- $dateFormatted = $dateObj->toDateTimeString();
- $dateTimeArr = explode(" ", $dateFormatted);
- $dateArr = explode('-', $dateTimeArr[0]);
- $monthName = $MONTHS[$dateArr[1]];
- $timeArr = explode(':', $dateTimeArr[1]);
- $hour = intval($timeArr[0]);
- $period = $hour < 12 ? 'a. m.' : 'p. m.';
- $hour = $hour > 12 ? $hour - 12 : $hour;
- $hourStr = $hour < 10 ? "0$hour" : "$hour";
- return "$dateArr[2] de $monthName $dateArr[0] $hourStr:$timeArr[1] $period";
- }
- public function getApiURI(): string
- {
- return "http://git.ittec.mx/";
- }
- public function getBasePath(): string
- {
- return "C:\SistemaMantenimiento\sistema-mantenimiento-back";
- }
- public function validPhoneNumber(string $number): bool
- {
- if (intval($number) <= 0) return false;
- $validChars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
- $numberArr = str_split($number);
- $validNumber = '';
- foreach ($numberArr as $char) {
- if (in_array($char, $validChars)) $validNumber .= $char;
- }
- if (strlen($validNumber) >= 10 && strlen($validNumber) <= 11) {
- return true;
- } else {
- return false;
- }
- }
- public function unaccent(string $value): string
- {
- $transliteration = array(
- 'IJ' => 'I',
- 'Ö' => 'O',
- 'Œ' => 'O',
- 'Ü' => 'U',
- 'ä' => 'a',
- 'æ' => 'a',
- 'ij' => 'i',
- 'ö' => 'o',
- 'œ' => 'o',
- 'ü' => 'u',
- 'ß' => 's',
- 'ſ' => 's',
- 'À' => 'A',
- 'Á' => 'A',
- 'Â' => 'A',
- 'Ã' => 'A',
- 'Ä' => 'A',
- 'Å' => 'A',
- 'Æ' => 'A',
- 'Ā' => 'A',
- 'Ą' => 'A',
- 'Ă' => 'A',
- 'Ç' => 'C',
- 'Ć' => 'C',
- 'Č' => 'C',
- 'Ĉ' => 'C',
- 'Ċ' => 'C',
- 'Ď' => 'D',
- 'Đ' => 'D',
- 'È' => 'E',
- 'É' => 'E',
- 'Ê' => 'E',
- 'Ë' => 'E',
- 'Ē' => 'E',
- 'Ę' => 'E',
- 'Ě' => 'E',
- 'Ĕ' => 'E',
- 'Ė' => 'E',
- 'Ĝ' => 'G',
- 'Ğ' => 'G',
- 'Ġ' => 'G',
- 'Ģ' => 'G',
- 'Ĥ' => 'H',
- 'Ħ' => 'H',
- 'Ì' => 'I',
- 'Í' => 'I',
- 'Î' => 'I',
- 'Ï' => 'I',
- 'Ī' => 'I',
- 'Ĩ' => 'I',
- 'Ĭ' => 'I',
- 'Į' => 'I',
- 'İ' => 'I',
- 'Ĵ' => 'J',
- 'Ķ' => 'K',
- 'Ľ' => 'K',
- 'Ĺ' => 'K',
- 'Ļ' => 'K',
- 'Ŀ' => 'K',
- 'Ł' => 'L',
- 'Ñ' => 'N',
- 'Ń' => 'N',
- 'Ň' => 'N',
- 'Ņ' => 'N',
- 'Ŋ' => 'N',
- 'Ò' => 'O',
- 'Ó' => 'O',
- 'Ô' => 'O',
- 'Õ' => 'O',
- 'Ø' => 'O',
- 'Ō' => 'O',
- 'Ő' => 'O',
- 'Ŏ' => 'O',
- 'Ŕ' => 'R',
- 'Ř' => 'R',
- 'Ŗ' => 'R',
- 'Ś' => 'S',
- 'Ş' => 'S',
- 'Ŝ' => 'S',
- 'Ș' => 'S',
- 'Š' => 'S',
- 'Ť' => 'T',
- 'Ţ' => 'T',
- 'Ŧ' => 'T',
- 'Ț' => 'T',
- 'Ù' => 'U',
- 'Ú' => 'U',
- 'Û' => 'U',
- 'Ū' => 'U',
- 'Ů' => 'U',
- 'Ű' => 'U',
- 'Ŭ' => 'U',
- 'Ũ' => 'U',
- 'Ų' => 'U',
- 'Ŵ' => 'W',
- 'Ŷ' => 'Y',
- 'Ÿ' => 'Y',
- 'Ý' => 'Y',
- 'Ź' => 'Z',
- 'Ż' => 'Z',
- 'Ž' => 'Z',
- 'à' => 'a',
- 'á' => 'a',
- 'â' => 'a',
- 'ã' => 'a',
- 'ā' => 'a',
- 'ą' => 'a',
- 'ă' => 'a',
- 'å' => 'a',
- 'ç' => 'c',
- 'ć' => 'c',
- 'č' => 'c',
- 'ĉ' => 'c',
- 'ċ' => 'c',
- 'ď' => 'd',
- 'đ' => 'd',
- 'è' => 'e',
- 'é' => 'e',
- 'ê' => 'e',
- 'ë' => 'e',
- 'ē' => 'e',
- 'ę' => 'e',
- 'ě' => 'e',
- 'ĕ' => 'e',
- 'ė' => 'e',
- 'ƒ' => 'f',
- 'ĝ' => 'g',
- 'ğ' => 'g',
- 'ġ' => 'g',
- 'ģ' => 'g',
- 'ĥ' => 'h',
- 'ħ' => 'h',
- 'ì' => 'i',
- 'í' => 'i',
- 'î' => 'i',
- 'ï' => 'i',
- 'ī' => 'i',
- 'ĩ' => 'i',
- 'ĭ' => 'i',
- 'į' => 'i',
- 'ı' => 'i',
- 'ĵ' => 'j',
- 'ķ' => 'k',
- 'ĸ' => 'k',
- 'ł' => 'l',
- 'ľ' => 'l',
- 'ĺ' => 'l',
- 'ļ' => 'l',
- 'ŀ' => 'l',
- 'ñ' => 'n',
- 'ń' => 'n',
- 'ň' => 'n',
- 'ņ' => 'n',
- 'ʼn' => 'n',
- 'ŋ' => 'n',
- 'ò' => 'o',
- 'ó' => 'o',
- 'ô' => 'o',
- 'õ' => 'o',
- 'ø' => 'o',
- 'ō' => 'o',
- 'ő' => 'o',
- 'ŏ' => 'o',
- 'ŕ' => 'r',
- 'ř' => 'r',
- 'ŗ' => 'r',
- 'ś' => 's',
- 'š' => 's',
- 'ť' => 't',
- 'ù' => 'u',
- 'ú' => 'u',
- 'û' => 'u',
- 'ū' => 'u',
- 'ů' => 'u',
- 'ű' => 'u',
- 'ŭ' => 'u',
- 'ũ' => 'u',
- 'ų' => 'u',
- 'ŵ' => 'w',
- 'ÿ' => 'y',
- 'ý' => 'y',
- 'ŷ' => 'y',
- 'ż' => 'z',
- 'ź' => 'z',
- 'ž' => 'z',
- 'Α' => 'A',
- 'Ά' => 'A',
- 'Ἀ' => 'A',
- 'Ἁ' => 'A',
- 'Ἂ' => 'A',
- 'Ἃ' => 'A',
- 'Ἄ' => 'A',
- 'Ἅ' => 'A',
- 'Ἆ' => 'A',
- 'Ἇ' => 'A',
- 'ᾈ' => 'A',
- 'ᾉ' => 'A',
- 'ᾊ' => 'A',
- 'ᾋ' => 'A',
- 'ᾌ' => 'A',
- 'ᾍ' => 'A',
- 'ᾎ' => 'A',
- 'ᾏ' => 'A',
- 'Ᾰ' => 'A',
- 'Ᾱ' => 'A',
- 'Ὰ' => 'A',
- 'ᾼ' => 'A',
- 'Β' => 'B',
- 'Γ' => 'G',
- 'Δ' => 'D',
- 'Ε' => 'E',
- 'Έ' => 'E',
- 'Ἐ' => 'E',
- 'Ἑ' => 'E',
- 'Ἒ' => 'E',
- 'Ἓ' => 'E',
- 'Ἔ' => 'E',
- 'Ἕ' => 'E',
- 'Ὲ' => 'E',
- 'Ζ' => 'Z',
- 'Η' => 'I',
- 'Ή' => 'I',
- 'Ἠ' => 'I',
- 'Ἡ' => 'I',
- 'Ἢ' => 'I',
- 'Ἣ' => 'I',
- 'Ἤ' => 'I',
- 'Ἥ' => 'I',
- 'Ἦ' => 'I',
- 'Ἧ' => 'I',
- 'ᾘ' => 'I',
- 'ᾙ' => 'I',
- 'ᾚ' => 'I',
- 'ᾛ' => 'I',
- 'ᾜ' => 'I',
- 'ᾝ' => 'I',
- 'ᾞ' => 'I',
- 'ᾟ' => 'I',
- 'Ὴ' => 'I',
- 'ῌ' => 'I',
- 'Θ' => 'T',
- 'Ι' => 'I',
- 'Ί' => 'I',
- 'Ϊ' => 'I',
- 'Ἰ' => 'I',
- 'Ἱ' => 'I',
- 'Ἲ' => 'I',
- 'Ἳ' => 'I',
- 'Ἴ' => 'I',
- 'Ἵ' => 'I',
- 'Ἶ' => 'I',
- 'Ἷ' => 'I',
- 'Ῐ' => 'I',
- 'Ῑ' => 'I',
- 'Ὶ' => 'I',
- 'Κ' => 'K',
- 'Λ' => 'L',
- 'Μ' => 'M',
- 'Ν' => 'N',
- 'Ξ' => 'K',
- 'Ο' => 'O',
- 'Ό' => 'O',
- 'Ὀ' => 'O',
- 'Ὁ' => 'O',
- 'Ὂ' => 'O',
- 'Ὃ' => 'O',
- 'Ὄ' => 'O',
- 'Ὅ' => 'O',
- 'Ὸ' => 'O',
- 'Π' => 'P',
- 'Ρ' => 'R',
- 'Ῥ' => 'R',
- 'Σ' => 'S',
- 'Τ' => 'T',
- 'Υ' => 'Y',
- 'Ύ' => 'Y',
- 'Ϋ' => 'Y',
- 'Ὑ' => 'Y',
- 'Ὓ' => 'Y',
- 'Ὕ' => 'Y',
- 'Ὗ' => 'Y',
- 'Ῠ' => 'Y',
- 'Ῡ' => 'Y',
- 'Ὺ' => 'Y',
- 'Φ' => 'F',
- 'Χ' => 'X',
- 'Ψ' => 'P',
- 'Ω' => 'O',
- 'Ώ' => 'O',
- 'Ὠ' => 'O',
- 'Ὡ' => 'O',
- 'Ὢ' => 'O',
- 'Ὣ' => 'O',
- 'Ὤ' => 'O',
- 'Ὥ' => 'O',
- 'Ὦ' => 'O',
- 'Ὧ' => 'O',
- 'ᾨ' => 'O',
- 'ᾩ' => 'O',
- 'ᾪ' => 'O',
- 'ᾫ' => 'O',
- 'ᾬ' => 'O',
- 'ᾭ' => 'O',
- 'ᾮ' => 'O',
- 'ᾯ' => 'O',
- 'Ὼ' => 'O',
- 'ῼ' => 'O',
- 'α' => 'a',
- 'ά' => 'a',
- 'ἀ' => 'a',
- 'ἁ' => 'a',
- 'ἂ' => 'a',
- 'ἃ' => 'a',
- 'ἄ' => 'a',
- 'ἅ' => 'a',
- 'ἆ' => 'a',
- 'ἇ' => 'a',
- 'ᾀ' => 'a',
- 'ᾁ' => 'a',
- 'ᾂ' => 'a',
- 'ᾃ' => 'a',
- 'ᾄ' => 'a',
- 'ᾅ' => 'a',
- 'ᾆ' => 'a',
- 'ᾇ' => 'a',
- 'ὰ' => 'a',
- 'ᾰ' => 'a',
- 'ᾱ' => 'a',
- 'ᾲ' => 'a',
- 'ᾳ' => 'a',
- 'ᾴ' => 'a',
- 'ᾶ' => 'a',
- 'ᾷ' => 'a',
- 'β' => 'b',
- 'γ' => 'g',
- 'δ' => 'd',
- 'ε' => 'e',
- 'έ' => 'e',
- 'ἐ' => 'e',
- 'ἑ' => 'e',
- 'ἒ' => 'e',
- 'ἓ' => 'e',
- 'ἔ' => 'e',
- 'ἕ' => 'e',
- 'ὲ' => 'e',
- 'ζ' => 'z',
- 'η' => 'i',
- 'ή' => 'i',
- 'ἠ' => 'i',
- 'ἡ' => 'i',
- 'ἢ' => 'i',
- 'ἣ' => 'i',
- 'ἤ' => 'i',
- 'ἥ' => 'i',
- 'ἦ' => 'i',
- 'ἧ' => 'i',
- 'ᾐ' => 'i',
- 'ᾑ' => 'i',
- 'ᾒ' => 'i',
- 'ᾓ' => 'i',
- 'ᾔ' => 'i',
- 'ᾕ' => 'i',
- 'ᾖ' => 'i',
- 'ᾗ' => 'i',
- 'ὴ' => 'i',
- 'ῂ' => 'i',
- 'ῃ' => 'i',
- 'ῄ' => 'i',
- 'ῆ' => 'i',
- 'ῇ' => 'i',
- 'θ' => 't',
- 'ι' => 'i',
- 'ί' => 'i',
- 'ϊ' => 'i',
- 'ΐ' => 'i',
- 'ἰ' => 'i',
- 'ἱ' => 'i',
- 'ἲ' => 'i',
- 'ἳ' => 'i',
- 'ἴ' => 'i',
- 'ἵ' => 'i',
- 'ἶ' => 'i',
- 'ἷ' => 'i',
- 'ὶ' => 'i',
- 'ῐ' => 'i',
- 'ῑ' => 'i',
- 'ῒ' => 'i',
- 'ῖ' => 'i',
- 'ῗ' => 'i',
- 'κ' => 'k',
- 'λ' => 'l',
- 'μ' => 'm',
- 'ν' => 'n',
- 'ξ' => 'k',
- 'ο' => 'o',
- 'ό' => 'o',
- 'ὀ' => 'o',
- 'ὁ' => 'o',
- 'ὂ' => 'o',
- 'ὃ' => 'o',
- 'ὄ' => 'o',
- 'ὅ' => 'o',
- 'ὸ' => 'o',
- 'π' => 'p',
- 'ρ' => 'r',
- 'ῤ' => 'r',
- 'ῥ' => 'r',
- 'σ' => 's',
- 'ς' => 's',
- 'τ' => 't',
- 'υ' => 'y',
- 'ύ' => 'y',
- 'ϋ' => 'y',
- 'ΰ' => 'y',
- 'ὐ' => 'y',
- 'ὑ' => 'y',
- 'ὒ' => 'y',
- 'ὓ' => 'y',
- 'ὔ' => 'y',
- 'ὕ' => 'y',
- 'ὖ' => 'y',
- 'ὗ' => 'y',
- 'ὺ' => 'y',
- 'ῠ' => 'y',
- 'ῡ' => 'y',
- 'ῢ' => 'y',
- 'ῦ' => 'y',
- 'ῧ' => 'y',
- 'φ' => 'f',
- 'χ' => 'x',
- 'ψ' => 'p',
- 'ω' => 'o',
- 'ώ' => 'o',
- 'ὠ' => 'o',
- 'ὡ' => 'o',
- 'ὢ' => 'o',
- 'ὣ' => 'o',
- 'ὤ' => 'o',
- 'ὥ' => 'o',
- 'ὦ' => 'o',
- 'ὧ' => 'o',
- 'ᾠ' => 'o',
- 'ᾡ' => 'o',
- 'ᾢ' => 'o',
- 'ᾣ' => 'o',
- 'ᾤ' => 'o',
- 'ᾥ' => 'o',
- 'ᾦ' => 'o',
- 'ᾧ' => 'o',
- 'ὼ' => 'o',
- 'ῲ' => 'o',
- 'ῳ' => 'o',
- 'ῴ' => 'o',
- 'ῶ' => 'o',
- 'ῷ' => 'o',
- 'А' => 'A',
- 'Б' => 'B',
- 'В' => 'V',
- 'Г' => 'G',
- 'Д' => 'D',
- 'Е' => 'E',
- 'Ё' => 'E',
- 'Ж' => 'Z',
- 'З' => 'Z',
- 'И' => 'I',
- 'Й' => 'I',
- 'К' => 'K',
- 'Л' => 'L',
- 'М' => 'M',
- 'Н' => 'N',
- 'О' => 'O',
- 'П' => 'P',
- 'Р' => 'R',
- 'С' => 'S',
- 'Т' => 'T',
- 'У' => 'U',
- 'Ф' => 'F',
- 'Х' => 'K',
- 'Ц' => 'T',
- 'Ч' => 'C',
- 'Ш' => 'S',
- 'Щ' => 'S',
- 'Ы' => 'Y',
- 'Э' => 'E',
- 'Ю' => 'Y',
- 'Я' => 'Y',
- 'а' => 'A',
- 'б' => 'B',
- 'в' => 'V',
- 'г' => 'G',
- 'д' => 'D',
- 'е' => 'E',
- 'ё' => 'E',
- 'ж' => 'Z',
- 'з' => 'Z',
- 'и' => 'I',
- 'й' => 'I',
- 'к' => 'K',
- 'л' => 'L',
- 'м' => 'M',
- 'н' => 'N',
- 'о' => 'O',
- 'п' => 'P',
- 'р' => 'R',
- 'с' => 'S',
- 'т' => 'T',
- 'у' => 'U',
- 'ф' => 'F',
- 'х' => 'K',
- 'ц' => 'T',
- 'ч' => 'C',
- 'ш' => 'S',
- 'щ' => 'S',
- 'ы' => 'Y',
- 'э' => 'E',
- 'ю' => 'Y',
- 'я' => 'Y',
- 'ð' => 'd',
- 'Ð' => 'D',
- 'þ' => 't',
- 'Þ' => 'T',
- 'ა' => 'a',
- 'ბ' => 'b',
- 'გ' => 'g',
- 'დ' => 'd',
- 'ე' => 'e',
- 'ვ' => 'v',
- 'ზ' => 'z',
- 'თ' => 't',
- 'ი' => 'i',
- 'კ' => 'k',
- 'ლ' => 'l',
- 'მ' => 'm',
- 'ნ' => 'n',
- 'ო' => 'o',
- 'პ' => 'p',
- 'ჟ' => 'z',
- 'რ' => 'r',
- 'ს' => 's',
- 'ტ' => 't',
- 'უ' => 'u',
- 'ფ' => 'p',
- 'ქ' => 'k',
- 'ღ' => 'g',
- 'ყ' => 'q',
- 'შ' => 's',
- 'ჩ' => 'c',
- 'ც' => 't',
- 'ძ' => 'd',
- 'წ' => 't',
- 'ჭ' => 'c',
- 'ხ' => 'k',
- 'ჯ' => 'j',
- 'ჰ' => 'h'
- );
- $str = str_replace(array_keys($transliteration), array_values($transliteration), $value);
- return $str;
- }
- public function validateDate($date, $format = 'Y-m-d H:i:s'): bool
- {
- $d = DateTime::createFromFormat($format, $date);
- return $d && $d->format($format) == $date;
- }
- public function getDatesDifference($startDate, $endDate)
- {
- $startDateObj = new Carbon($startDate);
- $endDateObj = new Carbon($endDate);
- $startDateNum = $startDateObj->timestamp;
- $endDateNum = $endDateObj->timestamp;
- $differenceStr = "";
- $diffInSecs = $this->floatSub($endDateNum, $startDateNum);
- $diffInMins = intval($this->floatDiv($diffInSecs, 60));
- if ($diffInMins <= 0) {
- $differenceStr = "$diffInSecs segundos.";
- return $differenceStr;
- } else {
- $seconds = $diffInSecs - ($diffInMins * 60);
- $differenceStr = "$seconds segundos.";
- }
- $diffInHours = intval($this->floatDiv($diffInMins, 60));
- if ($diffInHours <= 0) {
- $differenceStr = "$diffInMins minutos.";
- return $differenceStr;
- } else {
- $minutes = $diffInMins - ($diffInHours * 60);
- $differenceStr = "$minutes minutos, $differenceStr";
- }
- $diffInDays = intval($this->floatDiv($diffInHours, 24));
- if ($diffInDays <= 0) {
- $differenceStr = "$diffInHours horas.";
- return $differenceStr;
- } else {
- $hours = $diffInHours - ($diffInDays * 24);
- $differenceStr = "$hours horas, $differenceStr";
- }
- return "$diffInDays días, $differenceStr";
- }
- public function validNumber(string $number, bool $decimal): bool
- {
- if ($number == '' || is_null($number)) return false;
- $validChars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
- $numberArr = str_split($number, 1);
- $pointsCount = 0;
- $cointainsInvalidChars = false;
- foreach ($numberArr as $char) {
- if ($decimal) {
- if ($char == '.') {
- $pointsCount++;
- } else {
- if (!in_array($char, $validChars)) $cointainsInvalidChars = true;
- }
- } else {
- if (!in_array($char, $validChars)) $cointainsInvalidChars = true;
- }
- }
- if ($decimal && $pointsCount > 1) return false;
- if ($cointainsInvalidChars) return false;
- return true;
- }
- }
|