ACC SHELL

Path : /srv/www/vhosts/centrumlb/inc/
File Upload :
Current File : /srv/www/vhosts/centrumlb/inc/eshop_zpracovani_objednavky.php

<?php

//objednavku zpracuju jen pokud se nejedna o step 3 tzn dokoncenou objednavku
if ($_SESSION['objednavka']['step'] != 2) {
    Tools::redirect('this');
}
/*
  if ($_SESSION['objednavka']['jmeno'] == null) {
  return false;
  } else {
  $zakaznik['jmeno'] = $_SESSION['objednavka']['jmeno'];
  }
 */
$zakaznik['id'] = isset($_SESSION['user']['id']) ? $_SESSION['user']['id'] : null;
$zakaznik['id_login'] = isset($_SESSION['user']['id_login']) ? $_SESSION['user']['id_login'] : null;
$zakaznik['jmeno'] = $_SESSION['objednavka']['jmeno'];
$zakaznik['prijmeni'] = $_SESSION['objednavka']['prijmeni'];
$zakaznik['ulice'] = $_SESSION['objednavka']['ulice'];
$zakaznik['obec'] = $_SESSION['objednavka']['obec'];
$zakaznik['psc'] = $_SESSION['objednavka']['psc'];
$zakaznik['email'] = $_SESSION['objednavka']['email'];
$zakaznik['telefon'] = $_SESSION['objednavka']['telefon'];
$zakaznik['nazev_firmy'] = $_SESSION['objednavka']['firma'];
$zakaznik['ico'] = $_SESSION['objednavka']['ico'];
$zakaznik['dic'] = $_SESSION['objednavka']['dic'];

//Dodaci udaje
$zakaznik['jmeno_dodaci'] = isset($_SESSION['objednavka']['jmenododaci']) ? $_SESSION['objednavka']['jmenododaci'] : $zakaznik['jmeno'];
$zakaznik['prijmeni_dodaci'] = isset($_SESSION['objednavka']['prijmenidodaci']) ? $_SESSION['objednavka']['prijmenidodaci'] : $zakaznik['prijmeni'];
$zakaznik['ulice_dodaci'] = isset($_SESSION['objednavka']['ulicedodaci']) ? $_SESSION['objednavka']['ulicedodaci'] : $zakaznik['ulice'];
$zakaznik['psc_dodaci'] = isset($_SESSION['objednavka']['pscdodaci']) ? $_SESSION['objednavka']['pscdodaci'] : $zakaznik['psc'];
$zakaznik['obec_dodaci'] = isset($_SESSION['objednavka']['obecdodaci']) ? $_SESSION['objednavka']['obecdodaci'] : $zakaznik['obec'];
$zakaznik['nazev_firmy_dodaci'] = isset($_SESSION['objednavka']['firmadodaci']) ? $_SESSION['objednavka']['firmadodaci'] : $zakaznik['nazev_firmy'];

$zakaznik['ucet'] = isset($_SESSION['objednavka']['ucet']) ? $_SESSION['objednavka']['ucet'] : false;
$zakaznik['aktivni'] = '1';


//NDebugger::dump($_POST['poznámka']);NDebugger::dump(strip_tags($_POST['poznámka']));
//NDebugger::dump($_SESSION);NDebugger::dump($zakaznik);NDebugger::dump($polozky);exit;

