<?php
require_once 'MU_database2024.php';
$dbObject = new MySQLDB;
// what's happening here.
// we're going to get a GUID, a method, an answer, and one or two parameters.
// from this, we'll either set a bunch of data, 
// or set some data and send an email (move out)
// or just send an email (move out)
/*

case "OnTime":
var params = { result: ConfirmType, "PaymentIDs":_paymentIDs, "Method":"<?php print $Method ?>"};

case "NotPaid":
var params = { result: ConfirmType, "PaymentIDs":_paymentIDs, "Method":"<?php print $Method ?>"};

case "Late":
var params = { result: ConfirmType, lateAmount:_lateAmount, "PaymentIDs":_paymentIDs, "Method":"<?php print $Method ?>" };

case "MoveOut":
var params = { result: ConfirmType, "moveOutDate":_moveOutDate, "moveOutStatus":_moveOutStatus , "leaseIDs":_leaseIDs, "Method":"<?php print $Method ?>"};

case "Complicated":
var params = { result: ConfirmType, "complicatedAnswer":_textBox,  "PropertyManagerID":_PropertyManagerID,"leaseIDs":_leaseIDs, "PaymentIDs":_paymentIDs, "Method":"<?php print $Method ?>" };


so in all cases, we get:
MessageID
ConfirmType {OnTime | NotPaid | Late | MoveOut | Complicated}, 
Method (how they clicked) = { SMS | Email | Phone}

and we might get:
lateAmount (how late they were)
moveOutDate
moveOutStatus
Long Form Message
   
*/

try {
    $dbObject->logger->logDebug("landlord_confirm Info: ".print_r($_REQUEST, true));
    $MessageID = $_POST['MessageID'];                
    $ConfirmType = $_POST['result'];
    if (array_key_exists('Method', $_POST)) {
        $responseMethod = $_POST['Method'];
    } else {
        $responseMethod = "";
    }
    if (array_key_exists('lateAmount', $_POST)) {
        $lateAmount = $_POST['lateAmount'];
    } else {
        $lateAmount = "";
    }
    if (array_key_exists('moveOutDate', $_POST)) {
        $moveOutDate = $_POST['moveOutDate'];
    } else {
        $moveOutDate = "";
    }
    if (array_key_exists('moveOutStatus', $_POST)) {
        $moveOutStatus = $_POST['moveOutStatus'];
    } else {
        $moveOutStatus = "";
    }
    if (array_key_exists('moveOutStatus', $_POST)) {
        $moveOutStatus = $_POST['moveOutStatus'];
    } else {
        $moveOutStatus = "";
    }
    if (array_key_exists('moveOutStatusText', $_POST)) {
        $moveOutStatusText = $_POST['moveOutStatusText'];
    } else {
        $moveOutStatusText = "";
    }
    if (array_key_exists('complicatedAnswer', $_POST)) {
        $responseMessage = $_POST['complicatedAnswer'];
    } else {
        $responseMessage = "";
    }
    
    
    switch ($ConfirmType) {
        case "OnTime":
            $retval = MarkAllMonthsPaid($MessageID, $responseMethod, $dbObject);
            break;
        case "NotPaid":
            $retval = SaveNotPaidEvent($MessageID, $responseMethod, $dbObject);
            break;
        case "Late":
            if ($lateAmount == "30") {
                $retval = MarkAllMonthsPaid($MessageID, $responseMethod, $dbObject);
            } else {
                $retval = MarkMonthsLate($MessageID, $lateAmount, $responseMethod, $dbObject);
            }
            break;
        case "MoveOut":
            $retval = SaveMovedOut($MessageID, $moveOutDate, $moveOutStatus, $moveOutStatusText, $responseMessage, $responseMethod, $dbObject);
            break;
        case "Complicated":
            $retval = SaveComplicated($MessageID, $responseMessage, $responseMethod, $dbObject);
            break;
        default:
            $retval = "There was a problem figuring out what you wanted to do.  Please contact support@rentalkharma.com and we'll figure this out.";
            SaveComplicated($MessageID, "Error processing response.", $responseMethod, $dbObject);
    }
} catch (Exception $e) {
    $myMessage = $e->getMessage();
    $dbObject->logger->logError("Error updating lease payment info: ".$myMessage);
}
echo json_encode($retval);


