Go to the documentation of this file.00001 <?php
00002
00008 class PriceAlarm_Main extends oxAdminDetails
00009 {
00017 public function render()
00018 {
00019 $myConfig = $this->getConfig();
00020
00021
00022 $sql = "select oxarticles.oxid, oxpricealarm.oxprice from oxpricealarm, oxarticles where oxarticles.oxid = oxpricealarm.oxartid and oxpricealarm.oxsended = '000-00-00 00:00:00'";
00023 $rs = oxDb::getDb()->Execute( $sql);
00024 $iAllCnt = 0;
00025
00026 if ($rs != false && $rs->recordCount() > 0) {
00027 while (!$rs->EOF) {
00028 $oArticle = oxNew("oxarticle" );
00029 $oArticle->load($rs->fields[0]);
00030 if ($oArticle->getPrice()->getBruttoPrice() <= $rs->fields[1])
00031 $iAllCnt++;
00032 $rs->moveNext();
00033 }
00034 }
00035 $this->_aViewData['iAllCnt'] = $iAllCnt;
00036
00037 $soxId = oxConfig::getParameter( "oxid");
00038
00039 $sSavedID = oxConfig::getParameter( "saved_oxid");
00040 if ( ($soxId == "-1" || !isset( $soxId)) && isset( $sSavedID) ) {
00041 $soxId = $sSavedID;
00042 oxSession::deleteVar( "saved_oxid");
00043 $this->_aViewData["oxid"] = $soxId;
00044
00045 $this->_aViewData["updatelist"] = "1";
00046 }
00047
00048 if ( $soxId != "-1" && isset( $soxId)) {
00049
00050 $oPricealarm = oxNew( "oxpricealarm" );
00051 $oPricealarm->load( $soxId);
00052
00053 $oDefCurr = $myConfig->getActShopCurrencyObject();
00054 $oArticle = oxNew( "oxarticle" );
00055 $oArticle->load($oPricealarm->oxpricealarm__oxartid->value);
00056
00057 if ( $oArticle->oxarticles__oxparentid->value && !$oArticle->oxarticles__oxtitle->value) {
00058 $oParent = oxNew( "oxarticle" );
00059 $oParent->load($oArticle->oxarticles__oxparentid->value);
00060 $oArticle->oxarticles__oxtitle->setValue($oParent->oxarticles__oxtitle->value." ".$oArticle->oxarticles__oxvarselect->value);
00061 }
00062
00063
00064 $oThisCurr = $myConfig->getCurrencyObject( $oPricealarm->oxpricealarm__oxcurrency->value);
00065
00066 if ( !$oThisCurr ) {
00067 $oThisCurr = $oDefCurr;
00068 $oPricealarm->oxpricealarm__oxcurrency = new oxField( $oDefCurr->name );
00069 }
00070
00071
00072
00073 $oLang = oxLang::getInstance();
00074 $oArticle->oxarticles__oxprice = new oxField($oArticle->getPrice()->getBruttoPrice() * $oThisCurr->rate);
00075 $oArticle->fprice = $oLang->formatCurrency( $oArticle->oxarticles__oxprice->value, $oThisCurr);
00076
00077 $oPricealarm->oxpricealarm__oxprice = new oxField( $oLang->formatCurrency( $oPricealarm->oxpricealarm__oxprice->value, $oThisCurr));
00078
00079 $oPricealarm->oArticle = $oArticle;
00080 $oCur = $myConfig->getCurrencyObject( $oPricealarm->oxpricealarm__oxcurrency->value);
00081
00082
00083 $oUser = null;
00084 if ( $oPricealarm->oxpricealarm__oxuserid->value) {
00085 $oUser = oxNew( "oxuser" );
00086 $oUser->load($oPricealarm->oxpricealarm__oxuserid->value);
00087 $oPricealarm->oUser = $oUser;
00088 }
00089
00090
00091 $oShop = oxNew( "oxshop" );
00092 $oShop->load( $myConfig->getShopId());
00093 $oShop = $this->addGlobalParams( $oShop );
00094
00095 $smarty = oxUtilsView::getInstance()->getSmarty();
00096 $smarty->assign( "shop", $oShop );
00097 $smarty->assign( "product", $oArticle );
00098 $smarty->assign( "bidprice", $oPricealarm->oxpricealarm__oxprice->value);
00099 $smarty->assign( "shopImageDir", $myConfig->getImageUrl( false, false ) );
00100 $smarty->assign( "currency", $oCur );
00101
00102 if ( !( $iLang = $oPricealarm->oxpricealarm__oxlang->value ) ) {
00103 $iLang = 0;
00104 }
00105
00106 $aLanguages = $oLang->getLanguageNames();
00107 $this->_aViewData["edit_lang"] = $aLanguages[$iLang];
00108
00109 $oLetter = new oxStdClass();
00110 $aParams = oxConfig::getParameter( "editval");
00111 if ( isset( $aParams['oxpricealarm__oxlongdesc'] ) && $aParams['oxpricealarm__oxlongdesc'] ) {
00112 $oLetter->oxpricealarm__oxlongdesc = new oxField( stripslashes( $aParams['oxpricealarm__oxlongdesc'] ), oxField::T_RAW );
00113 } else {
00114 $iOldLang = $oLang->getTplLanguage();
00115 $oLang->setTplLanguage( $iLang );
00116 $oLetter->oxpricealarm__oxlongdesc = new oxField( $smarty->fetch( "email_pricealarm_customer.tpl" ), oxField::T_RAW );
00117 $oLang->setTplLanguage( $iOldLang );
00118 }
00119
00120 $this->_aViewData["editor"] = $this->_generateTextEditor( "100%", 300, $oLetter, "oxpricealarm__oxlongdesc", "details.tpl.css");
00121 $this->_aViewData["edit"] = $oPricealarm;
00122 $this->_aViewData["oxid"] = $soxId;
00123 $this->_aViewData["actshop"] = $oShop->getShopId();
00124 }
00125
00126 parent::render();
00127
00128 return "pricealarm_main.tpl";
00129 }
00130
00136 public function send()
00137 {
00138 $blError = true;
00139
00140
00141 if ( oxConfig::getParameter( "oxid" ) ) {
00142 $oPricealarm = oxNew( "oxpricealarm" );
00143 $oPricealarm->load( oxConfig::getParameter( "oxid"));
00144
00145
00146 $oShop = oxNew( "oxshop" );
00147 $oShop->load( $oPricealarm->oxpricealarm__oxshopid->value );
00148
00149 $oArticle = oxNew( "oxarticle" );
00150 $oArticle->load( $oPricealarm->oxpricealarm__oxartid->value);
00151
00152
00153 $oEmail = oxNew( "oxemail" );
00154 $oEmail->setFrom( $oShop->oxshops__oxorderemail->value, $oShop->oxshops__oxname->getRawValue() );
00155 $oEmail->setSmtp( $oShop );
00156
00157 $aParams = oxConfig::getParameter( "editval" );
00158 $sContent = isset( $aParams['oxpricealarm__oxlongdesc'] ) ? stripslashes( $aParams['oxpricealarm__oxlongdesc'] ) : '';
00159 if ( $sContent ) {
00160 $sContent = oxUtilsView::getInstance()->parseThroughSmarty( $sContent, $oPricealarm->getId() );
00161 }
00162
00163 $oEmail->setBody( $sContent );
00164 $oEmail->setSubject( $oShop->oxshops__oxname->getRawValue() );
00165 $oEmail->setRecipient( $oPricealarm->oxpricealarm__oxemail->value, $oPricealarm->oxpricealarm__oxemail->value );
00166 $oEmail->setReplyTo( $oShop->oxshops__oxorderemail->value, $oShop->oxshops__oxname->getRawValue() );
00167
00168
00169 if ( $oEmail->send() ) {
00170 $oPricealarm->oxpricealarm__oxsended->setValue( date( "Y-m-d H:i:s" ) );
00171 $oPricealarm->save();
00172 $blError = false;
00173 }
00174 }
00175
00176 if ( !$blError ) {
00177 $this->_aViewData["mail_succ"] = 1;
00178 } else {
00179 $this->_aViewData["mail_err"] = 1;
00180 }
00181 }
00182 }