Preparing for graphic links
[fa-stable.git] / sales / allocations / customer_allocate.php
index 46daa72dde799c47617f19c419c9c139fb357e48..39076ec19fce4b1b0342fac31fa0c8fbfddc29ca 100644 (file)
@@ -5,6 +5,7 @@ $page_security = 3;
 
 include($path_to_root . "/includes/ui/allocation_cart.inc");
 include_once($path_to_root . "/includes/session.inc");
+include_once($path_to_root . "/includes/data_checks.inc");
 include_once($path_to_root . "/sales/includes/sales_ui.inc");
 include_once($path_to_root . "/sales/includes/sales_db.inc");
 
@@ -12,7 +13,7 @@ $js = "";
 if ($use_popup_windows)
        $js .= get_js_open_window(900, 500);
 
-$js .= get_js_allocate();
+add_js_file('allocate.js');
 
 page(_("Allocate Customer Payment or Credit Note"), false, false, "", $js);
 
@@ -37,28 +38,30 @@ function check_data()
        for ($counter = 0; $counter < $_POST["TotalNumberOfAllocs"]; $counter++)
        {
 
-               if (!is_numeric($_POST['amount' . $counter]))
+               if (!check_num('amount' . $counter, 0))
                {
-                       display_error(_("The entry for one or more amounts is invalid."));
+                       display_error(_("The entry for one or more amounts is invalid or negative."));
+                       set_focus('amount'.$counter);
                        return false;
                }
 
-               if ($_POST['amount' . $counter] < 0)
+               if (!check_num('amount' . $counter,0))
                {
                        display_error(_("The entry for an amount to allocate was negative. A positive allocation amount is expected."));
+               set_focus('amount'.$counter);
                        return false;
                }
 
                  /*Now check to see that the AllocAmt is no greater than the
                amount left to be allocated against the transaction under review */
-               if ($_POST['amount' . $counter] > $_POST['un_allocated' . $counter])
+               if (input_num('amount' . $counter) > $_POST['un_allocated' . $counter])
                {
                    //$_POST['amount' . $counter] = $_POST['un_allocated' . $counter];
                }
 
-               $_SESSION['alloc']->allocs[$counter]->current_allocated = $_POST['amount' . $counter];
+               $_SESSION['alloc']->allocs[$counter]->current_allocated = input_num('amount' . $counter);
 
-               $total_allocated += $_POST['amount' . $counter];
+               $total_allocated += input_num('amount' . $counter);
        }
 
        if ($total_allocated - $_SESSION['alloc']->amount > sys_prefs::allocation_settled_allowance())
@@ -79,7 +82,7 @@ function handle_process()
        begin_transaction();
 
        // clear all the allocations for this payment/credit
-       clear_cust_alloctions($_SESSION['alloc']->type, $_SESSION['alloc']->trans_no);
+       clear_cust_alloctions($_SESSION['alloc']->type, $_SESSION['alloc']->trans_no, $_SESSION['alloc']->date_);
 
        // now add the new allocations
        $total_allocated = 0;
@@ -93,6 +96,14 @@ function handle_process()
 
                        update_debtor_trans_allocation($allocn_item->type, $allocn_item->type_no,
                                $allocn_item->current_allocated);
+
+                       // Exchange Variations Joe Hunt 2008-09-20 ////////////////////////////////////////
+
+                       exchange_variation($_SESSION['alloc']->type, $_SESSION['alloc']->trans_no,
+                               $allocn_item->type, $allocn_item->type_no, $_SESSION['alloc']->date_,
+                               $allocn_item->current_allocated, payment_person_types::customer());
+
+                       ///////////////////////////////////////////////////////////////////////////
                        $total_allocated += $allocn_item->current_allocated;
                }
 
@@ -105,7 +116,6 @@ function handle_process()
 
        clear_allocations();
 }
-
 //--------------------------------------------------------------------------------
 
 if (isset($_POST['Process']))
@@ -116,16 +126,13 @@ if (isset($_POST['Process']))
                $_POST['Cancel'] = 1;
        }
 }
-
 //--------------------------------------------------------------------------------
 
 if (isset($_POST['Cancel']))
 {
        clear_allocations();
        meta_forward($path_to_root . "/sales/allocations/customer_allocation_main.php");
-       exit;
 }
-
 //--------------------------------------------------------------------------------
 
 function get_allocations_for_transaction($type, $trans_no)
@@ -151,7 +158,6 @@ function get_allocations_for_transaction($type, $trans_no)
                        0); // this allocation
        }
 
-
        /* Now get trans that might have previously been allocated to by this trans
        NB existing entries where still some of the trans outstanding entered from
        above logic will be overwritten with the prev alloc detail below */
@@ -165,24 +171,23 @@ function get_allocations_for_transaction($type, $trans_no)
                        $myrow["Total"], $myrow["alloc"] - $myrow["amt"], $myrow["amt"]);
        }
 }
