<?php
date_default_timezone_set('America/Lima');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token, Authorization');
try{
	$response_json	=array('success'=>false, 'num_rows'=>-1, 'rows'=>array(), "messages"=>"Estas intentando algo inusual en el sistema");
	require_once("./class/GLibfunciones.php");
	$OConex = new GConector();
	$init_stmt=$OConex->stmt_init();
	$OCurso = new GCurso();

	$data = json_decode(file_get_contents('php://input'));

    $response = "";

	function obtenerUrlVideoAnterior($id) {
		$OConex = new GConector();
		$init_stmt=$OConex->stmt_init();
		$OCurso = new GCurso();

		$sql=$OCurso->obtenerUrlVideoImagen();
		if(!$init_stmt->prepare($sql))
			throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
		
		if(!$init_stmt->bind_param('i', $id))
			throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);

		$init_stmt->execute();
		// Obtiene el resultado
		$result = $init_stmt->get_result();
		// Extrae la fila
		$row = $result->fetch_assoc();
		// Retorna el valor de la columna 'urlVideo'

		return ($row) ? $row['video'] : null;
	}

	function obtenerUrlImagenAnterior($id) {
		$OConex = new GConector();
		$init_stmt=$OConex->stmt_init();
		$OCurso = new GCurso();

		$sql=$OCurso->obtenerUrlVideoImagen();
		if(!$init_stmt->prepare($sql))
			throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
		
		if(!$init_stmt->bind_param('i', $id))
			throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);

		$init_stmt->execute();
		// Obtiene el resultado
		$result = $init_stmt->get_result();
		// Extrae la fila
		$row = $result->fetch_assoc();
		// Retorna el valor de la columna 'urlVideo'

		return ($row) ? $row['imagen'] : null;
	}

	function eliminarArchivoDelServidor($urlVideo) {
		// Directorio donde se encuentra el video (ajusta esto según tu estructura de archivos)
		$directorioVideos = getcwd() . "/videos/";

		// Ruta completa del video
		$rutaCompletaVideo = $directorioVideos . $urlVideo;
	
		// Verifica si el archivo existe antes de intentar eliminarlo
		if (file_exists($rutaCompletaVideo)) {
			// Intenta eliminar el archivo
			if (unlink($rutaCompletaVideo)) {
				// Éxito al eliminar el archivo
			} else {
				// Error al eliminar el archivo
			}
		} else {
			// El archivo no existe
		}
	}

	switch($_GET['oper']){
		case 'listar':
			$sql=$OCurso->listar();
			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
			$init_stmt->execute();
			$result=$init_stmt->get_result();
			$response_json['success']=true;
			$response_json['totalItemCount']=$result->num_rows;
			if($response_json['totalItemCount']==0)
				break;			
			$i=0;
			while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
            $response = $response_json['rows'];  
		break;
		case 'listarCurso':
			$sql=$OCurso->listarCurso();
			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
			$init_stmt->execute();
			$result=$init_stmt->get_result();
			$response_json['success']=true;
			$response_json['totalItemCount']=$result->num_rows;
			if($response_json['totalItemCount']==0)
				break;			
			$i=0;
			while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
            $response = $response_json['rows'];  
		break;
		case 'listarTaller':
			$sql=$OCurso->listarTaller();
			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
			$init_stmt->execute();
			$result=$init_stmt->get_result();
			$response_json['success']=true;
			$response_json['totalItemCount']=$result->num_rows;
			if($response_json['totalItemCount']==0)
				break;			
			$i=0;
			while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
            $response = $response_json['rows'];  
		break;
        case 'cursoXId':
            $item=1; 
            $sql=$OCurso->cursoXId();
            if(!$init_stmt->prepare($sql))
                throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
            if(!$init_stmt->bind_param('i', $_GET['id']))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
			$init_stmt->execute();
            $result=$init_stmt->get_result();   
			$i=0;       
            while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
			$response = $response_json['rows'];  
		break;
        case 'listarClasesCurso':
            $item=1; 
            $sql=$OCurso->listarClasesCurso();
            if(!$init_stmt->prepare($sql))
                throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
            if(!$init_stmt->bind_param('i', $_GET['id']))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
			$init_stmt->execute();
            $result=$init_stmt->get_result();   
			$i=0;       
            while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
			$response = $response_json['rows'];  
		break;
		case 'guardarPagoCliente':
			$sql=$OCurso->existePagoCliente();
            if(!$init_stmt->prepare($sql))
                throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		         
            if(!$init_stmt->bind_param('sis', $data->noCorreo,$data->idCurso,$data->tipo))
                throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno); 
            $init_stmt->execute();
            $result = $init_stmt->get_result();
            $row = $result->fetch_assoc();
			if ($row['existe'] >= 1){
				$sql=$OCurso->estadoPagoCliente();
				if(!$init_stmt->prepare($sql))
					throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		         
				if(!$init_stmt->bind_param('sis', $data->noCorreo,$data->idCurso,$data->tipo))
					throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno); 
				$init_stmt->execute();
				$result = $init_stmt->get_result();
				$row = $result->fetch_assoc();
				if ($row['status'] == 1){
					$response_json['success']=false;
					$response_json['affected_rows']=$init_stmt->affected_rows;
					$response_json['messages']= "Usted ya adquirió el curso/taller";
					$response = $response_json; 
				}else{
					$response_json['success']=false;
					$response_json['affected_rows']=$init_stmt->affected_rows;
					$response_json['messages']= "Usted ya tiene una solicitud por el curso/taller";
					$response = $response_json; 
				}
			}else{
				$sql=$OCurso->agregarPagoCliente();
				if(!$init_stmt->prepare($sql))
					throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
				if(!$init_stmt->bind_param('iisii', $data->idCurso,$data->idCliente,$data->tipo,$data->idUsuarioModificacion,$data->id))
					throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
				$init_stmt->execute();
	
				$response_json['success']=true;
				$response_json['affected_rows']=$init_stmt->affected_rows;
				$response_json['messages']=($response_json['affected_rows']==1)?"Se registro con éxito los datos del correctamente":"No se realizaron cambios";
				$response = $response_json;  

				//Eviar correo
				$sql=$OCurso->datosClienteCorreo();
				if(!$init_stmt->prepare($sql))
					throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		         
				if(!$init_stmt->bind_param('si', $data->noCorreo,$data->idCurso))
					throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno); 
				$init_stmt->execute();
				$result = $init_stmt->get_result();
				$row = $result->fetch_assoc();

				$nombres = $row['noCliente'];
				$nuTelefono = $row['nuTelefono'];
				$usuario = $data->noCorreo;
				$curso = $row['noCurso'];
				$web= "https://erp.escuelalacasitadevalentina.pe/";
				$fecha=date("Y-m-d H:i:s");  


				$to = 'lacasitadevalentina2012@gmail.com';
				$from = 'info@escuelalacasitadevalentina.pe';
				$from_name = 'LA CASITA DE VALENTINA';
				$bcc = '';
				
				
				$subject = 'Alerta de Nuevo Registro'; 
					  //email body content
					  $htmlContent =sprintf('<div>
					  <table border="0" width="600" cellspacing="0" align="center">
					  <tbody>
					  <tr>
					  <td>
					  <p style="text-align: left; font-size: 15px; font-family: Verdana,Geneva,sans-serif; color: #234c9f; margin: 0; line-height: 21px;">Nuevo solicitud de compra de curso/taller</p>
					  <p style="text-align: left; font-size: 15px; font-family: Verdana,Geneva,sans-serif; color: #234c9f; margin: 0; line-height: 21px;">Estimad@:</p>
					  </td>
					  </tr>
					  <tr>
					  <td>
					  <p style="text-align: left; font-size: 13px; font-family: Verdana,Geneva,sans-serif; color: #234c9f; margin: 0; line-height: 21px;">Le Informamos que hay un cliente que desea solicitar un curso/taller, a continuación los datos que se podrán visualizar en el ERP:</p>
					  </td>
					  </tr>
					  <tr>
					  <td>
					  <div style="text-align: justify; font-size: 15px; padding: 5px; line-height: 18px; font-family: Verdana,Geneva,sans-serif; color: #7c7c7c;">
					  <div>
					  <p>Nombres: %s</p>
					  <p>Teléfono: %s</p>
					  <p>Usuario: %s</p>
					  <p>Curso: %s</p>
					  <p>Fecha solicitud: %s</p>
					  </div>
					  </div>
					  </td>
					  </tr>
					  <tr>
					  <td>
					  <p style="text-align: left; font-size: 13px; font-family: Verdana,Geneva,sans-serif; color: #234c9f; margin: 0; line-height: 21px;">Saludos Atentamente.</p>
					  </td>
					  </tr>
					  </tbody>
					  </table>
					  <table border="0" width="600" cellspacing="0" cellpadding="0" align="center">
					  <tbody>
					  <tr style="list-style: none; color: #234c9f; font-family: Verdana,Geneva,sans-serif; font-size: 14px; text-align: center; padding: 0px;">
					  <td colspan="5" align="center" height="40"><a target="_blank" rel="noopener"><img src="https://imageshack.com/i/pmxyhgVHp" alt="IHAMH" border="0" /></a></td>
					  </tr>
					  <tr style="list-style: none; color: #234c9f; font-family: Verdana,Geneva,sans-serif; font-size: 14px; text-align: center; padding: 0px;">
					  <td colspan="5" align="center" height="40"><span style="font-family: Verdana,Geneva,sans-serif; text-align: center; font-size: 12px; letter-spacing: 12px; color: #9d9797;"><a href="https://pag.escuelalacasitadevalentina.pe/" target="_blank" rel="noopener">www.escuelalacasitadevalentina.pe</a></span></td>
					  </tr>
					  </tbody>
					  </table>
					  <hr />
					  <div><span style="color: #555555; font-family: Helvetica, sans-serif; font-size: xx-small;">Este correo fue enviado por <strong>IAMH</strong></span></div>
					  <div><span style="color: #555555; font-family: Helvetica, sans-serif; font-size: xx-small;"><a href="https://pag.escuelalacasitadevalentina.pe/" target="_blank" rel="noopener">www.escuelalacasitadevalentina.pe</a><br /> </span></div>
					  <img style="display: none!important; max-height: 0; width: 0; line-height: 0;" alt="" width="0" height="0" border="0" /></div>',  $nombres,$nuTelefono,$usuario,$curso,$fecha);

				$send_email = envio_correo($to,$subject,$htmlContent,$from,$from_name,$nombres,$bcc);

			}
		break;
		case 'listarPlanesCurso':
            $item=1; 
            $sql=$OCurso->listarPlanesCurso();
            if(!$init_stmt->prepare($sql))
                throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
            if(!$init_stmt->bind_param('i', $_GET['id']))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
			$init_stmt->execute();
            $result=$init_stmt->get_result();   
			$i=0;       
            while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
			$response = $response_json['rows'];  
		break;
		case 'guardar': 
		if(!isset($_POST["noCurso"]))
				break;
			$_POST["noCurso"]=strtoupper($_POST["noCurso"]);
			if($_POST["id"] == 0){
				$sql=$OCurso->guardar();
			}else{
				$previousVideoUrl = obtenerUrlVideoAnterior($_POST["id"]);
				// Comparar la URL anterior con la nueva URL
				if (!empty($previousVideoUrl) && $previousVideoUrl != $_POST["video"]) {
					// Eliminar el video anterior del servidor
					eliminarArchivoDelServidor($previousVideoUrl);
				}

				$previousImagenUrl = obtenerUrlImagenAnterior($_POST["id"]);
				// Comparar la URL anterior con la nueva URL
				if (!empty($previousImagenUrl) && $previousImagenUrl != $_POST["imagen"]) {
					// Eliminar el video anterior del servidor
					eliminarArchivoDelServidor($previousImagenUrl);
				}
				$sql=$OCurso->modificar();
			}

			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
            if(!$init_stmt->bind_param('sissssddsssssssssssi',$_POST["noCurso"], $_POST["idTipoCurso"],$_POST["deCurso"],$_POST["caCurso"],$_POST["tiCurso"],$_POST["feCurso"],$_POST["vaCurso"],$_POST["vaCursoDol"],$_POST["video"],$_POST["imagen"],$_POST["imgBanner"],$_POST["imgGaleria1"],$_POST["imgGaleria2"],$_POST["imgGaleria3"],$_POST["imgGaleria4"],$_POST["imgGaleria5"],$_POST["imgGaleria6"],$_POST["imgGaleria7"],$_POST["imgGaleria8"],$_POST["id"]))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
			$init_stmt->execute();
			$response_json['success']=true;
			$response_json['affected_rows']=$init_stmt->affected_rows;
			$response_json['messages']=($response_json['affected_rows']==1)?"Se registro con éxito los datos del correctamente":"No se realizaron cambios en el registro Departamento";

			$response = $response_json;  
		break;
		case 'guardarImagen':
			if (isset($_FILES['image'])) {
				$targetDir = getcwd() . "/videos/"; // Ruta de destino en tu servidor
				$targetFile = $targetDir.basename($_FILES['image']['name']);
			
				// Mueve el archivo a la ubicación de destino
				if (move_uploaded_file($_FILES['image']['tmp_name'], $targetFile)) {
					echo "Imagen subida correctamente";
				} else {
					echo "Error al subir la imagen";
				}
			}
		break;
		case 'eliminar':
			if(!isset($data) || empty($data))
				break;
			$sql=$OCurso->eliminar();
			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico<br/>", $OConex->error, $OConex->errno);
			if(!$init_stmt->bind_param('i', $data))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
			$init_stmt->execute();
			$response_json['success']=TRUE;
			$response_json['affected_rows']=$init_stmt->affected_rows;
			$response_json['messages']=($init_stmt->affected_rows==1)?"Se elimino con éxito el registro":"";
			if($init_stmt->affected_rows!=1 && $init_stmt->errno!=0)
				$response_json['messages']=errorMySQL($init_stmt->errno);
            $response = $response_json;  
		break;

		case 'listarCursoId':
			$sql=$OCurso->listaCursoId();
			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
			if(!$init_stmt->bind_param('i', $data))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
			
			$init_stmt->execute();
			$result=$init_stmt->get_result();
			$response_json['success']=true;
			$response_json['totalItemCount']=$result->num_rows;
			if($response_json['totalItemCount']==0)
				break;			
			$i=0;
			while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
            $response = $response_json['rows'];  
		break;

		case 'listarTipoCurso':
			$sql=$OCurso->listarTipoCurso();
			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
			$init_stmt->execute();
			$result=$init_stmt->get_result();
			$response_json['success']=true;
			$response_json['totalItemCount']=$result->num_rows;
			if($response_json['totalItemCount']==0)
				break;			
			$i=0;
			while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
            $response = $response_json['rows'];  
		break;
    }
	echo json_encode($response);
}catch(Exception $e){
	echo $e;
}
?>