See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
***********************************************************************/
/* Author Rob Mallon */
-$page_security = 8;
-$path_to_root="..";
+$page_security = 'SA_RECONCILE';
+$path_to_root = "..";
include($path_to_root . "/includes/db_pager.inc");
include_once($path_to_root . "/includes/session.inc");
add_js_file('reconcile.js');
-page(_("Reconcile Bank Account"), false, false, "", $js);
+page(_($help_context = "Reconcile Bank Account"), false, false, "", $js);
check_db_has_bank_accounts(_("There are no bank accounts defined in the system."));
function systype_name($dummy, $type)
{
- return systypes::name($type);
+ global $systypes_array;
+
+ return $systypes_array[$type];
}
function trans_view($trans)
function fmt_person($row)
{
- return payment_person_types::person_name($row["person_type_id"],$row["person_id"]);
+ return payment_person_name($row["person_type_id"],$row["person_id"]);
}
$update_pager = false;
{
global $Ajax;
- if (!check_date())
+ if (!check_date()
+ && check_value("rec_".$reconcile_id)) // temporary fix
return false;
if (get_post('bank_date')=='') // new reconciliation
$_POST['bank_date'] = date2sql(get_post('reconcile_date'));
$reconcile_value = check_value("rec_".$reconcile_id)
? ("'".$_POST['bank_date'] ."'") : 'NULL';
- $sql = "UPDATE ".TB_PREF."bank_trans SET reconciled=$reconcile_value WHERE id=$reconcile_id";
+ $sql = "UPDATE ".TB_PREF."bank_trans SET reconciled=$reconcile_value"
+ ." WHERE id=".db_escape($reconcile_id);
db_query($sql, "Can't change reconciliation status");
// save last reconcilation status (date, end balance)
$sql2="UPDATE ".TB_PREF."bank_accounts SET last_reconciled_date='"
.date2sql($_POST["reconcile_date"])."',
ending_reconcile_balance=".input_num("end_balance")
- ." WHERE id=".$_POST["bank_account"];
+ ." WHERE id=".db_escape($_POST["bank_account"]);
$result = db_query($sql2,"Error updating reconciliation information");
$Ajax->activate('reconciled');
}
if (!isset($_POST['reconcile_date'])) { // init page
- $_POST['reconcile_date'] = Today();
+ $_POST['reconcile_date'] = new_doc_date();
// $_POST['bank_date'] = date2sql(Today());
}
end_table();
$date = date2sql(get_post('reconcile_date'));
+ // temporary fix to enable fix of invalid entries made in 2.2RC
+if ($date == 0) $date = '0000-00-00';
$sql = "SELECT MAX(reconciled) as last_date,
SUM(IF(reconciled<='$date', amount, 0)) as end_balance,
SUM(IF(reconciled<'$date', amount, 0)) as beg_balance,
SUM(amount) as total
FROM ".TB_PREF."bank_trans trans
- WHERE bank_act=".$_POST['bank_account'];
+ WHERE bank_act=".db_escape($_POST['bank_account']);
// ." AND trans.reconciled IS NOT NULL";
$result = db_query($sql,"Cannot retrieve reconciliation data");
if (get_post('bank_date')) {
// if it is the last updated bank statement retrieve ending balance
$sql = "SELECT ending_reconcile_balance
- FROM ".TB_PREF."bank_accounts WHERE id=".$_POST['bank_account']
- . " AND last_reconciled_date='".$_POST['bank_date']."'";
+ FROM ".TB_PREF."bank_accounts WHERE id=".db_escape($_POST['bank_account'])
+ . " AND last_reconciled_date=".db_escape($_POST['bank_date']);
$result = db_query($sql,"Cannot retrieve last reconciliation");
$row = db_fetch($result);
if($row) {
start_row();
date_cells("", "reconcile_date", _('Date of bank statement to reconcile'),
- null, 0, 0, 0, null, true);
+ get_post('bank_date')=='', 0, 0, 0, null, true);
amount_cells_ex("", "beg_balance", 15);
$sql = "SELECT type, trans_no, ref, trans_date,
amount, person_id, person_type_id, reconciled, id
FROM ".TB_PREF."bank_trans
- WHERE ".TB_PREF."bank_trans.bank_act = '" . $_POST['bank_account'] . "'
+ WHERE ".TB_PREF."bank_trans.bank_act = ".db_escape($_POST['bank_account']) . "
AND (reconciled IS NULL OR reconciled='". $date ."')
ORDER BY trans_date,".TB_PREF."bank_trans.id";
// or ORDER BY reconciled desc, trans_date,".TB_PREF."bank_trans.id";
"X"=>array('insert'=>true, 'fun'=>'rec_checkbox')
);
$table =& new_db_pager('trans_tbl', $sql, $cols);
- if ($update_pager) {
- $table->set_sql($sql);
- $table->set_columns($cols);
- }
- $table->width = "60%";
+
+ $table->width = "80%";
display_db_pager($table);
br(1);