-
 //--------------------------------------------------------------------------------
 
 function edit_allocations_for_transaction($type, $trans_no)
 {
        global $table_style;
 
-       start_form(false, true);
-
     display_heading(sprintf(_("Allocation of %s # %d"), systypes::name($_SESSION['alloc']->type),$_SESSION['alloc']->trans_no));
 
     display_heading($_SESSION['alloc']->person_name);
 
     display_heading2(_("Date:") . " <b>" . $_SESSION['alloc']->date_ . "</b>");
-    display_heading2(_("Total:") . " <b>" . number_format2($_SESSION['alloc']->amount,user_price_dec()) . "</b>");
+    display_heading2(_("Total:") . " <b>" . price_format($_SESSION['alloc']->amount) . "</b>");
 
     echo "<br>";
 
+       start_form(false, true);
+       div_start('alloc_tbl');
     if (count($_SESSION['alloc']->allocs) > 0)
     {
                start_table($table_style);
@@ -196,7 +201,7 @@ function edit_allocations_for_transaction($type, $trans_no)
 
         foreach ($_SESSION['alloc']->allocs as $allocn_item)
         {
-               alt_table_row_color($k);
+                       alt_table_row_color($k);
 
            label_cell(systypes::name($allocn_item->type));
                label_cell(get_trans_view_str($allocn_item->type, $allocn_item->type_no));
@@ -205,26 +210,24 @@ function edit_allocations_for_transaction($type, $trans_no)
                amount_cell($allocn_item->amount);
                        amount_cell($allocn_item->amount_allocated);
 
-           if (!isset($_POST['amount' . $counter]) || $_POST['amount' . $counter] == "")
-               $_POST['amount' . $counter] = $allocn_item->current_allocated;
-           text_cells(null, "amount" . $counter, $_POST['amount' . $counter], 13, 12);
+           $_POST['amount' . $counter] = price_format($allocn_item->current_allocated);
+           amount_cells(null, 'amount' . $counter, price_format('amount' . $counter));
 
                $un_allocated = round($allocn_item->amount - $allocn_item->amount_allocated, 6);
-               hidden("un_allocated" . $counter, $un_allocated);
                amount_cell($un_allocated);
 
-                       label_cell("<a href='#' name=Alloc$counter onclick='allocate_all(this.name.substr(5));return true;'>"
+                       label_cell("<a href='#' name='Alloc$counter' onclick='allocate_all(this.name.substr(5));return true;'>"
                                         . _("All") . "</a>");
-                       label_cell("<a href='#' name=DeAll$counter onclick='allocate_none(this.name.substr(5));return true;'>"
-                                        . _("None") . "</a>");
+                       label_cell("<a href='#' name='DeAll$counter' onclick='allocate_none(this.name.substr(5));return true;'>"
+                                        . _("None") . "</a>".hidden("un_allocated" . $counter, $un_allocated, false));
                        end_row();
 
-           $total_allocated += $_POST['amount' . $counter];
+           $total_allocated += input_num('amount' . $counter);
            $counter++;
                }
 
-               label_row(_("Total Allocated"), number_format2($total_allocated,user_price_dec()),
-                       "colspan=6 align=right", "nowrap align=right");
+               label_row(_("Total Allocated"), price_format($total_allocated),
+                       "colspan=6 align=right", "nowrap align=right id='total_allocated'");
         if ($_SESSION['alloc']->amount - $total_allocated < 0)
         {
                $font1 = "<font color=red>";
@@ -233,23 +236,24 @@ function edit_allocations_for_transaction($type, $trans_no)
         else
                $font1 = $font2 = "";
                $left_to_allocate = $_SESSION['alloc']->amount - $total_allocated;
-               $left_to_allocate = number_format2($left_to_allocate, user_price_dec());
+               $left_to_allocate = price_format($left_to_allocate);
         label_row(_("Left to Allocate"), $font1 . $left_to_allocate . $font2,
-               "colspan=6 align=right", "nowrap align=right");
+               "colspan=6 align=right ", "nowrap align=right id='left_to_allocate'");
         end_table(1);
 
                hidden('TotalNumberOfAllocs', $counter);
-               hidden('left_to_allocate', $left_to_allocate);
-               submit_center_first('UpdateDisplay', _("Update"));
-               submit('Process', _("Process"));
+               submit_center_first('UpdateDisplay', _("Refresh"), _('Start again allocation of selected amount'), true);
+               submit('Process', _("Process"), true, _('Process allocations'), true);
+               submit_center_last('Cancel', _("Back to Allocations"),_('Abandon allocations and return to selection of allocatable amounts'), true);
        }
        else
        {
        display_note(_("There are no unsettled transactions to allocate."), 0, 1);
-    }
-
-       submit_center_last('Cancel', _("Back to Allocations"));
 
+               submit_center('Cancel', _("Back to Allocations"), true,
+                       _('Abandon allocations and return to selection of allocatable amounts'), true);
+    }
+       div_end();
        end_form();
 }
 
@@ -259,6 +263,14 @@ if (isset($_GET['trans_no']) && isset($_GET['trans_type']))
 {
        get_allocations_for_transaction($_GET['trans_type'], $_GET['trans_no']);
 }
+if(get_post('UpdateDisplay'))
+{
+       $trans_no = $_SESSION['alloc']->trans_no;
+       $type = $_SESSION['alloc']->type;
+       clear_allocations();
+       get_allocations_for_transaction($type, $trans_no);
+       $Ajax->activate('alloc_tbl');
+}
 
 if (isset($_SESSION['alloc']))
 {