Customer Payment, Supplier Payment: early discount support.
[fa-stable.git] / sales / allocations / customer_allocate.php
index 14f87fb8cf6811ec2bb60c3c635d85c294336aa2..50e9d6e6b23afb26e1297e917faa3a9e9729b870 100644 (file)
@@ -9,23 +9,22 @@
     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;
+$page_security = 'SA_SALESALLOC';
+$path_to_root = "../..";
 
 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");
-//include_once($path_to_root . "/sales/includes/ui/cust_alloc_ui.inc");
 
 $js = "";
-if ($use_popup_windows)
+if ($SysPrefs->use_popup_windows)
        $js .= get_js_open_window(900, 500);
 
 add_js_file('allocate.js');
 
-page(_("Allocate Customer Payment or Credit Note"), false, false, "", $js);
+page(_($help_context = "Allocate Customer Payment or Credit Note"), false, false, "", $js);
 
 //--------------------------------------------------------------------------------
 
@@ -36,45 +35,41 @@ function clear_allocations()
                unset($_SESSION['alloc']->allocs);
                unset($_SESSION['alloc']);
        }
-       session_register('alloc');
+       //session_register('alloc');
 }
 
-
 //--------------------------------------------------------------------------------
 
-if (isset($_POST['Process']))
+function edit_allocations_for_transaction($type, $trans_no)
 {
-       if (check_allocations())
-       {
-               $_SESSION['alloc']->write();
-               clear_allocations();
-               $_POST['Cancel'] = 1;
-       }
-}
-//--------------------------------------------------------------------------------
+       global $systypes_array;
 
-if (isset($_POST['Cancel']))
-{
-       clear_allocations();
-       meta_forward($path_to_root . "/sales/allocations/customer_allocation_main.php");
-}
-//--------------------------------------------------------------------------------
+       $cart = $_SESSION['alloc'];
+       
+       if ($cart->type == ST_JOURNAL && $cart->bank_amount < 0)
+       {
+               $cart->bank_amount = -$cart->bank_amount;
+               $cart->amount = -$cart->amount;
+       }       
+    display_heading(sprintf(_("Allocation of %s # %d"), $systypes_array[$cart->type], $cart->trans_no));
 
-function edit_allocations_for_transaction($type, $trans_no)
-{
+    display_heading($cart->person_name);
 
-    display_heading(sprintf(_("Allocation of %s # %d"), systypes::name($_SESSION['alloc']->type),$_SESSION['alloc']->trans_no));
+    display_heading2(_("Date:") . " <b>" . $cart->date_ . "</b>");
 
-    display_heading($_SESSION['alloc']->person_name);
+       if (floatcmp($cart->bank_amount, $cart->amount))
+               display_heading2(_("Total:"). " <b>" . price_format($cart->bank_amount).' '.$cart->currency."</b>");
 
-    display_heading2(_("Date:") . " <b>" . $_SESSION['alloc']->date_ . "</b>");
-    display_heading2(_("Total:") . " <b>" . price_format($_SESSION['alloc']->amount) . "</b>");
+       $total = _("Amount to be settled:") . " <b>" . '<span id="total">'.price_format($cart->amount).'</span> '.$cart->person_curr."</b>";
+       if ($cart->currency != $cart->person_curr)
+               $total .= sprintf(" (%s %s/%s)",  exrate_format($cart->bank_amount/$cart->amount), $cart->currency, $cart->person_curr);
+       display_heading2($total);
 
     echo "<br>";
 
        start_form();
        div_start('alloc_tbl');
-    if (count($_SESSION['alloc']->allocs) > 0)
+    if (count($cart->allocs) > 0)
     {
                show_allocatable(true);
                submit_center_first('UpdateDisplay', _("Refresh"), _('Start again allocation of selected amount'), true);
@@ -94,17 +89,34 @@ function edit_allocations_for_transaction($type, $trans_no)
 
 //--------------------------------------------------------------------------------
 
+if (isset($_POST['Process']))
+{
+       if (check_allocations())
+       {
+               write_cust_allocation($_SESSION['alloc']);
+               clear_allocations();
+               $_POST['Cancel'] = 1;
+       }
+}
+//--------------------------------------------------------------------------------
+
+if (isset($_POST['Cancel']))
+{
+       clear_allocations();
+       meta_forward($path_to_root . "/sales/allocations/customer_allocation_main.php");
+}
+
+//--------------------------------------------------------------------------------
+
 if (isset($_GET['trans_no']) && isset($_GET['trans_type']))
 {
        clear_allocations();
-       $_SESSION['alloc'] = new allocation($_GET['trans_type'], $_GET['trans_no']);
+       $_SESSION['alloc'] = new allocation($_GET['trans_type'], $_GET['trans_no'], @$_GET['debtor_no'], PT_CUSTOMER);
 }
+
 if(get_post('UpdateDisplay'))
 {
-       $trans_no = $_SESSION['alloc']->trans_no;
-       $type = $_SESSION['alloc']->type;
-       clear_allocations();
-       get_allocations_for_transaction($type, $trans_no);
+       $_SESSION['alloc']->read();
        $Ajax->activate('alloc_tbl');
 }
 
@@ -117,4 +129,3 @@ if (isset($_SESSION['alloc']))
 
 end_page();
 
-?>
\ No newline at end of file