X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=sales%2Fcustomer_invoice.php;h=ac2e75e5096942524f1cee56fe985376a7cb241b;hb=ed98647a92fe4c17e78bd4f7314bd7548591dc63;hp=9a6da912b01273dbea7b8c5b3f34ba391970f410;hpb=d67d5295b9342c011697ce4df325197e29898588;p=fa-stable.git diff --git a/sales/customer_invoice.php b/sales/customer_invoice.php index 9a6da912..ac2e75e5 100644 --- a/sales/customer_invoice.php +++ b/sales/customer_invoice.php @@ -136,13 +136,33 @@ if ( (isset($_GET['DeliveryNumber']) && ($_GET['DeliveryNumber'] > 0) ) end_page(); exit; -} else { +} elseif (!check_quantities()) { + display_error(_("Selected quantity cannot be less than quantity credited nor more than quantity not invoiced yet.")); +} +if (isset($_POST['Update'])) { + $Ajax->activate('Items'); +} +//----------------------------------------------------------------------------- +function check_quantities() +{ + $ok =1; foreach ($_SESSION['Items']->line_items as $line_no=>$itm) { if (isset($_POST['Line'.$line_no])) { - if (!check_num('Line'.$line_no, 0, ($itm->quantity - $itm->qty_done))) { + if($_SESSION['Items']->trans_no) { + $min = $itm->qty_done; + $max = $itm->quantity; + } else { + $min = 0; + $max = $itm->quantity - $itm->qty_done; + } + if (check_num('Line'.$line_no, $min, $max)) { $_SESSION['Items']->line_items[$line_no]->qty_dispatched = input_num('Line'.$line_no); } + else { + $ok = 0; + } + } if (isset($_POST['Line'.$line_no.'Desc'])) { @@ -152,8 +172,8 @@ if ( (isset($_GET['DeliveryNumber']) && ($_GET['DeliveryNumber'] > 0) ) } } } + return $ok; } -//----------------------------------------------------------------------------- function copy_to_cart() { @@ -227,6 +247,11 @@ function check_data() return false; } + if (!check_quantities()) { + display_error(_("Selected quantity cannot be less than quantity credited nor more than quantity not invoiced yet.")); + return false; + } + return true; } @@ -321,6 +346,7 @@ end_table(); display_heading(_("Invoice Items")); +div_start('Items'); start_table("$table_style width=80%"); $th = array(_("Item Code"), _("Item Description"), _("Delivered"), _("Units"), _("Invoiced"), _("This Invoice"), _("Price"), _("Tax Type"), _("Discount"), _("Total")); @@ -349,17 +375,18 @@ foreach ($_SESSION['Items']->line_items as $line=>$ln_itm) { view_stock_status_cell($ln_itm->stock_id); text_cells(null, 'Line'.$line.'Desc', $ln_itm->item_description, 30, 50); - qty_cell($ln_itm->quantity); + $dec = get_qty_dec($ln_itm->stock_id); + qty_cell($ln_itm->quantity, false, $dec); label_cell($ln_itm->units); - qty_cell($ln_itm->qty_done); + qty_cell($ln_itm->qty_done, false, $dec); if ($is_batch_invoice) { // for batch invoices we can only remove whole deliveries echo '