Go to the documentation of this file.00001 <?php
00002
00008 class User_Payment extends oxAdminDetails
00009 {
00014 protected $_blDelete = false;
00015
00021 protected $_oActiveUser = null;
00022
00028 protected $_sPaymentId = null;
00029
00035 protected $_oPaymentTypes = null;
00036
00042 protected $_oUserPayment = null;
00043
00049 protected $_oUserPayments = null;
00050
00057 public function render()
00058 {
00059 parent::render();
00060 $this->_aViewData["edit"] = $this->getSelUserPayment();
00061 $this->_aViewData["oxpaymentid"] = $this->getPaymentId();
00062 $this->_aViewData["paymenttypes"] = $this->getPaymentTypes();
00063 $this->_aViewData["edituser"] = $this->getUser();
00064 $this->_aViewData["userpayments"] = $this->getUserPayments();
00065
00066 if (!$this->_allowAdminEdit($soxId))
00067 $this->_aViewData['readonly'] = true;
00068
00069
00070 return "user_payment.tpl";
00071 }
00072
00078 public function save()
00079 {
00080
00081 $soxId = $this->getEditObjectId();
00082 if ( $this->_allowAdminEdit( $soxId ) ) {
00083
00084 $aParams = oxConfig::getParameter( "editval");
00085 $aDynvalues = oxConfig::getParameter( "dynvalue");
00086
00087 if ( isset( $aDynvalues ) ) {
00088
00089 $aParams['oxuserpayments__oxvalue'] = oxUtils::getInstance()->assignValuesToText( $aDynvalues );
00090 }
00091
00092 if ( $aParams['oxuserpayments__oxid'] == "-1" ) {
00093 $aParams['oxuserpayments__oxid'] = null;
00094 }
00095
00096 $oAdress = oxNew( "oxuserpayment" );
00097 $oAdress->assign( $aParams );
00098 $oAdress->save();
00099 }
00100 }
00101
00107 public function delPayment()
00108 {
00109 $aParams = oxConfig::getParameter( "editval" );
00110 $soxId = $this->getEditObjectId();
00111 if ( $this->_allowAdminEdit( $soxId )) {
00112 if ( $aParams['oxuserpayments__oxid'] != "-1") {
00113 $oAdress = oxNew( "oxuserpayment" );
00114 if ( $oAdress->load( $aParams['oxuserpayments__oxid'] ) ) {
00115 $this->_blDelete = ( bool ) $oAdress->delete();
00116 }
00117 }
00118 }
00119 }
00120
00126 public function getUser()
00127 {
00128 if ( $this->_oActiveUser == null ) {
00129 $this->_oActiveUser = false;
00130 $sOxId = $this->getEditObjectId();
00131 if ( $sOxId != "-1" && isset( $sOxId)) {
00132
00133 $this->_oActiveUser = oxNew( "oxuser" );
00134 $this->_oActiveUser->load( $sOxId);
00135 }
00136 }
00137 return $this->_oActiveUser;
00138 }
00139
00145 public function getPaymentId()
00146 {
00147 if ( $this->_sPaymentId == null ) {
00148 $this->_sPaymentId = oxConfig::getParameter( "oxpaymentid");
00149 if ( !$this->_sPaymentId || $this->_blDelete ) {
00150 if ( $oUser = $this->getUser() ) {
00151 $oUserPayments = $oUser->getUserPayments();
00152 if ( isset( $oUserPayments[0]) ) {
00153 $this->_sPaymentId = $oUserPayments[0]->oxuserpayments__oxid->value;
00154 }
00155 }
00156 }
00157 if ( !$this->_sPaymentId ) {
00158 $this->_sPaymentId = "-1";
00159 }
00160 }
00161 return $this->_sPaymentId;
00162 }
00163
00169 public function getPaymentTypes()
00170 {
00171 if ( $this->_oPaymentTypes == null ) {
00172
00173
00174 $this->_oPaymentTypes = oxNew( "oxlist" );
00175 $this->_oPaymentTypes->init( "oxpayment");
00176 $oListObject = $this->_oPaymentTypes->getBaseObject();
00177 $oListObject->setLanguage( oxLang::getInstance()->getObjectTplLanguage() );
00178 $this->_oPaymentTypes->getList();
00179 }
00180 return $this->_oPaymentTypes;
00181 }
00182
00188 public function getSelUserPayment()
00189 {
00190 if ( $this->_oUserPayment == null ) {
00191 $this->_oUserPayment = false;
00192 $sPaymentId = $this->getPaymentId();
00193 if ( $sPaymentId != "-1" && isset( $sPaymentId ) ) {
00194 $this->_oUserPayment = oxNew( "oxuserpayment" );
00195 $this->_oUserPayment->load( $sPaymentId );
00196 $sTemplate = $this->_oUserPayment->oxuserpayments__oxvalue->value;
00197
00198
00199 $oPaymentTypes = $this->getPaymentTypes();
00200 foreach ( $oPaymentTypes as $oPayment ) {
00201 if ( $oPayment->oxpayments__oxid->value == $this->_oUserPayment->oxuserpayments__oxpaymentsid->value) {
00202 $oPayment->selected = 1;
00203
00204 if ( !$sTemplate )
00205 $sTemplate = $oPayment->oxpayments__oxvaldesc->value;
00206 break;
00207 }
00208 }
00209 $this->_oUserPayment->setDynValues( oxUtils::getInstance()->assignValuesFromText( $sTemplate ) );
00210 }
00211 }
00212 return $this->_oUserPayment;
00213 }
00214
00220 public function getUserPayments()
00221 {
00222 if ( $this->_oUserPayments == null ) {
00223 $this->_oUserPayments = false;
00224 if ( $oUser = $this->getUser() ) {
00225 $sTplLang = oxLang::getInstance()->getObjectTplLanguage();
00226 $sPaymentId = $this->getPaymentId();
00227 $this->_oUserPayments = $oUser->getUserPayments();
00228
00229 foreach ( $this->_oUserPayments as $oUserPayment ) {
00230 $oPayment = oxNew( 'oxpayment' );
00231 $oPayment->setLanguage( $sTplLang );
00232 $oPayment->load( $oUserPayment->oxuserpayments__oxpaymentsid->value );
00233 $oUserPayment->oxpayments__oxdesc = clone $oPayment->oxpayments__oxdesc;
00234 if ( $oUserPayment->oxuserpayments__oxid->value == $sPaymentId ) {
00235 $oUserPayment->selected = 1;
00236 break;
00237 }
00238 }
00239 }
00240 }
00241 return $this->_oUserPayments;
00242 }
00243
00244 }