function SaveComplicated($GUID, $Message, $Method, $dbObj)
{
    // grab the contents, save an event to both parties, and email support
    /*
    Template Name: "MU-Complicated"
    Recipient: "support@rentalkharma.com"
    LeaseID - *|LEASEID|*<br>
    Name - *|TENANTNAME|* <br>
    Email - *|TENANTEMAIL|*<br>
    TenantID - *|TENANTID|*<br>
    Roommate - *|ROOMMATENAME|*<br>
    RoommateID - *|ROOMMATEID|*<br>

    <br>
    Comments - *|EXTRAINFO|*<br>
    <br>
    PM ID - *|LANDLORDID|*<br>
    PM Name - *|LANDLORDNAME|*<br>
    PM Email - *|LANDLORDEMAIL|*<br>
    PM Phone - *|LANDLORDPHONE|*<br>
    PM Preferred Contact - *|LANDLORDCONTACT|*<br>*/

    require_once MANDRILL_INIT_LOCATION; // check paths
    $RecipientEmail = "support@rentalkharma.com";
    
    $q0 = "select L.leaseID, L.TenantID, L.PropertyManagerID, concat(GetMonthAbbrevFromID(LP.MonthID),' ',GetYearFromID(LP.MonthID)) UpdateMonth, ";
    $q0=$q0." LP.MonthID, concat(T.FirstName, ' ', T.LastName) TenantName, T.Email, PM_Name(PM.PropertyManagerID) PMName,  ";
    $q0=$q0." PM.Phone, PM.PreferredContact, PM.Email    from lease L inner join lease_payment LP on LP.LeaseID  = L.LeaseID ";
    $q0=$q0." inner join tenant T on T.UserID = L.TenantID inner join propertymanager PM on PM.PropertyManagerID = L.PropertyManagerID where LP.ReminderGUID = ?";
    $LeaseQuery = $dbObj->connection->prepare($q0);
    $LeaseQuery->bindValue(1, $GUID);
    $success = $LeaseQuery->execute();
    
    $LeaseIDs = $LeaseQuery->fetchAll();
    
    if (count($LeaseIDs) > 0) {
        $ThisLease = $LeaseIDs[0];
        
        $LeaseID = $ThisLease[0];
        $TenantID = $ThisLease[1];
        $LandlordID = $ThisLease[2];
        $MonthName = $ThisLease[3];
        $TenantName = $ThisLease[5];
        $TenantEmail = $ThisLease[6];
        $LandlordName = $ThisLease[7];
        $LandlordPhone = $ThisLease[8];
        $LandlordPreferredContact = $ThisLease[9];
        $LandlordEmail = $ThisLease[10];
        
        if (count($LeaseIDs) > 1) { // we're only going to deal with 2 here.
            $ThisLease = $LeaseIDs[1];
            $RoommateID = $ThisLease[1];
            $RoommateName = $ThisLease[5];                
        } else {
            $RoommateID = "";
            $RoommateName = "";                
        }
    }
    
    $TemplateID = "MU-complicated";
    
    $mandrill = new Mandrill(MANDRILL_API_KEY);
    $vars = array();
    array_push($vars, array('name' => 'TENANTNAME', 'content' => $TenantName));
    array_push($vars, array('name' => 'LEASEID', 'content' => $LeaseID));
    array_push($vars, array('name' => 'TENANTEMAIL', 'content' => $TenantEmail));
    array_push($vars, array('name' => 'TENANTID', 'content' => $TenantID));
    array_push($vars, array('name' => 'ROOMMATENAME', 'content' => $RoommateName));
    array_push($vars, array('name' => 'ROOMMATEID', 'content' => $RoommateID));
    array_push($vars, array('name' => 'EXTRAINFO', 'content' => $Message));
    array_push($vars, array('name' => 'LANDLORDID', 'content' => $LandlordID));
    array_push($vars, array('name' => 'LANDLORDNAME', 'content' => $LandlordName));
    array_push($vars, array('name' => 'LANDLORDEMAIL', 'content' => $LandlordEmail));
    array_push($vars, array('name' => 'LANDLORDPHONE', 'content' => $LandlordPhone));
    array_push($vars, array('name' => 'LANDLORDCONTACT', 'content' => $LandlordPreferredContact));

    
    $message = array(
        'to' => array(array('email' => $RecipientEmail, 'name' => $RecipientEmail)),
        'recipient_metadata'=> array(array('rcpt'=> $RecipientEmail, 'values' => array('UserID'=> $RecipientEmail))),
        'merge_vars' => array(array(
            'rcpt' => $RecipientEmail,
            'vars' => $vars
        )));
    $template_content = array();
    $response = $mandrill->messages->sendTemplate($TemplateID, $template_content, $message);
    
    if (!$response) {
        $dbObj->logger->logError("ERROR in mandrill complicated content email.  No error data was received.");
        return "There was an error setting your tenants' rental payment history.  We're on it.";
    } else {
        if (!($response[0]["status"] == "sent" ||$response[0]["status"] == "queued" )) {
            $dbObj->logger->logError("ERROR in mandrill complicated MU email!  Mandrill response: ". print_r($response, true));
            return "There was an error setting your tenants' rental payment history.  We're on it.";
        } else {
            $dbObj->logger->logError("mandrill complicated MU email sent successfully.");
            $LogMessage = "LL/PM reported complicated MU for ".$MonthName.": ".$Message;
            $dbObj->logUserEvent($LogMessage, $TenantID, "MU");
            if ($RoommateID != "") {
                $dbObj->logUserEvent($LogMessage, $RoommateID, "MU");
            }
            $dbObj->logPropertymanagerEvent($LogMessage, $LandlordID, "MU");
            return "Thank you for the information! We'll be in touch soon to get all the details straight.";
        }    
    }
    return "There was an error setting your tenants' rental payment history.  We're on it.";
}

