예제 #1
0
 /**
  * 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();
 }
예제 #2
0
 /**
  * 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;
 }
예제 #3
0
 /**
  * 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);
     }
 }
예제 #4
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;
 }
예제 #5
0
 /**
  * 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;
 }