public function loadDetail()
 {
     if ($this->id == 0) {
         $product = Product::getOldProductFunction()->retrieveDetail($this->getProduct()->id, 'p,pnc');
         $this->ean = $product['p']['products_ean'];
         $this->article_detail = $product;
     } else {
         $article = Product::getOldProductArticleFunction()->retrieveDetail($this->id);
         $this->ean = $article['products_ean'];
         $this->article_detail = $article;
     }
 }
Example #2
0
 /**
  * Display product measurement (L x W x H) in centimeters or articles measurement with flexible format
  * @param int $language_id
  * @param int $articles_id
  * @param string $unit_separator
  * @param const $format
  * @param string $dec_separator
  * @return string
  */
 public function displayMeasurement($language_id, $articles_id = '', $unit_separator = '', $format = self::FORMAT_DISPLAYMEASUREMENT_PM1, $dec_separator = '')
 {
     //TODO:
     //Move displayMeasurement for article in ProductArticle object
     //Load ProductMeasurement like OOP (must update the class first)
     //1 function shoud have only 1 return (at the bottom of the function)
     use_class('ProductMeasurement');
     $class_pmr = new ProductMeasurement();
     if ($articles_id !== '') {
         $result = '';
         $measurements_labels = array();
         $measurements_values = array();
         if ($format == self::FORMAT_DISPLAYMEASUREMENT_PM1 || $format == self::FORMAT_DISPLAYMEASUREMENT_PM2) {
             $l = $this->detail['pd2']['length'] > 0 ? $this->detail['pd2']['length'] / 10 : 0;
             $w = $this->detail['pd2']['width'] > 0 ? $this->detail['pd2']['width'] / 10 : 0;
             $h = $this->detail['pd2']['height'] > 0 ? $this->detail['pd2']['height'] / 10 : 0;
             if ($l > 10 || $w > 10 || $h > 10) {
                 $dec_number = 0;
             } else {
                 $dec_number = 1;
             }
             if ($dec_separator == '') {
                 if ($language_id == '2' || $language_id == '3') {
                     $dec_separator = ',';
                 } else {
                     $dec_separator = '.';
                 }
             }
             if ($language_id == 1) {
                 $measurements_labels[] = 'Length';
                 $measurements_labels[] = 'Width';
                 $measurements_labels[] = 'Height';
             } elseif ($language_id == 2) {
                 $measurements_labels[] = 'Länge';
                 $measurements_labels[] = 'Breite';
                 $measurements_labels[] = 'Höhe';
             } elseif ($language_id == 3) {
                 $measurements_labels[] = 'Panjang';
                 $measurements_labels[] = 'Lebar';
                 $measurements_labels[] = 'Tinggi';
             }
             $measurements_values[] = number_format($l, $dec_number, $dec_separator, '') . 'cm';
             $measurements_values[] = number_format($w, $dec_number, $dec_separator, '') . 'cm';
             $measurements_values[] = number_format($h, $dec_number, $dec_separator, '') . 'cm';
         } else {
             $measurements = Product::getOldProductArticleFunction()->getMeasurementDetail($this->id, $articles_id);
             foreach ($measurements as $msr_id => $msr_dt) {
                 $msr_desc = $class_pmr->getDescription($msr_id, $language_id);
                 $measurements_labels[$msr_id] = $msr_desc[$language_id]['name'];
                 list($msr_val, $msr_unit) = explode(' ', $msr_dt['measurements_value']);
                 if ($msr_val !== '') {
                     $measurements_values[$msr_id] = $msr_val . $unit_separator . $msr_unit;
                 } else {
                     unset($measurements_labels[$msr_val]);
                 }
             }
         }
         switch ($format) {
             case self::FORMAT_DISPLAYMEASUREMENT_PM1:
             case self::FORMAT_DISPLAYMEASUREMENT_AM1:
                 $result = implode(' x ', $measurements_labels) . ' - ' . implode(' x ', $measurements_values);
                 break;
             case self::FORMAT_DISPLAYMEASUREMENT_AM2:
                 $size_text = $this->getLengthOrSizeAsText($articles_id);
                 $result = implode(' x ', $measurements_labels) . ' - ' . $size_text . ($size_text != '' ? ' ' : '') . '(' . implode(' x ', $measurements_values) . ')';
                 break;
             case self::FORMAT_DISPLAYMEASUREMENT_PM2:
             case self::FORMAT_DISPLAYMEASUREMENT_AM3:
                 foreach ($measurements_labels as $msr_id => $msr_lbl) {
                     $result .= ($result != '' ? ', ' : '') . $msr_lbl . ' : ' . $measurements_values[$msr_id];
                 }
                 break;
             case self::FORMAT_DISPLAYMEASUREMENT_AM4:
                 $result = implode(' x ', $measurements_labels) . ': ';
                 $dm_am4 = '';
                 foreach ($this->articles as $aid => $article) {
                     $dm_am4_size = $this->getLengthOrSizeAsText($aid);
                     $msr_val_temp = array();
                     foreach ($article['measurements'] as $msr_id => $msr_dt) {
                         list($msr_val, $msr_unit) = explode(' ', $msr_dt['measurements_value']);
                         $msr_val_temp[] = $msr_val . $unit_separator . $msr_unit;
                     }
                     $dm_am4_msr = implode(' x ', $msr_val_temp);
                     $dm_am4[] = "{$dm_am4_size} ({$dm_am4_msr})";
                 }
                 $result .= implode('; ', $dm_am4);
                 break;
         }
         return $result;
     } else {
         $l = $this->detail['pd2']['length'] > 0 ? $this->detail['pd2']['length'] / 10 : 0;
         $w = $this->detail['pd2']['width'] > 0 ? $this->detail['pd2']['width'] / 10 : 0;
         $h = $this->detail['pd2']['height'] > 0 ? $this->detail['pd2']['height'] / 10 : 0;
         if ($l > 10 || $w > 10 || $h > 10) {
             $dec_number = 0;
         } else {
             $dec_number = 1;
         }
         if ($language_id == '2' || $language_id == '3') {
             $dec_separator = ',';
         } else {
             $dec_separator = '.';
         }
         $measurement = array();
         $measurement[] = number_format($l, $dec_number, $dec_separator, '');
         $measurement[] = number_format($w, $dec_number, $dec_separator, '');
         $measurement[] = number_format($h, $dec_number, $dec_separator, '');
         //return implode(' x ', $measurement) . ' cm';
         return implode(' x ', $measurement);
     }
 }
     case '2':
         $navids = ottoDeNavIDs();
         break;
     case '3':
         $navids = neckermannAtNavIDs();
         break;
     case '5':
         $navids = retrieveNavIDs($jng_sp_id, 'bn');
         break;
 }
 if (!SERVER_IS_LOCAL) {
     foreach ($products as $row) {
         if ($row['products_ean'] == '') {
             $eanproblem[] = $row['products_id'];
         }
         $product_articles[$row['products_id']] = Product::getOldProductArticleFunction()->retrieveList($row['products_id']);
         if (!in_array($row['products_id'], $eanproblem)) {
             foreach ($product_articles[$row['products_id']] as $pa) {
                 if ($pa['products_ean'] == '') {
                     $eanproblem[] = $row['products_id'];
                     break 1;
                 }
             }
         }
         //if (strpos($row['name'], ' ') === false &&
         //  strlen($row['name'])<= 10) {
         //  $nametoshort[] = $row['products_id'];
         //}
         if ($row['name'] == '') {
             $noname[] = $row['products_id'];
         }