%PDF- %PDF-
| Direktori : /home/waritko/import-prestashop/ |
| Current File : //home/waritko/import-prestashop/Euromedia.php |
<?php
/**
* Created by PhpStorm.
* User: Ludek
* Date: 10. 9. 2016
* Time: 13:40
*/
class Euromedia extends Nakladatel
{
public $anotace = array();
public $dostupnost = array();
public $dostupnostEan = array();
public $zanryPrevod = array();
public $pocitadlo;
public function __construct($timestamp)
{
// Nacti veci z euromedie a rozbal je
}
function zpracujData()
{
$this->nactiZanry();
$this->nactiAnotace();
$this->nactiDostupnost();
$this->pocitadlo = 1;
$tituly = simplexml_load_file('import/tituly.xml');
foreach ($tituly->titul as $titul)
{
// echo " Zpracuj Titul ";
$this->zpracujTitul($titul);
$this->pocitadlo = $this->pocitadlo + 1;
// break;
}
return; // neresi dostupnost
// pro vsechny polozky dostupnosti zmeni dostupnost
foreach ($this->dostupnostEan as $ean => $dostupnost)
{
$knizka = null;
$prestaId = $this->eanToId($ean);
if($prestaId && strstr($prestaId->importId, 'euromedia-'))
{
// Update
$knizka = new Kniha($prestaId->id);
if ($dostupnost > 1)
{
$knizka->nastavDostupnostPozdeji('Skladem u dodavatele');
}
else
{
$knizka->nastavDostupnostPozdeji('Nedostupné');
}
$knizka->uloz();
}
}
}
function zpracujTitul($titul)
{
$id = (string)$titul->id;
$ean = (string)$titul->ean;
// pokud datum vydani pred 2013 nezpracovat
$datumVydani = (string)($titul->{'datum-uvedeni'});
$jePredobjednavka = isset($titul->parametry->predobjednavka);
$rok = intval(substr($datumVydani,0,4));
if ($rok < 2013 and !$jePredobjednavka)
return;
unset($this->dostupnostEan[$ean]); // nebude zpracovavat dostupnost, uz ji zpracoval u titulu
// je v zakazanych kategoriich, nezpracovat
$zanr = (string)($titul->zanry->zanr['id']);
$zakazaneKateg = array("5001","5002","5003","5101","5103","5108","5109","5110","5111",
"5112","5113","5114","5115","5116","5117","5118","5119","5120","5121","5122","5123","5124");
if(in_array($zanr, $zakazaneKateg))
return;
echo (string)$this->pocitadlo . " " . (string)$titul->nazev . " -- ";
$knizka = null;
$prestaId = $this->eanToId($ean);
if(!$prestaId)
{
// Nova kniha
$knizka = new Kniha(false);
}
else if(strstr($prestaId->importId, 'euromedia-'))
{
// Update
$knizka = new Kniha($prestaId->id);
}
else return;
// Nastav data knihy
$knizka->nastavNazev((string)$titul->nazev);
if(isset($this->anotace[$id]))
$knizka->nastavAnotaci($this->anotace[$id]);
$knizka->nastavCenu(((double)$titul->{'dpc-aktualni'})/(1 + ((double)$titul->dph / 100)));
$knizka->nastavDph($titul->dph);
$knizka->nastavSirku((int)$titul->rozmer2);
$knizka->nastavVysku((int)$titul->rozmer1);
$knizka->nastavHloubku((int)$titul->rozmer3);
$knizka->nastavHmotnost((double)$titul->hmotnost / 1000);
$knizka->nastavISBN((string)$titul->isbn);
$knizka->nastavVazbu((string)$titul->{'typ-produktu'});
$knizka->nastavStran((string)$titul->{'pocet-stran'});
$txt = '';
foreach($titul->autori as $autor)
{
$txt .= ($txt != '' ? "; " : "") . (string)$autor->autor;
}
$knizka->nastavAutor($txt);
$knizka->nastavNakladatel((string)$titul->nakladatel);
$knizka->nastavEAN((string)$titul->ean);
$nakcen = sprintf("%0.2f", ((double)$titul->{'dpc-aktualni'}) * (100 - ((double)$titul->rabat)) / 100);
$knizka->nastavNakupniCenu($nakcen);
$knizka->nastavImportId("euromedia-" . (string)$titul->id);
// dostupnost, novinka, dotisk
// $datumNovinka = '0000-00-00';
$datumVydani = (string)($titul->{'datum-uvedeni'});
if(isset($titul->parametry->novinka))
{
$datumVydani = (string)($titul->parametry->novinka['datum']);
$knizka->nastavDostupnostPozdeji('Novinka');
}
else
{
$knizka->nastavDostupnostPozdeji('Skladem u dodavatele');
}
// Neni dostupna, oznacit jako nedostupne
if($this->dostupnost[$id] == '-1')
{
$knizka->nastavDostupnostPozdeji('NEDOSTUPNÉ');
}
$aktivni = True;
$knizka->nastavKdyVydano($datumVydani);
$knizka->nastavJeliAktivni($aktivni);
$knizka->nastavDostupnost($datumVydani);
// $knizka->nastavKdyVydano($datumNovinka);
if($this->dostupnost[$id] == '1')
{
if (!isset($titul->parametry->predobjednavka))
$knizka->nastavDostupnostPozdeji('NEDOSTUPNÉ');
}
if(isset($titul->parametry->predobjednavka))
{
$datumPredpoklad = $titul->parametry->predobjednavka['predpokladane-naskladneni'];
$knizka->nastavDostupnost($datumPredpoklad);
$knizka->nastavDostupnostPozdeji('Připravovaný Dotisk');
}
// nacist a nastavit kategorii
$nacteneZanry = array();
foreach($titul->zanry->zanr as $nactenyZanr)
{
$kodZanru = (string)$nactenyZanr['id'];
$zanrMonami = $this->zanryPrevod[$kodZanru];
$zanryVRadku = explode("/", $zanrMonami);
foreach($zanryVRadku as $z1)
{
if (! in_array($z1, $nacteneZanry))
$nacteneZanry[] = $z1;
}
// echo (string)$zanrMonami . " ; ";
}
$knizka->nastavKategorii($nacteneZanry);
$url = (string)($titul->obrazky->velky);
$knizka->nastavURLObrazku($url);
// Uloz knizku
$knizka->uloz();
}
function nactiAnotace()
{
$anotace = simplexml_load_file('import/anotace.xml');
foreach($anotace->titul as $titul)
{
$id = (string)$titul['id'];
$text = trim((string)$titul);
$this->anotace[$id] = $text;
}
}
function nactiDostupnost()
{
$dostupnost = simplexml_load_file('import/dostupnost.xml');
foreach($dostupnost->titul as $titul)
{
$id = (string)$titul['id'];
$text = trim((string)$titul);
$this->dostupnost[$id] = $text;
$this->dostupnostEan[(string)$titul['ean']] = $text;
}
}
function nactiZanry()
{
$f = file('genres.csv');
foreach($f as $zanr)
{
list($name, $euroid, $newid) = explode(";", $zanr);
if ($name != "zanr")
{
$this->zanryPrevod[$euroid] = $newid;
}
}
}
}