X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sales%2Finquiry%2Fsales_deliveries_view.php;h=3b318997cf8e43323e29ad1f7c327497f45e944d;hb=6ff34c1474ec3724609905319b3bbc087b49451e;hp=0a08e3f01deeded2d4f98be28c01fc3f9e6b446f;hpb=1b851b0045929a27a8e8bdfba48c22ae1a578969;p=fa-stable.git diff --git a/sales/inquiry/sales_deliveries_view.php b/sales/inquiry/sales_deliveries_view.php index 0a08e3f0..3b318997 100644 --- a/sales/inquiry/sales_deliveries_view.php +++ b/sales/inquiry/sales_deliveries_view.php @@ -1,260 +1,204 @@ . +***********************************************************************/ +$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 ($use_popup_windows) +if ($SysPrefs->use_popup_windows) $js .= get_js_open_window(900, 600); -if ($use_date_picker) +if (user_use_date_picker()) $js .= get_js_date_picker(); -if (isset($_GET['OutstandingOnly']) && ($_GET['OutstandingOnly'] == true)) +if (isset($_GET['OutstandingOnly']) && ($_GET['OutstandingOnly'] == true)) { $_POST['OutstandingOnly'] = true; - page(_("Search Not Invoiced Deliveries"), false, false, "", $js); -} -else + page(_($help_context = "Search Not Invoiced Deliveries"), false, false, "", $js); +} +else { $_POST['OutstandingOnly'] = false; - page(_("Search All Deliveries"), false, false, "", $js); + page(_($help_context = "Search All Deliveries"), false, false, "", $js); } if (isset($_GET['selected_customer'])) { - $selected_customer = $_GET['selected_customer']; -} + $_POST['customer_id'] = $_GET['selected_customer']; +} elseif (isset($_POST['selected_customer'])) { - $selected_customer = $_POST['selected_customer']; + $_POST['customer_id'] = $_POST['selected_customer']; } -else - $selected_customer = -1; - -if(isset($_POST['BatchInvoice'])) { -// checking batch integrity +if (isset($_POST['BatchInvoice'])) +{ + // checking batch integrity $del_count = 0; - foreach($_SESSION['Batch'] as $delivery) { - $checkbox = 'Sel_'.$delivery['trans']; - if(check_value($checkbox)) { - if(!$del_count) { - $del_customer = $delivery['cust']; - $del_branch = $delivery['branch']; - } else { - if($del_customer!=$delivery['cust'] || $del_branch != $delivery['branch']) { - $del_count=0; break; + if (isset($_POST['Sel_'])) { + foreach($_POST['Sel_'] as $delivery => $branch) { + $checkbox = 'Sel_'.$delivery; + if (check_value($checkbox)) { + if (!$del_count) { + $del_branch = $branch; + } + else { + if ($del_branch != $branch) { + $del_count=0; + break; + } + } + $selected[] = $delivery; + $del_count++; + } } - } - $selected[] = $delivery['trans']; - $del_count++; - } - } - - if(!$del_count) { - display_error(_('For batch invoicing you should + } + if (!$del_count) { + display_error(_('For batch invoicing you should select at least one delivery. All items must be dispatched to the same customer branch.')); } else { - $_SESSION['DeliveryBatch'] = $selected; - meta_forward($path_to_root . '/sales/customer_invoice.php','BatchInvoice=Yes'); + $_SESSION['DeliveryBatch'] = $selected; + meta_forward($path_to_root . '/sales/customer_invoice.php','BatchInvoice=Yes'); } } + +//----------------------------------------------------------------------------------- +if (get_post('_DeliveryNumber_changed')) +{ + $disable = get_post('DeliveryNumber') !== ''; + + $Ajax->addDisable(true, 'DeliveryAfterDate', $disable); + $Ajax->addDisable(true, 'DeliveryToDate', $disable); + $Ajax->addDisable(true, 'StockLocation', $disable); + $Ajax->addDisable(true, '_SelectStockFromList_edit', $disable); + $Ajax->addDisable(true, 'SelectStockFromList', $disable); + // if search is not empty rewrite table + if ($disable) { + $Ajax->addFocus(true, 'DeliveryNumber'); + } else + $Ajax->addFocus(true, 'DeliveryAfterDate'); + $Ajax->activate('deliveries_tbl'); +} + //----------------------------------------------------------------------------------- -start_form(false, false, $_SERVER['PHP_SELF'] ."?OutstandingOnly=" . $_POST['OutstandingOnly'] .SID); +start_form(false, false, $_SERVER['PHP_SELF'] ."?OutstandingOnly=".$_POST['OutstandingOnly']); -start_table("class='tablestyle_noborder'"); +start_table(TABLESTYLE_NOBORDER); start_row(); -ref_cells(_("#:"), 'DeliveryNumber'); -date_cells(_("from:"), 'DeliveryAfterDate', null, -30); -date_cells(_("to:"), 'DeliveryToDate', null, 1); +ref_cells(_("#:"), 'DeliveryNumber', '',null, '', true); +date_cells(_("from:"), 'DeliveryAfterDate', '', null, -user_transaction_days()); +date_cells(_("to:"), 'DeliveryToDate', '', null, 1); locations_list_cells(_("Location:"), 'StockLocation', null, true); +end_row(); + +end_table(); +start_table(TABLESTYLE_NOBORDER); +start_row(); stock_items_list_cells(_("Item:"), 'SelectStockFromList', null, true); -submit_cells('SearchOrders', _("Search")); +customer_list_cells(_("Select a customer: "), 'customer_id', null, true, true); + +submit_cells('SearchOrders', _("Search"),'',_('Select documents'), 'default'); hidden('OutstandingOnly', $_POST['OutstandingOnly']); end_row(); -end_table(); - +end_table(1); //--------------------------------------------------------------------------------------------- -if (isset($_POST['SelectStockFromList']) && ($_POST['SelectStockFromList'] != "") && - ($_POST['SelectStockFromList'] != reserved_words::get_all())) +function trans_view($trans, $trans_no) { - $selected_stock_item = $_POST['SelectStockFromList']; -} -else -{ - unset($selected_stock_item); + return get_customer_trans_view_str(ST_CUSTDELIVERY, $trans['trans_no']); } -//--------------------------------------------------------------------------------------------- -$sql = "SELECT ".TB_PREF."debtor_trans.trans_no, " - .TB_PREF."debtors_master.curr_code, " - .TB_PREF."debtors_master.name, " - .TB_PREF."cust_branch.br_name, " - .TB_PREF."debtor_trans.reference, " - .TB_PREF."debtor_trans.tran_date, " - .TB_PREF."debtor_trans.due_date, " - .TB_PREF."sales_orders.customer_ref, " - .TB_PREF."sales_orders.deliver_to, "; -$sql .= " Sum(".TB_PREF."debtor_trans_details.qty_done-" - .TB_PREF."debtor_trans_details.quantity) AS Outstanding, "; -$sql .= " Sum(".TB_PREF."debtor_trans_details.qty_done) AS Partial, "; - -$sql .= " Sum(-".TB_PREF."debtor_trans_details.unit_price*" - .TB_PREF."debtor_trans_details.quantity*(1-" - .TB_PREF."debtor_trans_details.discount_percent)) AS DeliveryValue - FROM " - .TB_PREF."sales_orders, " - .TB_PREF."debtor_trans, " - .TB_PREF."debtor_trans_details, " - .TB_PREF."debtors_master, " - .TB_PREF."cust_branch - WHERE " - .TB_PREF."sales_orders.order_no = ".TB_PREF."debtor_trans.order_ AND " - .TB_PREF."debtor_trans.debtor_no = ".TB_PREF."debtors_master.debtor_no - AND ".TB_PREF."debtor_trans.type = 13 - AND ".TB_PREF."debtor_trans_details.debtor_trans_no = ".TB_PREF."debtor_trans.trans_no - AND ".TB_PREF."debtor_trans_details.debtor_trans_type = ".TB_PREF."debtor_trans.type - AND ".TB_PREF."debtor_trans.branch_code = ".TB_PREF."cust_branch.branch_code - AND ".TB_PREF."debtor_trans.debtor_no = ".TB_PREF."cust_branch.debtor_no "; - -//figure out the sql required from the inputs available -if (isset($_POST['DeliveryNumber']) && $_POST['DeliveryNumber'] != "") +function batch_checkbox($row) { - $sql .= " AND ".TB_PREF."debtor_trans.trans_no LIKE '%". $_POST['DeliveryNumber'] ."' GROUP BY ".TB_PREF."debtor_trans.trans_no"; -} -else -{ - - $date_after = date2sql($_POST['DeliveryAfterDate']); - $date_before = date2sql($_POST['DeliveryToDate']); - - $sql .= " AND ".TB_PREF."debtor_trans.tran_date >= '$date_after'"; - $sql .= " AND ".TB_PREF."debtor_trans.tran_date <= '$date_before'"; - - if ($selected_customer != -1) - $sql .= " AND ".TB_PREF."debtor_trans.debtor_no='" . $selected_customer . "' "; - - if (isset($selected_stock_item)) - $sql .= " AND ".TB_PREF."debtor_trans_details.stock_id='". $selected_stock_item ."' "; + $name = "Sel_" .$row['trans_no']; + return $row['Done'] ? '' : + "" +// add also trans_no => branch code for checking after 'Batch' submit + ."\n"; +} - if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != reserved_words::get_all()) - $sql .= " AND ".TB_PREF."sales_orders.from_stk_loc = '". $_POST['StockLocation'] . "' "; +function edit_link($row) +{ + return $row["Outstanding"]==0 ? '' : + trans_editor_link(ST_CUSTDELIVERY, $row['trans_no']); +} - if ($_POST['OutstandingOnly'] == true) { - $sql .= " AND -".TB_PREF."debtor_trans_details.qty_done < -".TB_PREF."debtor_trans_details.quantity "; - } - - $sql .= " GROUP BY ".TB_PREF."debtor_trans.trans_no "; -// .TB_PREF."debtor_trans.debtor_no, " -// .TB_PREF."debtor_trans.branch_code, " -// ".TB_PREF."sales_orders.customer_ref, " -// .TB_PREF."debtor_trans.tran_date"; +function prt_link($row) +{ + return print_document_link($row['trans_no'], _("Print"), true, ST_CUSTDELIVERY, ICON_PRINT); +} -} //end no delivery number selected +function invoice_link($row) +{ + return $row["Outstanding"]==0 ? '' : + pager_link(_('Invoice'), "/sales/customer_invoice.php?DeliveryNumber=" + .$row['trans_no'], ICON_DOC); +} -$result = db_query($sql,"No deliveries were returned"); +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'), + submit('BatchInvoice',_("Batch"), false, _("Batch Invoicing")) + => array('insert'=>true, 'fun'=>'batch_checkbox', 'align'=>'center'), + array('insert'=>true, 'fun'=>'edit_link'), + array('insert'=>true, 'fun'=>'invoice_link'), + array('insert'=>true, 'fun'=>'prt_link') +); //----------------------------------------------------------------------------------- -if(isset($_SESSION['Batch'])) { - foreach($_SESSION['Batch'] as $trans=>$del) unset($_SESSION['Batch'][$trans]); +if (isset($_SESSION['Batch'])) +{ + foreach($_SESSION['Batch'] as $trans=>$del) + unset($_SESSION['Batch'][$trans]); unset($_SESSION['Batch']); } -if ($result) -{ - /*show a table of the deliveries returned by the sql */ +$table =& new_db_pager('deliveries_tbl', $sql, $cols); +$table->set_marker('check_overdue', _("Marked items are overdue.")); - start_table("$table_style colspan=7 width=95%"); - $th = array(_("Delivery #"), _("Customer"), _("Branch"), _("Reference"), _("Delivery Date"), - _("Due By"), _("Delivery Total"), _("Currency"), - submit('BatchInvoice','Batch Inv', false), - "", ""); - table_header($th); +//$table->width = "92%"; - $j = 1; - $k = 0; //row colour counter - $overdue_items = false; - while ($myrow = db_fetch($result)) - { - $_SESSION['Batch'][] = array('trans'=>$myrow["trans_no"], - 'cust'=>$myrow["name"],'branch'=>$myrow["br_name"] ); - - $view_page = get_customer_trans_view_str(13, $myrow["trans_no"]); - $formated_del_date = sql2date($myrow["tran_date"]); - $formated_due_date = sql2date($myrow["due_date"]); - $not_closed = $myrow["Outstanding"]!=0; +display_db_pager($table); - // if overdue orders, then highlight as so - - if (date1_greater_date2(Today(), $formated_due_date) && $not_closed ) - { - start_row("class='overduebg'"); - $overdue_items = true; - } - else - { - alt_table_row_color($k); - } - - label_cell($view_page); - label_cell($myrow["name"]); - label_cell($myrow["br_name"]); - label_cell($myrow["reference"]); - label_cell($formated_del_date); - label_cell($formated_due_date); - amount_cell($myrow["DeliveryValue"]); - label_cell($myrow["curr_code"]); - if(!$myrow['Partial']) - check_cells(null,'Sel_'. $myrow['trans_no'],0,false); - else - label_cell(""); - if ($_POST['OutstandingOnly'] == true || $not_closed) - { - $modify_page = $path_to_root . "/sales/customer_delivery.php?" . SID . "ModifyDelivery=" . $myrow["trans_no"]; - $invoice_page = $path_to_root . "/sales/customer_invoice.php?" . SID . "DeliveryNumber=" .$myrow["trans_no"]; - label_cell("" . _("Edit") . ""); - - label_cell($not_closed ? "" . _("Invoice") . "" : ''); - - } - else - { - label_cell(""); - label_cell(""); - } - end_row();; - - $j++; - If ($j == 12) - { - $j = 1; - table_header($th); - } - //end of page full new headings if - } - //end of while loop - - end_table(); - - if ($overdue_items) - display_note(_("Marked items are overdue."), 0, 1, "class='overduefg'"); -} - -echo "
"; end_form(); - end_page(); -?>