<?php

$nameapp='QUIMIFOREN';
$server = "127.0.0.1";
$user = "quimifor_admin";
$pass = "Sistemas123**";
$bd = "quimifor_2021";



//perfiles
$pcl=1;//Distribuidor
$pdi=2;//Distribuidor
$pru=9;//Rutero
$pbo=3;//Bodega
$pca=4;//CallCenter
$pad=98;//Administrador 
$psu=99;//SuperAdmon


require_once("saber.php");
require_once("conversor.php");
putenv("TZ=America/Bogota");
date_default_timezone_set("America/Bogota");

$lang = 'es';
$correo='info@quimiforen.com';
$celular='3138294092'; //fabio
$celular2='3204075746'; // Secretaria
$celular3='3204075746'; // Bodega
$telefono = ' 537 8294';
$indicativo = '601 ';
$dominio='http://quimiforen.com';
$municipiosucursal='107';
$appname = 'QUIMIFOREN';
$autor = '';
$copyright = '';
$descripcion = '';
$keywords = '';

$direccion = 'Carrera 66A No. 3-26';
$ciudad = 'Bogotá-Trinidad Galán, COL';

// MAILERELAY

$phpmail='dyjmxgldewkl';
$phppss='WMPGfFC-WEHNBCc';
$phpsmtp= 'smtp1.s.ipzmarketing.com';
$phpport= 587;


/*
$phpmail='info@quimiforen.com';
$phppss='Quimif0r3n.2015**';
$phpsmtp= 'smtp.mlsend.com';
$phpport= 587;
*/


function validSession($r){
  session_start();
  if(isset($_SESSION["userid"])) {
        exit(header("Location:".$r."dashboard.php"));
  }
}

function idencode($id){
    return urlencode(base64_encode($id));
}
function iddecode($id){
    return urldecode(base64_decode($id));
}

function validNotSession($r) {
    session_start();
    if(!$_SESSION["userid"]){
        $_SESSION["redirect_after_login"] = $_SERVER['REQUEST_URI'];
        exit(header("Location:".$r."index.php?error=Primero debe iniciar sesion"));
    }
}
function connectDB($r) {
  global $server, $user, $pass, $bd, $port;
  $mysqli = new mysqli($server, $user, $pass, $bd, $port);
  if($mysqli->connect_error) {
    $error = str_replace("'", "", $mysqli->connect_error); 
    exit(header("Location:".$r."index.php?error=fallo la conexion (".$error.")"));
  } else {
       $mysqli->set_charset('utf8mb4');                                    // ← lo importante
        $mysqli->query("SET collation_connection = 'utf8mb4_unicode_ci'");
    return $mysqli;
  }
}

function connectDB2($r) {
  global $server, $user, $pass, $namebd2, $port;
  $mysqli2 = new mysqli($server, $user, $pass, $namebd2, $port);
  if($mysqli2->connect_error) {
    $error = str_replace("'", "", $mysqli2->connect_error); 
    exit(header("Location:".$r."index.php?error=fallo la conexion (".$error.")"));
  } else {
       $mysqli2->set_charset('utf8mb4');                                    // ← lo importante
        $mysqli2->query("SET collation_connection = 'utf8mb4_unicode_ci'");
    return $mysqli2;
  }
}

function quitar_tildes(string $txt): string
{
    static $map = [
        'á'=>'a', 'é'=>'e', 'í'=>'i', 'ó'=>'o', 'ú'=>'u', 'ü'=>'u',
        'Á'=>'A', 'É'=>'E', 'Í'=>'I', 'Ó'=>'O', 'Ú'=>'U', 'Ü'=>'U',
        'ñ'=>'n', 'Ñ'=>'N'
    ];
    return strtr($txt, $map);
}

