X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sales%2Finquiry%2Fsales_deliveries_view.php;h=72e6d132da71930d9f5e84a1a0bdb40aa0d3d9c2;hb=8ea6c4dd0d9b31b3456d012b0c94339b801bee0c;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..72e6d132 100644 --- a/sales/inquiry/sales_deliveries_view.php +++ b/sales/inquiry/sales_deliveries_view.php @@ -1,10 +1,21 @@ . +***********************************************************************/ +$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) @@ -12,12 +23,12 @@ if ($use_popup_windows) if ($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 +} +else { $_POST['OutstandingOnly'] = false; page(_("Search All Deliveries"), false, false, "", $js); @@ -26,235 +37,233 @@ else if (isset($_GET['selected_customer'])) { $selected_customer = $_GET['selected_customer']; -} +} elseif (isset($_POST['selected_customer'])) { $selected_customer = $_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; - } - } - $selected[] = $delivery['trans']; - $del_count++; - } + 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++; + } } - 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_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, -30); +date_cells(_("to:"), 'DeliveryToDate', '', null, 1); locations_list_cells(_("Location:"), 'StockLocation', null, true); stock_items_list_cells(_("Item:"), 'SelectStockFromList', null, true); -submit_cells('SearchOrders', _("Search")); +submit_cells('SearchOrders', _("Search"),'',_('Select documents'), 'default'); hidden('OutstandingOnly', $_POST['OutstandingOnly']); end_row(); end_table(); - +end_form(); //--------------------------------------------------------------------------------------------- if (isset($_POST['SelectStockFromList']) && ($_POST['SelectStockFromList'] != "") && - ($_POST['SelectStockFromList'] != reserved_words::get_all())) + ($_POST['SelectStockFromList'] != ALL_TEXT)) { $selected_stock_item = $_POST['SelectStockFromList']; -} -else +} +else { unset($selected_stock_item); } //--------------------------------------------------------------------------------------------- -$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 "; +function trans_view($trans, $trans_no) +{ + return get_customer_trans_view_str(ST_CUSTDELIVERY, $trans['trans_no']); +} -//figure out the sql required from the inputs available -if (isset($_POST['DeliveryNumber']) && $_POST['DeliveryNumber'] != "") +function batch_checkbox($row) +{ + $name = "Sel_" .$row['trans_no']; + return $row['Done'] ? '' : + "" +// add also trans_no => branch code for checking after 'Batch' submit + ."\n"; +} + +function edit_link($row) +{ + return $row["Outstanding"]==0 ? '' : + pager_link(_('Edit'), "/sales/customer_delivery.php?ModifyDelivery=" + .$row['trans_no'], ICON_EDIT); +} + +function prt_link($row) { - $sql .= " AND ".TB_PREF."debtor_trans.trans_no LIKE '%". $_POST['DeliveryNumber'] ."' GROUP BY ".TB_PREF."debtor_trans.trans_no"; -} -else + return print_document_link($row['trans_no'], _("Print"), true, ST_CUSTDELIVERY, ICON_PRINT); +} + +function invoice_link($row) { + return $row["Outstanding"]==0 ? '' : + pager_link(_('Invoice'), "/sales/customer_invoice.php?DeliveryNumber=" + .$row['trans_no'], ICON_DOC); +} - $date_after = date2sql($_POST['DeliveryAfterDate']); - $date_before = date2sql($_POST['DeliveryToDate']); +function check_overdue($row) +{ + return date1_greater_date2(Today(), sql2date($row["due_date"])) && + $row["Outstanding"]!=0; +} +//------------------------------------------------------------------------------------------------ +$sql = "SELECT trans.trans_no, + debtor.name, + branch.branch_code, + branch.br_name, + sorder.deliver_to, + trans.reference, + sorder.customer_ref, + trans.tran_date, + trans.due_date, + (ov_amount+ov_gst+ov_freight+ov_freight_tax) AS DeliveryValue, + debtor.curr_code, + Sum(line.quantity-line.qty_done) AS Outstanding, + Sum(line.qty_done) AS Done + FROM " + .TB_PREF."sales_orders as sorder, " + .TB_PREF."debtor_trans as trans, " + .TB_PREF."debtor_trans_details as line, " + .TB_PREF."debtors_master as debtor, " + .TB_PREF."cust_branch as branch + WHERE + sorder.order_no = trans.order_ AND + trans.debtor_no = debtor.debtor_no + AND trans.type = ".ST_CUSTDELIVERY." + AND line.debtor_trans_no = trans.trans_no + AND line.debtor_trans_type = trans.type + AND trans.branch_code = branch.branch_code + AND trans.debtor_no = branch.debtor_no "; + +if ($_POST['OutstandingOnly'] == true) { + $sql .= " AND line.qty_done < line.quantity "; +} - $sql .= " AND ".TB_PREF."debtor_trans.tran_date >= '$date_after'"; - $sql .= " AND ".TB_PREF."debtor_trans.tran_date <= '$date_before'"; +//figure out the sql required from the inputs available +if (isset($_POST['DeliveryNumber']) && $_POST['DeliveryNumber'] != "") +{ + $delivery = "%".$_POST['DeliveryNumber']; + $sql .= " AND trans.trans_no LIKE ".db_escape($delivery); + $sql .= " GROUP BY trans.trans_no"; +} +else +{ + $sql .= " AND trans.tran_date >= '".date2sql($_POST['DeliveryAfterDate'])."'"; + $sql .= " AND trans.tran_date <= '".date2sql($_POST['DeliveryToDate'])."'"; if ($selected_customer != -1) - $sql .= " AND ".TB_PREF."debtor_trans.debtor_no='" . $selected_customer . "' "; + $sql .= " AND trans.debtor_no=".db_escape($selected_customer)." "; if (isset($selected_stock_item)) - $sql .= " AND ".TB_PREF."debtor_trans_details.stock_id='". $selected_stock_item ."' "; + $sql .= " AND line.stock_id=".db_escape($selected_stock_item)." "; - if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != reserved_words::get_all()) - $sql .= " AND ".TB_PREF."sales_orders.from_stk_loc = '". $_POST['StockLocation'] . "' "; + if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != ALL_TEXT) + $sql .= " AND sorder.from_stk_loc = ".db_escape($_POST['StockLocation'])." "; - 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"; + $sql .= " GROUP BY trans.trans_no "; } //end no delivery number selected -$result = db_query($sql,"No deliveries were returned"); +$cols = array( + _("Delivery #") => array('fun'=>'trans_view'), + _("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 */ - - 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); - - $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; - - // 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'"); -} +$table =& new_db_pager('deliveries_tbl', $sql, $cols); +$table->set_marker('check_overdue', _("Marked items are overdue.")); -echo "
"; -end_form(); +//$table->width = "92%"; + +start_form(); + +display_db_pager($table); +end_form(); end_page(); + ?>