Add files via upload
This commit is contained in:
		@@ -6,6 +6,9 @@
 | 
			
		||||
 //Expresión regular para validar nombre y apellidos:
 | 
			
		||||
const regExpr = /^([A-Za-zÁÉÍÓÚñáéíóúÑ]{0}?[A-Za-zÁÉÍÓÚñáéíóúÑ\']+[\s])+([A-Za-zÁÉÍÓÚñáéíóúÑ]{0}?[A-Za-zÁÉÍÓÚñáéíóúÑ\'])+[\s]?([A-Za-zÁÉÍÓÚñáéíóúÑ]{0}?[A-Za-zÁÉÍÓÚñáéíóúÑ\'])?$/g;
 | 
			
		||||
 | 
			
		||||
//Expresión regular para validar un código promocional:
 | 
			
		||||
const refExprCode = /^0?[xX]?[0-9a-fA-F]*$/;
 | 
			
		||||
 | 
			
		||||
$(document).ready(function() {
 | 
			
		||||
 | 
			
		||||
    //Iconos para validar el titular de la tarjeta:
 | 
			
		||||
@@ -20,6 +23,10 @@ $(document).ready(function() {
 | 
			
		||||
    $("#cvvValid").hide();
 | 
			
		||||
    $("#cvvInvalid").hide();
 | 
			
		||||
 | 
			
		||||
    //Iconos para validar el código promocional:
 | 
			
		||||
    $("#codeValid").hide();
 | 
			
		||||
    $("#codeInvalid").hide();
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
    //Comprueba que el titular de la tarjeta es válido.
 | 
			
		||||
	$("#card-holder").change(function(){
 | 
			
		||||
@@ -118,14 +125,46 @@ $(document).ready(function() {
 | 
			
		||||
            $("#cvvInvalid").hide();
 | 
			
		||||
            cvv[0].setCustomValidity("");
 | 
			
		||||
        } else {
 | 
			
		||||
            $("#carcvvValiddNameValid").hide();
 | 
			
		||||
            $("#cvvValid").hide();
 | 
			
		||||
            $("#cvvInvalid").show();
 | 
			
		||||
            cvv[0].setCustomValidity("El CVV debe tener 3 dígitos.");
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    //Comprueba el código promocional introducido:
 | 
			
		||||
    $("#code").change(function(){
 | 
			
		||||
        var url = "../assets/php/common/checkPromo.php?code=" + $("#code").val();
 | 
			
		||||
		$.get(url, codeCheck);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    //Devuelve true si el nombre y apellidos del titular son válidos, false en caso contrario.
 | 
			
		||||
    function holderCheck(name) {
 | 
			
		||||
		return regExpr.test(name) ? true : false;
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
    //Devuelve true si el código promocional es válido, false en caso contrario.
 | 
			
		||||
    function holderCheck(code) {
 | 
			
		||||
		return regExprCode.test(code) ? true : false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    //Muestra si el código promocional introducido existe o no.
 | 
			
		||||
	function codeCheck(data, status) {
 | 
			
		||||
        const code = $("#code");
 | 
			
		||||
        code[0].setCustomValidity("");
 | 
			
		||||
 | 
			
		||||
        if(code.val().length === 8 && data === "avaliable"){
 | 
			
		||||
            $("#codeValid").show();
 | 
			
		||||
            $("#codeInvalid").hide();
 | 
			
		||||
            code[0].setCustomValidity("");
 | 
			
		||||
        } else if(code.val().length > 0 ){
 | 
			
		||||
            $("#codeValid").hide();
 | 
			
		||||
            $("#codeInvalid").show();
 | 
			
		||||
            code[0].setCustomValidity("El código promocional no es válido.");
 | 
			
		||||
        } else if(code.val().length === 0 ){
 | 
			
		||||
            $("#codeValid").hide();
 | 
			
		||||
            $("#codeInvalid").hide();
 | 
			
		||||
            code[0].setCustomValidity("");
 | 
			
		||||
        }
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										15
									
								
								assets/php/common/checkPromo.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								assets/php/common/checkPromo.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
<?php    
 | 
			
		||||
    include('../../../assets/php/config.php');
 | 
			
		||||
    include('../includes/promotion_dao.php');
 | 
			
		||||
 | 
			
		||||
    $bd = new Promotion_DAO('complucine');
 | 
			
		||||
    if($bd){
 | 
			
		||||
        $promo = $bd->GetPromotionObj($_GET["code"]);
 | 
			
		||||
        if ($promo && $promo->getActive()) {
 | 
			
		||||
            echo "avaliable";
 | 
			
		||||
        }
 | 
			
		||||
        else{
 | 
			
		||||
            echo "!avaliable";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
@@ -27,7 +27,7 @@
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$promotions[] = $this->loadPromotion($fila["id"], $fila["tittle"], $fila["description"], $fila["code"], $fila["active"], $fila["img"],);
 | 
			
		||||
				$promotions[] = $this->loadPromotion($fila["id"], $fila["tittle"], $fila["description"], $fila["code"], $fila["active"], $fila["img"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
			return $promotions;
 | 
			
		||||
@@ -77,6 +77,20 @@
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  film data .
 | 
			
		||||
		public function GetPromotionObj($code){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM promotion WHERE promotion.code = '%s'", $code );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			$promo = null;
 | 
			
		||||
			while($fila = $resul->fetch_assoc()){
 | 
			
		||||
				$promo = $this->loadPromotion($fila["id"], $fila["tittle"], $fila["description"], $fila["code"], $fila["active"], $fila["img"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $promo;
 | 
			
		||||
		}
 | 
			
		||||
	    
 | 
			
		||||
		//Create a new film Data Transfer Object.
 | 
			
		||||
		public function loadPromotion($id, $tittle, $description, $code, $active, $img){
 | 
			
		||||
			return new Promotion($id, $tittle, $description, $code, $active, $img);
 | 
			
		||||
 
 | 
			
		||||
@@ -89,19 +89,16 @@ class FormPurchase extends Form {
 | 
			
		||||
                            </fieldset>
 | 
			
		||||
                            <fieldset id='pagar_entrada'><pre>".$htmlErroresGlobales."</pre>
 | 
			
		||||
                                <legend>Datos Bancarios</legend>
 | 
			
		||||
                                <label for='card-holder'>Titular de la Tarjeta:</label><pre>".$errorNombre."</pre><br />
 | 
			
		||||
                                <label for='card-holder'>Titular de la Tarjeta:  <span id='cardNameValid'>✔</span><span id='cardNameInvalid'>❌</span></label><pre>".$errorNombre."</pre><br />
 | 
			
		||||
                                    <input type='text' name='card-holder' id='card-holder' class='card-holder' placeholder='NOMBRE APELLIDO1 APELLIDO2' required />
 | 
			
		||||
                                    <span id='cardNameValid'>✔</span><span id='cardNameInvalid'>❌</span>
 | 
			
		||||
                                <br />
 | 
			
		||||
                                <label for='card-number'>Número de Tarjeta: </label><pre>".$errorCardNumber."</pre><br />
 | 
			
		||||
                                <label for='card-number'>Número de Tarjeta: <span id='carNumberValid'>✔</span><span id='cardNumerInvalid'>❌</span></label><pre>".$errorCardNumber."</pre><br />
 | 
			
		||||
                                    <input type='num' name='card-number-0' id='card-number-0' class='input-cart-number' placeholder='XXXX' maxlength='4' required />
 | 
			
		||||
                                    <input type='num' name='card-number-1' id='card-number-1' class='input-cart-number' placeholder='XXXX' maxlength='4' required />
 | 
			
		||||
                                    <input type='num' name='card-number-2' id='card-number-2' class='input-cart-number' placeholder='XXXX' maxlength='4' required />
 | 
			
		||||
                                    <input type='num' name='card-number-3' id='card-number-3' class='input-cart-number' placeholder='XXXX' maxlength='4' required />    
 | 
			
		||||
                                    <span id='carNumberValid'>✔</span><span id='cardNumerInvalid'>❌</span>
 | 
			
		||||
                                <label for='card-cvv'>CVV: </label>
 | 
			
		||||
                                <label for='card-cvv'>CVV: <span id='cvvValid'>✔</span><span id='cvvInvalid'>❌</span></label>
 | 
			
		||||
                                    <input type='text' name='card-cvv' id='card-cvv' class='fieldset-cvv' maxlength='3' placeholder='XXX' required /><pre>".$errorCVV."</pre>
 | 
			
		||||
                                    <span id='cvvValid'>✔</span><span id='cvvInvalid'>❌</span>
 | 
			
		||||
                                <br />
 | 
			
		||||
                                <label for='card-expiration'>Fecha de Expiración:</label><pre>".$errorCardExpirationMonth.$errorCardExpirationYear."</pre><br />
 | 
			
		||||
                                    <select name='card-expiration-month' id='card-expiration-month' required>
 | 
			
		||||
 
 | 
			
		||||
@@ -32,10 +32,11 @@ class FormSelectCinemaSession extends Form {
 | 
			
		||||
        $cinemas = [];
 | 
			
		||||
        $sessions = [];
 | 
			
		||||
 | 
			
		||||
        // Se generan los mensajes de error si existen.
 | 
			
		||||
        // Se generan los mensajes de error, si existen.
 | 
			
		||||
        $htmlErroresGlobales = self::generaListaErroresGlobales($errores);
 | 
			
		||||
        $errorCinema = self::createMensajeError($errores, 'cinemas', 'span', array('class' => 'error'));
 | 
			
		||||
        $errorSession = self::createMensajeError($errores, 'sessions', 'span', array('class' => 'error'));
 | 
			
		||||
        $errorCode = self::createMensajeError($errores, 'code', 'span', array('class' => 'error'));
 | 
			
		||||
        
 | 
			
		||||
        $pay = true;
 | 
			
		||||
        if(isset($_GET["film"])){
 | 
			
		||||
@@ -58,8 +59,8 @@ class FormSelectCinemaSession extends Form {
 | 
			
		||||
                    $cinemasIT->attachIterator($cinemasIDs, "cID");
 | 
			
		||||
                    $cinemasIT->attachIterator($cinemasNames, "NAME");
 | 
			
		||||
                    
 | 
			
		||||
                    $cinemasListHTML = '<section id="select_cinema">
 | 
			
		||||
                                        <select name="cinemas" id="cinemas">';
 | 
			
		||||
                    $cinemasListHTML = '<section id="select_cinema"><pre>'.$htmlErroresGlobales.'</pre>
 | 
			
		||||
                                        <select name="cinemas" id="cinemas"><pre>'.$errorCinema.'</pre>';
 | 
			
		||||
                    if(!isset($cinema_id)){
 | 
			
		||||
                        $cinemasListHTML .= '<option value="" selected>Selecciona un cine</option>';
 | 
			
		||||
                        foreach($cinemasIT as $value){
 | 
			
		||||
@@ -103,7 +104,7 @@ class FormSelectCinemaSession extends Form {
 | 
			
		||||
                        $sessionsIT->attachIterator($sessionsStarts, "HOUR");
 | 
			
		||||
    
 | 
			
		||||
                        $count = 0;
 | 
			
		||||
                        $sessionsListHTML = '<select name="sessions" id="sessions">';
 | 
			
		||||
                        $sessionsListHTML = '<select name="sessions" id="sessions"><pre>'.$errorSession.'</pre>';
 | 
			
		||||
                        foreach ($sessionsIT as $value) {
 | 
			
		||||
                            if($this->_TODAY <= $value["DATE"]){
 | 
			
		||||
                                if($value === reset($sessionsIT)){
 | 
			
		||||
@@ -142,6 +143,9 @@ class FormSelectCinemaSession extends Form {
 | 
			
		||||
                                '.$cinemasListHTML.'
 | 
			
		||||
                                <h3>Sesiones</h3>
 | 
			
		||||
                                '.$sessionsListHTML.'
 | 
			
		||||
                                <h3>Aplicar código promocional<span id="codeValid">✔</span><span id="codeInvalid">❌</span></h3>
 | 
			
		||||
                                <input type="text" name="code" id="code" value="" placeholder="Código pormocional" /><pre>'.$errorPromo.'</pre>
 | 
			
		||||
                                
 | 
			
		||||
                        </div>';
 | 
			
		||||
            } else {
 | 
			
		||||
                $html = '<h1>No existe la película.</h1>';
 | 
			
		||||
@@ -182,6 +186,12 @@ class FormSelectCinemaSession extends Form {
 | 
			
		||||
            $result['sessions'] = "Selecciona una sesión.";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $code = $this->test_input($datos['code']) ?? null;
 | 
			
		||||
        $avaliable = "../assets/php/common/checkPromo.php?code=".$code;
 | 
			
		||||
        if ( !empty($code) && mb_strlen($code) != 8 && $avaliable === "avaliable") {
 | 
			
		||||
            $result['code'] = "El código promocional no es válido.";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (count($result) === 0) {
 | 
			
		||||
            $result = "confirm.php";
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -19,5 +19,5 @@
 | 
			
		||||
    //General page content:
 | 
			
		||||
    require RAIZ_APP.'/HTMLtemplate.php';
 | 
			
		||||
 | 
			
		||||
    //TO-DO: añadir elegir promociones y enviar con el POST.
 | 
			
		||||
    //TO-DO: añadir selección de butaca y elegir promociones y enviar con el POST.
 | 
			
		||||
?>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user