Your IP : 18.219.102.106


Current Path : /data/web/virtuals/51568/virtual/www/www/jidelna/
Upload File :
Current File : /data/web/virtuals/51568/virtual/www/www/jidelna/jidelna.php

<?php

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
if (!isset($pdo)){
    if (file_exists("class/pdoDB.class.php")) {require "class/pdoDB.class.php";}
    else {require "../../class/pdoDB.class.php"; }
} 
if (file_exists('vendor/PHPMailer/src/Exception.php')) {
    require 'vendor/PHPMailer/src/Exception.php';
    require 'vendor/PHPMailer/src/PHPMailer.php';
    require 'vendor/PHPMailer/src/SMTP.php';
} else {
    require '../../vendor/PHPMailer/src/Exception.php';
    require '../../vendor/PHPMailer/src/PHPMailer.php';
    require '../../vendor/PHPMailer/src/SMTP.php';   
}

require __DIR__ .'/Tabulky.php';

$data = (isset($_POST['data'])) ? $_POST['data'] : "";
$data = json_decode($data);
$command = ($data) ? $data->command : 'forma';


switch ($command) {
    case 'odeslatPrihlasku':{
        echo odeslatPrihlasku($data);
        break;
    };
    case 'forma':{
        echo jidelnaPrihlaskaForma();
        break;
    }
}  


