X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Ftypes.inc;h=460c51930dacebffddf49b1449c485ba229ca406;hb=50606312fee0bb0dbe984e2c08af53b7dab229bd;hp=1d6c47f78faebc7f212080a9c67992da8a215054;hpb=e96457f44bff18725ccbcb9386e681dd0e7bd309;p=fa-stable.git diff --git a/includes/types.inc b/includes/types.inc index 1d6c47f7..460c5193 100644 --- a/includes/types.inc +++ b/includes/types.inc @@ -10,316 +10,246 @@ See the License here . ***********************************************************************/ //---------------------------------------------------------------------------------- +// 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); + + +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")), - 32=> array ('name' => _("Sales Quotation")), - 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 po() - { - return 18; - } +function get_parent_type($type) +{ + global $document_child_types; + $child = array_search($type, $document_child_types); + return $child ? $child : 0; +} - function supp_payment() - { - return 22; - } +//---------------------------------------------------------------------------------- +// Bank transaction types +// +define('BT_TRANSFER', 0); +define('BT_CHEQUE', 1); +define('BT_CREDIT', 2); +define('BT_CASH', 3); - function work_order() +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 26; - } + case PT_MISC : + case PT_QUICKENTRY : + case PT_WORKORDER : + return get_company_currency(); - function sales_order() - { - return 30; - } + case PT_CUSTOMER : + return get_customer_currency($person_id); - function sales_quotation() - { - return 32; - } + 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 $wo_cost_types[$person_id]; + case PT_CUSTOMER : + return ($full ?$payment_person_types[$type] . " ":"") . get_customer_name($person_id); + case PT_SUPPLIER : + return ($full ? $payment_person_types[$type] . " ":"") . get_supplier_name($person_id); + default : + //DisplayDBerror("Invalid type sent to person_name"); + //return; 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 +// +// Returns counterparty (supplier/customer) name for selected transaction. +// +function get_counterparty_name($trans_type, $trans_no, $full=true) { - - function get_all() + switch($trans_type) { - global $bank_account_types_array; - return $bank_account_types_array;; + case ST_SALESORDER: + case ST_SALESQUOTE: + $sql = "SELECT order.customer_id as person_id, debtor.name as name + FROM ".TB_PREF."sales_orders order, ".TB_PREF."debtors_master debtor + WHERE order_no=".db_escape($trans_no)." AND trans_type=".db_escape($trans_type) + ." AND order.debtor_no=debtor.debtor_no"; + break; + + case ST_SALESINVOICE : + case ST_CUSTCREDIT : + case ST_CUSTPAYMENT : + case ST_CUSTDELIVERY : + $sql = "SELECT trans.debtor_no as person_id, debtor.name as name + FROM ".TB_PREF."debtor_trans trans, ".TB_PREF."debtors_master debtor + WHERE trans_no=".db_escape($trans_no)." AND type=".db_escape($trans_type) + ." AND trans.debtor_no=debtor.debtor_no"; + break; + + case ST_PURCHORDER : + $sql = "SELECT order.supplier_id as person_id, supp.supp_name as name + FROM ".TB_PREF."purch_orders order, ".TB_PREF."suppliers supp + WHERE order_no=".db_escape($trans_no) + ." AND order.supplier_id=supp.supplier_id"; + break; + + case ST_SUPPINVOICE : + case ST_SUPPCREDIT : + case ST_SUPPAYMENT : + $sql = "SELECT trans.supplier_id as person_id, supp.supp_name as name + FROM ".TB_PREF."supp_trans trans, ".TB_PREF."suppliers supp + WHERE trans_no=".db_escape($trans_no)." AND type=".db_escape($trans_type) + ." AND trans.supplier_id=supp.supplier_id"; + break; + + case ST_SUPPRECEIVE : + $sql = "SELECT trans.supplier_id as person_id, supp.supp_name as name + FROM ".TB_PREF."grn_batch trans, ".TB_PREF."suppliers supp + WHERE id=".db_escape($trans_no) + ." AND trans.supplier_id=supp.supplier_id"; + break; + + case ST_JOURNAL: // FIXME - this one can have multiply counterparties of various types depending on person_type_id + + default: + /* // internal operations + case ST_WORKORDER : + case ST_INVADJUST : // GRN/DN returns ? + case ST_BANKTRANSFER : + case ST_LOCTRANSFER : + case ST_MANUISSUE : + case ST_MANURECEIVE : + case ST_COSTUPDATE : + case ST_BANKPAYMENT : // generic bank transactions + case ST_BANKDEPOSIT :*/ + return null; } - function name($index) - { - global $bank_account_types_array; - return $bank_account_types_array[$index]['name']; - } - - function transfer_type($index) + $result = db_query($sql, 'cannot retrieve counterparty name'); + if (db_num_rows($result)) { - global $bank_account_types_array; - return $bank_account_types_array[$index]['ptype']; + $row = db_fetch($result); + return sprintf("[%05s] %s", $row['person_id'], $row['name']); } -} - -/* 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_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 -{ + return ''; +} - function get_all() +function payment_person_has_items($type) { + switch ($type) { - global $payment_person_types_array; - return $payment_person_types_array; + 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; } - - 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 terms categories +// +define('PM_ANY', 0); +define('PM_CASH', 1); +define('PM_CREDIT', 2); -$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 -{ - - function assemble() - { - return 0; - } - - function unassemble() - { - return 1; - } - - function advanced() - { - return 2; - } - - function get_all() - { - global $wo_types_array; - return $wo_types_array;; - } +//---------------------------------------------------------------------------------- +// Manufacturing types +// +define('WO_ASSEMBLY', 0); +define('WO_UNASSEMBLY', 1); +define('WO_ADVANCED', 2); - function name($index) - { - global $wo_types_array; - return $wo_types_array[$index]['name']; - } -} +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); @@ -328,15 +258,6 @@ 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; @@ -345,46 +266,47 @@ function get_class_type_convert($ctype) 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 + +include_once($path_to_root . '/includes/sysnames.inc'); -// Types of stock items -$stock_types = array( - 'M' => _("Manufactured"), - 'B' => _("Purchased"), - 'D' => _("Service") -); ?> \ No newline at end of file