Bug 4817: g/l account inquiry can timeout due to slow sql. @Braath Waate.
[fa-stable.git] / includes / types.inc
index 675ecb770f5f18f0cd1ab17d1433a4d7faed5435..959c1cd1360a94c58c361d5b46999babe37f42fe 100644 (file)
@@ -10,6 +10,8 @@
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
 //----------------------------------------------------------------------------------
+//     FrontAccounting system transaction types
+//
 define('ST_JOURNAL', 0);
 
 define('ST_BANKPAYMENT', 1);
@@ -20,8 +22,10 @@ define('ST_SALESINVOICE', 10);
 define('ST_CUSTCREDIT', 11);
 define('ST_CUSTPAYMENT', 12);
 define('ST_CUSTDELIVERY', 13);
+
 define('ST_LOCTRANSFER', 16);
 define('ST_INVADJUST', 17);
+
 define('ST_PURCHORDER', 18);
 define('ST_SUPPINVOICE', 20);
 define('ST_SUPPCREDIT', 21);
@@ -29,72 +33,65 @@ define('ST_SUPPAYMENT', 22);
 define('ST_SUPPRECEIVE', 25);
 
 define('ST_WORKORDER', 26);
+define('ST_MANUISSUE', 28);
+define('ST_MANURECEIVE', 29);
+
+//
+//     Depreciation period types
+//
+define('FA_MONTHLY', 0);
+define('FA_YEARLY', 1);
 
 define('ST_SALESORDER', 30);
 define('ST_SALESQUOTE', 32);
 define('ST_COSTUPDATE', 35);
 define('ST_DIMENSION', 40);
 
-define('ST_MANUISSUE', 28);
-define('ST_MANURECEIVE', 29);
+// Don't include these defines in the $systypes_array.
+// They are used for documents only.
+define ('ST_STATEMENT', 91);
+define ('ST_CHEQUE', 92);
+
+// document inheritance
+$document_child_types = array(
+               ST_SALESQUOTE => ST_SALESORDER,
+               ST_SALESORDER => ST_CUSTDELIVERY,
+               ST_CUSTDELIVERY => ST_SALESINVOICE,
+               ST_SALESINVOICE => ST_CUSTCREDIT,
+
+               ST_PURCHORDER => ST_SUPPRECEIVE,
+               ST_SUPPRECEIVE => ST_SUPPINVOICE,
+               ST_SUPPINVOICE => ST_SUPPCREDIT,
+);
 
-$systypes_array = array (
-       ST_JOURNAL => _("Journal Entry"),
-       ST_BANKPAYMENT => _("Bank Payment"),
-       ST_BANKDEPOSIT => _("Bank Deposit"),
-       ST_BANKTRANSFER => _("Funds Transfer"),
-       ST_SALESINVOICE => _("Sales Invoice"),
-       ST_CUSTCREDIT => _("Customer Credit Note"),
-       ST_CUSTPAYMENT => _("Customer Payment"),
-       ST_CUSTDELIVERY => _("Delivery Note"),
-       ST_LOCTRANSFER => _("Location Transfer"),
-       ST_INVADJUST => _("Inventory Adjustment"),
-       ST_PURCHORDER => _("Purchase Order"),
-       ST_SUPPINVOICE => _("Supplier Invoice"),
-       ST_SUPPCREDIT => _("Supplier Credit Note"),
-       ST_SUPPAYMENT => _("Supplier Payment"),
-       ST_SUPPRECEIVE => _("Purchase Order Delivery"),
-       ST_WORKORDER => _("Work Order"),
-       ST_MANUISSUE => _("Work Order Issue"),
-       ST_MANURECEIVE => _("Work Order Production"),
-       ST_SALESORDER => _("Sales Order"),
-       ST_SALESQUOTE => _("Sales Quotation"),
-       ST_COSTUPDATE => _("Cost Update"),
-       ST_DIMENSION => _("Dimension")
-       );
+function get_child_type($type)
+{
+       global $document_child_types;
+       return isset($document_child_types[$type]) ? $document_child_types[$type] : 0;
+}
+
+function get_parent_type($type)
+{
+       global $document_child_types;
+       $child = array_search($type, $document_child_types);
+       return $child ? $child : 0;
+}
 
 //----------------------------------------------------------------------------------
+//             Bank transaction types
+//
 define('BT_TRANSFER', 0);
 define('BT_CHEQUE', 1);
 define('BT_CREDIT', 2);
 define('BT_CASH', 3);
 
