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_Payment
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: * Credit card generic payment info
29: */
30: class Mage_Payment_Block_Info_Cc extends Mage_Payment_Block_Info
31: {
32: /**
33: * Retrieve credit card type name
34: *
35: * @return string
36: */
37: public function getCcTypeName()
38: {
39: $types = Mage::getSingleton('payment/config')->getCcTypes();
40: $ccType = $this->getInfo()->getCcType();
41: if (isset($types[$ccType])) {
42: return $types[$ccType];
43: }
44: return (empty($ccType)) ? Mage::helper('payment')->__('N/A') : $ccType;
45: }
46:
47: /**
48: * Whether current payment method has credit card expiration info
49: *
50: * @return bool
51: */
52: public function hasCcExpDate()
53: {
54: return (int)$this->getInfo()->getCcExpMonth() || (int)$this->getInfo()->getCcExpYear();
55: }
56:
57: /**
58: * Retrieve CC expiration month
59: *
60: * @return string
61: */
62: public function getCcExpMonth()
63: {
64: $month = $this->getInfo()->getCcExpMonth();
65: if ($month<10) {
66: $month = '0'.$month;
67: }
68: return $month;
69: }
70:
71: /**
72: * Retrieve CC expiration date
73: *
74: * @return Zend_Date
75: */
76: public function getCcExpDate()
77: {
78: $date = Mage::app()->getLocale()->date(0);
79: $date->setYear($this->getInfo()->getCcExpYear());
80: $date->setMonth($this->getInfo()->getCcExpMonth());
81: return $date;
82: }
83:
84: /**
85: * Prepare credit card related payment info
86: *
87: * @param Varien_Object|array $transport
88: * @return Varien_Object
89: */
90: protected function _prepareSpecificInformation($transport = null)
91: {
92: if (null !== $this->_paymentSpecificInformation) {
93: return $this->_paymentSpecificInformation;
94: }
95: $transport = parent::_prepareSpecificInformation($transport);
96: $data = array();
97: if ($ccType = $this->getCcTypeName()) {
98: $data[Mage::helper('payment')->__('Credit Card Type')] = $ccType;
99: }
100: if ($this->getInfo()->getCcLast4()) {
101: $data[Mage::helper('payment')->__('Credit Card Number')] = sprintf('xxxx-%s', $this->getInfo()->getCcLast4());
102: }
103: if (!$this->getIsSecureMode()) {
104: if ($ccSsIssue = $this->getInfo()->getCcSsIssue()) {
105: $data[Mage::helper('payment')->__('Switch/Solo/Maestro Issue Number')] = $ccSsIssue;
106: }
107: $year = $this->getInfo()->getCcSsStartYear();
108: $month = $this->getInfo()->getCcSsStartMonth();
109: if ($year && $month) {
110: $data[Mage::helper('payment')->__('Switch/Solo/Maestro Start Date')] = $this->_formatCardDate($year, $month);
111: }
112: }
113: return $transport->setData(array_merge($data, $transport->getData()));
114: }
115:
116: /**
117: * Format year/month on the credit card
118: *
119: * @param string $year
120: * @param string $month
121: * @return string
122: */
123: protected function _formatCardDate($year, $month)
124: {
125: return sprintf('%s/%s', sprintf('%02d', $month), $year);
126: }
127: }
128: