Implemented journal entries with multiply virtual AR/AP subaccounts.
[fa-stable.git] / gl / view / gl_trans_view.php
index 14d1bd138bec14b67eb694e2ec7103a507d63b52..5d54c72f6210c91bc6a5138e2c3d985173b08ba4 100644 (file)
@@ -23,24 +23,29 @@ include_once($path_to_root . "/gl/includes/gl_db.inc");
 if (!isset($_GET['type_id']) || !isset($_GET['trans_no'])) 
 { /*Script was not passed the correct parameters */
 
-       echo "<p>" . _("The script must be called with a valid transaction type and transaction number to review the general ledger postings for.") . "</p>";
-       exit;
+       display_note(_("The script must be called with a valid transaction type and transaction number to review the general ledger postings for."));
+       end_page();
 }
 
 function display_gl_heading($myrow)
 {
-       global $table_style, $systypes_array;
+       global $systypes_array;
        $trans_name = $systypes_array[$_GET['type_id']];
-    start_table("$table_style width=95%");
+    start_table(TABLESTYLE, "width=95%");
     $th = array(_("General Ledger Transaction Details"), _("Reference"),
-       _("Date"), _("Person/Item"));
-    table_header($th); 
-    start_row();       
+       _("Date"));
+
+       if ($_GET['type_id'] != ST_JOURNAL)
+               $th[] = _("Counterparty");
+
+    table_header($th);
+    start_row();
     label_cell("$trans_name #" . $_GET['trans_no']);
     label_cell($myrow["reference"]);
        label_cell(sql2date($myrow["tran_date"]));
-       label_cell(payment_person_name($myrow["person_type_id"],$myrow["person_id"]));
-       
+       if ($_GET['type_id'] != ST_JOURNAL)
+               label_cell(get_counterparty_name($_GET['type_id'],$_GET['trans_no']));
+
        end_row();
 
        comments_display_row($_GET['type_id'], $_GET['trans_no']);
@@ -68,24 +73,29 @@ else if ($dim == 1)
 else           
        $th = array(_("Account Code"), _("Account Name"),
                _("Debit"), _("Credit"), _("Memo"));
+
 $k = 0; //row colour counter
 $heading_shown = false;
 
+$credit = $debit = 0;
 while ($myrow = db_fetch($result)) 
 {
        if ($myrow['amount'] == 0) continue;
        if (!$heading_shown)
        {
                display_gl_heading($myrow);
-               start_table("$table_style width=95%");
+               start_table(TABLESTYLE, "width=95%");
                table_header($th);
                $heading_shown = true;
-       }       
+       }
 
        alt_table_row_color($k);
-       
-    label_cell($myrow['account']);
-       label_cell($myrow['account_name']);
+
+       $counterpartyname = get_subaccount_name($myrow["account"], $myrow["person_id"]);
+       $counterparty_id = $counterpartyname ? sprintf(' %05d', $myrow["person_id"]) : '';
+
+    label_cell($myrow['account'].$counterparty_id);
+       label_cell($myrow['account_name'] . ($counterpartyname ? ': '.$counterpartyname : ''));
        if ($dim >= 1)
                label_cell(get_dimension_string($myrow['dimension_id'], true));
        if ($dim > 1)
@@ -94,11 +104,27 @@ while ($myrow = db_fetch($result))
        display_debit_or_credit_cells($myrow['amount']);
        label_cell($myrow['memo_']);
        end_row();
-
+    if ($myrow['amount'] > 0 ) 
+       $debit += $myrow['amount'];
+    else 
+       $credit += $myrow['amount'];
 }
-//end of while loop
 if ($heading_shown)
+{
+    start_row("class='inquirybg' style='font-weight:bold'");
+    label_cell(_("Total"), "colspan=2");
+    if ($dim >= 1)
+        label_cell('');
+    if ($dim > 1)
+        label_cell('');
+    amount_cell($debit);
+    amount_cell(-$credit);
+    label_cell('');
+    end_row();
        end_table(1);
+}
+
+//end of while loop
 
 is_voided_display($_GET['type_id'], $_GET['trans_no'], _("This transaction has been voided."));