<?php
  /**
   * phpaga
   *
   * Bill paid
   *
   * Set a bill's paydate.
   *
   * @author Florian Lanthaler <florian@phpaga.net>
   * @version $Id: bill_paid.php 837 2007-08-26 21:35:19Z florian $
   *
   * Copyright (c) 2002, Florian Lanthaler <florian@phpaga.net>
   *
   * All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions are
   * met:
   *
   *    * Redistributions of source code must retain the above copyright
   *      notice, this list of conditions and the following disclaimer.
   *
   *    * Redistributions in binary form must reproduce the above copyright
   *      notice, this list of conditions and the following disclaimer in
   *      the documentation and/or other materials provided with the
   *      distribution.
   *
   *    * Neither the name of Florian Lanthaler nor the names of his
   *      contributors may be used to endorse or promote products derived
   *      from this software without specific prior written permission.
   *
   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
   * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
   * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
   * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   */

include_once ("./config.php");
phpaga_user_pageperm(PHPAGA_PERM_MANAGE_INVOICES);

$bill_id = null;
$bill_paydate = null;
$update_result = null;
$billInfo = array ();
$rows = array ();

if (!isset($_REQUEST["id"]) || !is_numeric($_REQUEST["id"]))
    phpaga_error(PHPAGA_ERR_INVALID_INVOICEID);
else {

    $bill_id = $_REQUEST["id"];

    if (isset($_REQUEST["bill_paydate"]) && strlen($_REQUEST["bill_paydate"])) {

        $bill_paydate = $_REQUEST["bill_paydate"];
        $update_result = phpaga_bills_setInvoicePaydate($bill_id, $bill_paydate);

        if (!PhPagaError::isError($update_result)) {
            header("Location: bill.php?id=".$bill_id);
            exit;
        }
    }

    phpaga_header(array("calendar" => true, "menuitem" => "finance"));

    if (PhPagaError::isError($update_result))
        $update_result->printMessage();

    $billInfo = phpaga_bills_getinfo($bill_id);

    if (PhPagaError::isError($billInfo))
        $billInfo->printMessage();
    else {

        $result = phpaga_bills_includebmtPlugin($billInfo["bmt_id"]);

        if (PhPagaError::isError($result))
            $billing_err = $result->getFormattedMessage();
        else {

            $tpl = new psmarty;

            $tpl->assign("ACTION", basename($_SERVER["PHP_SELF"]));

            $tpl->assign("BILL_INFO", sprintf(_("Set payment date for invoice %s"),
                                              $billInfo["bill_number"]."/".
                                              $billInfo["bill_date"]));

            $tpl->assign("billInfo", $billInfo);
            $tpl->assign("VAL_PAYDATE", $bill_paydate);

            $tpl->display("bill_paid.tpl.html");
        }
    }

    phpaga_footer ();
}

?>