Example #1
0
 public function parseProducts()
 {
     $products = new Products();
     $keyParams = array();
     $currencies = $this->parseCurrencies();
     $measurements = $this->parseMeasurements();
     foreach ($this->xmlProducts as $xmlProduct) {
         $code = $xmlProduct->getCode();
         $name = $xmlProduct->getName();
         $isAGroup = $xmlProduct->isAGroup();
         $articul = $xmlProduct->getArticul();
         $basicMeasurementUnitCode = $xmlProduct->getBasicMeasurementUnit();
         $basicMeasurementUnit = $measurements->getUnitByCode($basicMeasurementUnitCode);
         $price = $xmlProduct->getPrice();
         $currencyCode = $xmlProduct->getCurrency();
         $currency = $currencies->getUnitByCode($currencyCode);
         $measurementUnitCode = $xmlProduct->getBasicMeasurementUnit();
         $measurementUnit = $measurements->getUnitByCode($measurementUnitCode);
         if (!empty($code) && !in_array($code, $keyParams)) {
             array_push($keyParams, $code);
             $product = new Product();
             $product->setIsAGroup($isAGroup);
             $product->setCode($code);
             $product->setName($name);
             $product->setArticul($articul);
             $product->setBasicMeasurementUnit($basicMeasurementUnit);
             $product->setPrice($price);
             $currency == null ? '' : $product->setCurrency($currency);
             $measurementUnit == null ? '' : $product->setMeasurementUnit($measurementUnit);
             $products->setItem($product);
         }
     }
     $categories = $this->parseCategories();
     foreach ($this->xmlProducts as $xmlProduct) {
         $catCode = $xmlProduct->getCategoryCode();
         $code = $xmlProduct->getCode();
         $current = $products->getItemByCode($code);
         $parent = $categories->getItemByCode($catCode);
         if ($parent != null) {
             $current->setParent($parent);
         }
     }
     $productDAO = new ProductDAO();
     $productDAO->insertItems($products);
     return $products;
 }