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);
-if ($use_date_picker)
+if (user_use_date_picker())
$js .= get_js_date_picker();
-page(_("Customer Allocation Inquiry"), false, false, "", $js);
+page(_($help_context = "Customer Allocation Inquiry"), false, false, "", $js);
if (isset($_GET['customer_id']))
{
start_form();
-start_table("class='tablestyle_noborder'");
+start_table(TABLESTYLE_NOBORDER);
start_row();
customer_list_cells(_("Select a customer: "), 'customer_id', $_POST['customer_id'], true);
-date_cells(_("from:"), 'TransAfterDate', '', null, -30);
+date_cells(_("from:"), 'TransAfterDate', '', null, -user_transaction_days());
date_cells(_("to:"), 'TransToDate', '', null, 1);
cust_allocations_list_cells(_("Type:"), 'filterType', null);
end_row();
end_table();
-end_form();
//------------------------------------------------------------------------------------------------
function check_overdue($row)
{
function due_date($row)
{
- return $row["type"] == 10 ? $row["due_date"] : '';
+ return $row["type"] == ST_SALESINVOICE ? $row["due_date"] : '';
}
function fmt_balance($row)
{
- return $row["TotalAmount"] - $row["Allocated"];
+ return ($row["type"] == ST_JOURNAL && $row["TotalAmount"] < 0 ? -$row["TotalAmount"] : $row["TotalAmount"]) - $row["Allocated"];
}
function alloc_link($row)
$link =
pager_link(_("Allocation"),
"/sales/allocations/customer_allocate.php?trans_no=" . $row["trans_no"]
- ."&trans_type=" . $row["type"], ICON_MONEY);
+ ."&trans_type=" . $row["type"]."&debtor_no=" . $row["debtor_no"], ICON_ALLOC);
if ($row["type"] == ST_CUSTCREDIT && $row['TotalAmount'] > 0)
{
/*its a credit note which could have an allocation */
return $link;
- }
- elseif (($row["type"] == ST_CUSTPAYMENT || $row["type"] == ST_BANKDEPOSIT) &&
- ($row['TotalAmount'] - $row['Allocated']) > 0)
+ } elseif ($row["type"] == ST_JOURNAL && $row['TotalAmount'] < 0)
+ {
+ return $link;
+ } elseif (($row["type"] == ST_CUSTPAYMENT || $row["type"] == ST_BANKDEPOSIT) &&
+ (floatcmp($row['TotalAmount'], $row['Allocated']) >= 0))
{
/*its a receipt which could have an allocation*/
return $link;
}
- elseif ($row["type"] == ST_CUSTPAYMENT && $row['TotalAmount'] < 0)
+ elseif ($row["type"] == ST_CUSTPAYMENT && $row['TotalAmount'] <= 0)
{
/*its a negative receipt */
return '';
- }
+ } elseif (($row["type"] == ST_SALESINVOICE && ($row['TotalAmount'] - $row['Allocated']) > 0) || $row["type"] == ST_BANKPAYMENT)
+ return pager_link(_("Payment"),
+ "/sales/customer_payments.php?customer_id=".$row["debtor_no"]."&SInvoice=" . $row["trans_no"], ICON_MONEY);
+
}
function fmt_debit($row)
}
//------------------------------------------------------------------------------------------------
- $data_after = date2sql($_POST['TransAfterDate']);
- $date_to = date2sql($_POST['TransToDate']);
-
- $sql = "SELECT
- trans.type,
- trans.order_,
- trans.trans_no,
- trans.reference,
- trans.tran_date,
- trans.due_date,
- debtor.name,
- debtor.curr_code,
- (trans.ov_amount + trans.ov_gst + trans.ov_freight
- + trans.ov_freight_tax + trans.ov_discount) AS TotalAmount,
- trans.alloc AS Allocated,
- ((trans.type = ".ST_SALESINVOICE.")
- AND trans.due_date < '" . date2sql(Today()) . "') AS OverDue
- FROM "
- .TB_PREF."debtor_trans as trans, "
- .TB_PREF."debtors_master as debtor
- WHERE debtor.debtor_no = trans.debtor_no
- AND (trans.ov_amount + trans.ov_gst + trans.ov_freight
- + trans.ov_freight_tax + trans.ov_discount != 0)
- AND trans.tran_date >= '$data_after'
- AND trans.tran_date <= '$date_to'";
-
- if ($_POST['customer_id'] != ALL_TEXT)
- $sql .= " AND trans.debtor_no = '" . $_POST['customer_id'] . "'";
-
- if (isset($_POST['filterType']) && $_POST['filterType'] != ALL_TEXT)
- {
- if ($_POST['filterType'] == '1' || $_POST['filterType'] == '2')
- {
- $sql .= " AND trans.type = ".ST_SALESINVOICE." ";
- }
- elseif ($_POST['filterType'] == '3')
- {
- $sql .= " AND trans.type = " . ST_CUSTPAYMENT;
- }
- elseif ($_POST['filterType'] == '4')
- {
- $sql .= " AND trans.type = ".ST_CUSTCREDIT." ";
- }
-
- if ($_POST['filterType'] == '2')
- {
- $today = date2sql(Today());
- $sql .= " AND trans.due_date < '$today'
- AND (round(abs(trans.ov_amount + "
- ."trans.ov_gst + trans.ov_freight + "
- ."trans.ov_freight_tax + trans.ov_discount) - trans.alloc,6) > 0) ";
- }
- }else
- {
- $sql .= " AND trans.type <> ".ST_CUSTDELIVERY." ";
- }
-
-
- if (!check_value('showSettled'))
- {
- $sql .= " AND (round(abs(trans.ov_amount + trans.ov_gst + "
- ."trans.ov_freight + trans.ov_freight_tax + "
- ."trans.ov_discount) - trans.alloc,6) != 0) ";
- }
-//------------------------------------------------------------------------------------------------
+$sql = get_sql_for_customer_allocation_inquiry(get_post('TransAfterDate'), get_post('TransToDate'),
+ get_post('customer_id'), get_post('filterType'), check_value('showSettled'));
+//------------------------------------------------------------------------------------------------
$cols = array(
_("Type") => array('fun'=>'systype_name'),
- _("#") => array('fun'=>'view_link'),
+ _("#") => array('fun'=>'view_link', 'align'=>'right'),
_("Reference"),
- _("Order") => array('fun'=>'order_link'),
+ _("Order") => array('fun'=>'order_link', 'ord'=>'', 'align'=>'right'),
_("Date") => array('name'=>'tran_date', 'type'=>'date', 'ord'=>'asc'),
_("Due Date") => array('type'=>'date', 'fun'=>'due_date'),
- _("Customer"),
+ _("Customer") => array('name' =>'name', 'ord'=>'asc'),
_("Currency") => array('align'=>'center'),
_("Debit") => array('align'=>'right','fun'=>'fmt_debit'),
_("Credit") => array('align'=>'right','insert'=>true, 'fun'=>'fmt_credit'),
$table =& new_db_pager('doc_tbl', $sql, $cols);
$table->set_marker('check_overdue', _("Marked items are overdue."));
-if (get_post('RefreshInquiry')) {
- $table->set_sql($sql);
- $table->set_columns($cols);
-}
$table->width = "80%";
-start_form();
display_db_pager($table);
end_form();
end_page();
-?>