00001 <?php
00002
00008 class Discount_Main extends oxAdminDetails
00009 {
00016 public function render()
00017 {
00018 $myConfig = $this->getConfig();
00019 parent::render();
00020
00021 $sOxId = oxConfig::getParameter( "oxid");
00022
00023 $sSavedID = oxConfig::getParameter( "saved_oxid");
00024 if ( ($sOxId == "-1" || !isset( $sOxId)) && isset( $sSavedID) ) {
00025 $sOxId = $sSavedID;
00026
00027 oxSession::deleteVar( "saved_oxid");
00028 $this->_aViewData["oxid"] = $sOxId;
00029
00030 $this->_aViewData["updatelist"] = "1";
00031 }
00032
00033 $sITMDisp = "none";
00034
00035 if ( $sOxId != "-1" && isset( $sOxId)) {
00036
00037 $oDiscount = oxNew( "oxdiscount" );
00038 $oDiscount->loadInLang( $this->_iEditLang, $sOxId );
00039
00040 $oOtherLang = $oDiscount->getAvailableInLangs();
00041 if (!isset($oOtherLang[$this->_iEditLang])) {
00042
00043 $oDiscount->loadInLang( key($oOtherLang), $sOxId );
00044 }
00045
00046 $this->_aViewData["edit"] = $oDiscount;
00047
00048
00049
00050 $aLang = array_diff ( oxLang::getInstance()->getLanguageNames(), $oOtherLang );
00051
00052 if ( count( $aLang))
00053 $this->_aViewData["posslang"] = $aLang;
00054
00055 foreach ( $oOtherLang as $id => $language) {
00056 $oLang= new oxStdClass();
00057 $oLang->sLangDesc = $language;
00058 $oLang->selected = ($id == $this->_iEditLang);
00059 $this->_aViewData["otherlang"][$id] = clone $oLang;
00060 }
00061
00062 if ( $oDiscount->oxdiscount__oxaddsumtype->value == "itm")
00063 $sITMDisp = "";
00064
00065
00066 $sITMChosenArtCat = oxConfig::getParameter( "itmartcat");
00067 $this->_aViewData["itmarttree"] = $this->_loadArticleList( $oDiscount->oxdiscount__oxitmartid->value, $sITMChosenArtCat);
00068
00069 $this->_getCategoryTree( "artcattree", $sITMChosenArtCat);
00070 }
00071
00072
00073 $this->_aViewData["itm_disp"] = $sITMDisp;
00074
00075 if ( oxConfig::getParameter("aoc") ) {
00076
00077 $aColumns = array();
00078 include_once 'inc/'.strtolower(__CLASS__).'.inc.php';
00079 $this->_aViewData['oxajax'] = $aColumns;
00080
00081 return "popups/discount_main.tpl";
00082 }
00083 return "discount_main.tpl";
00084 }
00085
00091 public function save()
00092 {
00093
00094 $sOxId = oxConfig::getParameter( "oxid");
00095 $aParams = oxConfig::getParameter( "editval");
00096
00097
00098 $sShopID = oxSession::getVar( "actshop");
00099 $aParams['oxdiscount__oxshopid'] = $sShopID;
00100 $oAttr = oxNew( "oxdiscount" );
00101 if ( $sOxId != "-1")
00102 $oAttr->load( $sOxId );
00103 else
00104 $aParams['oxdiscount__oxid'] = null;
00105
00106
00107 if ( !isset( $aParams['oxdiscount__oxactive']))
00108 $aParams['oxdiscount__oxactive'] = 0;
00109
00110
00111
00112 $oAttr->setLanguage(0);
00113 $oAttr->assign( $aParams );
00114 $oAttr->setLanguage($this->_iEditLang);
00115 $oAttr = oxUtilsFile::getInstance()->processFiles( $oAttr );
00116 $oAttr->save();
00117 $this->_aViewData["updatelist"] = "1";
00118
00119
00120 if ( $sOxId == "-1")
00121 oxSession::setVar( "saved_oxid", $oAttr->oxdiscount__oxid->value );
00122 }
00123
00129 public function saveinnlang()
00130 {
00131
00132 $sOxId = oxConfig::getParameter( "oxid");
00133 $aParams = oxConfig::getParameter( "editval");
00134
00135
00136 $sShopID = oxSession::getVar( "actshop");
00137 $aParams['oxdiscount__oxshopid'] = $sShopID;
00138 $oAttr = oxNew( "oxdiscount" );
00139 if ( $sOxId != "-1")
00140 $oAttr->load( $sOxId);
00141 else
00142 $aParams['oxdiscount__oxid'] = null;
00143
00144 if ( !isset( $aParams['oxdiscount__oxactive']))
00145 $aParams['oxdiscount__oxactive'] = 0;
00146
00147
00148
00149 $oAttr->setLanguage(0);
00150 $oAttr->assign( $aParams);
00151 $oAttr->setLanguage($this->_iEditLang);
00152 $oAttr = oxUtilsFile::getInstance()->processFiles( $oAttr );
00153 $oAttr->save();
00154 $this->_aViewData["updatelist"] = "1";
00155
00156
00157 if ( $sOxId == "-1")
00158 oxSession::setVar( "saved_oxid", $oAttr->oxdiscount__oxid->value );
00159 }
00160
00169 protected function _loadArticleList( $sItmartid, $sITMChosenArtCat)
00170 {
00171 $sArticleTable = getViewName("oxarticles");
00172 $sO2CView = getViewName('oxobject2category');
00173 $sSuffix = oxLang::getInstance()->getLanguageTag();
00174 $sSelect = "select $sArticleTable.oxid, $sArticleTable.oxartnum, $sArticleTable.oxtitle$sSuffix from $sArticleTable ";
00175 if ( !isset( $sITMChosenArtCat) || !$sITMChosenArtCat || $sITMChosenArtCat == "oxrootid") {
00176 $sSelect .= "where $sArticleTable.oxid = '".$sItmartid."' ";
00177 } elseif ( $sITMChosenArtCat != "-1" && $sITMChosenArtCat != "oxrootid") {
00178 $oArticle = oxNew( 'oxarticle' );
00179 $sSelect .= "left join $sO2CView as oxobject2category on $sArticleTable.oxid=oxobject2category.oxobjectid where oxobject2category.oxcatnid = '$sITMChosenArtCat' and ".$oArticle->getSqlActiveSnippet()." order by oxobject2category.oxpos";
00180 } else {
00181 $sSelect .= "left join $sO2CView as oxobject2category on $sArticleTable.oxid=oxobject2category.oxobjectid where oxobject2category.oxcatnid is null AND $sArticleTable.oxparentid = '' ";
00182 }
00183
00184
00185 $oDB = oxDb::getDb();
00186 $aList = array();
00187 $oArt = new stdClass();
00188 $oArt->oxarticles__oxid = new oxField("");
00189 $oArt->oxarticles__oxartnum = new oxField("");
00190 $oArt->oxarticles__oxtitle = new oxField(" -- ");
00191 $aList[] = $oArt;
00192 $rs = $oDB->selectLimit( $sSelect, 1000, 0);
00193 if ($rs != false && $rs->recordCount() > 0) {
00194 while (!$rs->EOF) {
00195 $oArt = new stdClass();
00196 $oArt->oxarticles__oxid = new oxField($rs->fields[0]);
00197 $oArt->oxarticles__oxnid = new oxField($rs->fields[0]);
00198 $oArt->oxarticles__oxartnum = new oxField($rs->fields[1]);
00199 $oArt->oxarticles__oxtitle = new oxField($rs->fields[2]);
00200 if ( $oArt->oxarticles__oxid == $sItmartid)
00201 $oArt->selected = 1;
00202 else
00203 $oArt->selected = 0;
00204 $aList[] = $oArt;
00205 $rs->moveNext();
00206 }
00207 }
00208
00209 return $aList;
00210 }
00211 }