/** * Method is called when order email is sent to owner. * * @param oxUser $user * @param oxOrder $order */ protected function onOrderEmailToOwnerSent($user, $order) { // add user history $remark = oxNew("oxRemark"); $remark->oxremark__oxtext = new oxField($this->getAltBody(), oxField::T_RAW); $remark->oxremark__oxparentid = new oxField($user->getId(), oxField::T_RAW); $remark->oxremark__oxtype = new oxField("o", oxField::T_RAW); $remark->save(); }
/** * Get user payment by payment id * * @param oxUser $oUser user object * @param string $sPaymentType payment type * * @return bool */ public function getPaymentByPaymentType($oUser = null, $sPaymentType = null) { $blGet = false; if ($oUser && $sPaymentType != null) { $oDb = oxDb::getDb(); $sQ = 'select oxpaymentid from oxorder where oxpaymenttype=' . $oDb->quote($sPaymentType) . ' and oxuserid=' . $oDb->quote($oUser->getId()) . ' order by oxorderdate desc'; if ($sOxId = $oDb->getOne($sQ)) { $blGet = $this->load($sOxId); } } return $blGet; }
/** * Sets user registration action to Emos. * * @param Emos $oEmos * @param oxUser $oUser */ private function _setUserRegistration($oEmos, $oUser) { $iError = oxRegistry::getConfig()->getRequestParameter('newslettererror'); $iSuccess = oxRegistry::getConfig()->getRequestParameter('success'); if ($iError && $iError < 0) { $oEmos->addRegister($oUser ? $oUser->getId() : 'NULL', abs($iError)); } if ($iSuccess && $iSuccess > 0 && $oUser) { $oEmos->addRegister($oUser->getId(), 0); } }
/** * Creates delivery set list filter SQL to load current state delivery set list * * @param oxUser $oUser user object * @param string $sCountryId user country id * * @return string */ protected function _getFilterSelect($oUser, $sCountryId) { $sTable = getViewName('oxdeliveryset'); $sQ = "select {$sTable}.* from {$sTable} "; $sQ .= "where " . $this->getBaseObject()->getSqlActiveSnippet() . ' '; // defining initial filter parameters $sUserId = null; $aGroupIds = null; // checking for current session user which gives additional restrictions for user itself, users group and country if ($oUser) { // user ID $sUserId = $oUser->getId(); // user groups ( maybe would be better to fetch by function oxuser::getUserGroups() ? ) $aGroupIds = $oUser->getUserGroups(); } $aIds = array(); if (count($aGroupIds)) { foreach ($aGroupIds as $oGroup) { $aIds[] = $oGroup->getId(); } } $sUserTable = getViewName('oxuser'); $sGroupTable = getViewName('oxgroups'); $sCountryTable = getViewName('oxcountry'); $oDb = oxDb::getDb(); $sCountrySql = $sCountryId ? "EXISTS(select oxobject2delivery.oxid from oxobject2delivery where oxobject2delivery.oxdeliveryid={$sTable}.OXID and oxobject2delivery.oxtype='oxdelset' and oxobject2delivery.OXOBJECTID=" . $oDb->quote($sCountryId) . ")" : '0'; $sUserSql = $sUserId ? "EXISTS(select oxobject2delivery.oxid from oxobject2delivery where oxobject2delivery.oxdeliveryid={$sTable}.OXID and oxobject2delivery.oxtype='oxdelsetu' and oxobject2delivery.OXOBJECTID=" . $oDb->quote($sUserId) . ")" : '0'; $sGroupSql = count($aIds) ? "EXISTS(select oxobject2delivery.oxid from oxobject2delivery where oxobject2delivery.oxdeliveryid={$sTable}.OXID and oxobject2delivery.oxtype='oxdelsetg' and oxobject2delivery.OXOBJECTID in (" . implode(', ', oxDb::getDb()->quoteArray($aIds)) . ") )" : '0'; $sQ .= "and (\n select\n if(EXISTS(select 1 from oxobject2delivery, {$sCountryTable} where {$sCountryTable}.oxid=oxobject2delivery.oxobjectid and oxobject2delivery.oxdeliveryid={$sTable}.OXID and oxobject2delivery.oxtype='oxdelset' LIMIT 1),\n {$sCountrySql},\n 1) &&\n if(EXISTS(select 1 from oxobject2delivery, {$sUserTable} where {$sUserTable}.oxid=oxobject2delivery.oxobjectid and oxobject2delivery.oxdeliveryid={$sTable}.OXID and oxobject2delivery.oxtype='oxdelsetu' LIMIT 1),\n {$sUserSql},\n 1) &&\n if(EXISTS(select 1 from oxobject2delivery, {$sGroupTable} where {$sGroupTable}.oxid=oxobject2delivery.oxobjectid and oxobject2delivery.oxdeliveryid={$sTable}.OXID and oxobject2delivery.oxtype='oxdelsetg' LIMIT 1),\n {$sGroupSql},\n 1)\n )"; //order by $sQ .= " order by {$sTable}.oxpos"; return $sQ; }
/** * Returns country id which VAT should be applied to. * Depending on configuration option either user billing country or shipping country (if available) is returned. * * @param oxUser $oUser user object * * @return string */ protected function _getVatCountry(oxUser $oUser) { $blUseShippingCountry = $this->getConfig()->getConfigParam("blShippingCountryVat"); if ($blUseShippingCountry) { $aAddresses = $oUser->getUserAddresses($oUser->getId()); $sSelectedAddress = $oUser->getSelectedAddressId(); if (isset($aAddresses[$sSelectedAddress])) { return $aAddresses[$sSelectedAddress]->oxaddress__oxcountryid->value; } } return $oUser->oxuser__oxcountryid->value; }