X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=inventory%2Fincludes%2Fitem_adjustments_ui.inc;h=53643ad9b679cf4b9890b17a58225d5e3e6d4f16;hb=1f1df7734d5568aafd7b35dbd91e295716fbb518;hp=bf88c7dae5f7c41690e6997666a0a7a1d81d4337;hpb=0ad7b92c6cf2e4e65ca0fa94ba31f30f7b292ba8;p=fa-stable.git diff --git a/inventory/includes/item_adjustments_ui.inc b/inventory/includes/item_adjustments_ui.inc index bf88c7da..53643ad9 100644 --- a/inventory/includes/item_adjustments_ui.inc +++ b/inventory/includes/item_adjustments_ui.inc @@ -1,5 +1,14 @@ . +***********************************************************************/ include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/includes/ui/items_cart.inc"); @@ -7,162 +16,210 @@ include_once($path_to_root . "/includes/ui/items_cart.inc"); function add_to_order(&$order, $new_item, $new_item_qty, $standard_cost) { - $allready_on_order = 0; - - foreach ($order->line_items as $order_item) - { - if (strcasecmp($order_item->stock_id, $new_item) == 0) - { - $allready_on_order = 1; - display_error(_("For Part :") . $new_item . " " . "This item is already on this order. You can change the quantity ordered of the existing line if necessary."); - } - } - - if ($allready_on_order != 1) - { - $order->add_to_cart ($new_item, $new_item_qty, $standard_cost); - } /* end of if not already on the order */ + if ($order->find_cart_item($new_item)) + display_error(_("For Part :") . $new_item . " " . "This item is already on this document. You can change the quantity on the existing line if necessary."); + else + $order->add_to_cart (count($order->line_items), $new_item, $new_item_qty, $standard_cost); } //-------------------------------------------------------------------------------- function display_order_header(&$order) { - global $table_style2; - - start_table("width=70% $table_style2"); // outer table - echo ""; - echo ""; // inner table - - locations_list_row(_("Location:"), 'StockLocation', null); - ref_row(_("Reference:"), 'ref', references::get_next(systypes::inventory_adjustment())); - - echo "
"; // inner table - - echo ""; + global $Refs; - echo ""; // inner table + start_outer_table(TABLESTYLE2, "width='70%'"); // outer table + table_section(1); - date_row(_("Date:"), 'AdjDate'); + locations_list_row(_("Location:"), 'StockLocation', null, false, false, $order->fixed_asset); + date_row(_("Date:"), 'AdjDate', '', true); - echo "
"; // inner table + table_section(2, "50%"); - echo ""; + ref_row(_("Reference:"), 'ref', '', $Refs->get_next(ST_INVADJUST, null, array('location'=>get_post('StockLocation'), 'date'=>get_post('AdjDate'))), + false, ST_INVADJUST); - echo ""; // inner table - movement_types_list_row(_("Detail:"), 'type', null); - - if (!isset($_POST['Increase'])) - $_POST['Increase'] = 1; - yesno_list_row(_("Type:"), 'Increase', $_POST['Increase'], - _("Positive Adjustment"), _("Negative Adjustment")); - - echo "
"; // inner table - - echo ""; - end_table(1); // outer table + end_outer_table(1); // outer table } //--------------------------------------------------------------------------------- function display_adjustment_items($title, &$order) { - global $table_style, $path_to_root; + global $path_to_root; display_heading($title); - start_table("$table_style width=80%"); - $th = array(_("Item Code"), _("Item Description"), _("Quantity"), - _("Unit"), _("Unit Cost"), _("Total")); - if ( count($order->line_items)) $th[] = ''; + div_start('items_table'); + start_table(TABLESTYLE, "width='90%'"); + + if ($order->fixed_asset) { + $th = array(_("Item Code"), _("Item Description"), _("Quantity"), + _("Unit"), _("Unit Cost"), _("Initial Value"), ""); + } else { + $th = array(_("Item Code"), _("Item Description"), _("QOH"), _("Quantity"), + _("Unit"), _("Unit Cost"), _("Total"), ""); + if ( count($order->line_items)) $th[] = ''; + } table_header($th); $total = 0; $k = 0; //row colour counter - foreach ($order->line_items as $stock_item) + $low_stock = $order->check_qoh($_POST['StockLocation'], $_POST['AdjDate']); + $id = get_post('selected_id', find_submit('Edit')); + foreach ($order->line_items as $line_no=>$stock_item) { - $quantity = number_format2($stock_item->quantity,user_qty_dec()); - $total += ($stock_item->standard_cost * $stock_item->quantity); - if (!isset($_GET['Edit']) || $_GET['Edit'] != $stock_item->stock_id) + if ($id != $line_no) { - alt_table_row_color($k); + if (in_array($stock_item->stock_id, $low_stock)) + start_row("class='stockmankobg'"); // notice low stock status + else + alt_table_row_color($k); + + if ($order->fixed_asset) + label_cell($stock_item->stock_id); + else + view_stock_status_cell($stock_item->stock_id); - label_cell("$stock_item->stock_id"); label_cell($stock_item->item_description); - label_cell($quantity, "nowrap align=right"); + $dec = get_qty_dec($stock_item->stock_id); + if (!$order->fixed_asset) + { + $qoh = get_qoh_on_date($stock_item->stock_id, $_POST['StockLocation']); + qty_cell($qoh, false, $dec); + } + qty_cell($stock_item->quantity, false, $dec); label_cell($stock_item->units); - amount_cell($stock_item->standard_cost); - amount_cell($stock_item->standard_cost * $stock_item->quantity); - - edit_link_cell(SID . "Edit=$stock_item->stock_id"); - delete_link_cell(SID . "Delete=$stock_item->stock_id"); + amount_decimal_cell($stock_item->standard_cost); + + if ($order->fixed_asset) { + $price = get_purchase_value($stock_item->stock_id); + amount_cell($price); + } else + amount_cell($stock_item->standard_cost * $stock_item->quantity); + + if (!$order->fixed_asset) { + if ($id == -1) + edit_button_cell("Edit$line_no", _("Edit"), _('Edit document line')); + else + label_cell(''); + } + if ($id == -1) + delete_button_cell("Delete$line_no", _("Delete"), _('Remove line from document')); + else + label_cell(''); + end_row(); - } - else + } + else { - adjustment_edit_item_controls($order, $stock_item->stock_id); + adjustment_edit_item_controls($order, $line_no); } } - if (!isset($_GET['Edit'])) + if ($id == -1) adjustment_edit_item_controls($order); - - label_row(_("Total"), number_format2($total,user_price_dec()), "colspan=5", "align=right"); + $row = !$order->fixed_asset ? 6 : 5; + label_row(_("Total"), number_format2($total,user_price_dec()), "align=right colspan=$row", "align=right", 2); end_table(); + + if ($id != -1) + hidden('selected_id', $id); + if ($low_stock) + display_note(_("Marked items have insufficient quantities in stock as on day of adjustment."), 0, 1, "class='stockmankofg'"); + div_end(); } //--------------------------------------------------------------------------------- -function adjustment_edit_item_controls(&$order, $stock_id=null) +function adjustment_edit_item_controls(&$order, $line_no=-1) { + global $Ajax; start_row(); - if (isset($_GET['Edit']) and $stock_id!=null) - { - if (!isset($_POST['stock_id'])) - $_POST['stock_id'] = $order->line_items[$stock_id]->stock_id; - if (!isset($_POST['qty']) OR ($_POST['qty']=="")) - $_POST['qty'] = qty_format($order->line_items[$stock_id]->quantity); - if (!isset($_POST['std_cost']) OR ($_POST['std_cost']=="")) - $_POST['std_cost'] = price_format($order->line_items[$stock_id]->standard_cost); - - $_POST['units'] = $order->line_items[$stock_id]->units; + $dec2 = 0; + if ($line_no != -1) + { + if (find_submit('Edit') != -1) { + $_POST['stock_id'] = $order->line_items[$line_no]->stock_id; + $_POST['qty'] = qty_format($order->line_items[$line_no]->quantity, + $order->line_items[$line_no]->stock_id, $dec); + //$_POST['std_cost'] = price_format($order->line_items[$line_no]->standard_cost); + $_POST['std_cost'] = price_decimal_format($order->line_items[$line_no]->standard_cost, $dec2); + } + $_POST['units'] = $order->line_items[$line_no]->units; hidden('stock_id', $_POST['stock_id']); label_cell($_POST['stock_id']); - label_cell($order->line_items[$stock_id]->item_description); + label_cell($order->line_items[$line_no]->item_description, 'nowrap'); + $Ajax->activate('items_table'); } else { - echo ""; - stock_costable_items_list('stock_id', $_POST['stock_id'], false, true); - echo ""; + if ($order->fixed_asset) + stock_disposable_fa_list_cells(null, 'stock_id', null, false, true, $order->line_items); + else + stock_costable_items_list_cells(null, 'stock_id', null, false, true); - $item_info = get_item_edit_info($_POST['stock_id']); + if (list_updated('stock_id')) { + $Ajax->activate('items_table'); + } - $_POST['qty'] = qty_format(0); - $_POST['std_cost'] = price_format($item_info["standard_cost"]); - $_POST['units'] = $item_info["units"]; } - amount_cells(null, 'qty', $_POST['qty']); - - label_cell($_POST['units']); - amount_cells(null, 'std_cost', $_POST['std_cost']); - label_cell(" "); + $item_info = get_item_edit_info(get_post('stock_id')); + if ($item_info) { + $dec = $item_info['decimals']; + $_POST['std_cost'] = price_decimal_format($item_info["material_cost"], $dec2); + $_POST['units'] = $item_info["units"]; + } else + $dec = 0; + if ($order->fixed_asset) { + hidden('qty', -1); + qty_cell(1, false, 0); + } else { + $qoh = get_qoh_on_date(get_post('stock_id'), $_POST['StockLocation']); + qty_cell($qoh, false, $dec); + label_cell( text_input('qty', get_post('qty', '0'), 15, 15, '', 'class="amount active" dec='.$dec), "nowrap align=right"); + } + label_cell(get_post('units'), '', 'units'); + + if ($order->fixed_asset) { + hidden('std_cost'); + label_cell($_POST['std_cost'], "nowrap align=right ", 'std_cost_view'); + $price = get_purchase_value($_POST['stock_id']); + amount_cell($price, false, '', 'initial_price'); + } else { + if (get_post('_qty_changed')) { + $Ajax->activate('items_table'); + set_focus(input_num('qty') >= 0 ? 'std_cost' : 'AddItem'); + } + if (input_num('qty') >= 0) + amount_cells(null, 'std_cost', null, null, null, $dec); + else { + hidden('std_cost'); + label_cell($_POST['std_cost'], "nowrap align=right"); + } + label_cell(" "); + } - if (isset($_GET['Edit'])) + if ($line_no != -1) { - submit_cells('UpdateItem', _("Update")); - submit_cells('CancelItemChanges', _("Cancel")); - } - else + button_cell('UpdateItem', _("Update"), + _('Confirm changes'), ICON_UPDATE); + button_cell('CancelItemChanges', _("Cancel"), + _('Cancel changes'), ICON_CANCEL); + hidden('LineNo', $line_no); + set_focus('qty'); + } + else { - submit_cells('AddItem', _("Add Item"), "colspan=2"); + submit_cells('AddItem', _("Add Item"), "colspan=2", + _('Add new item to document'), true); } end_row(); @@ -184,4 +241,3 @@ function adjustment_options_controls() //--------------------------------------------------------------------------------- -?> \ No newline at end of file