%PDF- %PDF-
| Direktori : /home/waritko/import-prestashop/ |
| Current File : //home/waritko/import-prestashop/Pemik.php |
<?php
/**
* Created by PhpStorm.
* User: Ludek
* Date: 7. 10. 2016
* Time: 13:40
*/
class Pemik extends Nakladatel
{
public $ceny = array();
public $zanryPrevod = array();
public $zakazaneKateg = array();
public $pocitadlo;
public $pocitadloKolikZpracuji;
public function __construct($timestamp)
{
// Nacti veci z PEMIKU a rozbal je
}
function zpracujData()
{
$this->nactiZanry();
$this->nactiCeny();
$this->pocitadlo = 0;
$this->pocitadloKolikZpracuji = 0;
if (($handle = fopen('import/Catalogue_full_68C310F5-3C1E-4A7C-A58E-ACEE81A29662.txt', "r")) !== FALSE)
{
while (($kniha = fgetcsv($handle, 0, ",", '"')) !== FALSE)
{
/* 0 - "SORTKOD",1 - "SORTNAZEV",2 - "SORTZKNAZEV",3 - "SORTPODNAZEV",4 - "EDICE",5 - "SORTAUTOR",6 - "DOSTUPNOST",7 - "DATPLVYD",
8 -"RMVYDANI",9 - "RMDOTISK",10 - "SORTJAZYK",11 - "SORTZNACKA",12 - "VYROBCE",13 - "VYROBCEICO",14 - "SORTDRUH",15 - "SKUPKOD",
16 - "SKUPNAZEV",17 - "VAZBA",18 - "EAN",19 - "ISBN",20 - "POCSTRAN",21 - "POCKSBAL",22 - "VYSKA",23 - "SIRKA",24 - "TLOUSTKA",
25 - "HMOTNOST",26 - "ANOTACE",27 - "PICTURE",28 - "PICTURE_SMALL",29 - "SORTAUTOR2",30 - "SORT_FORMA" */
$this->pocitadlo = $this->pocitadlo + 1;
// echo (string)$this->pocitadlo . " " . date('Y-m-d h:i:s') . " " . (string)$kniha[1] . " --------- \n";
if ($kniha[12]=="EUROMEDIA GROUP a.s." or $kniha[0]=="SORTKOD")
continue; // Euromedia - nezpracovavat, nebo prvni radek nezpracovavat
if ((string)$kniha[6]=="R")
continue; // Nedostupne - nezpracovavat
if ((string)$kniha[10]=="SK")
continue; // Slovensko - nezpracovavat
$rok = floatval(substr((string)$kniha[8],0,4));
if (((string)$kniha[15]=="02030000" or (string)$kniha[15]=="02060000" or (string)$kniha[15]=="02060000") and $rok <> 2017)
continue; // Kalendare jine nez pristi rok nezpracovavat
// echo (string)$kniha[8] . " " . (string)$rok . " \n";
if($rok < 2010)
continue; // starsi 2013 - nezpracovavat
if(in_array((string)$kniha[14], $this->zakazaneKateg))
continue; // Je v zakazanych kategoriich - nezpracovavat
$ean = (string)$kniha[18];
$cena = $this->zjistiCenu($ean);
if ($cena <= 2)
continue;
$kniha[1] = iconv('CP1250', 'utf-8', $kniha[1]); // sortnazev
$kniha[2] = iconv('CP1250','utf-8', $kniha[2]); // sortzknazev
$kniha[3] = iconv('CP1250','utf-8', $kniha[3]); // sortpodnazev
$kniha[4] = iconv('CP1250','utf-8', $kniha[4]); // edice
$kniha[5] = iconv('CP1250','utf-8', $kniha[5]); // sortautor
$kniha[11] = iconv('CP1250','utf-8', $kniha[11]); // sortznacka
$kniha[12] = iconv('CP1250','utf-8', $kniha[12]); // vyrobce
$kniha[16] = iconv('CP1250','utf-8', $kniha[16]); // skupnazev
$kniha[17] = iconv('CP1250','utf-8', $kniha[17]); // vazba
$kniha[29] = iconv('CP1250','utf-8', $kniha[29]); // sortautor2
$this->zpracujTitul($kniha);
// if ($this->pocitadlo > 1000)
// break;
$this->pocitadloKolikZpracuji = $this->pocitadloKolikZpracuji + 1;
echo (string)$this->pocitadloKolikZpracuji . " " . date('Y-m-d h:i:s') . " " . (string)$kniha[1] . " ---------- \n";
}
fclose($handle);
}
}
function zpracujTitul($kniha)
{
$id = (string)$kniha[0];
$ean = (string)$kniha[18];
if (!isset($ceny[$id]))
return;
$cena = $this->ceny[$id];
$dph = substr((string)$cena[2],0,2);
$akcecena = floatval($cena[3]) / (1+(floatval($dph)/100));
$prodcena = floatval($cena[0]) / (1+(floatval($dph)/100));
if ($prodcena == 0)
return;
$knizka = null;
$prestaId = $this->eanToId($ean);
if(!$prestaId)
{
// Nova kniha
$knizka = new Kniha(false);
}
else if(strstr($prestaId->importId, 'pemik-'))
{
// return;
// Update
$knizka = new Kniha($prestaId->id);
}
else return;
/* Nastav data knihy
0 - "SORTKOD",1 - "SORTNAZEV",2 - "SORTZKNAZEV",3 - "SORTPODNAZEV",4 - "EDICE",5 - "SORTAUTOR",6 - "DOSTUPNOST",7 - "DATPLVYD",
8 -"RMVYDANI",9 - "RMDOTISK",10 - "SORTJAZYK",11 - "SORTZNACKA",12 - "VYROBCE",13 - "VYROBCEICO",14 - "SORTDRUH",15 - "SKUPKOD",
16 - "SKUPNAZEV",17 - "VAZBA",18 - "EAN",19 - "ISBN",20 - "POCSTRAN",21 - "POCKSBAL",22 - "VYSKA",23 - "SIRKA",24 - "TLOUSTKA",
25 - "HMOTNOST",26 - "ANOTACE",27 - "PICTURE",28 - "PICTURE_SMALL",29 - "SORTAUTOR2",30 - "SORT_FORMA" */
$knizka->nastavNazev((string)$kniha[1]);
$knizka->nastavSirku((int)$kniha[23]);
$knizka->nastavVysku((int)$kniha[22]);
$knizka->nastavHloubku((int)$kniha[24]);
$knizka->nastavHmotnost((double)$kniha[25] / 1000);
$knizka->nastavISBN((string)$kniha[19]);
$knizka->nastavVazbu((string)$kniha[17]);
$knizka->nastavStran((string)$kniha[20]);
$knizka->nastavAutor((string)$kniha[5]);
$knizka->nastavNakladatel((string)$kniha[12]);
$knizka->nastavEAN((string)$kniha[18]);
$knizka->nastavPuvodniKodKategorie((string)$kniha[15]);
if ($akcecena < $prodcena and $akcecena <> 0)
{
$knizka->nastavAkci();
$prodcena = $akcecena;
}
$nakcen = round($prodcena/(1+(floatval($cena[1])/100)),2);
$knizka->nastavNakupniCenu((string)$nakcen);
$knizka->nastavDph($dph);
$knizka->nastavCenu((string)$prodcena);
$knizka->nastavImportId("pemik-" . $id);
// dostupnost, novinka, dotisk
$datumVydani = substr((string)$kniha[7],0,10);
if (substr($datumVydani,0,4) == "1900")
if (substr((string)$kniha[8],0,4)<>"" and substr((string)$kniha[8],0,4)<>"0000")
if (substr((string)$kniha[8],4,2) <> "")
$datumVydani = substr((string)$kniha[8],0,4) . "-" . substr((string)$kniha[8],4,2) . "-01";
else
$datumVydani = substr((string)$kniha[8],0,4) . "-01-01";
else
$datumVydani = "1990-01-01";
$dostupnost = (string)$kniha[6];
if ($dostupnost == "R")
$knizka->nastavDostupnostPozdeji('NEDOSTUPNÉ');
if ($dostupnost == "S" or (string)$kniha[6]=="Z")
$knizka->nastavDostupnostPozdeji('Skladem u dodavatele');
if ($dostupnost == "N" or (string)$kniha[6]=="n")
$knizka->nastavDostupnostPozdeji('Novinka');
if ($dostupnost == "D")
$knizka->nastavDostupnostPozdeji('Připravovaný Dotisk');
$aktivni = True;
$knizka->nastavKdyVydano($datumVydani);
$knizka->nastavJeliAktivni($aktivni);
$knizka->nastavDostupnost($datumVydani);
// nacist a nastavit kategorii
$kodZanru = (string)$kniha[15];
$zanrMonami = $this->zanryPrevod[$kodZanru];
$zanryVRadku = explode("/", $zanrMonami);
foreach($zanryVRadku as $z1)
{
$nacteneZanry[] = $z1;
}
$knizka->nastavKategorii($nacteneZanry);
// anotace, obrazek
$anotace = file_get_contents((string)$kniha[26]);
$knizka->nastavAnotaci($anotace);
$url = (string)$kniha[27];
$knizka->nastavURLObrazku($url);
// Uloz knizku
$knizka->uloz();
}
function nactiCeny()
{
if (($handle = fopen('import/Price_68C310F5-3C1E-4A7C-A58E-ACEE81A29662.txt', "r")) !== FALSE)
{
while (($radek = fgetcsv($handle, 0, ",", '"')) !== FALSE)
{
/* 0 - "SORTKOD",1 - "EAN",2 - "PARTNERKOD",3 - "PRODCENA",4 - "MENA",5 - "RABAT",6 - "PLATNOSTOD",7 - "PLATNOSTDO",
8 -"AKCECENA",9 - "AKCNIRABAT",10 - "AKCEOD",11 - "AKCEDO",12 - "DPH",13 - "PREDBEYNACENA",14 - "SORTFORMA",15 - "MOC" */
$cena = array((string)$radek[3], (string)$radek[5], (string)$radek[12], (string)$radek[8]);
// prodcena, rabat, dph, akcnirabat
$this->ceny[(string)$radek[0]]=$cena;
}
fclose($handle);
}
}
function nactiZanry()
{
if (($handle = fopen('genrespem.csv', 'r')) !== FALSE)
{
while (($radek = fgetcsv($handle, 0, ";")) !== FALSE)
{
if ((string)$radek[1] == "NE")
$this->zakazaneKateg[]=(string)$radek[1];
else
$this->zanryPrevod[(string)$radek[0]] = (string)$radek[1];
}
fclose($handle);
}
}
function zjistiCenu($ean)
{
return dibi::query("SELECT [price] FROM [ps_product] WHERE [ean13]=%s", $ean)->fetchSingle();
/*if(count($result) == 0)
return false;
$row = $result->fetch();
$retVal = new stdClass();
$retVal->importId = $row->import_id;
$retVal->id = $row->id_product;
return $retVal;*/
}
}