function jidelnaPrihlaskaForma(){
    $mesic = date('n');
    $rok =  date('Y');
    $den = date('j');    
    $datumDospelec = ($den > 25) ? date('Y-m-d', mktime(0, 0, 0, $mesic + 2, 1, $rok)) : date('Y-m-d', mktime(0, 0, 0, $mesic + 1, 1, $rok));
    $datumZak = (in_array($mesic, [5, 6, 7, 8])) ? date('Y-m-d', mktime(0, 0, 0, 9, 1, $rok)) : $datumDospelec;
    $html = <<<HTML
<div class="card rounded-0 shadow" style="border: 1px solid #0f9adc; ">
    <div class="card-header h5 rounded-0" style="background-color: #0f9adc; border-bottom: 1px solid #0f9adc; color: #ffffff;">Přihláška ke stravování</div>
    <div id="jidelnaCardMain">
        <div  class="card-body">
        <form id="jidelnaForma" action="">
            <div class="form-group d-flex justify-content-between flex-column flex-sm-row p-1 px-2" style="border: 1px solid #0f9adc; ">
                <label class="mr-2 pt-1"><strong>Typ strávníka:</strong></label>
                <div class="form-check form-check-inline">
                    <input class="form-check-input" type="radio" name="typStravnika" id="typStravnikaz" style="width: 18px; height: 18px"
                    value="z" checked onclick="typZmena('z')">
                    <label class="form-check-label" for="typStravnikaz">žák</label>
                </div>
                <div class="form-check form-check-inline">
                    <input class="form-check-input" type="radio" name="typStravnika" id="typStravnikaa" style="width: 18px; height: 18px"
                    value="a" onclick="typZmena('a')">
                    <label class="form-check-label" for="typStravnikaa">zaměstnanec</label>
                </div>
                <div class="form-check form-check-inline">
                    <input class="form-check-input" type="radio" name="typStravnika" id="typStravnikae" style="width: 18px; height: 18px"
                    value="e" onclick="typZmena('e')">
                    <label class="form-check-label" for="typStravnikae">cizí strávník </label>
                </div>
            </div>
            <div id="zacatekZakDiv" class="form-group row align-items-center">
                <label for="zacatekZak" class="col-sm-3 col-form-label">Začátek stravování:</label>
                <div class="col-sm-4">
                    <input type="date" class="form-control rounded-0" name="zacatekZak" id="zacatekZak" required value="$datumZak">
                </div>
            </div>            
            <div id="zacatekDospelecDiv" class="form-group row align-items-center d-none">
                <label for="zacatekDospelec" class="col-sm-3 col-form-label">Začátek stravování:</label>
                <div class="col-sm-4">
                    <input type="date" class="form-control rounded-0" name="zacatekDospelec" id="zacatekDospelec" required value="$datumDospelec">
                </div>
            </div>            
            <div class="form-group row align-items-center">
                <label for="jmeno" class="col-sm-3 col-form-label" >Jméno:</label>
                <div id="idJmeno" class="col-sm-9">
                    <input type="text" class="form-control rounded-0 " name="jmeno" id="jmeno" required placeholder="např. Jan">
                </div>

            </div>
            <div class="form-group row align-items-center">
                <label for="prijmenijmeno" class="col-sm-3 col-form-label" >Příjmení:</label>
                <div id="idPrijmeniJmeno" class="col-sm-9">
                    <input type="text" class="form-control rounded-0 " name="prijmenijmeno" id="prijmenijmeno" required placeholder="např. Novák">
                </div>
   
               

            </div>            
            <div id="datumNarozeniZakDiv" class="form-group row align-items-center">
                <label for="datumNarozeniZak" class="col-sm-3 col-form-label">Datum narození:</label>
                <div class="col-sm-5">
                    <input type="date" class="form-control rounded-0" name="datumNarozeniZak" id="datumNarozeniZak" required value="">
                </div>

                <div id="tridaInput" class="col-sm-4 col-md-3 mt-3 mt-sm-0 text-md-right">
                    <label for="trida" class="col-form-label mr-2">Třída: </label>
                    <input type="text" style="max-width:70px; height:38px;" class="py-2 rounded-0" name="trida" id="trida" required pattern="[1-9]\.[A-C]" length="3" style="width: 4rem;" onkeyup="this.value = this.value.toUpperCase();">
                </div>  

            </div>             
            <div class="form-group row align-items-center">
                <label for="bydliste" class="col-sm-3 col-form-label">Bydliště:</label>
                <div class="col-sm-9">
                    <input type="text" class="form-control rounded-0" name="bydliste" id="bydliste" required placeholder="např. Perníková ulice 157, Pardubice">
                </div>
            </div>
            <div id="rodiceZakaKontakt">
                <div class="form-group row align-items-center">
                    <label for="otec" class="col-md-3 col-form-label">Otec: </label>
                    <div class="col-md-5">
                        <input type="text" class="form-control rounded-0" name="otec" id="otec" required placeholder="příjmení jméno otce">
                    </div>
                    <div id="otecTelefonInput" class="col-md-4 mt-3 mt-md-0 text-md-right pl-md-0">
                        <label for="otectelefon" class="col-form-label mr-1" style="max-width:48px">Mobil: </label>
                        <input style="max-width:150px; height:38px; padding-left: 5px" type=text" class="rounded-0 py-2" name="otectelefon" id="otectelefon" 
                        required placeholder="9 číslic bez mezer" pattern="[0-9]{9}">
                    </div>
                </div>
                <div class="form-group row align-items-center">
                    <label for="matka" class="col-md-3 col-form-label">Matka:</label>
                    <div class="col-md-5">
                        <input type="text" class="form-control rounded-0" name="matka" id="matka" required placeholder="příjmení jméno matky">
                    </div>
                    <div id="matkaTelefonInput" class="col-md-4 mt-3 mt-md-0 text-md-right pl-md-0">
                        <label for="matkatelefon" class="col-form-label mr-1" style="max-width:48px">Mobil:</label>
                        <input style="max-width:150px; height:38px; padding-left: 5px" type="text" class="rounded-0 py-2" name="matkatelefon" id="matkatelefon" 
                        required placeholder="9 číslic bez mezer" pattern="[0-9]{9}">
                    </div>
                </div>
                <div class="form-group row align-items-center">
                    <label for="email" class="col-sm-3 col-form-label">E-mail rodiče: </label>
                    <div class="col-sm-9">
                        <input type="email" class="form-control rounded-0" name="email" id="email" required placeholder="e-mail jednoho z rodičů">
                    </div>
                </div>
            </div>
            <div id="zakCoObjednavam">
                <div class="form-group d-flex justify-content-between flex-column flex-sm-row p-1 px-2" style="border: 1px solid #0f9adc; ">
                    <label class="mr-2 pt-1"><strong>Objednávám:</strong></label>
                    <div class="form-check form-check-inline">
                        <input class="form-check-input" type="checkbox" name="objednavamo" id="objednavamo" checked style="width: 18px; height: 18px">
                        <label class="form-check-label" for="objednavamo">obědy</label>
                    </div>
                    <div class="form-check form-check-inline">
                        <input class="form-check-input" type="checkbox" name="objednavams" id="objednavams" style="width: 18px; height: 18px">
                        <label class="form-check-label" for="objednavams">svačiny (až od 4. třídy)</label>
                    </div>
                </div>
            </div>

            <div id="dospelecKontakt" class="d-none">
                <div class="form-group row align-items-center">
                    <label for="emailDospelec" class="col-md-3 col-form-label">E-mail: </label>
                    <div class="col-md-5">
                        <input type="email" class="form-control rounded-0" name="emailDospelec" id="emailDospelec" required placeholder="kontaktní e-mail">
                    </div>
                    <div id="dospelecTelefonInput" class="col-md-4 mt-3 mt-md-0 text-md-right pl-md-0"">
                        <label for="telefonDospelec" class="col-form-label mr-1" style="max-width:48px">Mobil:</label>
                        <input style="max-width:150px; height:38px; padding-left: 5px" type="text" class="rounded-0 py-2" name="telefonDospelec" 
                        id="telefonDospelec" required placeholder="9 číslic bez mezer" pattern="[0-9]{9}">
                    </div>
                </div>
            </div>
            <div class="p-1 px-2 mb-2" style="border: 1px solid #0f9adc; ">
                <div class="form-group d-flex justify-content-between flex-column flex-sm-row mb-0">
                    <label class="mr-2 pt-1"><strong>Způsob úhrady:</strong></label>
                    <div class="form-check form-check-inline">
                        <input class="form-check-input" type="radio" name="zpusobUhrady" id="zpusobUhradyh" value="h" 
                        style="width:18px; height: 18px" onclick="uhradaZmena('h')">
                        <label class="form-check-label" for="zpusobUhradyh">hotovost</label>
                    </div>
                    <div class="form-check form-check-inline">
                        <input class="form-check-input" type="radio" name="zpusobUhrady" id="zpusobUhradyb" value="b" 
                        style="width: 18px; height: 18px" onclick="uhradaZmena('b')" checked>
                        <label class="form-check-label" for="zpusobUhradyb">souhlas s inkasem</label>
                    </div>
                </div>
            </div>
            <div id="cisloUctu">
                <ul class="pl-3">
                    <li>uveďtě číslo Vašeho účtu, z něhož budeme stravné inkasovat</li>
                    <li>ve Vaší bance musíte pro tento Váš účet <strong>nastavit souhlas s inkasem</strong>
                    ve prospěch našeho účtu <strong>123-6705940227/0100</strong></li>
                </ul>
                <div class="form-row align-items-center">
                    <div class="col-md-3 mb-3">
                        <label for="ucetPredcisli">Předčíslí</label>
                        <input type="text" class="form-control rounded-0" name="ucetPredcisli" id="ucetPredcisli" placeholder="max 6 číslic"
                        pattern="[0-9]{0,6}">
                    </div>

                    <div class="col-md-6 mb-3">
                        <label for="ucetCislo">Číslo účtu</label>
                        <input type="text" class="form-control rounded-0" name="ucetCislo" id="ucetCislo" placeholder="max 10 číslic" required
                        pattern="[0-9]{3,10}">
                    </div>

                    <div class="col-md-3 mb-3">
                        <label for="ucetBanka">Kód banky</label>
                        <input type="text" class="form-control rounded-0" name="ucetBanka" id="ucetBanka" placeholder="4 číslice" required
                        pattern="[0-9]{4}">
                    </div>
                </div>
            </div>
            <!--/form-->
        </div>
        <div class="card-body " style="border-top: 1px solid #0f9adc; ">
            <ul class="pl-3">
                <li>
                    po odeslání přihlášky bude na výše uvedený e-mail zaslán odkaz, na kterém <strong>je nutné přihlášku potvrdit</strong>        
                (bez potvrzení bude přihláška neplatná)</li>
                <li>součástí tohoto e-mailu bude i rekapitulace Vaší přihlášky</li>
                <li>v případě, že e-mail nedorazí v obvyklé době, doporučujeme podívat se do spamů</li>
            </ul>  
            <div class="form-check pl-3">
                <input class="form-check-input" type="checkbox" name="gdpr" id="gdpr" style="width: 18px; height: 18px">
                <label class="form-check-label ml-3" for="gdpr">
                odesláním přihlášky vyslovuji souhlas se zpracováním výše uvedených údajů pro potřeby vedení evidence
                 strávníků školní jídelny Základní školy, Znojmo, náměstí Republiky 9
                </label>
            </div>                            
        </div>

        <div class="card-footer rounded-0 d-md-flex" style="background-color: #ffffff; border-top: 1px solid #0f9adc; ">
            <div id="msg-jidelna" class="mr-2 alert alert-danger mb-0 rounded-0 d-none"></div>
            <button id="btn-odeslat" type="submit" class="btn ml-auto mt-3 mt-md-0 rounded-0" 
                style="background-color: #0f9adc; color: #fff; max-height: 38px;" onclick="emailJidelnaPrihlaska()">Odeslat přihlášku</button>
        </div>
    </div>
</div>
<div id="naTlacitko"></div>
<script src="www/jidelna/jidelna.js"></script>
HTML;
return $html;
}

