fork download
  1. const POHODA_RESPONSE_PACK_PREFIX = "rsp";
  2. const POHODA_STOCK_WRAPPER_PREFIX = "lStk";
  3. const POHODA_STOCK_ITEM_PREFIX = "stk";
  4. const POHODA_STORAGE_ITEM_PREFIX = "typ";
  5.  
  6. private function getStockData() {
  7. if (!$this->stockData) return $this->loadStockData($this->xmlStream);
  8. return $this->stockData;
  9. }
  10.  
  11.  
  12.  
  13. private function processStockData() {
  14. $products = [];
  15. $productPrice = null;
  16. $ean = null;
  17. $productCode = null;
  18. $manufacturer = null;
  19. $productName = null;
  20.  
  21. $validStocks = array_flip($this->config["import"]["stocks"]);
  22.  
  23. foreach($this->getStockData()->children(self::POHODA_STOCK_WRAPPER_PREFIX, TRUE) as $stock) {
  24.  
  25. $child = $stock->children(self::POHODA_STOCK_ITEM_PREFIX, TRUE);
  26.  
  27. $stockHeader = $child->stockHeader;
  28.  
  29. //filtrujem sklady s pneu
  30. //$stockInfo = $stockHeader->storage->children(self::POHODA_STORAGE_ITEM_PREFIX, TRUE);
  31.  
  32. // pokud by se mely importovane sklady omezit
  33. //if (isset($validStocks[(int)$stockInfo->id])) {
  34.  
  35. $productName = (string)preg_replace('/\s\s+/', ' ', trim($stockHeader->name));
  36. $ean = trim((string) $stockHeader->EAN);
  37. $productCode = trim((string) $stockHeader->code);
  38. //$productPrice = $child->sellingPrice;
  39. $manufacturer = "";
  40.  
  41. //najdeme vyrobce
  42. foreach ($this->config["import"]["availableManufacturerNames"] as $manufacturerId => $availableManufacturerName) {
  43. if (\stristr($productName, $manufacturerId)) {
  44. $manufacturer = $availableManufacturerName;
  45. break;
  46. }
  47. }
  48.  
  49. $stockPriceItem = $child->stockPriceItem;
  50. //najdem korektni cenu dle configu
  51. foreach ($stockPriceItem->stockPrice as $price) {
  52. $priceInfo = $price->children(self::POHODA_STORAGE_ITEM_PREFIX, TRUE);
  53. if ((int) $priceInfo->id === $this->config["import"]["price"]) {
  54. $productPrice = (string) $priceInfo->price;
  55. break;
  56. }
  57. }
  58.  
  59. //pokud existuje validni EAN and/or produkt_kod+vyrobce and productPrice pridame do seznamu importovanych produktu
  60. if ($ean || ($productCode && $manufacturer)) {
  61. $products[] = [
  62. "b2bID" => null,
  63. "pohodaID" => (int) $stockHeader->id,
  64. "name" => $productName,
  65. "productCode" => $productCode,
  66. "manufacturer" => $manufacturer,
  67. "ean" => $ean,
  68. "productPrice" => $productPrice,
  69. "productCount" => (int) $stockHeader->count,
  70. ];
  71. }
  72.  
  73. //}
  74.  
  75. }
  76.  
  77. return $products;
  78. }
  79.  
Success #stdin #stdout 0.01s 82560KB
stdin
Standard input is empty
stdout
    const POHODA_RESPONSE_PACK_PREFIX = "rsp";
    const POHODA_STOCK_WRAPPER_PREFIX = "lStk";
    const POHODA_STOCK_ITEM_PREFIX = "stk";
    const POHODA_STORAGE_ITEM_PREFIX = "typ";
     
    private function getStockData() {
        if (!$this->stockData) return $this->loadStockData($this->xmlStream);
        return $this->stockData;
    }
  
    
    
    private function processStockData() {
        $products = [];
        $productPrice = null;
        $ean = null;
        $productCode = null;
        $manufacturer = null;
        $productName = null;

        $validStocks = array_flip($this->config["import"]["stocks"]);

        foreach($this->getStockData()->children(self::POHODA_STOCK_WRAPPER_PREFIX, TRUE) as $stock) {

            $child = $stock->children(self::POHODA_STOCK_ITEM_PREFIX, TRUE);

            $stockHeader = $child->stockHeader;

            //filtrujem sklady s pneu
            //$stockInfo = $stockHeader->storage->children(self::POHODA_STORAGE_ITEM_PREFIX, TRUE);

            // pokud by se mely importovane sklady omezit
            //if (isset($validStocks[(int)$stockInfo->id])) {

                $productName = (string)preg_replace('/\s\s+/', ' ', trim($stockHeader->name));
                $ean = trim((string) $stockHeader->EAN);
                $productCode = trim((string) $stockHeader->code);
                //$productPrice = $child->sellingPrice;
                $manufacturer = "";

                //najdeme vyrobce
                foreach ($this->config["import"]["availableManufacturerNames"] as $manufacturerId => $availableManufacturerName) {
                    if (\stristr($productName, $manufacturerId)) {
                        $manufacturer = $availableManufacturerName;
                        break;
                    }
                }

                $stockPriceItem = $child->stockPriceItem;
                //najdem korektni cenu dle configu
                foreach ($stockPriceItem->stockPrice as $price) {
                    $priceInfo = $price->children(self::POHODA_STORAGE_ITEM_PREFIX, TRUE);
                    if ((int) $priceInfo->id === $this->config["import"]["price"]) {
                        $productPrice = (string) $priceInfo->price;
                        break;
                    }
                }

                //pokud existuje validni EAN and/or produkt_kod+vyrobce and productPrice pridame do seznamu importovanych produktu
                if ($ean || ($productCode && $manufacturer)) {
                     $products[] = [
                        "b2bID" => null,
                        "pohodaID" => (int) $stockHeader->id,
                        "name" => $productName,
                        "productCode" => $productCode,
                        "manufacturer" => $manufacturer,
                        "ean" => $ean,
                        "productPrice" => $productPrice,
                        "productCount" => (int) $stockHeader->count,
                    ];
                }

            //}

        }

        return $products;
    }