X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sales%2Finquiry%2Fsales_deliveries_view.php;h=3b318997cf8e43323e29ad1f7c327497f45e944d;hb=54eb0e92cb17c72b8edf5ec88e6fe795e1ef91f0;hp=7ae41594f0df146f585d83a2f691841f6fc83d35;hpb=d67d5295b9342c011697ce4df325197e29898588;p=fa-stable.git diff --git a/sales/inquiry/sales_deliveries_view.php b/sales/inquiry/sales_deliveries_view.php index 7ae41594..3b318997 100644 --- a/sales/inquiry/sales_deliveries_view.php +++ b/sales/inquiry/sales_deliveries_view.php @@ -1,186 +1,188 @@ . +***********************************************************************/ +$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)) { $_POST['OutstandingOnly'] = true; - page(_("Search Not Invoiced Deliveries"), false, false, "", $js); + 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 $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; } - } - $selected[] = $delivery['trans']; - $del_count++; - } - } - - if (!$del_count) - { + else { + if ($del_branch != $branch) { + $del_count=0; + break; + } + } + $selected[] = $delivery; + $del_count++; + } + } + } + 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 - { + } else { $_SESSION['DeliveryBatch'] = $selected; meta_forward($path_to_root . '/sales/customer_invoice.php','BatchInvoice=Yes'); } } + //----------------------------------------------------------------------------------- -print_hidden_script(13); +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); +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']; + return get_customer_trans_view_str(ST_CUSTDELIVERY, $trans['trans_no']); } -else + +function batch_checkbox($row) { - unset($selected_stock_item); + $name = "Sel_" .$row['trans_no']; + return $row['Done'] ? '' : + "" +// add also trans_no => branch code for checking after 'Batch' submit + ."\n"; } -//--------------------------------------------------------------------------------------------- -$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.quantity-" - .TB_PREF."debtor_trans_details.qty_done) AS Outstanding, "; - -$sql .= " Sum(".TB_PREF."debtor_trans_details.qty_done) AS Done, "; - -//$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"; -$sql .= "(ov_amount+ov_gst+ov_freight+ov_freight_tax) AS DeliveryValue"; -$sql .=" 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 edit_link($row) { - $sql .= " AND ".TB_PREF."debtor_trans.trans_no LIKE '%". $_POST['DeliveryNumber'] ."' GROUP BY ".TB_PREF."debtor_trans.trans_no"; + return $row["Outstanding"]==0 ? '' : + trans_editor_link(ST_CUSTDELIVERY, $row['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 ."' "; - - if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != reserved_words::get_all()) - $sql .= " AND ".TB_PREF."sales_orders.from_stk_loc = '". $_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"; +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'])) @@ -189,90 +191,14 @@ if (isset($_SESSION['Batch'])) 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); +$table =& new_db_pager('deliveries_tbl', $sql, $cols); +$table->set_marker('check_overdue', _("Marked items are overdue.")); - $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"] ); +//$table->width = "92%"; - $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['Done']) - 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(print_document_link($myrow['trans_no'], _("Print"))); - - label_cell($not_closed ? "" . _("Invoice") . "" : ''); - - } - else - { - label_cell(""); - 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(); -?>