Ajax added, default value calculated for new prices
authorJanusz Dobrowolski <janusz@frontaccounting.eu>
Sun, 6 Jul 2008 21:18:22 +0000 (21:18 +0000)
committerJanusz Dobrowolski <janusz@frontaccounting.eu>
Sun, 6 Jul 2008 21:18:22 +0000 (21:18 +0000)
inventory/prices.php

index fd74e70a28a2503cfa2bbe72f811801707b929ba..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']))
@@ -46,25 +48,11 @@ echo "<center>" . _("Item:"). "&nbsp;";
 stock_items_list('stock_id', $_POST['stock_id'], false, true);
 echo "<hr></center>";
 
-// if stock sel has changed, clear the form
-if ($_POST['stock_id'] != get_global_stock_item())
-{
-       clear_data();
-}
-
 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 (!check_num('price', 0))
@@ -77,40 +65,55 @@ if (isset($_POST['updatePrice']))
        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'],
+                       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'], 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');
+       $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');
 }
 //---------------------------------------------------------------------------------------------------
 
@@ -133,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();
-div_end();
-//------------------------------------------------------------------------------------------------
-
 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'] = 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);
 
 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();