%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; } } } }