<?php
/**
 * phpaga
 *
 * Bill info
 *
 * Show a bill's information.
 *
 * @author Florian Lanthaler <florian@phpaga.net>
 * @version $Id: bill.php 875 2007-10-21 19:31:31Z 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");

$perms = array(PHPAGA_PERM_VIEW_INVOICES, PHPAGA_PERM_MANAGE_INVOICES);
phpaga_user_pageperm($perms);

$bill_id = null;
$billInfo = array();
$opInfo = array();
$acerror = null;
$action = null;

if (isset ($_REQUEST["id"]) && is_numeric($_REQUEST["id"])) {

    $bill_id = $_REQUEST["id"];

    if (isset($_REQUEST["action"]) && is_numeric($_REQUEST["action"])) {

        $action = $_REQUEST["action"];

        switch($action) {

            case ACTION_DELETE:

                if (phpaga_user_hasperm(PHPAGA_PERM_MANAGE_INVOICES) && is_numeric($bill_id)) {
                    $acerror = phpaga_bills_delete($bill_id);
                    if (!PhPagaError::isError($acerror))
                        header('Location: bills.php');
                }
                break;

            default:
                break;
        }
    }

    phpaga_header(array("menuitem" => "finance"));

    if (PhPagaError::isError($acerror)) {

        if (($acerror->getCode() == PHPAGA_ERR_DB_DUPLICATE) && ($action == ACTION_DELETE))
            phpaga_error(_('This invoice cannot be deleted as it is the base of a recurring invoice. Remove the recurring invoice first.'));
        else
            $acerror->printMessage();
    }

    $billInfo = phpaga_bills_getinfo($bill_id);

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

        $tpl = new psmarty;
        $tpl->assign("perm_invoices", phpaga_user_hasperm(PHPAGA_PERM_MANAGE_INVOICES));
        $tpl->assign("billInfo", $billInfo);
        $tpl->display("bill.tpl.html");
    }

    phpaga_footer();
} else {
    phpaga_header(array("menuitem" => "finance"));
    phpaga_error(PHPAGA_ERR_INVALID_INVOICEID);
    phpaga_footer();
}

?>