PHP 7.X produces A non-numeric value encountered in \includes\date_functions.inc...
[fa-stable.git] / includes / types.inc
index ced641c24f0e55a3d353678aff36d545e5b86c98..959c1cd1360a94c58c361d5b46999babe37f42fe 100644 (file)
     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);
+define('ST_BANKDEPOSIT', 2);
+define('ST_BANKTRANSFER', 4);
+
+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);
+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);
+
+// 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 (
-                                       0=> array ('name' => _("Journal Entry")),
-                                       1=> array ('name' => _("Bank Payment")),
-                                       2=> array ('name' => _("Bank Deposit")),
-                                       4=> array ('name' => _("Funds Transfer")),
-                    10=> array ('name' => _("Sales Invoice")),
-                    11=> array ('name' => _("Customer Credit Note")),
-                    12=> array ('name' => _("Customer Payment")),
-                    13=> array ('name' => _("Delivery Note")),
-                    16=> array ('name' => _("Location Transfer")),
-                    17=> array ('name' => _("Inventory Adjustment")),
-                    18=> array ('name' => _("Purchase Order")),
-                    20=> array ('name' => _("Supplier Invoice")),
-                    21=> array ('name' => _("Supplier Credit Note")),
-                    22=> array ('name' => _("Supplier Payment")),
-                    25=> array ('name' => _("Purchase Order Delivery")),
-                    26=> array ('name' => _("Work Order")),
-                    28=> array ('name' => _("Work Order Issue")),
-                    29=> array ('name' => _("Work Order Production")),
-                    30=> array ('name' => _("Sales Order")),
-                    35=> array ('name' => _("Cost Update")),
-                    40=> array ('name' => _("Dimension"))
-                                       );
-class systypes 
+function get_child_type($type)
 {
-
-       function journal_entry() 
-       {
-               return 0;
-       }
-
-       function bank_payment() 
-       {
-               return 1;
-       }
-
-       function bank_deposit() 
-       {
-               return 2;
-       }
-
-       function bank_transfer() 
-       {
-               return 4;
-       }
-
-       function cust_payment() 
-       {
-               return 12;
-       }
-
-       function cust_dispatch() 
-       {
-               return 13;
-       }
-
-       function location_transfer() 
-       {
-               return 16;
-       }
-
-       function inventory_adjustment() 
-       {
-               return 17;
-       }
-
-       function po() 
-       {
-               return 18;
-       }
-
-       function supp_payment() 
-       {
-               return 22;
-       }
-
-       function work_order() 
-       {
-               return 26;
-       }
-
-       function sales_order() 
-       {
-               return 30;
-       }
-
-       function cost_update() 
-       {
-               return 35;
-       }
-
-       function dimension() 
-       {
-               return 40;
-       }
-
-       function name($index) 
-       {
-               global $systypes_array;
-               if ($index < 0)
-                       return '';
-               return $systypes_array[$index]['name'];
-       }
+       global $document_child_types;
+       return isset($document_child_types[$type]) ? $document_child_types[$type] : 0;
 }
 
-//----------------------------------------------------------------------------------
-
-$bank_account_types_array = array (
-       0=> array ('id' => 0, 'name' => _("Savings Account"), 'ptype' => _("Transfer")),
-       1=> array ('id' => 1, 'name' => _("Chequing Account"),'ptype' => _("Cheque")),
-       2=> array ('id' => 2, 'name' => _("Credit Account"), 'ptype' => _("Credit")),
-       3=> array ('id' => 3, 'name' => _("Cash Account"), 'ptype' => _("Cash"))
-       );
-
-class bank_account_types 
+function get_parent_type($type)
 {
-
-       function get_all() 
-       {
-               global $bank_account_types_array;
-               return $bank_account_types_array;;
-       }
-
-       function name($index) 
-       {
-               global $bank_account_types_array;
-               return $bank_account_types_array[$index]['name'];
-       }
-       
-       function transfer_type($index) 
-       {
-               global $bank_account_types_array;
-               return $bank_account_types_array[$index]['ptype'];
-       }
+       global $document_child_types;
+       $child = array_search($type, $document_child_types);
+       return $child ? $child : 0;
 }
 
-/* Menu tabs */
-$tabs = array('orders'=>_("Sales"), 'AP'=>_("Purchases"), 'stock'=>_("Items and Inventory"), 'manuf'=>_("Manufacturing"), 
-       'proj'=>_("Dimensions"), 'GL'=>_("Banking and General Ledger"), 'system'=>_("Setup"));
-
 //----------------------------------------------------------------------------------
