voucherserie_main.php

Go to the documentation of this file.
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         // check if we right now saved a new entry
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             // for reloading upper frame
00031             $this->_aViewData["updatelist"] =  "1";
00032         }
00033 
00034         if ( $soxId != "-1" && isset( $soxId)) {
00035             // load object
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         // Parameter Processing
00054         $soxId          = oxConfig::getParameter("oxid");
00055         $aSerieParams   = oxConfig::getParameter("editval");
00056         $dVoucherAmount = abs( (int) oxConfig::getParameter( "voucherAmount" ) );
00057 
00058         // Voucher Serie Processing
00059 
00060         $oVoucherSerie = oxNew( "oxvoucherserie" );
00061         // if serie already exist use it
00062         if ( $soxId != "-1" ) {
00063             $oVoucherSerie->load( $soxId );
00064         } else {
00065             $aSerieParams["oxvoucherseries__oxid"] = null;
00066         }
00067 
00068 
00069         // select random nr if chosen
00070         //if(oxConfig::getParameter("randomNr"))
00071            // $aSerieParams["oxvoucherseries__oxserienr"] = uniqid($aSerieParams["oxvoucherseries__oxserienr"]);
00072 
00073         // update serie object
00074         //$aSerieParams = $oVoucherSerie->ConvertNameArray2Idx($aSerieParams);
00075         $oVoucherSerie->assign($aSerieParams);
00076         $oVoucherSerie->save();
00077 
00078         // Voucher processing
00079 
00080         $oNewVoucher = oxNew( "oxvoucher" );
00081         //$aVoucherParams = $oNewVoucher->ConvertNameArray2Idx($aVoucherParams);
00082 
00083         // first we update already existing and not used vouchers
00084 
00085         $oExistingVoucherList = $oVoucherSerie->getVoucherList();
00086         // prepare voucher params
00087         foreach ($oExistingVoucherList as $oVoucher) {
00088             $oVoucher->assign($aVoucherParams);
00089             $oVoucher->save();
00090         }
00091 
00092         // second we create new vouchers that are defined in the entry
00093 
00094         for ($i = 0; $i < $dVoucherAmount; $i++) {
00095             $oNewVoucher->assign($aVoucherParams);
00096             $oNewVoucher->oxvouchers__oxvoucherserieid = new oxField($oVoucherSerie->oxvoucherseries__oxid->value);
00097             $oNewVoucher->oxvouchers__oxvouchernr = new oxField(oxConfig::getParameter("voucherNr"));
00098             if (oxConfig::getParameter("randomVoucherNr"))
00099                 $oNewVoucher->oxvouchers__oxvouchernr = new oxField(uniqid($oNewVoucher->oxvouchers__oxvouchernr->value));
00100             $oNewVoucher->save();
00101             $oNewVoucher = oxNew( "oxvoucher" );
00102         }
00103 
00104         // release all chekbox states
00105         oxSession::deleteVar("randomVoucherNr");
00106         oxSession::deleteVar("randomNr");
00107         $this->_aViewData["updatelist"] = "1";
00108 
00109         // set oxid if inserted
00110         if ($soxId == "-1")
00111             oxSession::setVar("saved_oxid", $oVoucherSerie->oxvoucherseries__oxid->value);
00112     }
00113 
00119     public function export()
00120     {
00121         $oSerie = oxNew( "oxvoucherserie" );
00122         $oSerie->load(oxConfig::getParameter("oxid"));
00123 
00124         $oDb = oxDb::getDb();
00125 
00126         $sSelect = "select oxvouchernr from oxvouchers where oxvoucherserieid = ".$oDb->quote( $oSerie->oxvoucherseries__oxid->value );
00127         $rs = $oDb->execute($sSelect);
00128 
00129         $sLine = "Gutschein\n";
00130         while (!$rs->EOF) {
00131             foreach ( $rs->fields as $field) {
00132                 $sLine .= $field/*.$myConfig->sCSVSign*/;
00133             }
00134             $sLine .= "\n";
00135             $rs->moveNext();
00136         }
00137         $this->_aViewData["exportCompleted"] = true;
00138 
00139         $oUtils = oxUtils::getInstance();
00140         $oUtils->setHeader( "Pragma: public" );
00141         $oUtils->setHeader( "Cache-Control: must-revalidate, post-check=0, pre-check=0" );
00142         $oUtils->setHeader( "Expires: 0" );
00143         $oUtils->setHeader( "Content-Disposition: attachment; filename=vouchers.csv");
00144         $oUtils->setHeader( "Content-Type: application/csv" );
00145         $oUtils->showMessageAndExit( $sLine );
00146     }
00147 }