00001 <?php
00002
00009 class VoucherSerie_Main extends oxAdminDetails
00010 {
00018 public function render()
00019 {
00020 parent::render();
00021
00022 $soxId = oxConfig::getParameter( "oxid");
00023
00024
00025 $sSavedID = oxConfig::getParameter( "saved_oxid");
00026 if ( ($soxId == "-1" || !isset( $soxId)) && isset( $sSavedID) ) {
00027 $soxId = $sSavedID;
00028 oxSession::deleteVar( "saved_oxid");
00029 $this->_aViewData["oxid"] = $soxId;
00030
00031 $this->_aViewData["updatelist"] = "1";
00032 }
00033
00034 if ( $soxId != "-1" && isset( $soxId)) {
00035
00036 $oVoucherSerie = oxNew( "oxvoucherserie" );
00037 $oVoucherSerie->load( $soxId);
00038 $this->_aViewData["edit"] = $oVoucherSerie;
00039 $this->_aViewData["status"] = $oVoucherSerie->countVouchers();
00040 }
00041
00042 return "voucherserie_main.tpl";
00043 }
00044
00050 public function save()
00051 {
00052
00053
00054
00055 $soxId = oxConfig::getParameter("oxid");
00056 $aSerieParams = oxConfig::getParameter("editval");
00057 $dVoucherAmount = oxConfig::getParameter("voucherAmount");
00058 if (!is_numeric($dVoucherAmount) || $dVoucherAmount < 0)
00059 $dVoucherAmount = 0;
00060
00061
00062
00063 $oVoucherSerie = oxNew( "oxvoucherserie" );
00064
00065 if ($soxId != "-1")
00066 $oVoucherSerie->load($soxId);
00067 else
00068 $aSerieParams["oxvoucherseries__oxid"] = null;
00069
00070
00071
00072
00073
00074
00075
00076
00077 $oVoucherSerie->assign($aSerieParams);
00078 $oVoucherSerie->save();
00079
00080
00081
00082 $oNewVoucher = oxNew( "oxvoucher" );
00083
00084
00085
00086
00087 $oExistingVoucherList = $oVoucherSerie->getVoucherList();
00088
00089 foreach ($oExistingVoucherList as $oVoucher) {
00090 $oVoucher->assign($aVoucherParams);
00091 $oVoucher->save();
00092 }
00093
00094
00095
00096 for ($i = 0; $i < $dVoucherAmount; $i++) {
00097 $oNewVoucher->assign($aVoucherParams);
00098 $oNewVoucher->oxvouchers__oxvoucherserieid = new oxField($oVoucherSerie->oxvoucherseries__oxid->value);
00099 $oNewVoucher->oxvouchers__oxvouchernr = new oxField(oxConfig::getParameter("voucherNr"));
00100 if (oxConfig::getParameter("randomVoucherNr"))
00101 $oNewVoucher->oxvouchers__oxvouchernr = new oxField(uniqid($oNewVoucher->oxvouchers__oxvouchernr->value));
00102 $oNewVoucher->save();
00103 $oNewVoucher = oxNew( "oxvoucher" );
00104 }
00105
00106
00107 oxSession::deleteVar("randomVoucherNr");
00108 oxSession::deleteVar("randomNr");
00109 $this->_aViewData["updatelist"] = "1";
00110
00111
00112 if ($soxId == "-1")
00113 oxSession::setVar("saved_oxid", $oVoucherSerie->oxvoucherseries__oxid->value);
00114 }
00115 }