1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_GoogleCheckout
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27:
28: /**
29: * Tax resource model
30: *
31: * @category Mage
32: * @package Mage_GoogleCheckout
33: * @author Magento Core Team <core@magentocommerce.com>
34: */
35: class Mage_GoogleCheckout_Model_Resource_Tax extends Mage_Core_Model_Resource_Db_Abstract
36: {
37: /**
38: * Resource model initialization
39: * Set main entity table name and primary key field name.
40: *
41: */
42: protected function _construct()
43: {
44: $this->_init('tax/tax_rule', 'rule_id');
45: }
46:
47: /**
48: * Retrieve array of rule rates for customers tax class
49: *
50: * @param int $customerTaxClass
51: * @return array
52: */
53: public function fetchRuleRatesForCustomerTaxClass($customerTaxClass)
54: {
55: $read = $this->_getReadAdapter();
56: $select = $read->select()
57: ->from(array('rule' => $this->getMainTable()))
58: ->join(
59: array('rd' => $this->getTable('tax/tax_rate_data')),
60: 'rd.rate_type_id = rule.tax_rate_type_id',
61: array('value' => new Zend_Db_Expr('rate_value/100')))
62: ->join(
63: array('r' => $this->getTable('tax/tax_rate')),
64: 'r.tax_rate_id = rd.tax_rate_id',
65: array('country' => 'tax_country_id', 'postcode' => 'tax_postcode'))
66: ->joinLeft(
67: array('reg' => $this->getTable('directory/country_region')),
68: 'reg.region_id = r.tax_region_id',
69: array('state' => 'code'))
70: ->where('rule.tax_customer_class_id = ?', (int)$customerTaxClass);
71:
72: $rows = $read->fetchAll($select);
73:
74: return $rows;
75: }
76: }
77: