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