-$bank_account_types = array (
-       BT_TRANSFER => _("Savings Account"),
-               _("Chequing Account"),
-               _("Credit Account"),
-               _("Cash Account")
-       );
-
-$bank_transfer_types = array(
-       BT_TRANSFER => _("Transfer"),
-                       _("Cheque"),
-                       _("Credit"),
-                       _("Cash")
-       );
-
-//----------------------------------------------------------------------------------
-/* Menu tabs */
-$tabs = array('orders'=>_("Sales"), 'AP'=>_("Purchases"), 'stock'=>_("Items and Inventory"), 'manuf'=>_("Manufacturing"), 
-       'proj'=>_("Dimensions"), 'GL'=>_("Banking and General Ledger"), 'system'=>_("Setup"));
-
-//----------------------------------------------------------------------------------
-
 include_once($path_to_root . "/manufacturing/includes/manufacturing_db.inc");
 include_once($path_to_root . "/purchasing/includes/purchasing_db.inc");
 include_once($path_to_root . "/sales/includes/sales_db.inc");
 include_once($path_to_root . "/dimensions/includes/dimensions_db.inc");
-
+//----------------------------------------------------------------------------------
+//     Payment types
+//
 define('PT_MISC', 0);
 define('PT_WORKORDER', 1);
 define('PT_CUSTOMER', 2);
@@ -102,15 +99,6 @@ define('PT_SUPPLIER', 3);
 define('PT_QUICKENTRY', 4);
 define('PT_DIMESION', 5);
 
-$payment_person_types = array (
-       PT_MISC => _("Miscellaneous"),
-                               _("Work Order"),
-                               _("Customer"),
-                               _("Supplier"),
-                               _("Quick Entry")
-       );
-
-
 function payment_person_currency($type, $person_id)  {
        switch ($type)
        {
@@ -142,14 +130,12 @@ function payment_person_name($type, $person_id, $full=true) {
                        return ($full ? $payment_person_types[$type] . " ":"") . $qe["description"];
                case PT_WORKORDER :
                        global $wo_cost_types;
-                       return $wo_cost_types[$person_id];
+                       return get_trans_view_str(ST_WORKORDER, $person_id, _('Work Order').' '.$person_id);
                case PT_CUSTOMER :
-                       return ($full ?$payment_person_types[$type] . " ":"") . get_customer_name($person_id);
+                       return ($full ?$payment_person_types[$type] . " ":"") . sprintf("[%05s] %s", $person_id, get_customer_name($person_id));
                case PT_SUPPLIER :
-                       return ($full ? $payment_person_types[$type] . " ":"") . get_supplier_name($person_id);
+                       return ($full ? $payment_person_types[$type] . " ":"") . sprintf("[%05s] %s", $person_id, get_supplier_name($person_id));
                default :
-                       //DisplayDBerror("Invalid type sent to person_name");
-                       //return;
                        return '';
        }
 }
@@ -172,21 +158,27 @@ function payment_person_has_items($type) {
                        return false;
        }
 }
-
 //----------------------------------------------------------------------------------
+//     Payment terms categories
+//
+define('PM_ANY', 0);
+define('PM_CASH', 1);
+define('PM_CREDIT', 2);
 
+//----------------------------------------------------------------------------------
+//     Manufacturing types
+//
 define('WO_ASSEMBLY', 0);
 define('WO_UNASSEMBLY', 1);
 define('WO_ADVANCED', 2);
 
-$wo_types_array = array (
-       WO_ASSEMBLY => _("Assemble"),
-       WO_UNASSEMBLY => _("Unassemble"),
-       WO_ADVANCED => _("Advanced Manufacture")
-       );
+define('WO_LABOUR', 0);
+define('WO_OVERHEAD', 1);
+define('WO_MATERIALS', 2);
 
 //----------------------------------------------------------------------------------
-
+//     GL account classes
+//
 define('CL_NONE', 0); // for backward compatibility
 define('CL_ASSETS', 1);
 define('CL_LIABILITIES', 2);
@@ -195,72 +187,90 @@ define('CL_INCOME', 4);
 define('CL_COGS', 5);
 define('CL_EXPENSE', 6);
 
-$class_types = array(
-               CL_ASSETS => _("Assets"),
-               CL_LIABILITIES => _("Liabilities"),
-               CL_EQUITY => _("Equity"),
-               CL_INCOME => _("Income"),
-               CL_COGS => _("Cost of Goods Sold"),
-               CL_EXPENSE => _("Expense"),
-);
-
 function get_class_type_convert($ctype)
 {
-       global $use_oldstyle_convert;
-       if (isset($use_oldstyle_convert) && $use_oldstyle_convert == 1)
+       global $SysPrefs;
+
+       if (isset($SysPrefs->use_oldstyle_convert) && $SysPrefs->use_oldstyle_convert == 1)
                return (($ctype >= CL_INCOME || $ctype == CL_NONE) ? -1 : 1);
        else    
                return ((($ctype >= CL_LIABILITIES && $ctype <= CL_INCOME) || $ctype == CL_NONE) ? -1 : 1);
 }
