<?php
-
+/**********************************************************************
+ 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>.
+***********************************************************************/
//----------------------------------------------------------------------------------
+// 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)
{
+ global $document_child_types;
+ return isset($document_child_types[$type]) ? $document_child_types[$type] : 0;
+}
- 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 get_parent_type($type)
+{
+ global $document_child_types;
+ $child = array_search($type, $document_child_types);
+ return $child ? $child : 0;
+}
- function po()
- {
- return 18;
- }
+//----------------------------------------------------------------------------------
+// Bank transaction types
+//
+define('BT_TRANSFER', 0);
+define('BT_CHEQUE', 1);
+define('BT_CREDIT', 2);
+define('BT_CASH', 3);
- function supp_payment()
+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);
+define('PT_SUPPLIER', 3);
+define('PT_QUICKENTRY', 4);
+define('PT_DIMESION', 5);
+
+function payment_person_currency($type, $person_id) {
+ switch ($type)
{
- return 22;
- }
+ case PT_MISC :
+ case PT_QUICKENTRY :
+ case PT_WORKORDER :
+ return get_company_currency();
- function work_order()
- {
- return 26;
- }
+ case PT_CUSTOMER :
+ return get_customer_currency($person_id);
- function sales_order()
- {
- return 30;
- }
+ case PT_SUPPLIER :
+ return get_supplier_currency($person_id);
- function cost_update()
- {
- return 35;
+ default :
+ return get_company_currency();
}
+}
- function dimension()
- {
- return 40;
- }
+function payment_person_name($type, $person_id, $full=true) {
+ global $payment_person_types;
- function name($index)
+ switch ($type)
{
- global $systypes_array;
- if ($index < 0)
+ 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 '';
- return $systypes_array[$index]['name'];
}
}
-//----------------------------------------------------------------------------------
-
-$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_all()
- {
- global $bank_account_types_array;
- return $bank_account_types_array;;
- }
-
- function name($index)
+function payment_person_has_items($type) {
+ switch ($type)
{
- 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'];
+ 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;
}
}
//----------------------------------------------------------------------------------
-
-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() :
- $wo = get_work_order($person_id);
- return ($full?payment_person_types::type_name($type) . " ":"") . $wo["wo_ref"];
- 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 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 (
- 0=> array ('id' => 0, 'name' => _("Assemble")),
- 1=> array ('id' => 1, 'name' => _("Unassemble")),
- 2=> array ('id' => 2, 'name' => _("Advanced Manufacture"))
- );
+define('WO_LABOUR', 0);
+define('WO_OVERHEAD', 1);
+define('WO_MATERIALS', 2);
-class wo_types
+//----------------------------------------------------------------------------------
+// GL account classes
+//
+define('CL_NONE', 0); // for backward compatibility
+define('CL_ASSETS', 1);
+define('CL_LIABILITIES', 2);
+define('CL_EQUITY', 3);
+define('CL_INCOME', 4);
+define('CL_COGS', 5);
+define('CL_EXPENSE', 6);
+
+function get_class_type_convert($ctype)
{
+ global $SysPrefs;
- function assemble()
- {
- return 0;
- }
-
- function unassemble()
- {
- return 1;
- }
-
- function advanced()
- {
- return 2;
- }
-
- function get_all()
- {
- global $wo_types_array;
- return $wo_types_array;;
- }
-
- function name($index)
- {
- global $wo_types_array;
- return $wo_types_array[$index]['name'];
- }
+ 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);
}
-
-$quick_actions = array(
- '=' => _('Remainder'), // post current base amount to GL account
- '-' => _('Amount, reduce base'), // post amount to GL account and reduce base
- '+' => _('Amount, increase base'), // post amount to GL account and increase 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');
-?>
\ No newline at end of file