<?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_SALESINVOICE';
$path_to_root = "../../..";
include($path_to_root . "/includes/db_pager.inc");
include($path_to_root . "/includes/session.inc");

include($path_to_root . "/sales/includes/sales_ui.inc");
include_once($path_to_root . "/reporting/includes/reporting.inc");

$js = "";
if ($SysPrefs->use_popup_windows)
	$js .= get_js_open_window(900, 600);
if (user_use_date_picker())
	$js .= get_js_date_picker();


$_POST['OutstandingOnly'] = false;
page(_($help_context = "Search All Deliveries"), false, false, "", $js);


if (isset($_GET['selected_customer']))
{
	$_POST['customer_id'] = $_GET['selected_customer'];
}
elseif (isset($_POST['selected_customer']))
{
	$_POST['customer_id'] = $_POST['selected_customer'];
}

if(isset($_GET['New'])){
    $_SESSION['D_NOTES'] = Array();
}

$id = find_submit('_chgtpl');
if ($id != -1)
{
    if($_POST['chgtpl'.$id]){
	$_SESSION['D_NOTES'][$id]= $id;
    } else {
       unset($_SESSION['D_NOTES'][$id]); 
    }
	$Ajax->activate('deliveries_tbl');
}
//-----------------------------------------------------------------------------------

start_form(false, false, $_SERVER['PHP_SELF'] ."?OutstandingOnly=".$_POST['OutstandingOnly']);

start_table(TABLESTYLE_NOBORDER);
start_row();

date_cells(_("from:"), 'DeliveryAfterDate', '', null, 1);
date_cells(_("to:"), 'DeliveryToDate', '', null, 1);

submit_cells('SearchOrders', _("Search"),'',_('Select documents'), 'default');

$def_orientation = (user_def_print_orientation() == 1 ? 1 : 0);
$ar = array(
            'PARAM_0' => get_post('DeliveryAfterDate'), 
            'PARAM_1' => get_post('DeliveryToDate'), 
            'PARAM_2' => join(',',$_SESSION['D_NOTES']), 
            'PARAM_3' => $def_orientation, 
            'PARAM_4' => 0);
label_cells(false, 
print_link(_("Print Combined Delivery Notes"), '_consolidate_deliveries', $ar, "", false, 'printlink', 'PrintCombinedDeliveries')
);
$Ajax->activate('_page_body');
hidden('OutstandingOnly', $_POST['OutstandingOnly']);

end_row();

end_table(1);
//---------------------------------------------------------------------------------------------

function trans_view($trans, $trans_no)
{
	return get_customer_trans_view_str(ST_CUSTDELIVERY, $trans['trans_no']);
}

function cons_checkbox($row)
{
	global $trans_type, $page_nested;
	$name = "chgtpl" .$row['trans_no'];
	$value = 0;
        if(in_array($row['trans_no'], $_SESSION['D_NOTES'])){
            $value = 1;
        }

// save also in hidden field for testing during 'Update'

 return checkbox(null, $name, $value, true,
 	_('Add Order to the list of consolidated orders'))
	. hidden('last['.$row['trans_no'].']', $value, false);
}

function prt_link($row)
{
	return print_document_link($row['trans_no'], _("Print"), true, ST_CUSTDELIVERY, ICON_PRINT);
}

function check_overdue($row)
{
   	return date1_greater_date2(Today(), sql2date($row["due_date"])) && 
			$row["Outstanding"]!=0;
}


//------------------------------------------------------------------------------------------------
$sql = get_sql_for_sales_deliveries_view(get_post('DeliveryAfterDate'), get_post('DeliveryToDate'), get_post('customer_id'),	
	get_post('SelectStockFromList'), get_post('StockLocation'), get_post('DeliveryNumber'), get_post('OutstandingOnly'));

$cols = array(
		_("Delivery #") => array('fun'=>'trans_view', 'align'=>'right'), 
		_("Customer"), 
		'branch_code' => 'skip',
		_("Branch") => array('ord'=>''), 
		_("Contact"),
		_("Reference"), 
		_("Cust Ref"), 
		_("Delivery Date") => array('type'=>'date', 'ord'=>''),
		_("Due By") => 'date', 
		_("Delivery Total") => array('type'=>'amount', 'ord'=>''),
		_("Currency") => array('align'=>'center'),
		_("Select") => array('insert'=>true, 'fun'=>'cons_checkbox', 'align'=>'center'),
		array('insert'=>true, 'fun'=>'prt_link')
);

//-----------------------------------------------------------------------------------
if (isset($_SESSION['Batch']))
{
    foreach($_SESSION['Batch'] as $trans=>$del)
    	unset($_SESSION['Batch'][$trans]);
    unset($_SESSION['Batch']);
}

$table =& new_db_pager('deliveries_tbl', $sql, $cols);
//$table->set_marker('check_overdue', _("Marked items are overdue."));
//$table->width = "92%";
$table->page_len = 30;

display_db_pager($table);

end_form();
end_page();