-define('WO_LABOUR', 0);
-define('WO_OVERHEAD', 1);
-
-$wo_cost_types = array(
-               WO_LABOUR => _("Labour Cost"),
-               WO_OVERHEAD => _("Overhead Cost"),
-);
-
-$quick_actions = array(
-       '=' => _('Remainder'), // post current base amount to GL account
-       'a' => _('Amount'), // post amount to GL account
-       'a+' => _('Amount, increase base'), // post amount to GL account and increase base
-       'a-' => _('Amount, reduce base'), // post amount to GL account and reduce base
-       '%' => _('% amount of base'),   // store acc*amount% to GL account
-       '%+' => _('% amount of base, increase base'),   // ditto & increase base amount
-       '%-' => _('% amount of base, reduce base'),     // ditto & reduce base amount
-       'T' => _('Taxes added'), // post taxes calculated on base amount
-       'T+' => _('Taxes added, increase base'), // ditto & increase base amount
-       'T-' => _('Taxes added, reduce base'), // ditto & reduce base amount
-       't' => _('Taxes included'), // post taxes calculated on base amount
-       't+' => _('Taxes included, increase base'), // ditto & increase base amount
-       't-' => _('Taxes included, reduce base') // ditto & reduce base amount
-);
-
+//----------------------------------------------------------------------------------
+//     Quick entry types
+//
 define('QE_PAYMENT', '1');
 define('QE_DEPOSIT', '2');
 define('QE_JOURNAL', '3');
 define('QE_SUPPINV', '4');
 
-$quick_entry_types = array(
-               QE_DEPOSIT => _("Bank Deposit"),
-               QE_PAYMENT => _("Bank Payment"),
-               QE_JOURNAL => _("Journal Entry"),
-               QE_SUPPINV => _("Supplier Invoice/Credit")
-);
-
-// Types of stock items
-$stock_types = array(
-               'M' => _("Manufactured"),
-               'B' => _("Purchased"),
-               'D' => _("Service")
-);
-
-/*
-       Special option values for various list selectors.
-*/
+//----------------------------------------------------------------------------------
+//     Special option values for various list selectors.
+//
 define('ANY_TEXT', '');
 define('ANY_NUMERIC', -1);
 define('ALL_TEXT', '');
 define('ALL_NUMERIC', -1);
 
-?>
\ No newline at end of file
+//----------------------------------------------------------------------------------
+// Special class values for tables (start_table())
+define('TABLESTYLE',  1);
+define('TABLESTYLE2', 2);
+define('TABLESTYLE_NOBORDER', 3);
+
+//----------------------------------------------------------------------------------
+
+define('TAG_ACCOUNT',   1);
+define('TAG_DIMENSION', 2);
+
+//----------------------------------------------------------------------------------
+// Payment term types
+
+define('PTT_PRE', 1);
+define('PTT_CASH', 2);
+define('PTT_DAYS', 3);
+define('PTT_FOLLOWING', 4);
+
+//----------------------------------------------------------------------------------
+// Tax calculation algorithms used in als and purchase (depends on supplier's invoicing software)
+
+define('TCA_TOTALS', 1); // taxes are calculated from respective net totals for all lines
+define('TCA_LINES', 2); // taxes calculated for every line, then summed
+//
+//     Bank account owner types
+//
+define('BO_UNKNOWN', 0);
+define('BO_COMPANY', 1);
+define('BO_CUSTBRANCH', 2);
+define('BO_SUPPLIER', 3);
+
+include_once($path_to_root . '/includes/sysnames.inc');
+
+// tax register type
+define('TR_OUTPUT', 0); // sales
+define('TR_INPUT', 1); // purchase
+//---------------------------------------------------------------------------------
+// Constants optionally redefined locally
+//
+defined('ICON_EDIT') || define('ICON_EDIT', 'edit.gif');
+defined('ICON_DELETE') || define('ICON_DELETE', 'delete.gif');
+defined('ICON_ADD')    || define('ICON_ADD', 'ok.gif');
+defined('ICON_UPDATE') || define('ICON_UPDATE', 'ok.gif');
+defined('ICON_OK') || define('ICON_OK', 'ok.gif');
+defined('ICON_CANCEL') || define('ICON_CANCEL', 'cancel.png');
+defined('ICON_GL') || define('ICON_GL', 'gl.png');
+defined('ICON_PRINT') || define('ICON_PRINT', 'print.png');
+defined('ICON_PDF') || define('ICON_PDF', 'pdf.gif');
+defined('ICON_DOC') || define('ICON_DOC', 'invoice.gif');
+defined('ICON_CREDIT') || define('ICON_CREDIT', 'credit.gif');
+defined('ICON_RECEIVE') || define('ICON_RECEIVE', 'receive.gif');
+defined('ICON_DOWN') || define('ICON_DOWN', 'download.gif');
+defined('ICON_MONEY') || define('ICON_MONEY', 'money.png');
+defined('ICON_REMOVE') || define('ICON_REMOVE', 'remove.png');
+defined('ICON_REPORT') || define('ICON_REPORT', 'report.png');
+defined('ICON_VIEW') || define('ICON_VIEW', 'view.gif');
+defined('ICON_SUBMIT') || define('ICON_SUBMIT', 'ok.gif');
+defined('ICON_ESCAPE') || define('ICON_ESCAPE', 'escape.png');
+defined('ICON_ALLOC') || define('ICON_ALLOC', 'alloc.png');
+defined('ICON_CLOSED') || define('ICON_CLOSED', 'closed.png');
+