+//             Bank transaction types
+//
+define('BT_TRANSFER', 0);
+define('BT_CHEQUE', 1);
+define('BT_CREDIT', 2);
+define('BT_CASH', 3);
 
 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_person_types_array = array (
-                                                       0=> array ('id' => 0, 'name' => _("Miscellaneous")),
-                                                       1=> array ('id' => 1, 'name' => _("Work Order")),
-                                                       2=> array ('id' => 2, 'name' => _("Customer")),
-                                                       3=> array ('id' => 3, 'name' => _("Supplier")),
-                                                       4=> array ('id' => 4, 'name' => _("Quick Entry"))
-                                                       );
-
-class payment_person_types 
-{
-
-       function get_all() 
-       {
-               global $payment_person_types_array;
-               return $payment_person_types_array;
-       }
-
-    function misc()  
-    { 
-       return 0; 
-    }
-
-    function WorkOrder()  
-    { 
-       return 1; 
-    }
-
-    function customer()  
-    { 
-       return 2; 
-    }
-
-    function supplier()  
-    { 
-       return 3; 
-    }
-
-    function QuickEntry()  
-    { 
-       return 4; 
-    }
-
-    function dimension()  
-    { 
-       return 5; 
-    }
-
-    function type_name($type)
-    {
-       global $payment_person_types_array;
-       return $payment_person_types_array[$type]['name'];
-    }
-
-    function person_name($type, $person_id, $full=true)
-    {
-       switch ($type)
-       {
-               case payment_person_types::misc() :
-                       return $person_id;
-               case payment_person_types::QuickEntry() :
-                       $qe = get_quick_entry($person_id);
-                       return ($full?payment_person_types::type_name($type) . " ":"") . $qe["description"];
-               case payment_person_types::WorkOrder() :
-                       global $wo_cost_types;
-                       return $wo_cost_types[$person_id];
-               case payment_person_types::customer() :
-                       return ($full?payment_person_types::type_name($type) . " ":"") . get_customer_name($person_id);
-               case payment_person_types::supplier() :
-                       return ($full?payment_person_types::type_name($type) . " ":"") . get_supplier_name($person_id);
-               default :
-                       //DisplayDBerror("Invalid type sent to person_name");
-                       //return;
-                       return '';
-       }
-    }
-
-    function person_currency($type, $person_id)
-    {
-       switch ($type)
-       {
-               case payment_person_types::misc() :
-               case payment_person_types::QuickEntry() :
-               case payment_person_types::WorkOrder() :
-                       return get_company_currency();
-
-               case payment_person_types::customer() :
-                       return get_customer_currency($person_id);
-
-               case payment_person_types::supplier() :
-                       return get_supplier_currency($person_id);
-
-               default :
-                       return get_company_currency();
-       }
-    }
-
-    function has_items($type)
-    {
-       switch ($type)
-       {
-               case payment_person_types::misc() :
-                       return true;
-               case payment_person_types::QuickEntry() :
-                       return db_has_quick_entries();
-               case payment_person_types::WorkOrder() : // 070305 changed to open workorders JH
-                       return db_has_open_workorders();
-               case payment_person_types::customer() :
-                       return db_has_customers();
-               case payment_person_types::supplier() :
-                       return db_has_suppliers();
-               default :
-                       display_db_error("Invalid type sent to has_items", "");
-                       return false;
-       }
-    }
-}
-
 //----------------------------------------------------------------------------------
+//     Payment types
+//
+define('PT_MISC', 0);
+define('PT_WORKORDER', 1);
+define('PT_CUSTOMER', 2);
+define('PT_SUPPLIER', 3);
+define('PT_QUICKENTRY', 4);
+define('PT_DIMESION', 5);
+
+function payment_person_currency($type, $person_id)  {
+       switch ($type)
+       {
+               case PT_MISC :
+               case PT_QUICKENTRY :
+               case PT_WORKORDER :
+                       return get_company_currency();
 
-$wo_types_array = array (
-                                               0=> array ('id' => 0, 'name' => _("Assemble")),
-                                               1=> array ('id' => 1, 'name' => _("Unassemble")),
-                                               2=> array ('id' => 2, 'name' => _("Advanced Manufacture"))
-                                               );
-
-class wo_types 
-{
+               case PT_CUSTOMER :
+                       return get_customer_currency($person_id);
 
-       function assemble() 
-       { 
-               return 0; 
-       }
+               case PT_SUPPLIER :
+                       return get_supplier_currency($person_id);
 
-       function unassemble() 
-       { 
-               return 1; 
+               default :
+                       return get_company_currency();
        }
+}
 
-       function advanced() 
-       { 
-               return 2; 
-       }
+function payment_person_name($type, $person_id, $full=true) {
+       global $payment_person_types;
 
-       function get_all() 
+       switch ($type)
        {
-               global $wo_types_array;
-               return $wo_types_array;;
+               case PT_MISC :
+                       return $person_id;
+               case PT_QUICKENTRY :
+                       $qe = get_quick_entry($person_id);
+                       return ($full ? $payment_person_types[$type] . " ":"") . $qe["description"];
+               case PT_WORKORDER :
+                       global $wo_cost_types;
+                       return get_trans_view_str(ST_WORKORDER, $person_id, _('Work Order').' '.$person_id);
+               case PT_CUSTOMER :
+                       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] . " ":"") . sprintf("[%05s] %s", $person_id, get_supplier_name($person_id));
+               default :
+                       return '';
        }
+}
 
-       function name($index) 
+function payment_person_has_items($type) {
+       switch ($type)
        {
-               global $wo_types_array;
-               return $wo_types_array[$index]['name'];
+               case PT_MISC :
+                       return true;
+               case PT_QUICKENTRY :
+                       return db_has_quick_entries();
+               case PT_WORKORDER : // 070305 changed to open workorders JH
+                       return db_has_open_workorders();
+               case PT_CUSTOMER :
+                       return db_has_customers();
+               case PT_SUPPLIER :
+                       return db_has_suppliers();
+               default :
+                       display_db_error("Invalid type sent to has_items", "");
+                       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);
 
+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);
@@ -322,63 +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")
-);
+//----------------------------------------------------------------------------------
+//     Special option values for various list selectors.
+//
+define('ANY_TEXT', '');
+define('ANY_NUMERIC', -1);
+define('ALL_TEXT', '');
+define('ALL_NUMERIC', -1);
+
+//----------------------------------------------------------------------------------
+// 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');
 
-// Types of stock items
-$stock_types = array(
-               'M' => _("Manufactured"),
-               'B' => _("Purchased"),
-               'D' => _("Service")
-);
-?>
\ No newline at end of file