<?php
/**********************************************************************
    Copyright (C) FrontAccounting, LLC.
    Released under the terms of the GNU General Public License, GPL, 
    as published by the Free Software Foundation, either version 3 
    of the License, or (at your option) any later version.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
***********************************************************************/
$page_security = 'SA_SUPPTRANSVIEW';
$path_to_root = "../..";
include($path_to_root . "/purchasing/includes/po_class.inc");

include($path_to_root . "/includes/session.inc");
include($path_to_root . "/purchasing/includes/purchasing_ui.inc");

$js = "";
if ($SysPrefs->use_popup_windows)
    $js .= get_js_open_window(900, 500);
page(_($help_context = "View Purchase Order"), true, false, "", $js);


if (!isset($_GET['trans_no']))
{
    die ("<br>" . _("This page must be called with a purchase order number to review."));
}

display_heading(_("Purchase Order") . " #" . $_GET['trans_no']);

$purchase_order = new purch_order;

read_po($_GET['trans_no'], $purchase_order);
echo "<br>";
display_po_summary($purchase_order, true);

start_table(TABLESTYLE2, "width='100%'");
display_heading(_('Truck Details'));
$truck_details = get_truck_details_rows($_GET['trans_no']);
while ($row = db_fetch($truck_details)) {
    start_row();
    if($row['truck_of_no'])
    label_cells(_("Truck #"), $row['truck_of_no'], "class='tableheader2'");
    if($row['builty_number'])
    label_cells(_("Builty #"), $row['builty_number'], "class='tableheader2'");
    if($row['dc_no'])
    label_cells(_("Dc No #"), $row['dc_no'], "class='tableheader2'");
    if($row['no_of_bags'])
    label_cells(_("No Of Bags"), $row['no_of_bags'], "class='tableheader2'");
    if($row['station'])
    label_cells(_("Station"), $row['station'], "class='tableheader2'");
    label_cells(_("Analytics By"), $row['analytics_by'], "class='tableheader2'");
    $status_class = ($row['is_status'] == 0) ? 'label label-success' : 'label label-danger';
    label_cell($pass_field[$row['is_status']], "class='tableheader2 $status_class'");
        // if($row['station'])
    label_cells(_("X-Weight"), $row['x_weight'], "class='tableheader2'");
    // if($row['station'])
    label_cells(_("Mill Weight"), $row['mill_weigh'], "class='tableheader2'");
    end_row();
}
end_table();

start_table(TABLESTYLE, "width='90%'", 6);
echo "<tr><td valign=top>"; // outer table

display_heading2(_("Line Details"));

start_table(TABLESTYLE, "width='100%'");

$th = array(_("Item Code"), _("Item Description"), _("No Of Qty"), _("Unit"), _("Weight"), 
    _("Rate Type"), _("Rate"), _("Price"),
    _("Requested By"), _("Line Total"), _("Quantity Received"), _("Quantity Invoiced"), _("Balance Quantity")); //, _("Quantity Inward"), _("Quantity QC"), _("Quantity Outward")
table_header($th);
$total = $k = 0;
$overdue_items = false;

foreach ($purchase_order->line_items as $stock_item)
{

    $line_total = $stock_item->quantity * $stock_item->price;

    // if overdue and outstanding quantities, then highlight as so
    if (($stock_item->quantity - $stock_item->qty_received > 0) &&
        date1_greater_date2(Today(), $stock_item->req_del_date))
    {
        start_row("class='overduebg'");
        $overdue_items = true;
    }
    else
    {
        alt_table_row_color($k);
    }

    label_cell($stock_item->stock_id);
    label_cell($stock_item->item_description);
    $dec = get_qty_dec($stock_item->stock_id);
    qty_cell($stock_item->no_of_qty, false, $dec);
    label_cell(get_unit_descr($stock_item->unit_id));
    qty_cell($stock_item->quantity, false, $dec);
    // label_cell($stock_item->units);
    amount_decimal_cell($stock_item->rate_type);
    amount_decimal_cell($stock_item->rate);
    amount_decimal_cell($stock_item->price);
    label_cell($stock_item->req_del_date);
    amount_cell($line_total);
    // if($stock_item->qty_inward)
    //    echo get_gl_view_str_cell(ST_INWARD,$purchase_order->order_no ,"   ".$stock_item->qty_inward);
    // else
    // qty_cell($stock_item->qty_inward, false, $dec);

    // qty_cell($stock_item->qc_qty, false, $dec);
    // if($stock_item->qty_outward)
    //    echo get_gl_view_str_cell(ST_OUTWARD,$purchase_order->order_no ,"   ".$stock_item->qty_outward);
    // else
    // qty_cell($stock_item->qty_outward, false, $dec);

    qty_cell($stock_item->qty_received, false, $dec);
    qty_cell($stock_item->qty_inv, false, $dec);
    $balance_qty = $stock_item->quantity-$stock_item->qty_received;
    qty_cell($balance_qty, false, $dec);

    end_row();

    $total += $line_total;
}

$display_sub_tot = number_format2($total,user_price_dec());
label_row(_("Sub Total"), $display_sub_tot,
    "align=right colspan=9", "nowrap align=right",3);

$taxes = $purchase_order->get_taxes();
$tax_total = display_edit_tax_items($taxes, 6, $purchase_order->tax_included,3);

$display_total = price_format(($total + $tax_total));

start_row();
label_cells(_("Amount Total"), $display_total, "colspan=9 align='right'","align='right'");
label_cell('', "colspan=3");
end_row();



