voucherserie_main.php

Go to the documentation of this file.
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         // check if we right now saved a new entry
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             // for reloading upper frame
00032             $this->_aViewData["updatelist"] =  "1";
00033         }
00034 
00035         if ( $soxId != "-1" && isset( $soxId)) {
00036             // load object
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         // Parameter Processing
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         // Voucher Serie Processing
00063 
00064         $oVoucherSerie = oxNew( "oxvoucherserie" );
00065         // if serie already exist use it
00066         if ($soxId != "-1")
00067             $oVoucherSerie->load($soxId);
00068         else
00069             $aSerieParams["oxvoucherseries__oxid"] = null;
00070 
00071 
00072         // select random nr if chosen
00073         //if(oxConfig::getParameter("randomNr"))
00074            // $aSerieParams["oxvoucherseries__oxserienr"] = uniqid($aSerieParams["oxvoucherseries__oxserienr"]);
00075 
00076         // update serie object
00077         //$aSerieParams = $oVoucherSerie->ConvertNameArray2Idx($aSerieParams);
00078         $oVoucherSerie->assign($aSerieParams);
00079         $oVoucherSerie->save();
00080 
00081         // #614A
00082         if ($soxId == "-1") {
00083             // all usergroups
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         // Voucher processing
00096 
00097         $oNewVoucher = oxNew( "oxvoucher" );
00098         //$aVoucherParams = $oNewVoucher->ConvertNameArray2Idx($aVoucherParams);
00099 
00100         // first we update already existing and not used vouchers
00101 
00102         $oExistingVoucherList = $oVoucherSerie->getVoucherList();
00103         // prepare voucher params
00104         foreach ($oExistingVoucherList as $oVoucher) {
00105             $oVoucher->assign($aVoucherParams);
00106             $oVoucher->save();
00107         }
00108 
00109         // second we create new vouchers that are defined in the entry
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         // release all chekbox states
00122         oxSession::deleteVar("randomVoucherNr");
00123         oxSession::deleteVar("randomNr");
00124         $this->_aViewData["updatelist"] = "1";
00125 
00126         // set oxid if inserted
00127         if ($soxId == "-1")
00128             oxSession::setVar("saved_oxid", $oVoucherSerie->oxvoucherseries__oxid->value);
00129 
00130         return $this->autosave();
00131     }
00132 }

Generated on Thu Dec 4 12:04:56 2008 for OXID eShop CE by  doxygen 1.5.5