public function __construct($input) { parent::__construct($input); if (parent::checkHasContents($this->fInput['body']) == true) { parent::getTags(); foreach ($this->tags as $tag => $group) { debug::output("\n\nChecking tag... {$tag} ...\n\n"); $okay = $this->inputValidation($tag); if ($okay == false) { continue; } parent::formatTagArray($tag); } //foreach tag if (!empty($this->errors)) { parent::logErrors(); parent::sendErrors(); } //if errors if (!empty($this->valid)) { foreach ($this->valid as $tag => $array) { debug::output("Checking lost bag report for tag {$tag}"); $lostBag = $this->getLostBagLocation($tag); $this->send['body'] = $this->lostBagMessage($lostBag[0], $tag); parent::sendSMS(); } //foreach valid tag } //if valid tags } else { //no pin number supplied $lostBag = $this->getLostBagLocation(); if (is_array($lostBag)) { foreach ($lostBag as $key => $array) { $this->send['body'] = $this->lostBagMessage($array); parent::sendSMS(); } //foreach lost tag } else { $this->send['body'] = 'There are no reports available for your mobile number.'; parent::sendSMS(); } } //else }
public function __construct($input) { parent::__construct($input); $this->getTags(); foreach ($this->tags as $nothing => $tag) { debug::output("\n\nChecking tag... {$tag} ...\n\n"); $okay = $this->inputValidation($tag); if ($okay == false) { continue; } $this->formatTagArray($tag); } //foreach tag if (!empty($this->errors)) { parent::logErrors(); foreach ($this->errors as $tag => $message) { debug::output($message); $this->send['body'] = $message; parent::sendSMS(); } //foreach error unset($this->errors); } //if errors if (!empty($this->valid)) { foreach ($this->valid as $tag => $array) { debug::output("Cancel tag {$tag}"); $okay = $this->cancelTag($tag); if ($okay == false) { $this->send['body'] = $this->errors[$tag]; parent::sendSMS(); } else { $this->send['body'] = "Tag {$tag} has been canceled."; parent::sendSMS(); } } //foreach valid tag } //if valid tags if (!empty($this->errors)) { parent::logErrors(); } }
public function __construct($input) { parent::__construct($input); /* * Make sure tag is not empty */ if (parent::checkHasContents($this->fInput['body']) == true) { parent::getTags(); foreach ($this->tags as $tag => $group) { debug::output("\n\nChecking tag... {$tag} ...\n\n"); $okay = $this->inputValidation($tag); if ($okay == false) { continue; } parent::formatTagArray($tag); } //foreach tag if (!empty($this->errors)) { parent::logErrors(); parent::sendErrors(); } //if errors if (!empty($this->valid)) { foreach ($this->valid as $tag => $array) { debug::output("Registering tag {$tag}"); $this->logDB->logValidTags($tag, $this->phone_number); if ($array['type'] == 'PAPER') { $this->send['body'] = "Tag {$tag} ready to be activated text PIN ACTIVATE to proceed. Tag valid for 3 months. Text cost £{$array['cost']} each plus standard network rate. Text PIN STOP to cancel."; } else { //plastic $this->send['body'] = "Tag {$tag} ready to be activated text PIN ACTIVATE to proceed. Tag valid for 1 year. Text cost standard network rate each. Text PIN STOP to cancel."; } parent::sendSMS(); } //foreach valid tag } //if valid tags } //not empty }
public function __construct($input, $live) { parent::__construct($input, $live); $sql = "TRUNCATE log_check_lost_bag_inbox_notified"; mysql::i()->query($sql); $host = config::get('sita_imap_host'); $email_address = config::get('sita_imap_email_address'); $password = config::get('sita_imap_password'); $connection = $host . '~' . $email_address . '~' . $password; imap::i($connection); $mc = imap::i()->check(); $result = imap::i()->fetch_overview("1:{$mc->Nmsgs}"); if (!empty($result)) { $this->old_lost_tags_notified = $this->getPreviousSITAEmailsNotified(); $old_lost_tags_invalid = $this->getPreviousSITAEmailsInvalid(); foreach ($result as $overview) { $message_body = imap::i()->fetch_body($overview->msgno); $message_body = utils::removeMultiSpaces($message_body); list($prefix, $tag, $iata, $world_tracer_ref) = explode(' ', $message_body); if (empty($tag)) { debug::output("No tag!\n"); continue; } //skip any tags already handled if ($this->old_lost_tags_notified[$tag]) { debug::output("{$tag} owner previously notified\n"); continue; } debug::output("Checking tag format for tag {$tag}..."); if (parent::checkTagFormat($tag) == true) { debug::output("{$tag} valid format"); //do one query to establish if tag exists in database and is associated with a customer $tag_registered = $this->getCustomer($tag); //check that the tag is registered if ($tag_registered == true) { //Check has user got a registered email address ? if (!empty($this->customer_details['email'])) { //is the account 'active'? if ($this->customer_details['status'] == 'ACTIVE') { debug::output("Tag Active. Notify user by email."); $lostBag = utils::getAirportbyIATA($iata); //Owner recieves email containing the report //****This mail function is for mailing ACTIVE Tag holder email****// $mail = new Mail(); $mail->protocol = config::get('config_mail_protocol'); $mail->parameter = config::get('config_mail_parameter'); $mail->hostname = config::get('config_smtp_host'); $mail->username = config::get('config_smtp_username'); $mail->password = config::get('config_smtp_password'); $mail->port = config::get('config_smtp_port'); $mail->timeout = config::get('config_smtp_timeout'); $mail->setTo($this->customer_details['email']); $mail->setFrom(''); $mail->setSender(''); $mail->setSubject(html_entity_decode(sprintf('Lost Bag Report'))); $report_foundbag_emailtext = "Dear " . $this->customer_details['firstname'] . " <br /> \n\nA lost bag report has been completed and your tag number has been reported.<br /><br />\n\nDetails of the find<br />\n<b>Tag Number: OC </b>" . $this->customer_details['tag_no'] . "<br />\n<b>Name of Finder:</b>" . " " . $this->customer_details['firstname'] . " " . $this->customer_details['lastname'] . "<br />\n<b>Email Address of Finder:</b>" . " " . $this->customer_details['email'] . "<br />\n<b>Telephone Number of Finder:</b>" . " " . $this->customer_details['telephone'] . "<br />\n<b>Mobile Number:</b>" . " " . $this->customer_details['mobile'] . "<br />\n<b>Post Code:</b>" . " " . $this->customer_details['postcode'] . "<br />\n<b>Location of Bag:</b> {$lostBag['airport']}, {$lostBag['place']}, {$lostBag['state']}, {$lostBag['country']}<br /><br />\n\nSincerely</n>\nLost Baggage Team"; $mail->setText(strip_tags($report_foundbag_emailtext)); // echo "<pre>"; // print_r($mail); // die; $mail->send(); // End mail for ACTIVE TagNo $this->logCheckLostBagTagInboxNotified($tag, $iata, $world_tracer_ref, true, 'email', $this->customer_details['email']); $this->logDB->logCheckLostBagEmail($this->customer_details['customer_id'], strip_tags($report_foundbag_emailtext), $this->customer_details['email'], $status, $tag); } else { //not active debug::output("{$tag} inactive. Notify user by email."); /* Owner recieves an email to ask them to contact * who will provide them with the information once they * have paid a fee. * (Would like to automate this so email is kept in * user's acocunt until they have paid a premium of * £15.00 then they can view the report)*/ //****This mail function is for mailing ACTIVE Tag holder email****// $mail = new Mail(); $mail->protocol = config::get('config_mail_protocol'); $mail->parameter = config::get('config_mail_parameter'); $mail->hostname = config::get('config_smtp_host'); $mail->username = config::get('config_smtp_username'); $mail->password = config::get('config_smtp_password'); $mail->port = config::get('config_smtp_port'); $mail->timeout = config::get('config_smtp_timeout'); $mail->setTo($this->customer_details['email']); $mail->setFrom(''); $mail->setSender(''); $mail->setSubject(html_entity_decode(sprintf('Lost Bag Report'))); //print_r($this->customer_details); $report_foundbag_emailtext = "Dear " . $this->customer_details['firstname'] . " <br /> \nA lost bag report has been completed and your tag number has been reported.<br /><br /> \nBut we are sorry, your tag is not ACTIVE please call " . config::get('lost_bag_number') . " to reactivate your tag.<br /><br />\n\nSincerely</n>\nLost Baggage Team"; $mail->setText(strip_tags($report_foundbag_emailtext)); // echo "<pre>"; // print_r($mail); // die; $mail->send(); // End mail for ACTIVE TagNo $this->logCheckLostBagTagInboxNotified($tag, $iata, $world_tracer_ref, true, 'email', $this->customer_details['email']); $this->logDB->logCheckLostBagEmail($this->customer_details['customer_id'], strip_tags($report_foundbag_emailtext), $this->customer_details['email'], $status, $tag); } //else } else { //not registered debug::output("{$tag} has no registered email address "); //is the account 'active'? if ($this->checkTagNoStatus($tag) == 'ACTIVE') { debug::output("{$tag} active\n"); //Owner receives SMS to say a report is waiting for you, please text YES to receive the details, text costs £1.50 or NO to cancel $this->send['destinations'] = utils::formatPhoneNumber($this->customer_details['telephone']); $this->logCheckLostBagTagInboxNotified($tag, $iata, $world_tracer_ref, true, 'sms', $this->send['destinations']); $this->send['body'] = 'Lost bag report available for tag ' . $tag . '. For details text PIN REPORT. Text costs £1.50 each plus standard network rate. Text PIN STOP to cancel.'; parent::sendSMS(); } else { debug::output("{$tag} inactive\n"); //not active /*user recieves text to say account not active please contact * directly on [telephone number] potentially we automate this and * have them go online to pay the fee before receiving the info - * your thoughts would be helpful*/ $this->send['destinations'] = utils::formatPhoneNumber($this->customer_details['telephone']); $this->send['body'] = 'Lost bag report available for EXPIRED tag ' . $tag . '. Please contact customer services on ' . config::get('lost_bag_number') . ' Text PIN STOP to cancel.'; parent::sendSMS(); $this->logCheckLostBagTagInboxNotified($tag, $iata, $world_tracer_ref, true, 'sms', $this->send['destinations']); } //else } //else not registered } else { debug::output("{$tag} not registered to customer in database"); if (!$old_lost_tags_invalid[$tag]) { $this->logDB->logCheckLostBagInvalidTag($tag); //only log the tag once } } } else { debug::output("{$tag} invalid format\n"); $this->logDB->logCheckLostBagInvalidTag($tag, $old_lost_tags_invalid); } unset($this->send); } //for each message } else { debug::output("No messages in Inbox\n"); } //empty imap::i()->close(); }
public function __construct($input) { parent::__construct($input); if ($this->getValidTags() == false) { debug::output("There are no tags pending activation against this phone number: {$this->phone_number}"); $this->send['body'] = 'There are no tags pending activation against this phone number. For support call customer services on ' . config::get('customer_services'); parent::sendSMS(); } else { foreach ($this->tags as $tag => $array) { debug::output("Checking tag... {$tag} ..."); $okay = $this->tagValidation($tag); if ($okay == false) { continue; } $this->valid[$tag] = $array; } //foreach tag if (!empty($this->errors)) { parent::logErrors(); parent::sendErrors(); } //if errors if (!empty($this->valid)) { $this->customer = new customer($this->logDB); debug::output("Create customer account..."); $result = $this->customer->createCustomerAccount($this->phone_number); if ($result['success'] == false) { debug::output($result['message']); $this->errors[] = $result['message']; } else { //iterate through each tag and register each tag foreach ($this->valid as $tag => $array) { debug::output("Register tag {$tag}"); $this->registerTag($tag); parent::updateTagGroup($tag); $this->logDB->unLogValidTags($tag); $registerd[$tag]['message'] = 'Tag ' . $tag . ' activated successfully. '; $registerd[$tag]['tag_type'] = $array['tag_type']; } //foreach tag } if (!empty($this->errors)) { parent::sendErrors(); parent::logErrors(); } //if errors /* * send as few sms as possible each time */ if (!empty($registerd)) { foreach ($registerd as $tag => $array) { debug::output($message); $activation_m .= $array['message']; //$array['tag_type']; use type to determine premium or free sms } //foreach valid $this->send['body'] = $activation_m . $result['message']; $this->sendSMS(); } //if not empty } //else } //else }