<?php
//die(); //20160211 - disabled task sending temporarilly - pj
   ini_set('display_errors', '1');
   error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);

   include_once("_nemo.cls.php");
   include_once("_nemo.details.cls.php");
   include_once("_nemo.list.cls.php");

   $rstDeliveryNotes = $xdb->doQuery("SELECT Count(DeliveryNoteItemID) as ItemCount, DeliveryNoteID, DeliveryNoteDateIn, CustomerID, strCustomer, strCell, strEmail, InvoiceID  FROM tblMailList GROUP BY DeliveryNoteID ORDER BY DeliveryNoteDateIn", 0);
   while($rowDeliveryNote = $xdb->fetch_object($rstDeliveryNotes))
   {
      if(! strlen($rowDeliveryNote->strCustomer) > 0)
      {
         $rowDeliveryNote->strCustomer = "customer";
      }
      //echo "$rowDeliveryNote->ItemCount, $rowDeliveryNote->DeliveryNoteDateIn, $rowDeliveryNote->strCustomer, $rowDeliveryNote->strEmail -- ";
      //ob_flush();
      flush();
      $strEmailItemList = "";
      $intItemNumber = 1;
      $rstItems = $xdb->doQuery("SELECT DeliveryNoteItemID, ProductID, strProductCode, strDeliveryNoteItem FROM tblMailList WHERE DeliveryNoteID = $rowDeliveryNote->DeliveryNoteID");
      while($rowItems = $xdb->fetch_object($rstItems))
      {
         $strEmailItemList .= "$intItemNumber) [$rowItems->strProductCode] $rowItems->strDeliveryNoteItem" . chr(10);
         $intItemNumber++;
      }
      $dueTimestamp = mktime(12, 00, 00, substr($rowDeliveryNote->DeliveryNoteDateIn, 5, 2), substr($rowDeliveryNote->DeliveryNoteDateIn, 8, 2), substr($rowDeliveryNote->DeliveryNoteDateIn, 0, 4));
      $dueDate = date("dmY", $dueTimestamp);
      $dueDateDisplay = date("j F Y", $dueTimestamp);
      $subject = "";
      $message = "";
      if($rowDeliveryNote->ItemCount > 1)
      {
         $s = "s";
      }
      else
      {
         $s = "";
      }

/*
      $nowDateFormatted = new DateTime(date("Y-m-d"));
      $dueDateFormatted = new DateTime(substr($dueDate,4,4)."-".substr($dueDate,2,2)."-".substr($dueDate,0,2));
      $interval = date_diff($nowDateFormatted, $dueDateFormatted);
      $intervalDays = $interval->format('%d Days');//this is the number of days between the due date and today
//*/
      $now = time(); // or your date as well
      $your_date = strtotime(substr($dueDate,4,4)."-".substr($dueDate,2,2)."-".substr($dueDate,0,2));
      $datediff = $now - $your_date;
      $intervalDays = floor($datediff/(60*60*24));

      //echo "InvoiceID: $rowDeliveryNote->InvoiceID";
      $strInvoiceNumber = "";
      if($rowDeliveryNote->InvoiceID > 0)
      {
         $strInvoiceNumber = chr(10) . chr(10) . "This delivery note appears on invoice $rowDeliveryNote->InvoiceID.";
      }

      echo "{".substr($rowDeliveryNote->DeliveryNoteDateIn, 5, 2)."".substr($rowDeliveryNote->DeliveryNoteDateIn, 8, 2)."".substr($rowDeliveryNote->DeliveryNoteDateIn, 0, 4)."}|$dueDate " . date("dmY") . "|----$rowDeliveryNote->strEmail----$rowDeliveryNote->strCell<br>";
      if($intervalDays == -1)
      {
         $subject = "Annie's Angels Reminder: $rowDeliveryNote->ItemCount Item$s Due Tomorrow ($dueDateDisplay)";
         echo $subject;
         $message = "Dear $rowDeliveryNote->strCustomer," . chr(10) . chr(10) ."The following items are due tomorrow ($dueDateDisplay) on delivery note $rowDeliveryNote->DeliveryNoteID:" . chr(10) . $strEmailItemList . $strInvoiceNumber;
      }
      elseif($intervalDays == 0)
      {
         $subject = "Annie's Angels Reminder: $rowDeliveryNote->ItemCount Item$s Due Today ($dueDateDisplay)";
         echo $subject;
         $message = "Dear $rowDeliveryNote->strCustomer," . chr(10) . chr(10) ."The following items are due today ($dueDateDisplay) on delivery note $rowDeliveryNote->DeliveryNoteID:" . chr(10) . $strEmailItemList . $strInvoiceNumber;
      }
      elseif($intervalDays == 1)
      {
         $subject = "Annie's Angels Reminder: $rowDeliveryNote->ItemCount Item$s Were Due Yesterday ($dueDateDisplay)";
         echo $subject;
         $message = "Dear $rowDeliveryNote->strCustomer," . chr(10) . chr(10) ."The following items were due yesterday ($dueDateDisplay) on delivery note $rowDeliveryNote->DeliveryNoteID:" . chr(10) . $strEmailItemList . $strInvoiceNumber;
      }
      elseif($intervalDays > 1)
      {
         $subject = "Annie's Angels Reminder: $rowDeliveryNote->ItemCount Item$s Were Due $intervalDays Days Ago ($dueDateDisplay)";
         echo $subject;
         $message = "Dear $rowDeliveryNote->strCustomer," . chr(10) . chr(10) ."The following items were due $intervalDays days ago ($dueDateDisplay) on delivery note $rowDeliveryNote->DeliveryNoteID:" . chr(10) . $strEmailItemList . $strInvoiceNumber;

      }
      if(strlen($message) > 0)
      {//add signature
         $message .=  chr(10) . chr(10)
         . "Regards," . chr(10)
         . "Annie's Angels". chr(10)
         . "33 Salt River Rd, Salt River". chr(10)
         . "Tel: (021) 447-4050". chr(10)
         . "Fax: 086 - 773 - 8667". chr(10)
         . "South Africa's Foremost Fancydress & Wardrobe Hirers". chr(10) . chr(10)
         . "This is an automated reminder service, if you believe you received this message in error, then please make contact with our office during business hours on Tel: +27214474050 or email to: info@anniesangels.co.za";
         echo $message;
      }
      echo "<br>";

      if(strlen($rowDeliveryNote->strEmail) > 0 && strlen($subject) > 0)
      {
         $anniesEmailAddress = "reminder@anniesangels.co.za";
         $to = $rowDeliveryNote->strEmail;
         $headers = "From: $anniesEmailAddress" . "\r\n" .
             "Reply-To: info@anniesangels.co.za" . "\r\n" .
             "Cc: $anniesEmailAddress" . "\r\n" .
             "X-Mailer: PHP/" . phpversion();
         mail($to, $subject, $message, $headers);
         $xdb->doQuery("INSERT INTO tblSentLog (strType, strTo, strHeaders, strSubject, strBody) VALUES ('Email', ".$xdb->qs($to).", ".$xdb->qs($headers).", ".$xdb->qs($subject).", ".$xdb->qs($message).")");
         echo "sent Email<br>";
      }

      if(strlen($rowDeliveryNote->strCell) > 0 && ($intervalDays == -1 || ($intervalDays % 10 == 0 && $intervalDays > 0)))
      {
         SendSMS($rowDeliveryNote->strCell, $subject);
         $xdb->doQuery("INSERT INTO tblSentLog (strType, strTo, strSubject) VALUES ('SMS', ".$xdb->qs($rowDeliveryNote->strCell).", ".$xdb->qs($subject).")");
         echo "sent SMS<br>";
      }

      if(!(strlen($rowDeliveryNote->strEmail) > 0 || strlen($rowDeliveryNote->strCell) > 0))
      {
         mail("ernie@anniesangels.co.za; rene@anniesangels.co.za; karlien@anniesangels.co.za; mailto:annie@anniesangels.co.za", "Reminder not sent because no contact details found:" . $subject, $message, $headers);
      }

      echo "<br>";

   }
?>