function encriptar($string){
   $key='practi';  // Una clave de codificacion, debe usarse la misma para encriptar y desencriptar
   $result = '';
   for($i=0; $i<strlen($string); $i++) {
      $char = substr($string, $i, 1);
      $keychar = substr($key, ($i % strlen($key))-1, 1);
      $char = chr(ord($char)+ord($keychar));
      $result.=$char;
   }
   return base64_encode($result);
}
 
function desencriptar($string){
   $key='practi';  // Una clave de codificacion, debe usarse la misma para encriptar y desencriptar
   $result = '';
   $string = base64_decode($string);
   for($i=0; $i<strlen($string); $i++) {
      $char = substr($string, $i, 1);
      $keychar = substr($key, ($i % strlen($key))-1, 1);
      $char = chr(ord($char)-ord($keychar));
      $result.=$char;
   }
   return $result;
}

function moneda($valor) {
    $valor = floatval($valor); // fuerza a float incluso si es string o null
    return '$ ' . number_format($valor, 0, ',', '.') . ' COP';
}


function numodec($valor){
    $intcant=intval($valor);
    if($intcant==$valor){ 
        $num = $intcant;
    }else{
        $num = floatval($valor);
    } 
    return $num;
}


function roleaccess($idpag){
    global $mysqli , $spe , $r;
    $sqlroles = $mysqli->query("SELECT `sigla` FROM `z_perfiles` WHERE `id` = $spe");
    $rowroles = $sqlroles->fetch_assoc();
    $psigla=$rowroles['sigla'];
    $sqlrole = $mysqli->query("SELECT * FROM z_roles WHERE id=$idpag");
    $rowrole = $sqlrole->fetch_assoc();
    if($rowrole[$psigla]==0){exit(header("Location:".$r."index.php?error=NO TINES ACCESSO A ESTA AREA")); }
    
}

function viewroleaccess($idpag){
    global $mysqli , $spe , $r;
    $sqlroles = $mysqli->query("SELECT sigla FROM z_perfiles WHERE id=$spe");
    $rowroles = $sqlroles->fetch_assoc();
    $psigla=$rowroles['sigla'];
    $sqlrole = $mysqli->query("SELECT * FROM z_roles WHERE id=$idpag");
    $rowrole = $sqlrole->fetch_assoc();
    if($rowrole[$psigla]==0){return FALSE;}else{return TRUE;}
    
}

function viewmultiroleaccess($idpags){
    global $mysqli , $spe , $r;
    $true=0;
    $sqlroles = $mysqli->query("SELECT sigla FROM z_perfiles WHERE id=$spe");
    $rowroles = $sqlroles->fetch_assoc();
    $psigla=$rowroles['sigla'];
    foreach ($idpags as $clave => $valor) {
        $sqlrole = $mysqli->query("SELECT $psigla FROM z_roles WHERE id=$valor");
        $rowrole = $sqlrole->fetch_assoc();
        if($rowrole[$psigla]==1){$true=1;}
    }
    if($true!=1){return FALSE;}else{return TRUE;}
}