function zapisDoDB($data){
    try{
        $db = new pdoDB();
        $token = bin2hex(openssl_random_pseudo_bytes(10));
        $data->token = $token;

        $zapis = "INSERT INTO `jidelna`(`zacatek`, `typstravnika`, `prijmenijmeno`, `jmeno`, `trida`, `otec`, `otectelefon`, `matka`, 
            `matkatelefon`, `datumnarozeni`, `bydliste`, `zpusobuhrady`, `predcisliuctu`, `cislouctu`, `bankakod`, 
            `email`, `obed`, `svacina`, `token`, `datumpodani`) 
            VALUES (:zacatek, :typstravnika, :prijmenijmeno, :jmeno, :trida, :otec, :otectelefon, :matka, 
            :matkatelefon, :datumnarozeni, :bydliste, :zpusobuhrady, :predcisliuctu, :cislouctu, :bankakod, 
            :email, :obed, :svacina, :token, NOW())";

        $db->execute($zapis, 
            array(':zacatek'=>htmlspecialchars($data->zacatek), 
            ':typstravnika'=>htmlspecialchars($data->typstravnika), 
            ':prijmenijmeno'=>htmlspecialchars($data->prijmenijmeno), 
            ':jmeno'=>htmlspecialchars($data->jmeno), 
            ':trida'=>htmlspecialchars($data->trida), 
            ':otec'=>htmlspecialchars($data->otec), 
            ':otectelefon'=>htmlspecialchars($data->otectelefon), 
            ':matka'=>htmlspecialchars($data->matka), 
            ':matkatelefon'=>htmlspecialchars($data->matkatelefon), 
            ':datumnarozeni'=>htmlspecialchars($data->datumnarozeni), 
            ':bydliste'=>htmlspecialchars($data->bydliste), 
            ':zpusobuhrady'=>htmlspecialchars($data->zpusobuhrady), 
            ':predcisliuctu'=>htmlspecialchars($data->predcisliuctu), 
            ':cislouctu'=>htmlspecialchars($data->cislouctu), 
            ':bankakod'=>htmlspecialchars($data->bankakod), 
            ':email'=>htmlspecialchars($data->email), 
            ':obed'=>htmlspecialchars($data->obed), 
            ':svacina'=>htmlspecialchars($data->svacina), 
            ':token'=>$data->token
        ));     
        return '1';
    } catch (Exception $e){
        return '0';
    }
}

