Public Member Functions | |
joinCalculationData ($alias) | |
addProductTaxClassesToResult () | |
addCustomerTaxClassesToResult () | |
addRatesToResult () | |
setClassTypeFilter ($type, $id) | |
Protected Member Functions | |
_construct () | |
_add ($itemTable, $primaryJoinField, $secondaryJoinField, $titleField, $dataField) |
Definition at line 33 of file Collection.php.
_add | ( | $ | itemTable, | |
$ | primaryJoinField, | |||
$ | secondaryJoinField, | |||
$ | titleField, | |||
$ | dataField | |||
) | [protected] |
Definition at line 46 of file Collection.php.
00047 { 00048 $children = array(); 00049 foreach ($this as $rule) { 00050 $children[$rule->getId()] = array(); 00051 } 00052 if (!empty($children)) { 00053 $select = $this->getConnection()->select() 00054 ->from(array('calculation'=>$this->getTable('tax_calculation')), array('calculation.tax_calculation_rule_id')) 00055 ->join( 00056 array('item'=>$this->getTable($itemTable)), 00057 "item.{$secondaryJoinField} = calculation.{$primaryJoinField}", 00058 array("item.{$titleField}")) 00059 ->where('calculation.tax_calculation_rule_id IN (?)', array_keys($children)) 00060 ->distinct(true); 00061 00062 $data = $this->getConnection()->fetchAll($select); 00063 foreach ($data as $row) { 00064 $children[$row['tax_calculation_rule_id']][] = $row[$titleField]; 00065 } 00066 } 00067 foreach ($this as $rule) { 00068 if (isset($children[$rule->getId()])) { 00069 $rule->setData($dataField, $children[$rule->getId()]); 00070 } 00071 } 00072 return $this; 00073 }
_construct | ( | ) | [protected] |
Initialization here
Reimplemented from Mage_Core_Model_Mysql4_Collection_Abstract.
Definition at line 35 of file Collection.php.
00036 { 00037 $this->_init('tax/calculation_rule'); 00038 }
addCustomerTaxClassesToResult | ( | ) |
Definition at line 79 of file Collection.php.
00080 { 00081 return $this->_add('tax_class', 'customer_tax_class_id', 'class_id', 'class_name', 'customer_tax_classes'); 00082 }
addProductTaxClassesToResult | ( | ) |
Definition at line 75 of file Collection.php.
00076 { 00077 return $this->_add('tax_class', 'product_tax_class_id', 'class_id', 'class_name', 'product_tax_classes'); 00078 }
addRatesToResult | ( | ) |
Definition at line 83 of file Collection.php.
00084 { 00085 return $this->_add('tax_calculation_rate', 'tax_calculation_rate_id', 'tax_calculation_rate_id', 'code', 'tax_rates'); 00086 }
joinCalculationData | ( | $ | alias | ) |
Definition at line 40 of file Collection.php.
00041 { 00042 $this->getSelect()->joinLeft(array($alias=>$this->getTable('tax_calculation')), "main_table.tax_calculation_rule_id = {$alias}.tax_calculation_rule_id", array()); 00043 $this->getSelect()->group('main_table.tax_calculation_rule_id'); 00044 }
setClassTypeFilter | ( | $ | type, | |
$ | id | |||
) |
Definition at line 88 of file Collection.php.
00089 { 00090 switch ($type) { 00091 case 'PRODUCT': 00092 $field = 'cd.product_tax_class_id'; 00093 break; 00094 case 'CUSTOMER': 00095 $field = 'cd.customer_tax_class_id'; 00096 break; 00097 default: 00098 Mage::throwException('Invalid type supplied'); 00099 } 00100 00101 $this->joinCalculationData('cd'); 00102 $this->addFieldToFilter($field, $id); 00103 return $this; 00104 }