function loadimagen($archivo,$nombre,$ruta){
      $errors= array();
      $file_name = $archivo['name'];
      $file_size = $archivo['size'];
      $file_tmp = $archivo['tmp_name'];
      $file_type = $archivo['type'];
      $file_ext = strtolower(end(explode('.',$archivo['name'])));
      $target_path1=$nombre.'.'.$file_ext;
      if($file_size > 120000000){
         $errors[]='El tamaño del archivo debe ser de 4 MB maximo';
      }
      if(empty($errors)==true){
         move_uploaded_file($file_tmp,$_SERVER['DOCUMENT_ROOT'].$ruta.$target_path1);
            $srcfile=$_SERVER['DOCUMENT_ROOT'].$ruta.$target_path1;
            $dstfile=$_SERVER['DOCUMENT_ROOT'].$ruta.'sm/'.$target_path1;
            //mkdir(dirname($dstfile), 0777, true);
            copy($srcfile, $dstfile);
         
         // Fichero y nuevo tamaños
        $nombre_fichero = $_SERVER['DOCUMENT_ROOT'].$ruta.'sm/'.$target_path1;
        
        // Obtener los nuevos tamaños
        list($ancho, $alto) = getimagesize($nombre_fichero);
        $imagen = getimagesize($nombre_fichero);
        $nuevo_ancho = $imagen[0]/2;
        $nuevo_alto = $imagen[1]/2;
        
        // Cargar
        $thumb = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
        
        $fondo = imagecolorallocate($thumb, 255, 255, 255);
        $ct  = imagecolorallocate($thumb, 0, 0, 0);

        imagefilledrectangle($thumb, 0, 0, $nuevo_ancho, $nuevo_alto, $fondo);
        
        /* Imprimir un mensaje de error */
        //imagestring($thumb, 5, 5, 5, 'Error cargando ' . $file_name, $ct);
        
        
        if($file_ext=="jpg" || $file_ext=="jpeg"){
            $origen = @imagecreatefromjpeg($nombre_fichero);
            // Cambiar el tamaño
            imagecopyresized($thumb, $origen, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
            // Imprimir
            imagejpeg($thumb, $nombre_fichero, 50);
        }else{
            $origen = @imagecreatefrompng($nombre_fichero);
            // Cambiar el tamaño
            imagecopyresized($thumb, $origen, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
            
            // Imprimir
            imagepng($thumb, $nombre_fichero, 4);
         
        }
      }else{
        return FALSE;
        exit();
      }
    return $target_path1;
    exit();
}

function encryptIt( $q ) {
    $integer = '';
    foreach (str_split($q) as $char) {
        $integer .= sprintf("%03s", ord($char));
    }
    return $integer;
}

function decryptIt( $q ) {
    $string = '';
    foreach (str_split($q, 3) as $number) {
        $string .= chr($number);
    }
    return $string;
}

// Importar las clases necesarias de PHPMailer
require_once("/home/quimiforen/public_html/admin/vendor/PHPMailer/src/PHPMailer.php");
require_once("/home/quimiforen/public_html/admin/vendor/PHPMailer/src/SMTP.php");
require_once("/home/quimiforen/public_html/admin/vendor/PHPMailer/src/Exception.php");

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

// Definir la función phpmailer
function phpmailer($para, $asunto, $mensaje, $file = null) {
    global $phpsmtp,$phpport,$phpmail,$phppss;
    $mail = new PHPMailer(true);

    try {
        // Configuración del servidor SMTP
        $mail->isSMTP();
        $mail->Host = $phpsmtp; // Dirección del servidor SMTP
        $mail->Port = $phpport; // Puerto SMTP
        $mail->SMTPAuth = true;
        $mail->SMTPSecure = 'SSL'; // SSL/TLS


        // Credenciales de correo electrónico
        $mail->Username = $phpmail; // Correo electrónico del remitente
        $mail->Password = $phppss; // Contraseña del correo electrónico del remitente

        // Configuración del correo electrónico
        $mail->setFrom('noreply@quimiforen.com', 'QUIMIFOREN');
        $mail->addAddress($para); // Correo electrónico del destinatario
        $mail->Subject = $asunto; // Asunto del correo electrónico
        $mail->isHTML(true); // Habilitar el formato HTML
        $mail->CharSet = 'UTF-8';
        $mail->Encoding = 'base64';
        $mail->ContentType = 'text/html; charset=UTF-8';

        // Cuerpo del correo electrónico
        $mail->Body = $mensaje; // Mensaje del correo electrónico

        // Adjuntar archivo si se proporciona
        if ($file !== null) {
            $mail->addAttachment($_SERVER['DOCUMENT_ROOT'] . $file); // Ruta del archivo adjunto
        }
        // Enviar correo electrónico
        $mail->send();
         // Mensaje de éxito
        echo "El correo electrónico se ha enviado correctamente.";
    } catch (Exception $e) {
        // Manejo de errores
        echo "Error al enviar el correo electrónico: {$mail->ErrorInfo}";
    }
}

?>