Merged changes form main trunk since 2.1RC
[fa-stable.git] / sales / allocations / customer_allocate.php
index 74c0573ebbc9356f78e80354d4c695a4faa06fa6..f32db9616270d6c6dc9545ed5035ae3ba251458d 100644 (file)
@@ -1,5 +1,14 @@
 <?php
-
+/**********************************************************************
+    Copyright (C) FrontAccounting, LLC.
+       Released under the terms of the GNU General Public License, GPL, 
+       as published by the Free Software Foundation, either version 3 
+       of the License, or (at your option) any later version.
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+***********************************************************************/
 $path_to_root="../..";
 $page_security = 3;
 
@@ -38,9 +47,9 @@ function check_data()
        for ($counter = 0; $counter < $_POST["TotalNumberOfAllocs"]; $counter++)
        {
 
-               if (!check_num('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;
                }
@@ -54,7 +63,7 @@ function check_data()
 
                  /*Now check to see that the AllocAmt is no greater than the
                amount left to be allocated against the transaction under review */
-               if (input_num('amount' . $counter) > $_POST['un_allocated' . $counter])
+               if (input_num('amount' . $counter) > input_num('un_allocated' . $counter))
                {
                    //$_POST['amount' . $counter] = $_POST['un_allocated' . $counter];
                }
@@ -82,7 +91,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;
@@ -96,8 +105,15 @@ function handle_process()
 
                        update_debtor_trans_allocation($allocn_item->type, $allocn_item->type_no,
                                $allocn_item->current_allocated);
-                       $total_allocated += $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;
                }
 
        }  /*end of the loop through the array of allocations made */
@@ -109,7 +125,6 @@ function handle_process()
 
        clear_allocations();
 }
-
 //--------------------------------------------------------------------------------
 
 if (isset($_POST['Process']))
@@ -120,16 +135,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)
@@ -155,7 +167,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 */
@@ -169,7 +180,6 @@ function get_allocations_for_transaction($type, $trans_no)
                        $myrow["Total"], $myrow["alloc"] - $myrow["amt"], $myrow["amt"]);
        }
 }
-
 //--------------------------------------------------------------------------------
 
 function edit_allocations_for_transaction($type, $trans_no)
@@ -185,8 +195,8 @@ function edit_allocations_for_transaction($type, $trans_no)
 
     echo "<br>";
 
-       start_form(false, true);
-
+       start_form();
+       div_start('alloc_tbl');
     if (count($_SESSION['alloc']->allocs) > 0)
     {
                start_table($table_style);
@@ -200,7 +210,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));
@@ -209,20 +219,16 @@ function edit_allocations_for_transaction($type, $trans_no)
                amount_cell($allocn_item->amount);
                        amount_cell($allocn_item->amount_allocated);
 
-           if (!check_num('amount' . $counter))
-               $_POST['amount' . $counter] = price_format($allocn_item->current_allocated);
-           amount_cells(null, 'amount' . $counter, $_POST['amount' . $counter]);
+           $_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;'>"
                                         . _("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));
+                                        . _("None") . "</a>".hidden("un_allocated" . $counter, price_format($un_allocated), false));
                        end_row();
 
            $total_allocated += input_num('amount' . $counter);
@@ -230,7 +236,7 @@ function edit_allocations_for_transaction($type, $trans_no)
                }
 
                label_row(_("Total Allocated"), price_format($total_allocated),
-                       "colspan=6 align=right", "nowrap align=right id='total_allocated'");
+                       "colspan=6 align=right", "nowrap align=right id='total_allocated'", 3);
         if ($_SESSION['alloc']->amount - $total_allocated < 0)
         {
                $font1 = "<font color=red>";
@@ -241,21 +247,22 @@ function edit_allocations_for_transaction($type, $trans_no)
                $left_to_allocate = $_SESSION['alloc']->amount - $total_allocated;
                $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 id='left_to_allocate'");
+               "colspan=6 align=right ", "nowrap align=right id='left_to_allocate'", 3);
         end_table(1);
 
                hidden('TotalNumberOfAllocs', $counter);
-//             hidden('left_to_allocate', $left_to_allocate);
-               submit_center_first('UpdateDisplay', _("Update"));
-               submit('Process', _("Process"));
-               submit_center_last('Cancel', _("Back to Allocations"));
+               submit_center_first('UpdateDisplay', _("Refresh"), _('Start again allocation of selected amount'), true);
+               submit('Process', _("Process"), true, _('Process allocations'), 'default');
+               submit_center_last('Cancel', _("Back to Allocations"),_('Abandon allocations and return to selection of allocatable amounts'), 'cancel');
        }
        else
        {
        display_note(_("There are no unsettled transactions to allocate."), 0, 1);
-               submit_center('Cancel', _("Back to Allocations"));
-    }
 
+               submit_center('Cancel', _("Back to Allocations"), true,
+                       _('Abandon allocations and return to selection of allocatable amounts'), 'cancel');
+    }
+       div_end();
        end_form();
 }
 
@@ -265,6 +272,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']))
 {