00001 <?php
00002
00008 class oxUserPayment extends oxBase
00009 {
00010
00011
00012
00013
00014
00015
00021 protected $_sPaymentKey = 'fq45QS09_fqyx09239QQ';
00022
00028 protected $_sClassName = 'oxuserpayment';
00029
00035 protected $_blStoreCreditCardInfo = null;
00036
00042 protected $_oPayment = null;
00043
00049 protected $_aDynValues = null;
00050
00058 public function __get( $sName )
00059 {
00060
00061 if ( $sName == 'oxpayments__oxdesc' ) {
00062 if ( $this->_oPayment === null ) {
00063 $this->_oPayment = oxNew( 'oxpayment' );
00064 $this->_oPayment->load( $this->oxuserpayments__oxpaymentsid->value );
00065 }
00066 return $this->_oPayment->oxpayments__oxdesc;
00067 }
00068
00069 if ( $sName == 'aDynValues' ) {
00070 if ( $this->_aDynValues === null ) {
00071 $this->_aDynValues = $this->getDynValues();
00072 }
00073 return $this->_aDynValues;
00074 }
00075
00076 return parent::__get( $sName );
00077 }
00078
00082 public function __construct()
00083 {
00084 parent::__construct();
00085 $this->init( 'oxuserpayments' );
00086 $this->_sPaymentKey = oxUtils::getInstance()->strRot13( $this->_sPaymentKey );
00087 $this->setStoreCreditCardInfo( $this->getConfig()->getConfigParam( 'blStoreCreditCardInfo' ) );
00088 }
00089
00095 public function getPaymentKey()
00096 {
00097 return $this->_sPaymentKey;
00098 }
00099
00107 public function load( $sOxId )
00108 {
00109 $sSelect = 'select oxid, oxuserid, oxpaymentsid, DECODE( oxvalue, "'.$this->getPaymentKey().'" ) as oxvalue
00110 from oxuserpayments where oxid = '. oxDb::getDb()->quote( $sOxId );
00111
00112 return $this->assignRecord( $sSelect );
00113 }
00114
00115
00121 protected function _insert()
00122 {
00123
00124
00125 if ( !$this->getStoreCreditCardInfo() && $this->oxuserpayments__oxpaymentsid->value == 'oxidcreditcard' ) {
00126 return true;
00127 }
00128
00129
00130 if ( $sValue = $this->oxuserpayments__oxvalue->value ) {
00131 $sEncodedValue = oxDb::getDb()->getOne( "select encode( '$sValue', '" . $this->getPaymentKey() . "' )" );
00132 $this->oxuserpayments__oxvalue->setValue($sEncodedValue);
00133 }
00134
00135 $blRet = parent::_insert();
00136
00137
00138 if ( $sEncodedValue ) {
00139 $this->oxuserpayments__oxvalue->setValue($sValue);
00140 }
00141
00142 return $blRet;
00143 }
00144
00150 protected function _update()
00151 {
00152
00153 if ( $sValue = $this->oxuserpayments__oxvalue->value ) {
00154 $sEncodedValue = oxDb::getDb()->getOne( "select encode( '$sValue', '" . $this->getPaymentKey() . "' )" );
00155 $this->oxuserpayments__oxvalue->setValue($sEncodedValue);
00156 }
00157
00158 $blRet = parent::_update();
00159
00160
00161 if ( $sEncodedValue ) {
00162 $this->oxuserpayments__oxvalue->setValue($sValue);
00163 }
00164
00165 return $blRet;
00166 }
00167
00175 public function setStoreCreditCardInfo( $blStoreCreditCardInfo )
00176 {
00177 $this->_blStoreCreditCardInfo = $blStoreCreditCardInfo;
00178 }
00179
00185 public function getStoreCreditCardInfo()
00186 {
00187 return $this->_blStoreCreditCardInfo;
00188 }
00189
00198 public function getPaymentByPaymentType( $oUser = null, $sPaymentType = null )
00199 {
00200 $blGet = false;
00201 if ( $oUser && $sPaymentType != null ) {
00202 $sSelect = 'select oxid from oxuserpayments where oxpaymentsid="' . $sPaymentType . '" and oxuserid="' . $oUser->getId() . '" ';
00203 if ( ( $sOxId = oxDb::getDb()->getOne( $sSelect ) ) ) {
00204 $blGet = $this->load( $sOxId );
00205 }
00206 }
00207
00208 return $blGet;
00209 }
00210
00216 public function getDynValues()
00217 {
00218 if ( !$this->getStoreCreditCardInfo() && $this->oxuserpayments__oxpaymentsid->value == 'oxidcreditcard' ) {
00219 return null;
00220 }
00221
00222 if ( !$this->_aDynValues ) {
00223 $this->_aDynValues = oxUtils::getInstance()->assignValuesFromText( $this->oxuserpayments__oxvalue->value );
00224 }
00225 return $this->_aDynValues;
00226 }
00227
00235 public function setDynValues( $aDynValues )
00236 {
00237 $this->_aDynValues = $aDynValues;
00238 }
00239
00240 }