Renamed ifSqlHasZeroNums() to ifSqlHasZeroNumRows() and improved some queries.
[mailer.git] / inc / modules / member / what-order.php
index b064c4cb7a4c36564795579f0800c2255dc94c81..f2822d0401d494caa5a735c4da1063fb6a3379ba 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2013 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2015 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -152,32 +152,15 @@ ORDER BY
                // Are there still receivers left?
                if (sqlNumRows($result) >= postRequestElement('receiver')) {
                        // Load receivers from database
-                       $TEST = array(); $count = '0';
+                       $receiverArray = array(); $count = '0';
                        while ($holidayContent = sqlFetchArray($result)) {
-                               if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
-                                       // Check for his holiday status
-                                       $result_holiday = sqlQueryEscaped("SELECT
-       `id`
-FROM
-       `{?_MYSQL_PREFIX?}_user_holidays`
-WHERE
-       `userid`=%s AND
-       `holiday_start` < UNIX_TIMESTAMP() AND
-       `holiday_end` > UNIX_TIMESTAMP()
-LIMIT 1",
-                                               array($holidayContent['userid']), __FILE__, __LINE__);
-                                       if (sqlNumRows($result_holiday) == 1) {
-                                               // Exclude user who are in holiday
-                                               $holidayContent['userid'] = '0';
-                                       } // END - if
-
-                                       // Free memory
-                                       sqlFreeResult($result_holiday);
-                               } // END - if
+                               // Run fetched data through pre filter chain
+                               $holidayContent = runFilterChain('pre_mail_recipient_check', $holidayContent);
 
+                               // Is still valid id?
                                if (isValidId($holidayContent['userid'])) {
-                                       // Add receiver
-                                       array_push($TEST, $holidayContent['userid']);
+                                       // Add receiver then
+                                       array_push($receiverArray, $holidayContent['userid']);
                                        $count++;
                                } // END - if
                        } // END - while
@@ -186,10 +169,10 @@ LIMIT 1",
                        sqlFreeResult($result);
 
                        // Implode array into string for the sending pool
-                       $receivers = implode($TEST, ';');
+                       $receivers = implode($receiverArray, ';');
 
                        // Count array for maximum sent
-                       $content['target_send'] = count($TEST);
+                       $content['target_send'] = count($receiverArray);
 
                        // Update receiver list
                        sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `receive_mails`=`receive_mails`-1 WHERE `userid` IN (%s) LIMIT %s",
@@ -263,7 +246,7 @@ LIMIT 1",
                                }
 
                                // Make sure only valid id numbers can pass
-                               assert(isValidId($data['id']), 'data[id]=' . $data['id'] . ' is not a valid id number.');
+                               assert((isset($data['id'])) && (isValidId($data['id'])));
 
                                // Id is received so we can redirect the user, used points will be added when he send's out the mail
                                $data['url'] = 'modules.php?module=frametester&amp;order=' . bigintval($data['id']);
@@ -303,7 +286,7 @@ ORDER BY
        `sort` ASC', __FILE__, __LINE__);
 
        // Some categories found?
-       if (!ifSqlHasZeroNums($result_cats)) {
+       if (!ifSqlHasZeroNumRows($result_cats)) {
                // Enought points left?
                if ($totalPoints > 0) {
                        // Initialize array...
@@ -331,43 +314,22 @@ ORDER BY
 
                                $userid_cnt = '0';
                                while (list($userid) = sqlFetchRow($result_userids)) {
-                                       // Check for holiday system
-                                       $isHolidayActive = FALSE;
-                                       if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
-                                               // Check user's holiday status
-                                               $result_holiday = sqlQueryEscaped("SELECT
-       COUNT(`d`.`userid`) AS `cnt`
-FROM
-       `{?_MYSQL_PREFIX?}_user_data` AS `d`
-LEFT JOIN
-       `{?_MYSQL_PREFIX?}_user_holidays` AS `h`
-ON
-       `d`.`userid`=`h`.`userid`
-WHERE
-       `d`.`userid`=%s AND
-       `d`.`receive_mails` > 0 AND
-       `d`.`status`='CONFIRMED' AND
-       `d`.`holiday_active`='Y' AND
-       `h`.`holiday_start` < UNIX_TIMESTAMP() AND
-       `h`.`holiday_end` > UNIX_TIMESTAMP()
-LIMIT 1",
-                                                       array(bigintval($userid)), __FILE__, __LINE__);
-
-                                               // Fetch entry
-                                               list($count) = sqlFetchRow($result_holiday);
-
-                                               // Free memory
-                                               sqlFreeResult($result_holiday);
+                                       // Init filter data array
+                                       $filterData = array(
+                                               'userid'   => $userid,
+                                               'pre_okay' => TRUE,
+                                       );
 
-                                               // Is holiday is active?
-                                               $isHolidayActive = ($count == 1);
-                                       } // END - if
+                                       // Check for holiday system
+                                       $filterData = runFilterChain('pre_category_mail_order_check', $filterData);
 
-                                       if ($isHolidayActive === FALSE) {
+                                       // Still all fine?
+                                       if ($filterData['pre_okay'] === TRUE) {
                                                // Check if the user want's to receive mails?
                                                $result_ver = sqlQueryEscaped("SELECT `zip` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid`=%s" . $HTML . " AND `receive_mails` > 0 AND `status`='CONFIRMED' LIMIT 1",
                                                        array(bigintval($userid)), __FILE__, __LINE__);
 
+                                               // Is an entry found?
                                                if ((sqlNumRows($result_ver) == 1) && (isPostRequestElementSet('zip')) && (isOrderMultiPageEnabled())) {
                                                        // Get zip code
                                                        list($zip) = sqlFetchRow($result_ver);
@@ -397,7 +359,7 @@ LIMIT 1",
                        $result = sqlQuery("SELECT `id`, `price`, `payment`, `mail_title` FROM `{?_MYSQL_PREFIX?}_payments` WHERE `price` > 0 AND `payment` > 0 ORDER BY `payment` ASC", __FILE__, __LINE__);
 
                        $payments = array();
-                       if (!ifSqlHasZeroNums($result)) {
+                       if (!ifSqlHasZeroNumRows($result)) {
                                // Is the error code set?
                                if (isGetRequestElementSet('code')) {
                                        // Display error message