Right align numbers in inquiries and lists.
[fa-stable.git] / sales / allocations / customer_allocation_main.php
index 20baf5cace8b7002ffda2d6527091886b8308ef3..5059735f6a9d8019d9992d488468e1e5d94e3273 100644 (file)
 <?php
-
-$path_to_root="../..";
-$page_security = 3;
+/**********************************************************************
+    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>.
+***********************************************************************/
+$page_security = 'SA_SALESALLOC';
+$path_to_root = "../..";
+include($path_to_root . "/includes/db_pager.inc");
 include_once($path_to_root . "/includes/session.inc");
 
 include_once($path_to_root . "/sales/includes/sales_ui.inc");
 include_once($path_to_root . "/sales/includes/sales_db.inc");
 $js = "";
-if ($use_popup_windows)
+if ($SysPrefs->use_popup_windows)
        $js .= get_js_open_window(900, 500);
-page(_("Customer Allocations"), false, false, "", $js);
+page(_($help_context = "Customer Allocations"), false, false, "", $js);
 
 //--------------------------------------------------------------------------------
 
-function display_allocatable_transactions()
+start_form();
+/* show all outstanding receipts and credits to be allocated */
+
+if (!isset($_POST['customer_id']))
+       $_POST['customer_id'] = get_global_customer();
+
+echo "<center>" . _("Select a customer: ") . "&nbsp;&nbsp;";
+echo customer_list('customer_id', $_POST['customer_id'], true, true);
+echo "<br>";
+check(_("Show Settled Items:"), 'ShowSettled', null, true);
+echo "</center><br><br>";
+
+set_global_customer($_POST['customer_id']);
+
+if (isset($_POST['customer_id']) && ($_POST['customer_id'] == ALL_TEXT))
 {
-       global $table_style, $path_to_root;
-       start_form();
-
-       /* show all outstanding receipts and credits to be allocated */
-       /*Clear any previous allocation records */
-       if (isset($_SESSION['alloc']))
-       {
-               unset($_SESSION['alloc']->allocs);
-               unset($_SESSION['alloc']);
-       }       
-    if (!isset($_POST['customer_id']))
-       $_POST['customer_id'] = get_global_customer();
-
-    echo "<center>" . _("Select a customer: ") . "&nbsp;&nbsp;";
-       customer_list('customer_id', $_POST['customer_id'], true, true);
-    echo "<br>";
-    check(_("Show Settled Items:"), 'ShowSettled', null, true);
-       echo "</center><br><br>";
-
-       set_global_customer($_POST['customer_id']);
-
-       if (isset($_POST['customer_id']) && ($_POST['customer_id'] == reserved_words::get_all())) 
-       {
-               unset($_POST['customer_id']);
-       }
-
-       /*if (isset($_POST['customer_id'])) {
-               $custCurr = get_customer_currency($_POST['customer_id']);
-               if (!is_company_currency($custCurr))
-                       echo _("Customer Currency:") . $custCurr;
-       }*/
-
-       $settled = false;
-       if (check_value('ShowSettled'))
-               $settled = true;
-
-       $customer_id = null;
-       if (isset($_POST['customer_id']))
-               $customer_id = $_POST['customer_id'];
-
-       $trans_items = get_allocatable_from_cust_transactions($customer_id, $settled);
-
-       start_table($table_style);
-       if (!isset($_POST['customer_id']))
-               $th = array(_("Transaction Type"), _("#"), _("Reference"), _("Date"), _("Customer"),
-                       _("Currency"), _("Total"), _("Left To Allocate"), "");
-       else    
-               $th = array(_("Transaction Type"), _("#"), _("Reference"), _("Date"),
-                       _("Total"), _("Left To Allocate"), "");
-       table_header($th);
-       $k = 0; //row colour counter
-       $has_settled_items = false;
-
-       while ($myrow = db_fetch($trans_items))
-       {
-       if ($myrow["settled"] == 1) 
-       {
-               start_row("class='settledbg'");
-               $has_settled_items = true;
-       } 
-       else 
-       {
-               alt_table_row_color($k);
-       }
-
-       label_cell(systypes::name($myrow["type"]));
-       label_cell(get_trans_view_str($myrow["type"], $myrow["trans_no"]));
-               label_cell($myrow["reference"]);
-       label_cell(sql2date($myrow["tran_date"]));
-
-               if (!isset($_POST['customer_id']))
-               {
-               label_cell($myrow["DebtorName"]);
-               label_cell($myrow["curr_code"]);
-               }
-               amount_cell(-$myrow["Total"]);
-       amount_cell(-$myrow["Total"] - $myrow["alloc"]);
-       if (-$myrow["Total"] - $myrow["alloc"] != 0.0)
-               label_cell("<a href='$path_to_root/sales/allocations/customer_allocate.php?trans_no=" . $myrow["trans_no"] . "&trans_type=" . $myrow["type"]  . "'>" . _("Allocate") . "</a>");
-       else
-               label_cell("");
-       end_row();
-       }
-
-       end_table();
-
-       if ($has_settled_items)
-               display_note(_("Marked items are settled."), 0, 1, "class='settledfg'");
-
-       if (db_num_rows($trans_items) == 0)
-               display_note(_("There are no allocations to be done."), 1, 2);
-
-       end_form();
+       unset($_POST['customer_id']);
 }
 
-//--------------------------------------------------------------------------------
+$settled = false;
+if (check_value('ShowSettled'))
+       $settled = true;
 
-display_allocatable_transactions();
+$customer_id = null;
+if (isset($_POST['customer_id']))
+       $customer_id = $_POST['customer_id'];
 
 //--------------------------------------------------------------------------------
+function systype_name($dummy, $type)
+{
+       global $systypes_array;
 
-end_page();
+       return $systypes_array[$type];
+}
+
+function trans_view($trans)
+{
+       return get_trans_view_str($trans["type"], $trans["trans_no"]);
+}
+
+function alloc_link($row)
+{
+       return pager_link(_("Allocate"),
+               "/sales/allocations/customer_allocate.php?trans_no="
+                       .$row["trans_no"] . "&trans_type=" . $row["type"]. "&debtor_no=" . $row["debtor_no"], ICON_ALLOC);
+}
 
-?>
\ No newline at end of file
+function amount_left($row)
+{
+       return price_format($row["Total"]-$row["alloc"]);
+}
+
+function check_settled($row)
+{
+       return $row['settled'] == 1;
+}
+
+
+$sql = get_allocatable_from_cust_sql($customer_id, $settled);
+
+$cols = array(
+       _("Transaction Type") => array('fun'=>'systype_name'),
+       _("#") => array('fun'=>'trans_view', 'align'=>'right'),
+       _("Reference"), 
+       _("Date") => array('name'=>'tran_date', 'type'=>'date', 'ord'=>'asc'),
+       _("Customer") => array('ord'=>''),
+       _("Currency") => array('align'=>'center'),
+       _("Total") => 'amount', 
+       _("Left to Allocate") => array('align'=>'right','insert'=>true, 'fun'=>'amount_left'), 
+       array('insert'=>true, 'fun'=>'alloc_link')
+       );
+
+if (isset($_POST['customer_id'])) {
+       $cols[_("Customer")] = 'skip';
+       $cols[_("Currency")] = 'skip';
+}
+
+$table =& new_db_pager('alloc_tbl', $sql, $cols);
+$table->set_marker('check_settled', _("Marked items are settled."), 'settledbg', 'settledfg');
+
+$table->width = "75%";
+
+display_db_pager($table);
+end_form();
+
+end_page();