public function addXLS($file_path) { //$file_path = './upload_dir/test.xls'; $sheet_array = Yii::app()->yexcel->readActiveSheet($file_path); $current_product = null; foreach ($sheet_array as $row) { if ($this->isRowEmpty($row)) { continue; } if ($row['A'] != null && $row['B'] != null) { continue; } if ($row['A'] != null) { $current_product = ProductTypes::model()->findByAttributes(array('name' => $row['A'])); if (!$current_product) { $current_product = new ProductTypes(); } $current_product->name = $row['A']; $properties = '['; foreach ($row as $cell) { if ($cell != null && $cell != $row['A']) { $properties = "{$properties}\"{$cell}\","; } } $properties[strlen($properties) - 1] = ']'; $current_product->properties = $properties; $objValues = json_decode($current_product->values_); if (!$objValues) { $objValues = array(); $propCount = substr_count($current_product->properties, '","') + 1; for ($i = 0; $i < $propCount; $i++) { $objValues[$i] = array(); } } $current_product->values_ = json_encode($objValues); $current_product->save(); continue; } if (!$current_product) { continue; } //$cell = $row['B']; $product = Products::model()->findByAttributes(array('article' => $row['B'])); if (!$product) { $product = new Products(); } $product->type_id = $current_product->id; $product->article = $row['B']; //$cell = next($row); $product->description = $row['C']; //$cell = next($row); $product->prices = "[\"{$row['D']}\";\"{$row['E']}\";\"{$row['F']}\"]"; $values = '['; //$cell = $row['F']; //while ($cell = next($row)) $objValues = json_decode($current_product->values_, true); $i = 'H'; $nProp = 0; $isChanged = false; while ($row[$i]) { $values = "{$values}\"{$row[$i]}\","; if (is_array($objValues[$nProp]) && !in_array(strtolower($row[$i]), array_map('strtolower', $objValues[$nProp])) || !is_array($objValues[$nProp]) && $row[$i] != $objValues[$nProp]) { $objValues[$nProp][] = $row[$i]; $isChanged = true; } $i++; $nProp++; } $values[strlen($values) - 1] = ']'; $product->values_ = $values; if ($isChanged) { $current_product->values_ = json_encode($objValues, JSON_UNESCAPED_UNICODE); $current_product->save(); } $product->save(); } //$this->actionIndex(); }
public function actionShowProduct($id = 1) { $productType = ProductTypes::model()->with('products')->findByPk($id); $productType->products[0]->getPriceString(); Yii::app()->clientScript->registerCoreScript('jquery'); Yii::app()->clientScript->registerCoreScript('ajaxupload'); Yii::app()->clientScript->registerCoreScript('datatables'); Yii::app()->clientScript->registerCoreScript('datatablesColumnFilter'); Yii::app()->clientScript->registerCoreScript('jTruncate'); Yii::app()->clientScript->registerCssFile('/css/jquery.dataTables.min.css'); $stringVariableColumns = ''; for ($i = 0; $i < count(json_decode($productType->properties)); $i++) { $stringVariableColumns = $stringVariableColumns . "{ type: \"select\" }, \n"; } $this->render('showProduct', array('productType' => $productType, 'stringVariableColumns' => $stringVariableColumns)); }