%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/waritko/import-prestashop/
Upload File :
Create Path :
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;
            }
        }

    }
}

Zerion Mini Shell 1.0