Journal Entry: cleanup in reconcillation status update during edition.
[fa-stable.git] / gl / gl_journal.php
index 34abbedfabb4175acdf4ee1f7307d4ea2f513f15..465fa0a5511c02390bba114d8a60ebd719e54fd1 100644 (file)
@@ -116,6 +116,7 @@ function create_cart($type=0, $trans_no=0)
                $cart->currency = $header['currency'];
                $cart->rate = $header['rate'];
                $cart->source_ref = $header['source_ref'];
+               $cart->reconcile_date = $header['reconcile_date'] ? sql2date($header['reconcile_date']) : NULL;
 
                $result = get_gl_trans($type, $trans_no);
 
@@ -129,7 +130,6 @@ function create_cart($type=0, $trans_no=0)
                }
                $cart->memo_ = get_comments_string($type, $trans_no);
                $cart->reference = $header['reference'];
-
                // update net_amounts from tax register
 
                // retrieve tax details
@@ -139,9 +139,10 @@ function create_cart($type=0, $trans_no=0)
                while ($detail = db_fetch($taxes))
                {
                        $tax_id = $detail['tax_type_id'];
+                       $cart->vat_category = $tax_info['tax_category'] = $detail['vat_category'];
                        $tax_info['net_amount'][$tax_id] = $detail['net_amount']; // we can two records for the same tax_id, but in this case net_amount is the same
                        $tax_info['tax_date'] = sql2date($detail['tran_date']);
-                       //$tax_info['tax_group'] = $detail['tax_group_id'];
+                       $tax_info['tax_group'] = $detail['tax_group_id'];
 
                }
                if (isset($tax_info['net_amount']))     // guess exempt sales/purchase if any tax has been found
@@ -164,6 +165,7 @@ function create_cart($type=0, $trans_no=0)
                $cart->reference = $Refs->get_next(ST_JOURNAL, null, $cart->tran_date);
        }
 
+       $_POST['reconciled_date'] = $cart->reconcile_date;
        $_POST['memo_'] = $cart->memo_;
        $_POST['ref'] = $cart->reference;
        $_POST['date_'] = $cart->tran_date;
@@ -180,6 +182,8 @@ function create_cart($type=0, $trans_no=0)
 function update_tax_info()
 {
 
+       $_SESSION['journal_items']->vat_category = get_post('tax_category');
+
        if (!isset($_SESSION['journal_items']->tax_info) || list_updated('tax_category'))
                $_SESSION['journal_items']->tax_info = $_SESSION['journal_items']->collect_tax_info();
 
@@ -326,11 +330,16 @@ if (isset($_POST['Process']))
                }
        } else
                $cart->tax_info = false;
+
+       if (!get_post('reconciled'))    // clear reconcilation (if any)
+               $cart->reconcile_date = NULL;
+
        $trans_no = write_journal_entries($cart);
 
        $cart->clear_items();
        new_doc_date($_POST['date_']);
        unset($_SESSION['journal_items']);
+
        if($new)
                meta_forward($_SERVER['PHP_SELF'], "AddedID=$trans_no");
        else
@@ -467,7 +476,8 @@ if (tab_closed('tabs', 'gl'))
 {
        $cart = &$_SESSION['journal_items'];
        $cart->tax_info['tax_date'] = $_POST['tax_date'];
-       //$cart->tax_info['tax_group'] = $_POST['tax_group'];
+       $cart->tax_info['tax_category'] = $_POST['tax_category'];
+       $cart->tax_info['tax_group'] = $_POST['tax_group'];
        $taxes = get_all_tax_types();
        while ($tax = db_fetch($taxes))
        {
@@ -481,6 +491,9 @@ if (tab_opened('tabs', 'gl'))
        $_POST['memo_'] = $_SESSION['journal_items']->memo_;
 } elseif (tab_opened('tabs', 'tax'))
 {
+       $_POST['tax_category'] = $_SESSION['journal_items']->vat_category;
+       $_SESSION['journal_items']->collect_tax_info();
+       $_POST['tax_group'] = $_SESSION['journal_items']->tax_info['tax_group'];
        set_focus('tax_date');
 }
 
@@ -541,7 +554,8 @@ tabbed_content_start('tabs', array(
                        br();
                        start_table(TABLESTYLE2, "width=40%");
                        date_row(_("VAT date:"), 'tax_date', '', "colspan='3'");
-                       //tax_groups_list_row(_("Tax group:"), 'tax_group');
+                       tax_groups_list_row(_("Tax group:"), 'tax_group');
+                       vat_category_list_row(_("VAT category:"), 'tax_category', null, true, true);
                        end_table(1);
 
                        start_table(TABLESTYLE2, "width=60%");