Customer Payment, Supplier Payment: early discount support.
[fa-stable.git] / purchasing / allocations / supplier_allocate.php
1 <?php
2 /**********************************************************************
3     Copyright (C) FrontAccounting, LLC.
4         Released under the terms of the GNU General Public License, GPL, 
5         as published by the Free Software Foundation, either version 3 
6         of the License, or (at your option) any later version.
7     This program is distributed in the hope that it will be useful,
8     but WITHOUT ANY WARRANTY; without even the implied warranty of
9     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
10     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
12 $page_security = 'SA_SUPPLIERALLOC';
13 $path_to_root = "../..";
14
15 include($path_to_root . "/includes/ui/allocation_cart.inc");
16 include_once($path_to_root . "/includes/session.inc");
17 include_once($path_to_root . "/includes/date_functions.inc");
18 include_once($path_to_root . "/includes/ui.inc");
19 include_once($path_to_root . "/includes/banking.inc");
20 include_once($path_to_root . "/sales/includes/sales_db.inc");
21 //include_once($path_to_root . "/purchasing/includes/ui/supp_alloc_ui.inc");
22
23 $js = "";
24 if ($SysPrefs->use_popup_windows)
25         $js .= get_js_open_window(900, 500);
26
27 add_js_file('allocate.js');
28
29 page(_($help_context = "Allocate Supplier Payment or Credit Note"), false, false, "", $js);
30
31 //--------------------------------------------------------------------------------
32
33 function clear_allocations()
34 {
35         if (isset($_SESSION['alloc']))
36         {
37                 unset($_SESSION['alloc']->allocs);
38                 unset($_SESSION['alloc']);
39         }
40         //session_register("alloc");
41 }
42 //--------------------------------------------------------------------------------
43
44 function edit_allocations_for_transaction($type, $trans_no)
45 {
46         global $systypes_array;
47
48         start_form();
49
50         $cart = $_SESSION['alloc'];
51
52     display_heading(_("Allocation of") . " " . $systypes_array[$cart->type] . " # " . $cart->trans_no);
53
54         display_heading($cart->person_name);
55
56     display_heading2(_("Date:") . " <b>" . $cart->date_ . "</b>");
57
58         if (floatcmp($cart->bank_amount, $cart->amount))
59                 display_heading2(_("Total:"). " <b>" . price_format(-$cart->bank_amount).' '.$cart->currency."</b>");
60
61         $total = _("Amount ot be settled:") . " <b>" . '<span id="total">'.price_format(-$cart->amount).'</span> '.$cart->person_curr."</b>";
62         if ($cart->currency != $cart->person_curr)
63                 $total .= sprintf(" (%s %s/%s)",  exrate_format($cart->bank_amount/$cart->amount), $cart->currency, $cart->person_curr);
64         display_heading2($total);
65     echo "<br>";
66
67         div_start('alloc_tbl');
68     if (count($cart->allocs) > 0)
69     {
70                 show_allocatable(true);
71
72         submit_center_first('UpdateDisplay', _("Refresh"), _('Start again allocation of selected amount'), true);
73         submit('Process', _("Process"), true, _('Process allocations'), 'default');
74                 submit_center_last('Cancel', _("Back to Allocations"),
75                         _('Abandon allocations and return to selection of allocatable amounts'), 'cancel');
76         }
77         else
78         {
79         display_note(_("There are no unsettled transactions to allocate."), 0, 1);
80                 submit_center('Cancel', _("Back to Allocations"), true,
81                         _('Abandon allocations and return to selection of allocatable amounts'), 'cancel');
82     }
83
84         div_end();
85         end_form();
86 }
87 //--------------------------------------------------------------------------------
88
89 if (isset($_POST['Process']))
90 {
91         if (check_allocations())
92         {
93                 write_supp_allocation($_SESSION['alloc']);
94                 clear_allocations();
95                 $_POST['Cancel'] = 1;
96         }
97 }
98
99 //--------------------------------------------------------------------------------
100
101 if (isset($_POST['Cancel']))
102 {
103         clear_allocations();
104         meta_forward($path_to_root . "/purchasing/allocations/supplier_allocation_main.php");
105 }
106
107 //--------------------------------------------------------------------------------
108
109 if (isset($_GET['trans_no']) && isset($_GET['trans_type']))
110 {
111         $_SESSION['alloc'] = new allocation($_GET['trans_type'], $_GET['trans_no'], @$_GET['supplier_id'], PT_SUPPLIER);
112 }
113
114 if (get_post('UpdateDisplay'))
115 {
116         $_SESSION['alloc']->read();
117         $Ajax->activate('alloc_tbl');
118 }
119
120 if (isset($_SESSION['alloc']))
121 {
122         edit_allocations_for_transaction($_SESSION['alloc']->type, $_SESSION['alloc']->trans_no);
123 }
124
125 //--------------------------------------------------------------------------------
126
127 end_page();
128