//$MessageID, $moveOutDate, $moveOutStatus, $responseMessage, $responseMethod, $dbObject);
function SaveMovedOut($GUID, $MoveOutDate, $Status, $StatusText, $Message, $Method, $dbObj)
{
    // grab the contents, save an event to both parties, and email support



    require_once MANDRILL_INIT_LOCATION; // check paths
    //$RecipientEmail = "kevinrusch@rentalkharma.com"; 
    $RecipientEmail = "support@rentalkharma.com";
    
    $q0 = "select L.leaseID, L.TenantID, L.PropertyManagerID, concat(GetMonthAbbrevFromID(LP.MonthID),' ',GetYearFromID(LP.MonthID)) UpdateMonth, ";
    $q0=$q0." LP.MonthID, concat(T.FirstName, ' ', T.LastName) TenantName, T.Email, PM_Name(PM.PropertyManagerID) PMName,  ";
    $q0=$q0." PM.Phone, PM.PreferredContact, PM.Email    from lease L inner join lease_payment LP on LP.LeaseID  = L.LeaseID ";
    $q0=$q0." inner join tenant T on T.UserID = L.TenantID inner join propertymanager PM on PM.PropertyManagerID = L.PropertyManagerID where LP.ReminderGUID = ?";
    
    $LeaseQuery = $dbObj->connection->prepare($q0);
    $LeaseQuery->bindValue(1, $GUID);
    $success = $LeaseQuery->execute();
    
    $LeaseIDs = $LeaseQuery->fetchAll();
    
    if (count($LeaseIDs) > 0) {
        $ThisLease = $LeaseIDs[0];
        
        $LeaseID = $ThisLease[0];
        $TenantID = $ThisLease[1];
        $LandlordID = $ThisLease[2];
        $MonthName = $ThisLease[3];
        $TenantName = $ThisLease[5];
        $TenantEmail = $ThisLease[6];
        $LandlordName = $ThisLease[7];
        $LandlordPhone = $ThisLease[8];
        $LandlordPreferredContact = $ThisLease[9];
        $LandlordEmail = $ThisLease[10];
        
        if (count($LeaseIDs) > 1) { // we're only going to deal with 2 here.
            $ThisLease = $LeaseIDs[1];
            $RoommateID = $ThisLease[1];
            $RoommateName = $ThisLease[5];                
        } else {
            $RoommateID = "";
            $RoommateName = "";                
        }
    }
    
    $TemplateID = "move-out-notification";
    
    $MessageText = "Move Out status: ".$Status."/".$StatusText."\r\n PM Email:".$LandlordEmail."\r\n PM Phone: ".$LandlordPhone."\r\n Preferred Contact Method:".$LandlordPreferredContact;
    if ($Message !="") {
        $MessageText = $MessageText."\r\n Extra Info: ".$Message;
    }
    $mandrill = new Mandrill(MANDRILL_API_KEY);
    $vars = array();
    array_push($vars, array('name' => 'TENANTNAME', 'content' => $TenantName));
    array_push($vars, array('name' => 'LEASEID', 'content' => $LeaseID));
    array_push($vars, array('name' => 'TENANTEMAIL', 'content' => $TenantEmail));
    array_push($vars, array('name' => 'TENANTID', 'content' => $TenantID));
    array_push($vars, array('name' => 'ROOMMATENAME', 'content' => $RoommateName));
    array_push($vars, array('name' => 'ROOMMATEID', 'content' => $RoommateID));
    array_push($vars, array('name' => 'MOVEOUTDATE', 'content' => $MoveOutDate));
    array_push($vars, array('name' => 'EXTRAINFO', 'content' => $MessageText));
    array_push($vars, array('name' => 'LANDLORDID', 'content' => $LandlordID));

    
    $message = array(
        'to' => array(array('email' => $RecipientEmail, 'name' => $RecipientEmail)),
        'recipient_metadata'=> array(array('rcpt'=> $RecipientEmail, 'values' => array('UserID'=> $RecipientEmail))),
        'merge_vars' => array(array(

            'rcpt' => $RecipientEmail,
            'vars' => $vars
            )));


    $template_content = array();
    $response = $mandrill->messages->sendTemplate($TemplateID, $template_content, $message);
    
    if (!$response) {
        $dbObj->logger->logError("ERROR in mandrill move-out content email.  No error data was received.");
        return "There was an error setting your tenants' rental payment history.  We're on it.";
    } else {
        if (!($response[0]["status"] == "sent" ||$response[0]["status"] == "queued" )) {
            $dbObj->logger->logError("ERROR in mandrill move-out MU email!  Mandrill response: ". print_r($response, true));
            return "There was an error setting your tenants' rental payment history.  We're on it.";
        } else {
            $dbObj->logger->logError("mandrill move-out MU email sent successfully.");
            $LogMessage = "LL/PM reported moved out ".$MoveOutDate."/".$Status." for ".$MonthName.": ".$Message;
            $dbObj->logUserEvent($LogMessage, $TenantID, "MU");
            if ($RoommateID != "") {
                $dbObj->logUserEvent($LogMessage, $RoommateID, "MU");
            }
            $dbObj->logPropertymanagerEvent($LogMessage, $LandlordID, "MU");
            return "Thank you for the information! We'll be in touch soon to make sure our records are closed properly.";
        }    
    }
    return "There was an error setting your tenants' rental payment history.  We're on it.";
}