function pripravMail(){
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->Mailer = "smtp";
    $mail->setLanguage('cs');
    $mail->CharSet = PHPMailer::CHARSET_UTF8;     
    $mail->SMTPDebug  = 0;  
    $mail->SMTPAuth   = TRUE;
    $mail->SMTPSecure = "tls";
    $mail->Port       = 587;
    $mail->Host       = "wes1-smtp.wedos.net";

    $mail->Username   = "mailer@zsrepubliky.cz"; 
    $mail->Password   = "Mail*er*2022";
    $mail->SetFrom("mailer@zsrepubliky.cz", "Mailer zsrepubliky.cz");
 //   $mail->addReplyTo('skolni.jidelna@zsrepubliky.cz', 'Školní jídelna');       
    $mail->isHTML(TRUE);
    return $mail;
}

function emailBody($data){  
    $tabulky = new Tabulky($data); 
    return $tabulky->tabulkaEmail ();
}

function rekapitulace($data){
    $tabulky = new Tabulky($data); 
    return $tabulky->tabulkaRekapitulace ();
}

function odeslatPrihlasku($data){
    $result = new stdClass();
    $result->rekapitulace = rekapitulace($data);

    if (zapisDoDB($data)){
        $result->zapisDoDB = '1';
    } else {
        $result->zapisDoDB = '0';
    }
    $mail = pripravMail();
    $mail->Subject = 'Přihláška ke stravování';        
    $body = emailBody($data);
    $mail->Body = $body;
    $mail->AltBody = strip_tags($body);
    try {
        $mail->addAddress($data->email);
        $mail->send();
        $result->email = '1';    
    }
    catch (Exception $e)
    {
        $result->email = $e;
    }
    catch (\Exception $e)
    {
        $result->email = $e;
    }
    return json_encode($result);
}

?>