X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=sales%2Fcustomer_delivery.php;h=1e29859ea49905f170704b7f19967f9c62c0a4e7;hb=1f284ec5fb3bb7c1388fd0559e996d85be3741c0;hp=5abc5942d4fa61699dca5194d3764681dbabbf5d;hpb=53d942f2a0d20cce5e9c409c6485867ce0869e4d;p=fa-stable.git
diff --git a/sales/customer_delivery.php b/sales/customer_delivery.php
index 5abc5942..1e29859e 100644
--- a/sales/customer_delivery.php
+++ b/sales/customer_delivery.php
@@ -19,17 +19,16 @@ $path_to_root = "..";
include_once($path_to_root . "/sales/includes/cart_class.inc");
include_once($path_to_root . "/includes/session.inc");
include_once($path_to_root . "/includes/data_checks.inc");
-include_once($path_to_root . "/includes/manufacturing.inc");
include_once($path_to_root . "/sales/includes/sales_db.inc");
include_once($path_to_root . "/sales/includes/sales_ui.inc");
include_once($path_to_root . "/reporting/includes/reporting.inc");
include_once($path_to_root . "/taxes/tax_calc.inc");
$js = "";
-if ($use_popup_windows) {
+if ($SysPrefs->use_popup_windows) {
$js .= get_js_open_window(900, 500);
}
-if ($use_date_picker) {
+if (user_use_date_picker()) {
$js .= get_js_date_picker();
}
@@ -94,16 +93,16 @@ if (isset($_GET['OrderNumber']) && $_GET['OrderNumber'] > 0) {
check_deferred_income_act(_("You have to set Deferred Income Account in GL Setup to entry prepayment invoices."));
if ($ord->count_items() == 0) {
- echo "
"; // outer table
-start_table(TABLESTYLE, "width=100%");
+start_table(TABLESTYLE, "width='100%'");
start_row();
label_cells(_("Customer"), $_SESSION['Items']->customer_name, "class='tableheader2'");
label_cells(_("Branch"), get_branch_name($_SESSION['Items']->Branch), "class='tableheader2'");
@@ -355,11 +329,11 @@ label_cells(_("Currency"), $_SESSION['Items']->customer_currency, "class='tableh
end_row();
start_row();
-//if (!isset($_POST['ref']))
-// $_POST['ref'] = $Refs->get_next(ST_CUSTDELIVERY);
-
if ($_SESSION['Items']->trans_no==0) {
- ref_cells(_("Reference"), 'ref', '', null, "class='tableheader2'");
+ ref_cells(_("Reference"), 'ref', '', null, "class='tableheader2'", false, ST_CUSTDELIVERY,
+ array('customer' => $_SESSION['Items']->customer_id,
+ 'branch' => $_SESSION['Items']->Branch,
+ 'date' => get_post('DispatchDate')));
} else {
label_cells(_("Reference"), $_SESSION['Items']->reference, "class='tableheader2'");
}
@@ -396,13 +370,13 @@ end_table();
echo " | ";// outer table
-start_table(TABLESTYLE, "width=90%");
+start_table(TABLESTYLE, "width='90%'");
if (!isset($_POST['due_date']) || !is_date($_POST['due_date'])) {
$_POST['due_date'] = get_invoice_duedate($_SESSION['Items']->payment, $_POST['DispatchDate']);
}
customer_credit_row($_SESSION['Items']->customer_id, $_SESSION['Items']->credit, "class='tableheader2'");
-// 2010-09-03 Joe Hunt
+
$dim = get_company_pref('use_dimension');
if ($dim > 0) {
start_row();
@@ -439,7 +413,7 @@ if ($row['dissallow_invoices'] == 1)
}
display_heading(_("Delivery Items"));
div_start('Items');
-start_table(TABLESTYLE, "width=80%");
+start_table(TABLESTYLE, "width='80%'");
$new = $_SESSION['Items']->trans_no==0;
$th = array(_("Item Code"), _("Item Description"),
@@ -459,23 +433,31 @@ foreach ($_SESSION['Items']->line_items as $line=>$ln_itm) {
$ln_itm->qty_dispatched = $ln_itm->quantity-$ln_itm->qty_done;
}
// if it's a non-stock item (eg. service) don't show qoh
- $show_qoh = true;
- if ($SysPrefs->allow_negative_stock() || !has_stock_holding($ln_itm->mb_flag) ||
- $ln_itm->qty_dispatched == 0) {
- $show_qoh = false;
- }
-
- if ($show_qoh) {
- $qoh = get_qoh_on_date($ln_itm->stock_id, $_POST['Location'], $_POST['DispatchDate']);
+ $row_classes = null;
+ if (has_stock_holding($ln_itm->mb_flag) && $ln_itm->qty_dispatched) {
+ // It's a stock : call get_dispatchable_quantity hook to get which quantity to preset in the
+ // quantity input box. This allows for example a hook to modify the default quantity to what's dispatchable
+ // (if there is not enough in hand), check at other location or other order people etc ...
+ // This hook also returns a 'reason' (css classes) which can be used to theme the row.
+ //
+ // FIXME: hook_get_dispatchable definition does not allow qoh checks on transaction level
+ // (but anyway dispatch is checked again later before transaction is saved)
+
+ $qty = $ln_itm->qty_dispatched;
+ if ($check = check_negative_stock($ln_itm->stock_id, $ln_itm->qty_done-$ln_itm->qty_dispatched, $_POST['Location'], $_POST['DispatchDate']))
+ $qty = $check['qty'];
+
+ $q_class = hook_get_dispatchable_quantity($ln_itm, $_POST['Location'], $_POST['DispatchDate'], $qty);
+
+ // Skip line if needed
+ if($q_class === 'skip') continue;
+ if(is_array($q_class)) {
+ list($ln_itm->qty_dispatched, $row_classes) = $q_class;
+ $has_marked = true;
+ }
}
- if ($show_qoh && ($ln_itm->qty_dispatched > $qoh)) {
- // oops, we don't have enough of one of the component items
- start_row("class='stockmankobg'");
- $has_marked = true;
- } else {
- alt_table_row_color($k);
- }
+ alt_table_row_color($k, $row_classes);
view_stock_status_cell($ln_itm->stock_id);
if ($ln_itm->descr_editable)
@@ -532,7 +514,7 @@ label_row(_("Amount Total"), $display_total, "colspan=$colspan align=right","ali
end_table(1);
if ($has_marked) {
- display_note(_("Marked items have insufficient quantities in stock as on day of delivery."), 0, 1, "class='red'");
+ display_note(_("Marked items have insufficient quantities in stock as on day of delivery."), 0, 1, "class='stockmankofg'");
}
start_table(TABLESTYLE2);
@@ -558,4 +540,3 @@ end_form();
end_page();
-?>
|