function MarkMonthsLate($GUID, $howLate, $Method, $dbObj)
{
	
    try {
        
		$UpdateMessage = "Updated via ".$Method;
		
        switch ($howLate) {
			case "31":
				$LateAmount = "31-60 days";
				break;
			case "61":
				$LateAmount = "61-90 days";
				break;
			case "91":
				$LateAmount = "91-120 days";
				break;
			case "121":
				$LateAmount = "121 or more days";
				break;
		}
		
		require_once MANDRILL_INIT_LOCATION; // check paths
		$RecipientEmail = "support@rentalkharma.com";
		//$RecipientEmail = "kevinrusch@rentalkharma.com";
		
		$q0 = "select L.leaseID, L.TenantID, L.PropertyManagerID, concat(GetMonthAbbrevFromID(LP.MonthID),' ',GetYearFromID(LP.MonthID)) UpdateMonth, ";
		$q0=$q0." LP.MonthID, concat(T.FirstName, ' ', T.LastName) TenantName, T.Email, PM_Name(PM.PropertyManagerID) PMName,  ";
		$q0=$q0." PM.Phone, PM.PreferredContact, PM.Email    from lease L inner join lease_payment LP on LP.LeaseID  = L.LeaseID ";
		$q0=$q0." inner join tenant T on T.UserID = L.TenantID inner join propertymanager PM on PM.PropertyManagerID = L.PropertyManagerID where LP.ReminderGUID = ?";
		$LeaseQuery = $dbObj->connection->prepare($q0);
		$LeaseQuery->bindValue(1, $GUID);
		$success = $LeaseQuery->execute();
		
		$LeaseIDs = $LeaseQuery->fetchAll();
		
		if (count($LeaseIDs) > 0) {
			$ThisLease = $LeaseIDs[0];
			
			$LeaseID = $ThisLease[0];
			$TenantID = $ThisLease[1];
			$LandlordID = $ThisLease[2];
			$MonthName = $ThisLease[3];
			$TenantName = $ThisLease[5];
			$TenantEmail = $ThisLease[6];
			$LandlordName = $ThisLease[7];
			$LandlordPhone = $ThisLease[8];
			$LandlordPreferredContact = $ThisLease[9];
			$LandlordEmail = $ThisLease[10];
			
			if (count($LeaseIDs) > 1) { // we're only going to deal with 2 here.
				$ThisLease = $LeaseIDs[1];
				$RoommateID = $ThisLease[1];
				$RoommateName = $ThisLease[5];                
			} else {
				$RoommateID = "";
				$RoommateName = "";                
			}
		}
		
		$TemplateID = "MU-PaidLate";
		
		$mandrill = new Mandrill(MANDRILL_API_KEY);
		$vars = array();
		array_push($vars, array('name' => 'TENANTNAME', 'content' => $TenantName));
		array_push($vars, array('name' => 'LEASEID', 'content' => $LeaseID));
		array_push($vars, array('name' => 'TENANTEMAIL', 'content' => $TenantEmail));
		array_push($vars, array('name' => 'TENANTID', 'content' => $TenantID));
		array_push($vars, array('name' => 'ROOMMATENAME', 'content' => $RoommateName));
		array_push($vars, array('name' => 'ROOMMATEID', 'content' => $RoommateID));
		
		array_push($vars, array('name' => 'LANDLORDID', 'content' => $LandlordID));
		array_push($vars, array('name' => 'LANDLORDNAME', 'content' => $LandlordName));
		array_push($vars, array('name' => 'LANDLORDEMAIL', 'content' => $LandlordEmail));
		array_push($vars, array('name' => 'LANDLORDPHONE', 'content' => $LandlordPhone));
		array_push($vars, array('name' => 'LANDLORDCONTACT', 'content' => $LandlordPreferredContact));
		array_push($vars, array('name' => 'HOWLATE', 'content' => $LateAmount));
		
		$message = array(
			'to' => array(array('email' => $RecipientEmail, 'name' => $RecipientEmail)),
			'recipient_metadata'=> array(array('rcpt'=> $RecipientEmail, 'values' => array('UserID'=> $RecipientEmail))),
			'merge_vars' => array(array(
				'rcpt' => $RecipientEmail,
				'vars' => $vars
			)));
		$template_content = array();
		$response = $mandrill->messages->sendTemplate($TemplateID, $template_content, $message);
			
		if (!$response) {
			$dbObj->logger->logError("ERROR in mandrill Paid-late content email.  No error data was received.");
			return "There was an error setting your tenants' rental payment history.  We're on it.";
		} else {
			if (!($response[0]["status"] == "sent" ||$response[0]["status"] == "queued" )) {
				$dbObj->logger->logError("ERROR in mandrill paid-late MU email!  Mandrill response: ". print_r($response, true));
				return "There was an error setting your tenants' rental payment history.  We're on it.";
			} else {
				$dbObj->logger->logError("mandrill paid-late MU email sent successfully.");
				$LogMessage = "LL/PM reported rent paid late for ".$MonthName.": ".$Message;
				$dbObj->logUserEvent($LogMessage, $TenantID, "MU");
				if ($RoommateID != "") {
					$dbObj->logUserEvent($LogMessage, $RoommateID, "MU");
				}
				$dbObj->logPropertymanagerEvent($LogMessage, $LandlordID, "MU");
				return "Thank you for the information! We'll be in touch soon to make sure our records are closed properly.";
			}    
		}
		return "There was an error setting your tenants' rental payment history.  We're on it.";
		
		/*
			
		switch ($howLate) {
			case "31":
				$paymentCode = "1";
				$statusCode="71";
				break;
			case "61":
				$paymentCode = "2";
				$statusCode="78";
				break;
			case "91":
				$paymentCode = "3";
				$statusCode="80";
				break;
			case "121":
				$paymentCode = "4";
				$statusCode="82";
				break;
		}
        //$q0 = "select L.leaseID, L.TenantID, L.PropertyManagerID, concat(GetMonthAbbrevFromID(ER.MonthID),' ',GetYearFromID(ER.MonthID)) UpdateMonth, ER.MonthID from lease L inner join email_reminder ER on ER.PropertyManagerID = L.PropertyManagerID where ER.MessageGUID = ?";
        $q0 = "select L2.leaseID, L2.TenantID, L.PropertyManagerID, concat(GetMonthAbbrevFromID(LP.MonthID),' ',GetYearFromID(LP.MonthID)) UpdateMonth, LP.MonthID from lease L ";
        $q0 = $q0." inner join lease_payment LP on LP.LeaseID = L.LeaseID ";
        $q0 = $q0." inner join propertymanager PM on PM.PropertyManagerID = L.PropertyManagerID ";
        $q0 = $q0." inner join lease L2 on L2.PropertyManagerID = L.PropertyManagerID ";
        $q0 = $q0." where LP.ReminderGUID = ?";
        $LeaseQuery = $dbObj->connection->prepare($q0);
        $LeaseQuery->bindValue(1, $GUID);
        $success = $LeaseQuery->execute();
        $LeaseIDs = $LeaseQuery->fetchAll();
        

        if (isset($LeaseIDs)) {   
            $bFirst = 0;
            $sLeaseInClause = "(";
            foreach ($LeaseIDs as $ThisLease) {
                if ($bFirst == 0) {
                    $bFirst=1;
                    $sLeaseInClause = $sLeaseInClause.$ThisLease[0];
                    $PropertyManagerID = $ThisLease[2];
                    $UpdateMonthName = $ThisLease[3];
                    $MonthID = $ThisLease[4];
                } else {
                    $sLeaseInClause = $sLeaseInClause.",".$ThisLease[0];
                }
            }
            $sLeaseInClause=$sLeaseInClause.")";
            
            $q = " update lease_payment LP set LP.LeaseStatusCode=?, LP.PaymentRatingCode=?, LP.VerifiedDate=curdate(), LP.Comment =?"; 
            $q = $q." where LP.MonthID = ?  and LP.LeaseID in " .$sLeaseInClause."  ";
            $MUQuery = $dbObj->connection->prepare($q);
            $MUQuery->bindValue(1, $statusCode);
            $MUQuery->bindValue(2, $paymentCode);
            $MUQuery->bindValue(3, $UpdateMessage); 
            $MUQuery->bindValue(4, $MonthID);
         
            $success = $MUQuery->execute();
            
            
            if ($success==1) {
                $LogMessage = "MU marked ".$howLate." days late for month of ".$UpdateMonthName;
                if ($Method != "") {
                    $LogMessage = $LogMessage.", via ".$Method;
                }
                foreach ($LeaseIDs as $ThisLease) {
                    $dbObj->logUserEvent($LogMessage, $ThisLease[1], "MU");
                }
                if (isset($PropertyManagerID)) {
                    $dbObj->logPropertymanagerEvent($LogMessage." for lease(s) ".$sLeaseInClause, $PropertyManagerID, "MU");
                } else {
                    $dbObj->logPropertymanagerEvent($LogMessage, "!", "MU");
                }
            }
        } 
		*/
    } catch (Exception $e) {
        $myMessage = $e->getMessage();
        $dbObj->logger->logError("Error updating lease payment info: ".$myMessage);
    }
	/*
    if ($success) {
        return "Thank you!  We have updated your tenants' rental payment history, and we'll be back in touch next month.";
    } else {
        return "There was an error setting your tenants' rental payment history.  We're on it.";
    }
	*/
}


