Primer Commit
This commit is contained in:
229
php/funciones.php
Normal file
229
php/funciones.php
Normal file
@@ -0,0 +1,229 @@
|
||||
<?php
|
||||
include(__DIR__."/../rutasApi.php");
|
||||
function generarCodigoCupon($longitud = 8) {
|
||||
$caracteres = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
$codigo = '';
|
||||
for ($i = 0; $i < $longitud; $i++) {
|
||||
$codigo .= $caracteres[rand(0, strlen($caracteres) - 1)];
|
||||
}
|
||||
return $codigo;
|
||||
}
|
||||
|
||||
function crearCupon($post) {
|
||||
global $ruta,$api_key_definition,$api_key;
|
||||
$datosCupon = array(
|
||||
'codigo' => $post["codigo"],
|
||||
'descuento' => $post["descuento"],
|
||||
'curso_id' => $post["curso_id"],
|
||||
'fecha_inicio' => $post["fecha_inicio"],
|
||||
'fecha_fin' => $post["fecha_fin"],
|
||||
'usos_maximos' => $post["usos_maximos"],
|
||||
'activo' => "1",
|
||||
);
|
||||
|
||||
$url = $ruta . "/ttl/registerCuopon";
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => $url, //URL A LA QUE SE CONECTA
|
||||
CURLOPT_RETURNTRANSFER => true, //DEVUELVE EL RESULTADO COMO UNA CADENA DEL TIPO CURL_EXEC
|
||||
CURLOPT_FOLLOWLOCATION => true, //SIGUE EL ENCABEZADO QUE LE ENVÍE EL SERVIDOR
|
||||
CURLOPT_ENCODING => "", // PERMITE DECODIFICAR LA RESPUESTA Y PUEDE SER"IDENTITY", "DEFLATE", Y "GZIP", SI ESTÁ VACÍO RECIBE TODOS LOS DISPONIBLES.
|
||||
CURLOPT_MAXREDIRS => 10, // SI USAMOS CURLOPT_FOLLOWLOCATION LE DICE EL MÁXIMO DE ENCABEZADOS A SEGUIR
|
||||
CURLOPT_TIMEOUT => 0, // TIEMPO MÁXIMO PARA EJECUTAR
|
||||
CURLOPT_CONNECTTIMEOUT => 0, // TIEMPO MÁXIMO PARA CONECTAR
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // USA LA VERSIÓN DECLARADA
|
||||
CURLOPT_CUSTOMREQUEST => "POST", // EL TIPO DE PETICIÓN, PUEDE SER PUT, POST, GET O DELETE DEPENDIENDO DEL SERVICIO
|
||||
CURLOPT_POSTFIELDS => $datosCupon, //DATOS A ENVIAR EN EL CUERPO DE LA PETICIÓN
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"$api_key_definition: $api_key"
|
||||
), //CONFIGURA LAS CABECERAS ENVIADAS AL SERVICIO
|
||||
));
|
||||
|
||||
|
||||
return $result = curl_exec($curl);
|
||||
}
|
||||
|
||||
|
||||
function validarCupon($codigo, $curso_id = null) {
|
||||
global $pdo;
|
||||
|
||||
$sql = "SELECT * FROM cupones WHERE codigo = ? AND activo = TRUE
|
||||
AND fecha_inicio <= CURDATE() AND fecha_fin >= CURDATE()
|
||||
AND (usos_actuales < usos_maximos OR usos_maximos = 0)";
|
||||
|
||||
if ($curso_id) {
|
||||
$sql .= " AND (curso_id = ? OR curso_id IS NULL)";
|
||||
}
|
||||
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = $curso_id ? [$codigo, $curso_id] : [$codigo];
|
||||
$stmt->execute($params);
|
||||
|
||||
return $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
function registrarUsoCupon($cupon_id, $ip_cliente = null) {
|
||||
global $pdo;
|
||||
|
||||
// Registrar el uso
|
||||
$stmt = $pdo->prepare("INSERT INTO uso_cupones (cupon_id, ip_cliente) VALUES (?, ?)");
|
||||
$stmt->execute([$cupon_id, $ip_cliente]);
|
||||
|
||||
// Incrementar el contador de usos
|
||||
$stmt = $pdo->prepare("UPDATE cupones SET usos_actuales = usos_actuales + 1 WHERE id = ?");
|
||||
$stmt->execute([$cupon_id]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
function obtenerCursos() {
|
||||
global $ruta,$api_key_definition,$api_key;
|
||||
$url = $ruta . "/ttl/getCourses";
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => $url, //URL A LA QUE SE CONECTA
|
||||
CURLOPT_RETURNTRANSFER => true, //DEVUELVE EL RESULTADO COMO UNA CADENA DEL TIPO CURL_EXEC
|
||||
CURLOPT_FOLLOWLOCATION => true, //SIGUE EL ENCABEZADO QUE LE ENVÍE EL SERVIDOR
|
||||
CURLOPT_ENCODING => "", // PERMITE DECODIFICAR LA RESPUESTA Y PUEDE SER"IDENTITY", "DEFLATE", Y "GZIP", SI ESTÁ VACÍO RECIBE TODOS LOS DISPONIBLES.
|
||||
CURLOPT_MAXREDIRS => 10, // SI USAMOS CURLOPT_FOLLOWLOCATION LE DICE EL MÁXIMO DE ENCABEZADOS A SEGUIR
|
||||
CURLOPT_TIMEOUT => 0, // TIEMPO MÁXIMO PARA EJECUTAR
|
||||
CURLOPT_CONNECTTIMEOUT => 0, // TIEMPO MÁXIMO PARA CONECTAR
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // USA LA VERSIÓN DECLARADA
|
||||
CURLOPT_CUSTOMREQUEST => "GET", // EL TIPO DE PETICIÓN, PUEDE SER PUT, POST, GET O DELETE DEPENDIENDO DEL SERVICIO
|
||||
CURLOPT_POSTFIELDS => array(), //DATOS A ENVIAR EN EL CUERPO DE LA PETICIÓN
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"$api_key_definition: $api_key"
|
||||
), //CONFIGURA LAS CABECERAS ENVIADAS AL SERVICIO
|
||||
));
|
||||
|
||||
|
||||
$result = curl_exec($curl);
|
||||
return json_decode($result,true);
|
||||
}
|
||||
|
||||
function obtenerCupones() {
|
||||
global $ruta,$api_key_definition,$api_key;
|
||||
$url = $ruta . "/ttl/getCoupons";
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => $url, //URL A LA QUE SE CONECTA
|
||||
CURLOPT_RETURNTRANSFER => true, //DEVUELVE EL RESULTADO COMO UNA CADENA DEL TIPO CURL_EXEC
|
||||
CURLOPT_FOLLOWLOCATION => true, //SIGUE EL ENCABEZADO QUE LE ENVÍE EL SERVIDOR
|
||||
CURLOPT_ENCODING => "", // PERMITE DECODIFICAR LA RESPUESTA Y PUEDE SER"IDENTITY", "DEFLATE", Y "GZIP", SI ESTÁ VACÍO RECIBE TODOS LOS DISPONIBLES.
|
||||
CURLOPT_MAXREDIRS => 10, // SI USAMOS CURLOPT_FOLLOWLOCATION LE DICE EL MÁXIMO DE ENCABEZADOS A SEGUIR
|
||||
CURLOPT_TIMEOUT => 0, // TIEMPO MÁXIMO PARA EJECUTAR
|
||||
CURLOPT_CONNECTTIMEOUT => 0, // TIEMPO MÁXIMO PARA CONECTAR
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // USA LA VERSIÓN DECLARADA
|
||||
CURLOPT_CUSTOMREQUEST => "GET", // EL TIPO DE PETICIÓN, PUEDE SER PUT, POST, GET O DELETE DEPENDIENDO DEL SERVICIO
|
||||
CURLOPT_POSTFIELDS => array(), //DATOS A ENVIAR EN EL CUERPO DE LA PETICIÓN
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"$api_key_definition: $api_key"
|
||||
), //CONFIGURA LAS CABECERAS ENVIADAS AL SERVICIO
|
||||
));
|
||||
|
||||
|
||||
$result = curl_exec($curl);
|
||||
return json_decode($result,true);
|
||||
}
|
||||
|
||||
function editarCupon($post)
|
||||
{
|
||||
global $ruta,$api_key_definition,$api_key;
|
||||
$datosCupon = array(
|
||||
'codigo' => $post["codigo"],
|
||||
'descuento' => $post["descuento"],
|
||||
'curso_id' => $post["curso_id"],
|
||||
'fecha_inicio' => $post["fecha_inicio"],
|
||||
'fecha_fin' => $post["fecha_fin"],
|
||||
'usos_maximos' => $post["usos_maximos"],
|
||||
'activo' => $post["activo"],
|
||||
);
|
||||
|
||||
|
||||
$url = $ruta . "/ttl/editCuopon";
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => $url, //URL A LA QUE SE CONECTA
|
||||
CURLOPT_RETURNTRANSFER => true, //DEVUELVE EL RESULTADO COMO UNA CADENA DEL TIPO CURL_EXEC
|
||||
CURLOPT_FOLLOWLOCATION => true, //SIGUE EL ENCABEZADO QUE LE ENVÍE EL SERVIDOR
|
||||
CURLOPT_ENCODING => "", // PERMITE DECODIFICAR LA RESPUESTA Y PUEDE SER"IDENTITY", "DEFLATE", Y "GZIP", SI ESTÁ VACÍO RECIBE TODOS LOS DISPONIBLES.
|
||||
CURLOPT_MAXREDIRS => 10, // SI USAMOS CURLOPT_FOLLOWLOCATION LE DICE EL MÁXIMO DE ENCABEZADOS A SEGUIR
|
||||
CURLOPT_TIMEOUT => 0, // TIEMPO MÁXIMO PARA EJECUTAR
|
||||
CURLOPT_CONNECTTIMEOUT => 0, // TIEMPO MÁXIMO PARA CONECTAR
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // USA LA VERSIÓN DECLARADA
|
||||
CURLOPT_CUSTOMREQUEST => "POST", // EL TIPO DE PETICIÓN, PUEDE SER PUT, POST, GET O DELETE DEPENDIENDO DEL SERVICIO
|
||||
CURLOPT_POSTFIELDS => $datosCupon, //DATOS A ENVIAR EN EL CUERPO DE LA PETICIÓN
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"$api_key_definition: $api_key"
|
||||
), //CONFIGURA LAS CABECERAS ENVIADAS AL SERVICIO
|
||||
));
|
||||
|
||||
|
||||
return $result = curl_exec($curl);
|
||||
}
|
||||
|
||||
|
||||
function eliminarCupon($post)
|
||||
{
|
||||
global $ruta,$api_key_definition,$api_key;
|
||||
$datosCupon = array(
|
||||
'codigo' => $post["codigo"]
|
||||
);
|
||||
|
||||
|
||||
$url = $ruta . "/ttl/deleteCuopon";
|
||||
$curl = curl_init();
|
||||
|
||||
curl_setopt_array($curl, array(
|
||||
CURLOPT_URL => $url, //URL A LA QUE SE CONECTA
|
||||
CURLOPT_RETURNTRANSFER => true, //DEVUELVE EL RESULTADO COMO UNA CADENA DEL TIPO CURL_EXEC
|
||||
CURLOPT_FOLLOWLOCATION => true, //SIGUE EL ENCABEZADO QUE LE ENVÍE EL SERVIDOR
|
||||
CURLOPT_ENCODING => "", // PERMITE DECODIFICAR LA RESPUESTA Y PUEDE SER"IDENTITY", "DEFLATE", Y "GZIP", SI ESTÁ VACÍO RECIBE TODOS LOS DISPONIBLES.
|
||||
CURLOPT_MAXREDIRS => 10, // SI USAMOS CURLOPT_FOLLOWLOCATION LE DICE EL MÁXIMO DE ENCABEZADOS A SEGUIR
|
||||
CURLOPT_TIMEOUT => 0, // TIEMPO MÁXIMO PARA EJECUTAR
|
||||
CURLOPT_CONNECTTIMEOUT => 0, // TIEMPO MÁXIMO PARA CONECTAR
|
||||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // USA LA VERSIÓN DECLARADA
|
||||
CURLOPT_CUSTOMREQUEST => "POST", // EL TIPO DE PETICIÓN, PUEDE SER PUT, POST, GET O DELETE DEPENDIENDO DEL SERVICIO
|
||||
CURLOPT_POSTFIELDS => $datosCupon, //DATOS A ENVIAR EN EL CUERPO DE LA PETICIÓN
|
||||
CURLOPT_HTTPHEADER => array(
|
||||
"$api_key_definition: $api_key"
|
||||
), //CONFIGURA LAS CABECERAS ENVIADAS AL SERVICIO
|
||||
));
|
||||
|
||||
|
||||
return $result = curl_exec($curl);
|
||||
}
|
||||
|
||||
|
||||
if (isset($_GET['accion']) && $_GET['accion'] == 'obtener_codigo') {
|
||||
// Llamar a la función para generar el código
|
||||
$codigoGenerado = generarCodigoCupon();
|
||||
|
||||
// Retornar el código generado como respuesta
|
||||
echo $codigoGenerado;
|
||||
}
|
||||
elseif(isset($_POST['accion']) && $_POST['accion'] == 'editar_codigo')
|
||||
{
|
||||
$codigoGenerado = editarCupon($_POST);
|
||||
|
||||
// Retornar el código generado como respuesta
|
||||
echo $codigoGenerado;
|
||||
}
|
||||
elseif(isset($_POST['accion']) && $_POST['accion'] == 'elimnar_codigo')
|
||||
{
|
||||
$codigoGenerado = eliminarCupon($_POST);
|
||||
|
||||
// Retornar el código generado como respuesta
|
||||
echo $codigoGenerado;
|
||||
}
|
||||
elseif(isset($_POST['accion']) && $_POST['accion'] == 'anadir_codigo')
|
||||
{
|
||||
$codigoGenerado = crearCupon($_POST);
|
||||
|
||||
// Retornar el código generado como respuesta
|
||||
echo $codigoGenerado;
|
||||
}
|
||||
Reference in New Issue
Block a user