end_table();

if ($overdue_items)
    display_note(_("Marked items are overdue."), 0, 0, "class='overduefg'");



$res = get_qc_trans($_GET['trans_no'], ST_SALESORDER);
// if(db_num_rows($res)>0)
// {

//     start_table(TABLESTYLE, "width='50%'", 6);
//     echo "<tr><td valign=top>"; // outer table

//     display_heading2(_("QC Details"));

//     start_table(TABLESTYLE, "width='100%'");

//     $th = array(_("Label Name"), _("Details"));
//     table_header($th);
//     while ($myrow = db_fetch($res))
//     {

//         display_po_qc_details($myrow['label_name'],$myrow['qc_type'],$myrow['value'],$myrow['options']);

//     }    




// end_table();
// $aud_row=get_audit_trail_last(ST_QC_TRANS, $_GET['trans_no']);
// // print_r($aud_row);
//     display_heading2(_("<b>QC By :</b> ".get_user($aud_row['user'])['user_id']));
// }

 $qc_res = get_qc_trans_group_by($_GET['trans_no'], ST_SALESORDER);

if (db_num_rows($qc_res) > 0)
{

    echo "</td><td valign=top>"; // outer table

    display_heading2(_("QC Trans"));
    start_table(TABLESTYLE);
    $th = array(_("#"), _("Date"), _("Qc By"));
    table_header($th);
    while ($myrow = db_fetch($qc_res))
    {
        alt_table_row_color($k);

        label_cell(get_trans_view_str(ST_QC_TRANS,$myrow["trans_no"])); //get_trans_view_str(ST_SUPPRECEIVE,$myrow["id"])
        label_cell(sql2date($myrow["date_time"]));
        $aud_row=get_audit_trail_last(ST_QC_TRANS, $myrow['trans_no']);
        label_cell(get_user($aud_row['user'])['user_id']);
        end_row();
    }
    end_table();
}




//----------------------------------------------------------------------------------------------------

$k = 0;

$grns_result = get_po_grns($_GET['trans_no']);

if (db_num_rows($grns_result) > 0)
{

    echo "</td><td valign=top>"; // outer table

    display_heading2(_("Deliveries"));
    start_table(TABLESTYLE);
    $th = array(_("#"), _("Reference"), _("Delivered On"));
    table_header($th);
    while ($myrow = db_fetch($grns_result))
    {
        alt_table_row_color($k);

        $void = get_voided_entry(ST_SUPPRECEIVE,$myrow["id"]);
        if (!$void) {
        label_cell(get_trans_view_str(ST_SUPPRECEIVE,$myrow["id"]));
        label_cell($myrow["reference"]);
        label_cell(sql2date($myrow["delivery_date"]));
        }
        end_row();
    }
    end_table();
}

$invoice_result = get_po_invoices_credits($_GET['trans_no']);

$k = 0;

if (db_num_rows($invoice_result) > 0)
{

    echo "</td><td valign=top>"; // outer table

    display_heading2(_("Invoices/Credits"));
    start_table(TABLESTYLE);
    $th = array(_("#"), _("Date"), _("Total"));
    table_header($th);
    while ($myrow = db_fetch($invoice_result))
    {
        alt_table_row_color($k);

        $void = get_voided_entry($myrow["type"],$myrow["trans_no"]);
        if (!$void) {
        label_cell(get_trans_view_str($myrow["type"],$myrow["trans_no"]));
        label_cell(sql2date($myrow["tran_date"]));
        amount_cell($myrow["Total"]);
        }
        end_row();
    }
    end_table();


}

echo "</td></tr>";

// $invoice_result = get_po_invoices_credits($_GET['trans_no']);
$invoice_result = get_bank_trans(ST_BANKPAYMENT,null, null, null,$_GET['trans_no']);
$k = 0;

if (db_num_rows($invoice_result) > 0)
{

    echo "</td><td valign=top>"; // outer table

    display_heading2(_("Bank Payment For PO"));
    start_table(TABLESTYLE);
    $th = array(_("GL View"),_("Ref"), _("Date"),_("Memo"), _("Total"));
    table_header($th);
    $sum_amt=0;
    while ($myrow = db_fetch($invoice_result))
    {
// print_r($myrow);
        alt_table_row_color($k);

        label_cell(get_gl_view_str($myrow["type"],$myrow["trans_no"]));
           label_cell($myrow["ref"]);
        label_cell(sql2date($myrow["trans_date"]));
        label_cell(get_comments_string($myrow["type"],$myrow["trans_no"]));
        amount_cell(abs($myrow["amount"]));
        end_row();
         $sum_amt+=abs($myrow["amount"]);
    }
    
       label_cells("Total ",price_format($sum_amt)," colspan=4 class='tableheader2 headingtext' align='center'","align='right'");
    end_table();


}

echo "</td></tr>";

end_table(1); // outer table

display_allocations_to(PT_SUPPLIER, $purchase_order->supplier_id, ST_PURCHORDER, $purchase_order->order_no, $total + $tax_total);

display_heading2(_("User Details"));
 $user_row = get_audit_trail_last_data(ST_PURCHORDER, $_GET['trans_no']);
start_table(TABLESTYLE2, "width='40%'");
label_row(_("user Created By "), $user_row['user_id'] );
end_table();

//----------------------------------------------------------------------------------------------------

end_page(true, false, false, ST_PURCHORDER, $_GET['trans_no']);

