Release 2.4.8
[fa-stable.git] / gl / bank_account_reconcile.php
index b6a5355de0d640318951cb423e5dac1956bbd9df..a5738946451ea7385e6890a128de1b3dd48d939b 100644 (file)
@@ -9,7 +9,6 @@
     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");
@@ -23,9 +22,9 @@ include_once($path_to_root . "/gl/includes/gl_db.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');
@@ -53,8 +52,8 @@ function rec_checkbox($row)
        $value = $row['reconciled'] != '';
 
 // save also in hidden field for testing during 'Reconcile'
-       return checkbox(null, $name, $value, true, _('Reconcile this transaction'))
-               . hidden($hidden, $value, false);
+       return is_closed_trans($row['type'], $row['trans_no']) ? "--" : checkbox(null, $name, $value, true, _('Reconcile this transaction'))
+               . hidden($hidden, $value, false);
 }
 
 function systype_name($dummy, $type)
@@ -86,20 +85,24 @@ function fmt_credit($row)
        return $value>0 ? price_format($value) : '';
 }
 
-function fmt_person($row)
+function fmt_person($trans)
 {
        return get_counterparty_name($trans["type"], $trans["trans_no"]);
 }
 
-$update_pager = false;
+function fmt_memo($row)
+{
+       $value = $row["memo_"];
+       return $value;
+}
+
 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.
@@ -127,6 +130,26 @@ function change_tpl_flag($reconcile_id)
        return true;
 }
 
+function set_tpl_flag($reconcile_id)
+{
+       global  $Ajax;
+
+       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');
+}
+
 if (!isset($_POST['reconcile_date'])) { // init page
        $_POST['reconcile_date'] = new_doc_date();
 //     $_POST['bank_date'] = date2sql(Today());
@@ -151,11 +174,21 @@ $id = find_submit('_rec_');
 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');
 }
 
@@ -223,7 +256,7 @@ echo "<hr>";
 if (!isset($_POST['bank_account']))
     $_POST['bank_account'] = "";
 
-$sql = get_sql_for_bank_account_reconcile($_POST['bank_account'], get_post('reconcile_date'));
+$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']);
@@ -237,6 +270,7 @@ 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')
           );
@@ -246,12 +280,13 @@ display_heading($act['bank_account_name']." - ".$act['bank_curr_code']);
        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