function SaveNotPaidEvent($GUID, $Method, $dbObj)
{
    // this one's pretty easy.  We're just going to save an event to both the PM and RR that we got this notification.
    try {
        $UpdateMessage = "Reported late via ".$Method;
        
		require_once MANDRILL_INIT_LOCATION; // check paths
		$RecipientEmail = "support@rentalkharma.com";
		//$RecipientEmail = "kevinrusch@rentalkharma.com";
		
		$q0 = "select L.leaseID, L.TenantID, L.PropertyManagerID, concat(GetMonthAbbrevFromID(LP.MonthID),' ',GetYearFromID(LP.MonthID)) UpdateMonth, ";
		$q0=$q0." LP.MonthID, concat(T.FirstName, ' ', T.LastName) TenantName, T.Email, PM_Name(PM.PropertyManagerID) PMName,  ";
		$q0=$q0." PM.Phone, PM.PreferredContact, PM.Email    from lease L inner join lease_payment LP on LP.LeaseID  = L.LeaseID ";
		$q0=$q0." inner join tenant T on T.UserID = L.TenantID inner join propertymanager PM on PM.PropertyManagerID = L.PropertyManagerID where LP.ReminderGUID = ?";
		$LeaseQuery = $dbObj->connection->prepare($q0);
		$LeaseQuery->bindValue(1, $GUID);
		$success = $LeaseQuery->execute();
		
		$LeaseIDs = $LeaseQuery->fetchAll();
		
		if (count($LeaseIDs) > 0) {
			$ThisLease = $LeaseIDs[0];
			
			$LeaseID = $ThisLease[0];
			$TenantID = $ThisLease[1];
			$LandlordID = $ThisLease[2];
			$MonthName = $ThisLease[3];
			$TenantName = $ThisLease[5];
			$TenantEmail = $ThisLease[6];
			$LandlordName = $ThisLease[7];
			$LandlordPhone = $ThisLease[8];
			$LandlordPreferredContact = $ThisLease[9];
			$LandlordEmail = $ThisLease[10];
			
			if (count($LeaseIDs) > 1) { // we're only going to deal with 2 here.
				$ThisLease = $LeaseIDs[1];
				$RoommateID = $ThisLease[1];
				$RoommateName = $ThisLease[5];                
			} else {
				$RoommateID = "";
				$RoommateName = "";                
			}
		}
		
		$TemplateID = "MU-NotPaid";
		
		$mandrill = new Mandrill(MANDRILL_API_KEY);
		$vars = array();
		array_push($vars, array('name' => 'TENANTNAME', 'content' => $TenantName));
		array_push($vars, array('name' => 'LEASEID', 'content' => $LeaseID));
		array_push($vars, array('name' => 'TENANTEMAIL', 'content' => $TenantEmail));
		array_push($vars, array('name' => 'TENANTID', 'content' => $TenantID));
		array_push($vars, array('name' => 'ROOMMATENAME', 'content' => $RoommateName));
		array_push($vars, array('name' => 'ROOMMATEID', 'content' => $RoommateID));
		
		array_push($vars, array('name' => 'LANDLORDID', 'content' => $LandlordID));
		array_push($vars, array('name' => 'LANDLORDNAME', 'content' => $LandlordName));
		array_push($vars, array('name' => 'LANDLORDEMAIL', 'content' => $LandlordEmail));
		array_push($vars, array('name' => 'LANDLORDPHONE', 'content' => $LandlordPhone));
		array_push($vars, array('name' => 'LANDLORDCONTACT', 'content' => $LandlordPreferredContact));

		
		$message = array(
			'to' => array(array('email' => $RecipientEmail, 'name' => $RecipientEmail)),
			'recipient_metadata'=> array(array('rcpt'=> $RecipientEmail, 'values' => array('UserID'=> $RecipientEmail))),
			'merge_vars' => array(array(
				'rcpt' => $RecipientEmail,
				'vars' => $vars
			)));
		$template_content = array();
		$response = $mandrill->messages->sendTemplate($TemplateID, $template_content, $message);
			
		if (!$response) {
			$dbObj->logger->logError("ERROR in mandrill Not-Paid content email.  No error data was received.");
			return "There was an error setting your tenants' rental payment history.  We're on it.";
		} else {
			if (!($response[0]["status"] == "sent" ||$response[0]["status"] == "queued" )) {
				$dbObj->logger->logError("ERROR in mandrill not-paid MU email!  Mandrill response: ". print_r($response, true));
				return "There was an error setting your tenants' rental payment history.  We're on it.";
			} else {
				$dbObj->logger->logError("mandrill not-paid MU email sent successfully.");
				$LogMessage = "LL/PM reported rent has not been paid for ".$MonthName.": ".$Message;
				$dbObj->logUserEvent($LogMessage, $TenantID, "MU");
				if ($RoommateID != "") {
					$dbObj->logUserEvent($LogMessage, $RoommateID, "MU");
				}
				$dbObj->logPropertymanagerEvent($LogMessage, $LandlordID, "MU");
				return "Thank you for the information! We'll be in touch soon to make sure our records are closed properly.";
			}    
		}
		return "There was an error setting your tenants' rental payment history.  We're on it.";
		/*
		
        //$q0 = "select distinct L.TenantID, L.PropertyManagerID, concat(GetMonthAbbrevFromID(ER.MonthID),' ',GetYearFromID(ER.MonthID)) UpdateMonth, ER.MonthID from lease L inner join email_reminder ER on ER.PropertyManagerID = L.PropertyManagerID where ER.MessageGUID = ?";
        $q0 = "select distinct L2.TenantID, L.PropertyManagerID, concat(GetMonthAbbrevFromID(LP.MonthID),' ',GetYearFromID(LP.MonthID)) UpdateMonth, LP.MonthID from lease L";
        $q0 = $q0." inner join lease_payment LP on LP.LeaseID = L.LeaseID ";
        $q0 = $q0." inner join propertymanager PM on PM.PropertyManagerID = L.PropertyManagerID ";
        $q0 = $q0." inner join lease L2 on L2.PropertyManagerID = L.PropertyManagerID ";
        $q0 = $q0." where LP.ReminderGUID = ?";
        $LeaseQuery = $dbObj->connection->prepare($q0);
        $LeaseQuery->bindValue(1, $GUID);
        $success = $LeaseQuery->execute();
        
        $LeaseIDs = $LeaseQuery->fetchAll();
        

        if (isset($LeaseIDs)) {
            $sTenantInClause ="";    

            foreach ($LeaseIDs as $ThisLease) {
                $PropertyManagerID = $ThisLease[1];
                $UpdateMonthName = $ThisLease[2];
                $sTenantInClause = $sTenantInClause.$ThisLease[0].",";
                $LogMessage = "PM/LL reported NOT PAID for ".$UpdateMonthName;
                if ($Method != "") {
                    $LogMessage = $LogMessage.", via ".$Method;
                }
                $dbObj->logUserEvent($LogMessage, $ThisLease[0], "MU");
            }
            
            if (isset($PropertyManagerID)) {
                $dbObj->logPropertymanagerEvent($LogMessage." for tenant ID ".$sTenantInClause, $PropertyManagerID, "MU");
            } else {
                $dbObj->logPropertymanagerEvent($LogMessage, "!", "MU");
            }
        } 
		*/
    } catch (Exception $e) {
        $myMessage = $e->getMessage();
        $dbObj->logger->logError("Error updating lease payment info: ".$myMessage);
    }
	/*
    if ($success) {
        return "Thank you for the feedback.  We'll be back in touch soon to see if there are any updates.";
    } else {
        return "There was an error setting your tenants' rental payment history.  We're on it.";
    }
	*/
}


