Added company switch for placing company logo on certain views.
[fa-stable.git] / gl / view / gl_trans_view.php
index 57e27833457f47e4344d7cd905eec91c2b498b32..b9afd240e223a25103840e822b297d2e7ed57d7b 100644 (file)
@@ -1,10 +1,19 @@
 <?php
-
-$page_security = 8;
-$path_to_root="../..";
+/**********************************************************************
+    Copyright (C) FrontAccounting, LLC.
+       Released under the terms of the GNU General Public License, GPL, 
+       as published by the Free Software Foundation, either version 3 
+       of the License, or (at your option) any later version.
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+***********************************************************************/
+$page_security = 'SA_GLTRANSVIEW';
+$path_to_root = "../..";
 include_once($path_to_root . "/includes/session.inc");
 
-page(_("General Ledger Transaction Details"), true);
+page(_($help_context = "General Ledger Transaction Details"), true);
 
 include_once($path_to_root . "/includes/date_functions.inc");
 include_once($path_to_root . "/includes/ui.inc");
@@ -14,37 +23,70 @@ 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;
-       $trans_name = systypes::name($_GET['type_id']);
-    start_table("$table_style width=95%");
-    $th = array(_("General Ledger Transaction Details"),
-       _("Date"), _("Person/Item"));
+       global $systypes_array, $SysPrefs;
+       
+       if (!empty($SysPrefs->prefs['company_logo_on_views']))
+               company_logo_on_view();
+       
+       $trans_name = $systypes_array[$_GET['type_id']];
+       $journal = $_GET['type_id'] == ST_JOURNAL;
+
+    start_table(TABLESTYLE, "width='95%'");
+    $th = array(_("General Ledger Transaction Details"), _("Reference"),
+       _("Transaction Date"), _("GL #"));
+
+       if ($_GET['type_id'] == ST_JOURNAL)
+               array_insert($th, 3, array(_("Document Date"), _("Event Date")));
+       else
+               array_insert($th, 3, array(_("Counterparty")));
+       
+       if($myrow['supp_reference'])
+       {
+               array_insert($th, 2, array(_("Supplier Reference")));
+       }
     table_header($th); 
     start_row();       
     label_cell("$trans_name #" . $_GET['trans_no']);
-       label_cell(sql2date($myrow["tran_date"]));
-       label_cell(payment_person_types::person_name($myrow["person_type_id"],$myrow["person_id"]));
-       
+    label_cell($myrow["reference"], "align='center'");
+       if($myrow['supp_reference'])
+       {
+       label_cell($myrow["supp_reference"], "align='center'");
+       }
+       label_cell(sql2date($myrow["doc_date"]), "align='center'");
+       if ($journal)
+       {
+               $header = get_journal($myrow['type'], $_GET['trans_no']);
+               label_cell($header["doc_date"] == '0000-00-00' ? '-' : sql2date($header["doc_date"]), "align='center'");
+               label_cell($header["event_date"] == '0000-00-00' ? '-' : sql2date($header["event_date"]), "align='center'");
+       } else
+               label_cell(get_counterparty_name($_GET['type_id'],$_GET['trans_no']));
+       label_cell( get_journal_number($myrow['type'], $_GET['trans_no']), "align='center'");
        end_row();
 
+       start_row();
+       label_cells(_('Entered By'), $myrow["real_name"], "class='tableheader2'", "colspan=" .
+                ($journal ? ($header['rate']==1 ? '3':'1'):'6'));
+       if ($journal)
+       {
+               if ($header['rate'] != 1)
+                       label_cells(_('Exchange rate'), $header["rate"].' ', "class='tableheader2'");
+               label_cells(_('Source document'), $header["source_ref"], "class='tableheader2'");
+       }
+       end_row();
        comments_display_row($_GET['type_id'], $_GET['trans_no']);
-
     end_table(1);
 }
-
-$sql = "SELECT ".TB_PREF."gl_trans.*, account_name FROM ".TB_PREF."gl_trans, ".TB_PREF."chart_master WHERE ".TB_PREF."gl_trans.account = ".TB_PREF."chart_master.account_code AND type= " . $_GET['type_id'] . " AND type_no = " . $_GET['trans_no'] . " ORDER BY counter";
-$result = db_query($sql,"could not get transactions");
-//alert("sql = ".$sql);
+$result = get_gl_trans($_GET['type_id'], $_GET['trans_no']);
 
 if (db_num_rows($result) == 0)
 {
-    echo "<p><center>" . _("No general ledger transactions have been created for") . " " .systypes::name($_GET['type_id'])." " . _("number") . " " . $_GET['trans_no'] . "</center></p><br><br>";
+    echo "<p><center>" . _("No general ledger transactions have been created for") . " " .$systypes_array[$_GET['type_id']]." " . _("number") . " " . $_GET['trans_no'] . "</center></p><br><br>";
        end_page(true);
        exit;
 }
@@ -53,32 +95,38 @@ if (db_num_rows($result) == 0)
 $dim = get_company_pref('use_dimension');
 
 if ($dim == 2)
-       $th = array(_("Account Code"), _("Account Name"), _("Dimension")." 1", _("Dimension")." 2",
+       $th = array(_("Journal Date"), _("Account Code"), _("Account Name"), _("Dimension")." 1", _("Dimension")." 2",
                _("Debit"), _("Credit"), _("Memo"));
-else if ($dim == 1)
-       $th = array(_("Account Code"), _("Account Name"), _("Dimension"),
+elseif ($dim == 1)
+       $th = array(_("Journal Date"), _("Account Code"), _("Account Name"), _("Dimension"),
                _("Debit"), _("Credit"), _("Memo"));
 else           
-       $th = array(_("Account Code"), _("Account Name"),
+       $th = array(_("Journal Date"), _("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(sql2date($myrow['tran_date']));
+    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)
@@ -87,14 +135,29 @@ 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=3");
+    if ($dim >= 1)
+        label_cell('');
+    if ($dim > 1)
+        label_cell('');
+    amount_cell($debit);
+    amount_cell(-$credit);
+    label_cell('');
+    end_row();
        end_table(1);
+}
 
-is_voided_display($_GET['type_id'], $_GET['trans_no'], _("This transaction has been voided."));
+//end of while loop
 
-end_page(true);
+is_voided_display($_GET['type_id'], $_GET['trans_no'], _("This transaction has been voided."));
 
-?>
+end_page(true, false, false, $_GET['type_id'], $_GET['trans_no']);