<?php

require_once '../lib/init.php';
if (!$session->isLoggedIn()) {
    redirect_to('../index.php');
}
if (!$ac->hasPermission('delete_rent')) {
    $mesg = "You don't have permission to access this page";
    $session->message($mesg);
    redirect_to($_SERVER['HTTP_REFERER']);
}
if (isset($_GET['tid']) && !empty($_GET['tid']) && (isset($_GET['aid']) && !empty($_GET['aid']))) {
    $tenant_id = (int) $_GET['tid'];
    $arrears_id = (int) $_GET['aid'];
    if (!is_int($tenant_id) || !is_int($arrears_id)) {
        $mesg = "Arrears could not be edited. An invalid value was sent through the URL";
        $session->message($mesg);
        redirect_to("tenants.php");
    } else {
        $arrears = Arrears::findById($arrears_id);
        echo var_dump($arrears);
        if ($arrears->deleteArrears()) {
            $mesg = "Arrears deleted";
            $session->message($mesg);
            redirect_to("tenant_arrears.php?tid={$tenant_id}");
        }
    }
}
 /**
  * Record a payment of an outstanding rent balance
  * @param int $arrears_id The ID used to identify the arrears
  * @param int $amount The amount payed to settle the arrears
  * @param string $start Date specifying start of a month
  * @param string $end Date specifying end of a month
  * @param string $mode The mode of payment for the transaction
  * @param object $session A session object declared in global scope
  * @return boolean
  */
 public function payArrears($arrears_id, $amount, $start, $end, $mode, $session)
 {
     $arrears = Arrears::findById($arrears_id);
     $bal = $arrears->getAmountOwed();
     $bal = (int) $this->_sanitizeMoneyString($bal);
     $db = Database::getInstance();
     $mysqli = $db->getConnection();
     // Initialize object to keep track of transaction details
     $ap = new ArrearsPaid();
     $ap->setTenantId($this->id);
     $ap->setPaymentAmount($amount);
     $ap->setStartPeriod($start);
     $ap->setEndPeriod($end);
     $ap->setDatePaid();
     $ap->generateReceiptNo();
     $ap->setPaymentMode($mode);
     $ap->setReceivingAgent($session);
     if ($amount == $bal) {
         // All arrears cleared
         $status = PaymentStatus::findByPeriod($this->id, $start, $end);
         $status->setStatus(1);
         $mysqli->autocommit(false);
         $ap->save();
         $arrears->delete();
         $_SESSION['arrears_obj'] = $this->arrears_obj = serialize($arrears);
         $status->save();
         if (!$mysqli->commit()) {
             $mysqli->rollback();
             $mysqli->autocommit(true);
             return false;
         } else {
             $mysqli->autocommit(true);
             return true;
         }
     } elseif ($amount < $bal) {
         // Arrears partially cleared
         $new_arrears = (int) $bal - (int) $amount;
         $arrears->setAmountOwed($new_arrears);
         $mysqli->autocommit(false);
         $ap->save();
         $arrears->save();
         if (!$mysqli->commit()) {
             $mysqli->rollback();
             $mysqli->autocommit(true);
             return false;
         } else {
             $mysqli->autocommit(true);
             return true;
         }
     }
 }