Example #1
0
 public function getPropertyByCat($catID, $groupID, &$total)
 {
     $sqlSearch = '1=1';
     if ($catID) {
         $sqlSearch .= ' And ' . global_mapping::ArticleTypeID . '=\'' . $catID . '\'';
     }
     if ($groupID) {
         $sqlSearch .= 'AND' . global_mapping::PropertyGroupID . '=\'' . $groupID . '\'';
     }
     $strSQL .= global_common::prepareQuery(global_common::SQL_SELECT_FREE, array('*', Model_PropertyGroup::TBL_SL_PROPERTY_GROUP, 'WHERE ' . $sqlSearch . '  Order by `' . global_mapping::Order . '`'));
     //	echo $strSQL;
     $arrResult = $this->_objConnection->selectCommand($strSQL);
     if (!$arrResult) {
         global_common::writeLog('get sl_product ByID:' . $strSQL, 1, $_mainFrame->pPage);
         return null;
     } else {
         //print_r($arrResult);
         $groupIDs = global_common::getArrayColumn($arrResult, global_mapping::PropertyGroupID);
         $groupIDs = array_unique($groupIDs);
         //print_r($groupIDs);
         $objPropertyGroup = new Model_PropertyGroup($this->_objConnection);
         $properties = $this->getPropertyGroupByIDs($groupIDs);
         $total = count($properties);
         //print_r($properties);
         $propertyGroups = $objPropertyGroup->getPropertyGroupByIDs($groupIDs);
         $temp = array();
         foreach ($arrResult as $key => $info) {
             $temp[$info[global_mapping::PropertyID]] = $info;
             unset($arrResult[$key]);
         }
         $arrResult = $temp;
         $temp = array();
         foreach ($groupIDs as $item) {
             foreach ($propertyGroups as $subitem) {
                 if ($item == $subitem[global_mapping::PropertyGroupID]) {
                     //echo $item.':';
                     $temp = array_merge($temp, array($subitem));
                 }
             }
         }
         $propertyGroups = $temp;
         //print_r($arrResult);
         //print_r($propertyGroups);
         $count = count($propertyGroups);
         //print_r($properties);
         for ($i = 0; $i < $count; $i++) {
             foreach ($properties as $item) {
                 if ($item[global_mapping::PropertyGroupID] == $propertyGroups[$i][global_mapping::PropertyGroupID]) {
                     //change defaut value  to product property value
                     //$item[global_mapping::Status] = $arrResult[$item[global_mapping::PropertyID]][global_mapping::Status];
                     //$item[global_mapping::TypeID] = $arrResult[$item[global_mapping::PropertyID]][global_mapping::TypeID];
                     //$item[global_mapping::StatusID] = $arrResult[$item[global_mapping::PropertyID]][global_mapping::StatusID];
                     //$item[global_mapping::Order] = $arrResult[$item[global_mapping::PropertyID]][global_mapping::Order];
                     if (count($propertyGroups[$i]['Properties']) > 0) {
                         array_push($propertyGroups[$i]['Properties'], $item);
                     } else {
                         $propertyGroups[$i]['Properties'] = array($item);
                     }
                     $propertyGroups[$i]['Properties'] = $propertyGroups[$i]['Properties'] ?: array($item);
                     //$propertyGroups[$i]['Properties'] = array_push($propertyGroups[$i]['Properties'], array($item));
                     //  print_r($propertyGroups[$i]);
                 }
             }
         }
     }
     //print_r($propertyGroups[0]);
     //	print_r($propertyGroups);
     return $propertyGroups;
 }
Example #2
0
 public function getPropertyInfoByID($objID)
 {
     $strSQL .= global_common::prepareQuery(global_common::SQL_SELECT_FREE, array('*', Model_ProductProperty::TBL_SL_PRODUCT_PROPERTY, 'WHERE ProductID = \'' . $objID . '\'  Order by `' . global_mapping::Order . '`'));
     //echo $strSQL;
     $arrResult = $this->_objConnection->selectCommand($strSQL);
     if (!$arrResult) {
         global_common::writeLog('get sl_product ByID:' . $strSQL, 1, $_mainFrame->pPage);
         return null;
     } else {
         //print_r($arrResult);
         $propertyIDs = global_common::getArrayColumn($arrResult, global_mapping::PropertyID);
         $propertyIDs = array_unique($propertyIDs);
         //print_r($propertyIDs);
         $objProperty = new Model_Property($this->_objConnection);
         $objPropertyGroup = new Model_PropertyGroup($this->_objConnection);
         $properties = $objProperty->getPropertyByIDs($propertyIDs);
         $temp = array();
         foreach ($propertyIDs as $item) {
             foreach ($properties as $subitem) {
                 if ($item == $subitem[global_mapping::PropertyID]) {
                     //echo $item.':';
                     $temp = array_merge($temp, array($subitem));
                 }
             }
         }
         $properties = $temp;
         //print_r($properties);
         $propertyGroupIDs = global_common::getArrayColumn($properties, global_mapping::PropertyGroupID);
         $propertyGroupIDs = array_unique($propertyGroupIDs);
         //print_r($propertyGroupIDs);
         $propertyGroups = $objPropertyGroup->getPropertyGroupByIDs($propertyGroupIDs);
         $temp = array();
         foreach ($arrResult as $key => $info) {
             $temp[$info[global_mapping::PropertyID]] = $info;
             unset($arrResult[$key]);
         }
         $arrResult = $temp;
         $temp = array();
         foreach ($propertyGroupIDs as $item) {
             foreach ($propertyGroups as $subitem) {
                 if ($item == $subitem[global_mapping::PropertyGroupID]) {
                     //echo $item.':';
                     $temp = array_merge($temp, array($subitem));
                 }
             }
         }
         $propertyGroups = $temp;
         //print_r($arrResult);
         //print_r($propertyGroups);
         $count = count($propertyGroups);
         for ($i = 0; $i < $count; $i++) {
             foreach ($properties as $item) {
                 if ($item[global_mapping::PropertyGroupID] == $propertyGroups[$i][global_mapping::PropertyGroupID]) {
                     //change defaut value  to product property value
                     $item[global_mapping::PropertyValue] = $arrResult[$item[global_mapping::PropertyID]][global_mapping::PropertyValue];
                     $item[global_mapping::Status] = $arrResult[$item[global_mapping::PropertyID]][global_mapping::Status];
                     $item[global_mapping::TypeID] = $arrResult[$item[global_mapping::PropertyID]][global_mapping::TypeID];
                     $item[global_mapping::StatusID] = $arrResult[$item[global_mapping::PropertyID]][global_mapping::StatusID];
                     $item[global_mapping::Order] = $arrResult[$item[global_mapping::PropertyID]][global_mapping::Order];
                     $propertyGroups[$i]['Properties'] = $propertyGroups[$i]['Properties'] ? $propertyGroups[$i]['Properties'] : array();
                     $propertyGroups[$i]['Properties'] = array_merge($propertyGroups[$i]['Properties'], array($item));
                 }
             }
         }
     }
     //print_r($propertyGroups);
     return $propertyGroups;
 }