if ($zakaznik) {
    //pokud neni zakaznik registrovany, jeho udaje ulozim
    if (!isset($_SESSION['user']['id'])) {
	dibi::query('INSERT INTO users', $zakaznik);
	$objednavka['id_zakaznika'] = dibi::insertId();
    } else {
	$objednavka['id_zakaznika'] = $zakaznik['id'];
    }

    $objednavka['doprava'] = $_SESSION['objednavka']['doprava'];
    $objednavka['platba'] = $_SESSION['objednavka']['platba'];
    $objednavka['postovne'] = isset($_SESSION['objednavka']['postovne']) ? $_SESSION['objednavka']['postovne'] : 0;
    $objednavka['datum_vytvoreni'] = new DateTime();
    $objednavka['poznamka'] = isset($_SESSION['objednavka']['poznamka']) ? strip_tags($_SESSION['objednavka']['poznamka']) : '';
    if (isset($_COOKIE["TRADEDOUBLER"]) && !empty($_COOKIE["TRADEDOUBLER"])) {
	$aff = new Affiliate();
	$objednavka['affiliate'] = $aff->getAffiliateByName('TRADEDOUBLER');
    }
    dibi::query('INSERT INTO objednavky', $objednavka);
    $objednavka['id'] = dibi::insertId();

    $_SESSION['heureka']['produkty'] = $polozky = $jcart->get_contents();
    $_SESSION['heureka']['id_objednavky'] = $objednavka['id'];
    $_SESSION['heureka']['email'] = $zakaznik['email'];

    //$objednavka['cena_sdph'] = 0;
    $cena['cena_sdph'] = 0;
    $cena['cena_bezdph'] = 0;
    foreach ($polozky as $polozka) {
	$obj_polozky['id_objednavky'] = $objednavka['id'];
	$obj_polozky['id_zbozi'] = $polozka['id'];
	$obj_polozky['pocet'] = $polozka['qty'];
	$obj_polozky['cena_jedn'] = $polozka['price'];
	$obj_polozky['cena_celkem'] = $polozka['subtotal'];
	$cena['cena_sdph'] += $obj_polozky['cena_celkem'];
	$cena['cena_bezdph'] += round($obj_polozky['cena_celkem'] / 1.21, 2);

	dibi::query('INSERT INTO objednavky_detail', $obj_polozky);

	$idProduktu = dibi::select('id_produktu')->from('katalog_popis')->where('id = %i', $polozka['id'])->fetchSingle();
	//Snizim skladovou zasobu u varianty
	dibi::query('UPDATE katalog_popis SET prodej=prodej+1, sklad=sklad-1 WHERE id=' . $polozka['id']);
	//Snizim skladovou zasobu u masterProduktu
	dibi::query('UPDATE katalog_popis SET prodej=prodej+1, sklad=sklad-1 WHERE id=%i', $idProduktu);

	$google_i = "'" . $objednavka['id'] . "',";
	$google_i .= "'" . $polozka['id'] . "',";
	$google_i .= "'" . $polozka['name'] . "',";
	$google_i .= "'" . $polozka['name'] . "',";
	$google_i .= "'" . round($polozka['price'] / 1.21, 2) . "',";
	$google_i .= "'" . $polozka['qty'] . "',";

	$google_item[] = $google_i;
    }

    //session heureka se pouziva i v modulu Lyoness versnostniho systemu !!
    $_SESSION['heureka']['cena_celkem'] = $cena['cena_sdph'];

    //dibi::update('objednavky', 'cena_sdph=%i', $objednavka['cena_sdph'])->where('id=%i', $objednavka['id'])->execute();
    dibi::update('objednavky', $cena)->where('id=%i', $objednavka['id'])->execute();

    $mail = new NMail;
    $mail->setFrom(EMAIL_FROM);
    $mail->addTo($zakaznik['email']);
    $mail->addBcc(EMAIL_TO);
    if (MARTIN) {
	$mail->addBcc(MARTIN);
    }
    if (TOMAS) {
	$mail->addBcc(TOMAS);
    }


    $mail->setSubject(SERVER_NAME . ' - Objednávka č. ' . $objednavka['id'] . ' byla přijata');

    $mail_text = 'OBJEDNÁVKA BYLA PŘIJATA<br />';
    $mail_text .= '============================<br /><br />';

    $mail_text .= 'Dobrý den,<br /><br />';

    $mail_text .= 'Vaše objednávka č. ' . $objednavka['id'] . ' na ' . SERVER_NAME . ' byla přijata, níže uvádíme výpis této objednávky.<br /><br />';

    $mail_text .= '-------------------------------------------<br /><br />';

    $mail_text .= 'Odběratel:<br /><br />';

    $mail_text .= $zakaznik['jmeno'] . ' ' . $zakaznik['prijmeni'] . '<br />';
    $mail_text .= $zakaznik['ulice'] . '<br />';
    $mail_text .= $zakaznik['psc'] . ' ' . $zakaznik['obec'] . '<br /><br />';

    $mail_text .= $zakaznik['telefon'] . '<br />';
    $mail_text .= $zakaznik['email'] . '<br /><br />';

    if (isset($zakaznik['nazev_firmy'])) {
	$mail_text .= $zakaznik['nazev_firmy'] . '<br />';
    }
    if (isset($zakaznik['ico'])) {
	$mail_text .= $zakaznik['ico'] . '<br />';
    }
    if (isset($zakaznik['dic'])) {
	$mail_text .= $zakaznik['dic'] . '<br /><br />';
    }

    $mail_text .= '-------------------------------------------<br /><br />';
    $mail_text .= 'Doručovací adresa:<br /><br />';
    $mail_text .= $zakaznik['jmeno_dodaci'] . ' ' . $zakaznik['prijmeni_dodaci'] . '<br />';
    $mail_text .= $zakaznik['ulice_dodaci'] . '<br />';
    $mail_text .= $zakaznik['psc_dodaci'] . ' ' . $zakaznik['obec_dodaci'] . '<br /><br />';


    $doprava = dibi::query('SELECT nazev, obsah FROM doprava_popis WHERE main_id=%i', $objednavka['doprava'], ' AND lang=%i', LANGUAGE)->fetch();
    $platba = dibi::query('SELECT nazev, obsah FROM platba_popis WHERE main_id=%i', $objednavka['platba'], ' AND lang=%i', LANGUAGE)->fetch();
    $mail_text .= '-------------------------------------------<br /><br />';

    $mail_text .= tr('Způsob dopravy') . ': ' . $doprava->nazev . '<br />';
    $mail_text .= tr('Způsob platby') . ': ' . $platba->nazev;
    if (isset($platba->obsah) && !empty($platba->obsah)) {
	$mail_text .= ' (' . html_entity_decode($platba->obsah) . ')';
    }
    $mail_text .= '<br />-------------------------------------------<br /><br />';

    foreach ($polozky as $polozka) {
	$mail_text .= 'kat.č. ' . $polozka['id'] . ' - ';
	$mail_text .= $polozka['qty'] . ' ks - ';
	$mail_text .= 'název: ' . $polozka['name'] . ' - ';
	$mail_text .= 'cena/ks: ' . money($polozka['price']) . ' - ';
	$mail_text .= 'cena bez DPH ' . money($polozka['price'] / 1.21) . ' Kč - ';
	$mail_text .= 'cena vč. DPH ' . money($polozka['subtotal']) . ' Kč';
	$mail_text .= '<br /><br />';
    }

    $mail_text .= '-------------------------------------------<br /><br />';
    $mail_text .= 'Cena celkem bez DPH: ' . money($cena['cena_sdph'] / 1.21) . ' Kč<br /><br />';
    $mail_text .= 'Cena celkem vč. DPH: ' . money($cena['cena_sdph']) . ' Kč<br /><br />';
    $mail_text .= '-------------------------------------------<br /><br />';
    $mail_text .= 'Poštovné: ' . money($objednavka['postovne']) . ' Kč<br /><br />';
    $mail_text .= 'Celkem k úhradě: ' . money($objednavka['postovne'] + $cena['cena_sdph']) . ' Kč';
    $mail_text .= '<br /><br />';
    $mail_text .= '-------------------------------------------<br /><br />';

    $mail_text .= 'Poznámka zákazníka: ' . $objednavka['poznamka'] . '<br /><br />';


    $mail_text .= 'Pokud jste přesvědčení, že jste si od nás nic neobjednali, ozvěte se prosím na ' . EMAIL_TO . '.<br /><br />';
    $mail_text .= 'Děkujeme za Váš nákup a přejeme hezký den<br /><br />';
    $mail_text .= SERVER_NAME . '<br /><br />';
    $mail->setHTMLBody($mail_text);
    $mail->send();

    $cenaBezDPH = round($cena['cena_sdph']);
    $cena_DPH = round($cena['cena_sdph'] - $cenaBezDPH, 3);


    //addTransaction
    $google = "_gaq.push(['_addTrans',";
    $google .="'" . $objednavka['id'] . "',"; // Identifikátor objednávky
    $google .="'" . $doprava_nazev . "',"; // affiliation or store name
    $google .="'" . $cenaBezDPH . "',";  // Částka vypočítané DPH
    $google .="'" . $cena_DPH . "',";  // Částka vypočítané DPH
    $google .="'" . money($objednavka['postovne']) . "',";   // Cena dopravy
    $google .="'" . $zakaznik['obec'] . "',"; // Město uvedené v objednávce
    $google .="'',";    // Stát (např. Texas – v ČR nemá význam)
    $google .="'Czech republic'";  // Země (psáno anglicky)
    $google .="]);";

    //addItem
    foreach ($google_item as $gitem) {
	$google .= "_gaq.push(['_addItem',";
	$google .= $gitem;
	$google .= "]);";    // Identifikátor zboží
    }
    $google .= "_gaq.push(['_trackTrans']);"; //submits transaction to the Analytics servers
    $_SESSION['google'] = $google;
    unset($_SESSION['objednavka']);
    unset($_SESSION['jcart']);
    $_SESSION['objednavka']['step'] = '3';
    Tools::redirect('this');
} else {
    Tools::message('Problém při uložení do databáze.', 'ERR');
}
?>

ACC SHELL 2018