MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
***********************************************************************/
-/* Author Rob Mallon */
$page_security = 'SA_RECONCILE';
$path_to_root = "..";
include($path_to_root . "/includes/db_pager.inc");
include_once($path_to_root . "/includes/banking.inc");
$js = "";
-if ($use_popup_windows)
+if ($SysPrefs->use_popup_windows)
$js .= get_js_open_window(800, 500);
-if ($use_date_picker)
+if (user_use_date_picker())
$js .= get_js_date_picker();
add_js_file('reconcile.js');
return $value>0 ? price_format($value) : '';
}
-function fmt_person($row)
+function fmt_person($trans)
{
- return payment_person_name($row["person_type_id"],$row["person_id"]);
+ return get_counterparty_name($trans["type"], $trans["trans_no"]);
+}
+
+function fmt_memo($row)
+{
+ $value = $row["memo_"];
+ return $value;
}
-$update_pager = false;
function update_data()
{
- global $Ajax, $update_pager;
+ global $Ajax;
unset($_POST["beg_balance"]);
unset($_POST["end_balance"]);
$Ajax->activate('summary');
- $update_pager = true;
}
//---------------------------------------------------------------------------------------------
// Update db record if respective checkbox value has changed.
$_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=".db_escape($reconcile_id);
+
+ update_reconciled_values($reconcile_id, $reconcile_value, $_POST['reconcile_date'],
+ input_num('end_balance'), $_POST['bank_account']);
+
+ $Ajax->activate('reconciled');
+ $Ajax->activate('difference');
+ return true;
+}
- 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=".db_escape($_POST["bank_account"]);
+function set_tpl_flag($reconcile_id)
+{
+ global $Ajax;
- $result = db_query($sql2,"Error updating reconciliation information");
+ if (check_value("rec_".$reconcile_id))
+ return;
+
+ if (get_post('bank_date')=='') // new reconciliation
+ $Ajax->activate('bank_date');
+
+ $_POST['bank_date'] = date2sql(get_post('reconcile_date'));
+ $reconcile_value = ("'".$_POST['bank_date'] ."'");
+
+ update_reconciled_values($reconcile_id, $reconcile_value, $_POST['reconcile_date'],
+ input_num('end_balance'), $_POST['bank_account']);
+
$Ajax->activate('reconciled');
$Ajax->activate('difference');
- return true;
}
if (!isset($_POST['reconcile_date'])) { // init page
if ($id != -1)
change_tpl_flag($id);
+
if (isset($_POST['Reconcile'])) {
set_focus('bank_date');
foreach($_POST['last'] as $id => $value)
if ($value != check_value('rec_'.$id))
if(!change_tpl_flag($id)) break;
+
+ $Ajax->activate('_page_body');
+}
+
+if (isset($_POST['ReconcileAll'])) {
+ set_focus('bank_date');
+ foreach($_POST['last'] as $id => $value)
+ set_tpl_flag($id);
+
$Ajax->activate('_page_body');
}
//------------------------------------------------------------------------------------------------
start_form();
-start_table("class='tablestyle_noborder'");
+start_table(TABLESTYLE_NOBORDER);
start_row();
bank_accounts_list_cells(_("Account:"), 'bank_account', null, true);
end_row();
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=".db_escape($_POST['bank_account']);
-// ." AND trans.reconciled IS NOT NULL";
-
-$result = db_query($sql,"Cannot retrieve reconciliation data");
+$result = get_max_reconciled(get_post('reconcile_date'), $_POST['bank_account']);
if ($row = db_fetch($result)) {
$_POST["reconciled"] = price_format($row["end_balance"]-$row["beg_balance"]);
$_POST["end_balance"] = price_format($row["end_balance"]);
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=".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);
+
+ $row = get_ending_reconciled($_POST['bank_account'], $_POST['bank_date']);
if($row) {
$_POST["end_balance"] = price_format($row["ending_reconcile_balance"]);
}
div_start('summary');
-start_table($table_style);
+start_table(TABLESTYLE);
$th = array(_("Reconcile Date"), _("Beginning<br>Balance"),
_("Ending<br>Balance"), _("Account<br>Total"),_("Reconciled<br>Amount"), _("Difference"));
table_header($th);
if (!isset($_POST['bank_account']))
$_POST['bank_account'] = "";
-$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 = ".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";
+$sql = get_sql_for_bank_account_reconcile(get_post('bank_account'), get_post('reconcile_date'));
$act = get_bank_account($_POST["bank_account"]);
display_heading($act['bank_account_name']." - ".$act['bank_curr_code']);
_("Debit") => array('align'=>'right', 'fun'=>'fmt_debit'),
_("Credit") => array('align'=>'right','insert'=>true, 'fun'=>'fmt_credit'),
_("Person/Item") => array('fun'=>'fmt_person'),
+ _("Memo") => array('fun'=>'fmt_memo'),
array('insert'=>true, 'fun'=>'gl_view'),
"X"=>array('insert'=>true, 'fun'=>'rec_checkbox')
);
display_db_pager($table);
br(1);
-submit_center('Reconcile', _("Reconcile"), true, '', null);
-
+echo '<center>';
+submit('Reconcile', _("Reconcile"), true, '', null);
+submit('ReconcileAll', _("Reconcile All"), true, '');
+echo '</center>';
end_form();
//------------------------------------------------------------------------------------------------
end_page();
-?>
\ No newline at end of file