Moving 2.0 development version to main trunk.
[fa-stable.git] / inventory / prices.php
index 073289c65b3610cb742be9d097111e145835ff0e..5a3238ff3ef5d34af064a4993db25dcd9d09c1db 100644 (file)
@@ -6,6 +6,8 @@ include_once($path_to_root . "/includes/session.inc");
 
 page(_("Inventory Item Sales prices"));
 
+include_once($path_to_root . "/sales/includes/sales_db.inc");
+include_once($path_to_root . "/sales/includes/db/sales_types_db.inc");
 include_once($path_to_root . "/includes/ui.inc");
 include_once($path_to_root . "/includes/data_checks.inc");
 
@@ -17,8 +19,8 @@ check_db_has_stock_items(_("There are no items defined in the system."));
 
 check_db_has_sales_types(_("There are no sales types in the system. Please set up sales types befor entering pricing."));
 
+simple_page_mode(true);
 //---------------------------------------------------------------------------------------------------
-
 $input_error = 0;
 
 if (isset($_GET['stock_id']))
@@ -44,81 +46,89 @@ if (!isset($_POST['stock_id']))
 
 echo "<center>" . _("Item:"). "&nbsp;";
 stock_items_list('stock_id', $_POST['stock_id'], false, true);
-echo "<hr>";
-
-// if stock sel has changed, clear the form
-if ($_POST['stock_id'] != get_global_stock_item()) 
-{
-       clear_data();
-}
+echo "<hr></center>";
 
 set_global_stock_item($_POST['stock_id']);
 
 //----------------------------------------------------------------------------------------------------
 
-function clear_data()
-{
-       unset($_POST['PriceID']);
-       unset($_POST['price']);
-}
-
-//----------------------------------------------------------------------------------------------------
-
-if (isset($_POST['updatePrice'])) 
+if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') 
 {
 
-       if (!is_numeric($_POST['price']) || $_POST['price'] == "") 
+       if (!check_num('price', 0))
        {
                $input_error = 1;
                display_error( _("The price entered must be numeric."));
+               set_focus('price');
        }
 
        if ($input_error != 1)
        {
 
-               if (isset($_POST['PriceID'])
+       if ($selected_id != -1
                {
                        //editing an existing price
-                       update_item_price($_POST['PriceID'], $_POST['sales_type_id'], $_POST['curr_abrev'], $_POST['price']);
+                       update_item_price($selected_id, $_POST['sales_type_id'],
+                       $_POST['curr_abrev'], input_num('price'));
 
                        $msg = _("This price has been updated.");
-               } 
-               elseif ($input_error !=1) 
+               }
+               else
                {
 
-                       add_item_price($_POST['stock_id'], $_POST['sales_type_id'], $_POST['curr_abrev'], $_POST['price']);
+                       add_item_price($_POST['stock_id'], $_POST['sales_type_id'],
+                           $_POST['curr_abrev'], input_num('price'));
 
-                       display_note(_("The new price has been added."));
+                       $msg = _("The new price has been added.");
                }
-               clear_data();
+               display_notification($msg);
+               $Mode = 'RESET';
        }
 
 }
 
 //------------------------------------------------------------------------------------------------------
 
-if (isset($_GET['delete'])) 
+if ($Mode == 'Delete')
 {
-
        //the link to delete a selected record was clicked
-       delete_item_price($_GET['PriceID']);
-       echo _("The selected price has been deleted.");
+       delete_item_price($selected_id);
+       display_notification(_("The selected price has been deleted."));
+       $Mode = 'RESET';
+}
 
+if ($Mode == 'RESET')
+{
+       $selected_id = -1;
 }
 
+if (isset($_POST['_stock_id_update'])) {
+       $Ajax->activate('price_table');
+       $Ajax->activate('price_details');
+}
+if (isset($_POST['_stock_id_update']) || isset($_POST['_sales_type_id_update'])
+        || isset($_POST['_curr_abrev_update']) ) {
+       // after change of stock, currency or salestype selector
+       // display default calculated price for new settings. 
+       // If we have this price already in db it is overwritten later.
+       $_POST['price'] = price_format(get_price(get_post('stock_id'), 
+               get_post('curr_abrev'), get_post('sales_type_id')));
+       $Ajax->activate('price_details');
+}
 //---------------------------------------------------------------------------------------------------
 
 $mb_flag = get_mb_flag($_POST['stock_id']);
 
 $prices_list = get_prices($_POST['stock_id']);
 
+div_start('price_table');
 start_table("$table_style width=30%");
 
 $th = array(_("Currency"), _("Sales Type"), _("Price"), "", "");
 table_header($th);
 $k = 0; //row colour counter
 
-while ($myrow = db_fetch($prices_list)) 
+while ($myrow = db_fetch($prices_list))
 {
 
        alt_table_row_color($k);
@@ -126,43 +136,43 @@ while ($myrow = db_fetch($prices_list))
        label_cell($myrow["curr_abrev"]);
     label_cell($myrow["sales_type"]);
     amount_cell($myrow["price"]);
-    edit_link_cell("PriceID=" . $myrow["id"]. "&Edit=1");
-    delete_link_cell("PriceID=" . $myrow["id"]. "&delete=yes");
+       edit_button_cell("Edit".$myrow['id'], _("Edit"));
+       edit_button_cell("Delete".$myrow['id'], _("Delete"));
     end_row();
 
 }
 end_table();
-
-//------------------------------------------------------------------------------------------------
-
-if (db_num_rows($prices_list) == 0) 
+if (db_num_rows($prices_list) == 0)
 {
        display_note(_("There are no prices set up for this part."));
 }
+div_end();
+//------------------------------------------------------------------------------------------------
 
 echo "<br>";
 
-if (isset($_GET['Edit']))
+if ($Mode == 'Edit')
 {
-       $myrow = get_stock_price($_GET['PriceID']);
-       hidden('PriceID', $_GET['PriceID']);
+       $myrow = get_stock_price($selected_id);
        $_POST['curr_abrev'] = $myrow["curr_abrev"];
        $_POST['sales_type_id'] = $myrow["sales_type_id"];
-       $_POST['price'] = $myrow["price"];
+       $_POST['price'] = price_format($myrow["price"]);
 }
 
+hidden('selected_id', $selected_id);
+div_start('price_details');
 start_table($table_style2);
 
-currencies_list_row(_("Currency:"), 'curr_abrev', null);
+currencies_list_row(_("Currency:"), 'curr_abrev', null, true);
 
-sales_types_list_row(_("Sales Type:"), 'sales_type_id', null);
+sales_types_list_row(_("Sales Type:"), 'sales_type_id', null, true);
 
-text_row(_("Price:"), 'price', null, 10, 10);
+small_amount_row(_("Price:"), 'price', null);
 
 end_table(1);
 
-submit_center('updatePrice', _("Add/Update Price"));
-
+submit_add_or_update_center($selected_id == -1, '', true);
+div_end();
 
 end_form();
 end_page();