function MarkAllMonthsPaid($GUID, $Method, $dbObj)
{
    try {
        $UpdateMessage = "Updated via ".$Method;
        
        //$q0 = "select L.leaseID, L.TenantID, L.PropertyManagerID, concat(GetMonthAbbrevFromID(ER.MonthID),' ',GetYearFromID(ER.MonthID)) UpdateMonth from lease L inner join email_reminder ER on ER.PropertyManagerID = L.PropertyManagerID where ER.MessageGUID = ?";
        $q0 = "select L2.leaseID, L2.TenantID, L.PropertyManagerID, concat(GetMonthAbbrevFromID(LP.MonthID),' ',GetYearFromID(LP.MonthID)) UpdateMonth from lease L ";
        $q0 = $q0." inner join lease_payment LP on LP.LeaseID = L.LeaseID ";
        $q0 = $q0." inner join propertymanager PM on PM.PropertyManagerID = L.PropertyManagerID ";
        $q0 = $q0." inner join lease L2 on L2.PropertyManagerID = L.PropertyManagerID ";
        $q0 = $q0." where LP.ReminderGUID = ?";
        $LeaseQuery = $dbObj->connection->prepare($q0);
        $LeaseQuery->bindValue(1, $GUID);
        $success = $LeaseQuery->execute();
        
        $LeaseIDs = $LeaseQuery->fetchAll();
        
        if (isset($LeaseIDs)) {
            $bFirst = 0;
            $sLeaseInClause = "(";
            foreach ($LeaseIDs as $ThisLease) {
                if ($bFirst == 0) {
                    $bFirst=1;
                    $PropertyManagerID = $ThisLease[2];
                    $UpdateMonthName = $ThisLease[3];
                    $sLeaseInClause = $sLeaseInClause.$ThisLease[0];
                } else {
                    $sLeaseInClause = $sLeaseInClause.",".$ThisLease[0];
                }
            }
            $sLeaseInClause=$sLeaseInClause.")";
            
            $q = " update lease_payment LP set LP.LeaseStatusCode='11', LP.PaymentRatingCode='0', LP.VerifiedDate=curdate(), LP.Comment =?"; 
            $q = $q." where LP.VerifiedDate='1901-01-01' and LP.MonthID <= GetMonthID(CurDate())  and LP.LeaseID in " .$sLeaseInClause."  ";
 
 
            $MUQuery = $dbObj->connection->prepare($q);
            $MUQuery->bindValue(1, $UpdateMessage);
            
            $success = $MUQuery->execute();
            
            if ($success == 1) {
                $LogMessage = "MU marked ON TIME for all months up to ".$UpdateMonthName;
                if ($Method != "") {
                    $LogMessage = $LogMessage.", via ".$Method;
                }
                foreach ($LeaseIDs as $ThisLease) {
                    $dbObj->logUserEvent($LogMessage, $ThisLease[1], "MU");
                }
                if (isset($PropertyManagerID)) {
                    $dbObj->logPropertymanagerEvent($LogMessage." for lease(s) ".$sLeaseInClause, $PropertyManagerID, "MU");
                } else {
                    $dbObj->logPropertymanagerEvent($LogMessage, "!", "MU");
                }
            }
        }
    } catch (Exception $e) {
        $myMessage = $e->getMessage();
        $dbObj->logger->logError("Error updating lease payment info: ".$myMessage);   
    }
    if ($success) {
        return "Thank you!  We have updated your tenants' rental payment history, and we'll be back in touch next month.";
    } else {
        return "There was an error setting your tenants' rental payment history.  We're on it.";
    }
}


    

?>
