00001 <?php
00002
00008 class User_Payment extends oxAdminDetails
00009 {
00014 protected $_blDelete = false;
00015
00022 public function render()
00023 {
00024 parent::render();
00025
00026
00027 $oPaymentTypes = oxNew( "oxlist" );
00028 $oPaymentTypes->init( "oxpayment");
00029 $oPaymentTypes->getList();
00030
00031 $soxId = oxConfig::getParameter( "oxid");
00032 if ( $soxId != "-1" && isset( $soxId)) {
00033
00034 $oUser = oxNew( "oxuser" );
00035 $oUser->load( $soxId);
00036
00037
00038 $soxPaymentId = oxConfig::getParameter( "oxpaymentid");
00039 if ( (!$soxPaymentId || $this->_blDelete) && isset( $oUser->oPayments[0]))
00040 $soxPaymentId = $oUser->oPayments[0]->oxuserpayments__oxid->value;
00041 if ( $soxPaymentId != "-1" && isset( $soxPaymentId)) {
00042 $oUserPayment = oxNew( "oxuserpayment" );
00043 $oUserPayment->load( $soxPaymentId);
00044 $sTemplate = $oUserPayment->oxuserpayments__oxvalue->value;
00045
00046
00047 foreach ( $oPaymentTypes as $oPayment ) {
00048 if ( $oPayment->oxpayments__oxid->value == $oUserPayment->oxuserpayments__oxpaymentsid->value) {
00049 $oPayment->selected = 1;
00050
00051 if ( !$sTemplate )
00052 $sTemplate = $oPayment->oxpayments__oxvaldesc->value;
00053 break;
00054 }
00055 }
00056 $oUserPayment->setDynValues( oxUtils::getInstance()->assignValuesFromText( $sTemplate ) );
00057 $this->_aViewData["edit"] = $oUserPayment;
00058
00059 }
00060 if ( !$soxPaymentId)
00061 $soxPaymentId = "-1";
00062 $this->_aViewData["oxpaymentid"] = $soxPaymentId;
00063
00064 $this->_aViewData["paymenttypes"] = $oPaymentTypes;
00065
00066
00067 $oUserPayments = $oUser->getUserPayments();
00068 foreach ( $oUserPayments as $oPayment ) {
00069 if ( $oPayment->oxuserpayments__oxid->value == $soxPaymentId ) {
00070 $oPayment->selected = 1;
00071 break;
00072 }
00073 }
00074
00075 $this->_aViewData["edituser"] = $oUser;
00076 }
00077
00078 if (!$this->_allowAdminEdit($soxId))
00079 $this->_aViewData['readonly'] = true;
00080
00081
00082 return "user_payment.tpl";
00083 }
00084
00090 public function save()
00091 {
00092
00093 $soxId = oxConfig::getParameter( "oxid");
00094 if (!$this->_allowAdminEdit($soxId))
00095 return;
00096
00097 $aParams = oxConfig::getParameter( "editval");
00098 $aDynvalues = oxConfig::getParameter( "dynvalue");
00099
00100 if ( isset($aDynvalues)) {
00101
00102 $aParams['oxuserpayments__oxvalue'] = oxUtils::getInstance()->assignValuesToText( $aDynvalues);
00103 }
00104
00105 $oAdress = oxNew( "oxuserpayment" );
00106
00107 if ( $aParams['oxuserpayments__oxid'] == "-1")
00108 $aParams['oxuserpayments__oxid'] = null;
00109
00110 $oAdress->assign( $aParams);
00111 $oAdress->save();
00112 }
00113
00119 public function delPayment()
00120 {
00121 $aParams = oxConfig::getParameter( "editval" );
00122 $soxId = oxConfig::getParameter( "oxid" );
00123 if (!$this->_allowAdminEdit($soxId))
00124 return;
00125
00126 $oAdress = oxNew( "oxuserpayment" );
00127
00128 if ( $aParams['oxuserpayments__oxid'] != "-1") {
00129 $oAdress->load( $aParams['oxuserpayments__oxid']);
00130 $oAdress->delete();
00131 $this->_blDelete = true;
00132 }
00133 }
00134 }